diff --git a/.next/app-build-manifest.json b/.next/app-build-manifest.json
index ed1d359..701cac8 100644
--- a/.next/app-build-manifest.json
+++ b/.next/app-build-manifest.json
@@ -30,6 +30,11 @@
"static/chunks/webpack.js",
"static/chunks/main-app.js",
"static/chunks/app/crew/page.js"
+ ],
+ "/_not-found/page": [
+ "static/chunks/webpack.js",
+ "static/chunks/main-app.js",
+ "static/chunks/app/_not-found/page.js"
]
}
}
\ No newline at end of file
diff --git a/.next/cache/images/FTWCH9OStkpEU7svLtRhd_En8CX9lGSCn7yPryblQoU/60.1758698329593.L8qxfMeZu3oJxwfIF5vLtojes1URHQraCH1342LJ5hU.Vy8iNDdjNDktMTk5MmM0ZjUzOTci.avif b/.next/cache/images/FTWCH9OStkpEU7svLtRhd_En8CX9lGSCn7yPryblQoU/60.1758699154511.L8qxfMeZu3oJxwfIF5vLtojes1URHQraCH1342LJ5hU.Vy8iNDdjNDktMTk5MmM0ZjUzOTci.avif
similarity index 100%
rename from .next/cache/images/FTWCH9OStkpEU7svLtRhd_En8CX9lGSCn7yPryblQoU/60.1758698329593.L8qxfMeZu3oJxwfIF5vLtojes1URHQraCH1342LJ5hU.Vy8iNDdjNDktMTk5MmM0ZjUzOTci.avif
rename to .next/cache/images/FTWCH9OStkpEU7svLtRhd_En8CX9lGSCn7yPryblQoU/60.1758699154511.L8qxfMeZu3oJxwfIF5vLtojes1URHQraCH1342LJ5hU.Vy8iNDdjNDktMTk5MmM0ZjUzOTci.avif
diff --git a/.next/cache/images/GdwwNqXikHCOHvh9-a3ERiCkPR9vaXD_zj1vjjg6rzo/60.1758698329916.Fogq7yxQ8F7OdjwwQOd-H_IxB3L57pMJ2thYnf0Nzqk.Vy8iMjYxZGQzLTE5OTJjNGY1M2QzIg.avif b/.next/cache/images/GdwwNqXikHCOHvh9-a3ERiCkPR9vaXD_zj1vjjg6rzo/60.1758699154519.Fogq7yxQ8F7OdjwwQOd-H_IxB3L57pMJ2thYnf0Nzqk.Vy8iMjYxZGQzLTE5OTJjNGY1M2QzIg.avif
similarity index 100%
rename from .next/cache/images/GdwwNqXikHCOHvh9-a3ERiCkPR9vaXD_zj1vjjg6rzo/60.1758698329916.Fogq7yxQ8F7OdjwwQOd-H_IxB3L57pMJ2thYnf0Nzqk.Vy8iMjYxZGQzLTE5OTJjNGY1M2QzIg.avif
rename to .next/cache/images/GdwwNqXikHCOHvh9-a3ERiCkPR9vaXD_zj1vjjg6rzo/60.1758699154519.Fogq7yxQ8F7OdjwwQOd-H_IxB3L57pMJ2thYnf0Nzqk.Vy8iMjYxZGQzLTE5OTJjNGY1M2QzIg.avif
diff --git a/.next/cache/images/JEmzoKFHTevNTHB1KE_Mnm3EY7dMsL2iuPAISph_A_M/60.1758698329598.C9uw3Px1Gs6OueayPeclqh1a6sO4BueXfSRW6dFJWrY.Vy8iMzc2M2MtMTk5MmM0ZjUzOTci.avif b/.next/cache/images/JEmzoKFHTevNTHB1KE_Mnm3EY7dMsL2iuPAISph_A_M/60.1758699154512.C9uw3Px1Gs6OueayPeclqh1a6sO4BueXfSRW6dFJWrY.Vy8iMzc2M2MtMTk5MmM0ZjUzOTci.avif
similarity index 100%
rename from .next/cache/images/JEmzoKFHTevNTHB1KE_Mnm3EY7dMsL2iuPAISph_A_M/60.1758698329598.C9uw3Px1Gs6OueayPeclqh1a6sO4BueXfSRW6dFJWrY.Vy8iMzc2M2MtMTk5MmM0ZjUzOTci.avif
rename to .next/cache/images/JEmzoKFHTevNTHB1KE_Mnm3EY7dMsL2iuPAISph_A_M/60.1758699154512.C9uw3Px1Gs6OueayPeclqh1a6sO4BueXfSRW6dFJWrY.Vy8iMzc2M2MtMTk5MmM0ZjUzOTci.avif
diff --git a/.next/cache/images/JTne3-MtnHQc-nw8Y9Q0oJgcPjhMN3wm4ybROq0zo7E/60.1758698329595.o7BI1rn6tod8LlAvQKuX106hskvdgYmMeVnXc0i9Apo.Vy8iN2FiNDUtMTk5MmM0ZjUzZDci.avif b/.next/cache/images/JTne3-MtnHQc-nw8Y9Q0oJgcPjhMN3wm4ybROq0zo7E/60.1758699154456.o7BI1rn6tod8LlAvQKuX106hskvdgYmMeVnXc0i9Apo.Vy8iN2FiNDUtMTk5MmM0ZjUzZDci.avif
similarity index 100%
rename from .next/cache/images/JTne3-MtnHQc-nw8Y9Q0oJgcPjhMN3wm4ybROq0zo7E/60.1758698329595.o7BI1rn6tod8LlAvQKuX106hskvdgYmMeVnXc0i9Apo.Vy8iN2FiNDUtMTk5MmM0ZjUzZDci.avif
rename to .next/cache/images/JTne3-MtnHQc-nw8Y9Q0oJgcPjhMN3wm4ybROq0zo7E/60.1758699154456.o7BI1rn6tod8LlAvQKuX106hskvdgYmMeVnXc0i9Apo.Vy8iN2FiNDUtMTk5MmM0ZjUzZDci.avif
diff --git a/.next/cache/images/V45YOOAstZlWaKnjzp4qwi1_qj3LgQ-AUFBfR9FjDWo/60.1758698329697.JsYberVVSYyHdp9edFU5dr3gkNgK3UhH1IyusBOk0M0.Vy8iZDZmNjctMTk5MmM0ZjUzYTUi.avif b/.next/cache/images/V45YOOAstZlWaKnjzp4qwi1_qj3LgQ-AUFBfR9FjDWo/60.1758699154515.JsYberVVSYyHdp9edFU5dr3gkNgK3UhH1IyusBOk0M0.Vy8iZDZmNjctMTk5MmM0ZjUzYTUi.avif
similarity index 100%
rename from .next/cache/images/V45YOOAstZlWaKnjzp4qwi1_qj3LgQ-AUFBfR9FjDWo/60.1758698329697.JsYberVVSYyHdp9edFU5dr3gkNgK3UhH1IyusBOk0M0.Vy8iZDZmNjctMTk5MmM0ZjUzYTUi.avif
rename to .next/cache/images/V45YOOAstZlWaKnjzp4qwi1_qj3LgQ-AUFBfR9FjDWo/60.1758699154515.JsYberVVSYyHdp9edFU5dr3gkNgK3UhH1IyusBOk0M0.Vy8iZDZmNjctMTk5MmM0ZjUzYTUi.avif
diff --git a/.next/cache/images/v5AQ2uWL6zYkO9M_kN1FXWlThep2z5K5vsCrKVNs-no/60.1758698329584.1NY5gbJXgPc93I3AOwqF-21d43NLGzyA4qGP2Hl6DZ0.Vy8iMzNhMjEtMTk5MmM0ZjUzOTci.avif b/.next/cache/images/v5AQ2uWL6zYkO9M_kN1FXWlThep2z5K5vsCrKVNs-no/60.1758699154511.1NY5gbJXgPc93I3AOwqF-21d43NLGzyA4qGP2Hl6DZ0.Vy8iMzNhMjEtMTk5MmM0ZjUzOTci.avif
similarity index 100%
rename from .next/cache/images/v5AQ2uWL6zYkO9M_kN1FXWlThep2z5K5vsCrKVNs-no/60.1758698329584.1NY5gbJXgPc93I3AOwqF-21d43NLGzyA4qGP2Hl6DZ0.Vy8iMzNhMjEtMTk5MmM0ZjUzOTci.avif
rename to .next/cache/images/v5AQ2uWL6zYkO9M_kN1FXWlThep2z5K5vsCrKVNs-no/60.1758699154511.1NY5gbJXgPc93I3AOwqF-21d43NLGzyA4qGP2Hl6DZ0.Vy8iMzNhMjEtMTk5MmM0ZjUzOTci.avif
diff --git a/.next/cache/images/vUcLYAapw3q0M7WyrYy-TiKp9W0Ir_Gn7eqYNOPHcNo/60.1758698329705.fBrV9uP3ZpVtQWpLkTsQkc8QM6blFLRjSRfqzxdwOq4.Vy8iMTA1ZjczLTE5OTJjNGY1MzllIg.avif b/.next/cache/images/vUcLYAapw3q0M7WyrYy-TiKp9W0Ir_Gn7eqYNOPHcNo/60.1758699154515.fBrV9uP3ZpVtQWpLkTsQkc8QM6blFLRjSRfqzxdwOq4.Vy8iMTA1ZjczLTE5OTJjNGY1MzllIg.avif
similarity index 100%
rename from .next/cache/images/vUcLYAapw3q0M7WyrYy-TiKp9W0Ir_Gn7eqYNOPHcNo/60.1758698329705.fBrV9uP3ZpVtQWpLkTsQkc8QM6blFLRjSRfqzxdwOq4.Vy8iMTA1ZjczLTE5OTJjNGY1MzllIg.avif
rename to .next/cache/images/vUcLYAapw3q0M7WyrYy-TiKp9W0Ir_Gn7eqYNOPHcNo/60.1758699154515.fBrV9uP3ZpVtQWpLkTsQkc8QM6blFLRjSRfqzxdwOq4.Vy8iMTA1ZjczLTE5OTJjNGY1MzllIg.avif
diff --git a/.next/cache/webpack/client-development/0.pack.gz b/.next/cache/webpack/client-development/0.pack.gz
index ae6c7c4..7f04186 100644
Binary files a/.next/cache/webpack/client-development/0.pack.gz and b/.next/cache/webpack/client-development/0.pack.gz differ
diff --git a/.next/cache/webpack/client-development/10.pack.gz b/.next/cache/webpack/client-development/10.pack.gz
index ca34071..711194a 100644
Binary files a/.next/cache/webpack/client-development/10.pack.gz and b/.next/cache/webpack/client-development/10.pack.gz differ
diff --git a/.next/cache/webpack/client-development/13.pack.gz b/.next/cache/webpack/client-development/13.pack.gz
index 4597c14..0801fe7 100644
Binary files a/.next/cache/webpack/client-development/13.pack.gz and b/.next/cache/webpack/client-development/13.pack.gz differ
diff --git a/.next/cache/webpack/client-development/15.pack.gz b/.next/cache/webpack/client-development/15.pack.gz
index 4ec345d..4dc9fde 100644
Binary files a/.next/cache/webpack/client-development/15.pack.gz and b/.next/cache/webpack/client-development/15.pack.gz differ
diff --git a/.next/cache/webpack/client-development/20.pack.gz b/.next/cache/webpack/client-development/20.pack.gz
index 334b168..850d026 100644
Binary files a/.next/cache/webpack/client-development/20.pack.gz and b/.next/cache/webpack/client-development/20.pack.gz differ
diff --git a/.next/cache/webpack/client-development/4.pack.gz b/.next/cache/webpack/client-development/4.pack.gz
index a783695..0ff4095 100644
Binary files a/.next/cache/webpack/client-development/4.pack.gz and b/.next/cache/webpack/client-development/4.pack.gz differ
diff --git a/.next/cache/webpack/client-development/6.pack.gz b/.next/cache/webpack/client-development/6.pack.gz
index ee59d49..b2a9e14 100644
Binary files a/.next/cache/webpack/client-development/6.pack.gz and b/.next/cache/webpack/client-development/6.pack.gz differ
diff --git a/.next/cache/webpack/client-development/7.pack.gz b/.next/cache/webpack/client-development/7.pack.gz
index 065e335..382251e 100644
Binary files a/.next/cache/webpack/client-development/7.pack.gz and b/.next/cache/webpack/client-development/7.pack.gz differ
diff --git a/.next/cache/webpack/client-development/9.pack.gz b/.next/cache/webpack/client-development/9.pack.gz
index f707de8..7c02587 100644
Binary files a/.next/cache/webpack/client-development/9.pack.gz and b/.next/cache/webpack/client-development/9.pack.gz differ
diff --git a/.next/cache/webpack/client-development/index.pack.gz b/.next/cache/webpack/client-development/index.pack.gz
index 97b826d..08c38cd 100644
Binary files a/.next/cache/webpack/client-development/index.pack.gz and b/.next/cache/webpack/client-development/index.pack.gz differ
diff --git a/.next/cache/webpack/client-development/index.pack.gz.old b/.next/cache/webpack/client-development/index.pack.gz.old
index 3c48525..63b338b 100644
Binary files a/.next/cache/webpack/client-development/index.pack.gz.old and b/.next/cache/webpack/client-development/index.pack.gz.old differ
diff --git a/.next/cache/webpack/server-development/0.pack.gz b/.next/cache/webpack/server-development/0.pack.gz
index e87c170..7fb0f0e 100644
Binary files a/.next/cache/webpack/server-development/0.pack.gz and b/.next/cache/webpack/server-development/0.pack.gz differ
diff --git a/.next/cache/webpack/server-development/16.pack.gz b/.next/cache/webpack/server-development/16.pack.gz
index 8667e06..517c20f 100644
Binary files a/.next/cache/webpack/server-development/16.pack.gz and b/.next/cache/webpack/server-development/16.pack.gz differ
diff --git a/.next/cache/webpack/server-development/18.pack.gz b/.next/cache/webpack/server-development/18.pack.gz
index 8b63f25..791c150 100644
Binary files a/.next/cache/webpack/server-development/18.pack.gz and b/.next/cache/webpack/server-development/18.pack.gz differ
diff --git a/.next/cache/webpack/server-development/19.pack.gz b/.next/cache/webpack/server-development/19.pack.gz
index 7aae793..4bf7338 100644
Binary files a/.next/cache/webpack/server-development/19.pack.gz and b/.next/cache/webpack/server-development/19.pack.gz differ
diff --git a/.next/cache/webpack/server-development/20.pack.gz b/.next/cache/webpack/server-development/20.pack.gz
index d8b1988..5322ac8 100644
Binary files a/.next/cache/webpack/server-development/20.pack.gz and b/.next/cache/webpack/server-development/20.pack.gz differ
diff --git a/.next/cache/webpack/server-development/4.pack.gz b/.next/cache/webpack/server-development/4.pack.gz
index 174a24b..ae52c14 100644
Binary files a/.next/cache/webpack/server-development/4.pack.gz and b/.next/cache/webpack/server-development/4.pack.gz differ
diff --git a/.next/cache/webpack/server-development/5.pack.gz b/.next/cache/webpack/server-development/5.pack.gz
index c43a0c6..1f982ad 100644
Binary files a/.next/cache/webpack/server-development/5.pack.gz and b/.next/cache/webpack/server-development/5.pack.gz differ
diff --git a/.next/cache/webpack/server-development/7.pack.gz b/.next/cache/webpack/server-development/7.pack.gz
index 570c1e6..1d161fe 100644
Binary files a/.next/cache/webpack/server-development/7.pack.gz and b/.next/cache/webpack/server-development/7.pack.gz differ
diff --git a/.next/cache/webpack/server-development/9.pack.gz b/.next/cache/webpack/server-development/9.pack.gz
index f417d20..d588c2c 100644
Binary files a/.next/cache/webpack/server-development/9.pack.gz and b/.next/cache/webpack/server-development/9.pack.gz differ
diff --git a/.next/cache/webpack/server-development/index.pack.gz b/.next/cache/webpack/server-development/index.pack.gz
index ba4544a..084f226 100644
Binary files a/.next/cache/webpack/server-development/index.pack.gz and b/.next/cache/webpack/server-development/index.pack.gz differ
diff --git a/.next/cache/webpack/server-development/index.pack.gz.old b/.next/cache/webpack/server-development/index.pack.gz.old
index 8f39ab2..9a39631 100644
Binary files a/.next/cache/webpack/server-development/index.pack.gz.old and b/.next/cache/webpack/server-development/index.pack.gz.old differ
diff --git a/.next/server/app-paths-manifest.json b/.next/server/app-paths-manifest.json
index e234c2e..30b57fa 100644
--- a/.next/server/app-paths-manifest.json
+++ b/.next/server/app-paths-manifest.json
@@ -1,3 +1,7 @@
{
- "/page": "app/page.js"
+ "/_not-found/page": "app/_not-found/page.js",
+ "/icon.svg/route": "app/icon.svg/route.js",
+ "/api/auth/[...nextauth]/route": "app/api/auth/[...nextauth]/route.js",
+ "/page": "app/page.js",
+ "/projects/page": "app/projects/page.js"
}
\ No newline at end of file
diff --git a/.next/server/app/_not-found/page.js b/.next/server/app/_not-found/page.js
new file mode 100644
index 0000000..9fdaa0a
--- /dev/null
+++ b/.next/server/app/_not-found/page.js
@@ -0,0 +1,974 @@
+/*
+ * ATTENTION: An "eval-source-map" devtool has been used.
+ * This devtool is neither made for production nor for readable output files.
+ * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
+ * or disable the default devtool with "devtool: false".
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
+ */
+(() => {
+var exports = {};
+exports.id = "app/_not-found/page";
+exports.ids = ["app/_not-found/page"];
+exports.modules = {
+
+/***/ "(rsc)/./node_modules/@opentelemetry/instrumentation/build/esm/platform/node sync recursive":
+/*!***********************************************************************************!*\
+ !*** ./node_modules/@opentelemetry/instrumentation/build/esm/platform/node/ sync ***!
+ \***********************************************************************************/
+/***/ ((module) => {
+
+function webpackEmptyContext(req) {
+ var e = new Error("Cannot find module '" + req + "'");
+ e.code = 'MODULE_NOT_FOUND';
+ throw e;
+}
+webpackEmptyContext.keys = () => ([]);
+webpackEmptyContext.resolve = webpackEmptyContext;
+webpackEmptyContext.id = "(rsc)/./node_modules/@opentelemetry/instrumentation/build/esm/platform/node sync recursive";
+module.exports = webpackEmptyContext;
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node sync recursive":
+/*!************************************************************************************************************************!*\
+ !*** ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/ sync ***!
+ \************************************************************************************************************************/
+/***/ ((module) => {
+
+function webpackEmptyContext(req) {
+ var e = new Error("Cannot find module '" + req + "'");
+ e.code = 'MODULE_NOT_FOUND';
+ throw e;
+}
+webpackEmptyContext.keys = () => ([]);
+webpackEmptyContext.resolve = webpackEmptyContext;
+webpackEmptyContext.id = "(rsc)/./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node sync recursive";
+module.exports = webpackEmptyContext;
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-not-found.js&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!":
+/*!*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-not-found.js&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=! ***!
+ \*************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ GlobalError: () => (/* reexport safe */ _home_Nicholai_Documents_Dev_biohazard_vfx_2_src_app_global_error_tsx__WEBPACK_IMPORTED_MODULE_24__[\"default\"]),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ handler: () => (/* binding */ handler),\n/* harmony export */ pages: () => (/* binding */ pages),\n/* harmony export */ routeModule: () => (/* binding */ routeModule),\n/* harmony export */ tree: () => (/* binding */ tree)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?2eb7\");\n/* harmony import */ var next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/route-kind */ \"(rsc)/./node_modules/next/dist/server/route-kind.js\");\n/* harmony import */ var next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/server/instrumentation/utils */ \"(rsc)/./node_modules/next/dist/server/instrumentation/utils.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/dist/server/lib/trace/tracer */ \"(rsc)/./node_modules/next/dist/server/lib/trace/tracer.js\");\n/* harmony import */ var next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next/dist/server/request-meta */ \"(rsc)/./node_modules/next/dist/server/request-meta.js\");\n/* harmony import */ var next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! next/dist/server/lib/trace/constants */ \"(rsc)/./node_modules/next/dist/server/lib/trace/constants.js\");\n/* harmony import */ var next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! next/dist/server/app-render/interop-default */ \"(rsc)/./node_modules/next/dist/server/app-render/interop-default.js\");\n/* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! next/dist/server/base-http/node */ \"(rsc)/./node_modules/next/dist/server/base-http/node.js\");\n/* harmony import */ var next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_7___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_7__);\n/* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! next/dist/server/lib/experimental/ppr */ \"(rsc)/./node_modules/next/dist/server/lib/experimental/ppr.js\");\n/* harmony import */ var next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! next/dist/server/request/fallback-params */ \"(rsc)/./node_modules/next/dist/server/request/fallback-params.js\");\n/* harmony import */ var next_dist_server_app_render_encryption_utils__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! next/dist/server/app-render/encryption-utils */ \"(rsc)/./node_modules/next/dist/server/app-render/encryption-utils.js\");\n/* harmony import */ var next_dist_server_app_render_encryption_utils__WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_encryption_utils__WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! next/dist/server/lib/streaming-metadata */ \"(rsc)/./node_modules/next/dist/server/lib/streaming-metadata.js\");\n/* harmony import */ var next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var next_dist_server_app_render_action_utils__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! next/dist/server/app-render/action-utils */ \"(rsc)/./node_modules/next/dist/server/app-render/action-utils.js\");\n/* harmony import */ var next_dist_server_app_render_action_utils__WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_action_utils__WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/app-paths */ \"next/dist/shared/lib/router/utils/app-paths\");\n/* harmony import */ var next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! next/dist/server/lib/server-action-request-meta */ \"(rsc)/./node_modules/next/dist/server/lib/server-action-request-meta.js\");\n/* harmony import */ var next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__);\n/* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! next/dist/client/components/app-router-headers */ \"(rsc)/./node_modules/next/dist/client/components/app-router-headers.js\");\n/* harmony import */ var next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__);\n/* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! next/dist/shared/lib/router/utils/is-bot */ \"next/dist/shared/lib/router/utils/is-bot\");\n/* harmony import */ var next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__);\n/* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(/*! next/dist/server/response-cache */ \"(rsc)/./node_modules/next/dist/server/response-cache/index.js\");\n/* harmony import */ var next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__);\n/* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(/*! next/dist/lib/fallback */ \"(rsc)/./node_modules/next/dist/lib/fallback.js\");\n/* harmony import */ var next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__);\n/* harmony import */ var next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(/*! next/dist/server/render-result */ \"(rsc)/./node_modules/next/dist/server/render-result.js\");\n/* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(/*! next/dist/lib/constants */ \"(rsc)/./node_modules/next/dist/lib/constants.js\");\n/* harmony import */ var next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__);\n/* harmony import */ var next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(/*! next/dist/server/stream-utils/encoded-tags */ \"(rsc)/./node_modules/next/dist/server/stream-utils/encoded-tags.js\");\n/* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(/*! next/dist/server/send-payload */ \"(rsc)/./node_modules/next/dist/server/send-payload.js\");\n/* harmony import */ var next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__);\n/* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(/*! next/dist/shared/lib/no-fallback-error.external */ \"next/dist/shared/lib/no-fallback-error.external\");\n/* harmony import */ var next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_23___default = /*#__PURE__*/__webpack_require__.n(next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_23__);\n/* harmony import */ var _home_Nicholai_Documents_Dev_biohazard_vfx_2_src_app_global_error_tsx__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(/*! ./src/app/global-error.tsx */ \"(rsc)/./src/app/global-error.tsx\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(/*! next/dist/server/app-render/entry-base */ \"(rsc)/./node_modules/next/dist/server/app-render/entry-base.js\");\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_25___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_25__);\n/* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(/*! next/dist/client/components/redirect-status-code */ \"(rsc)/./node_modules/next/dist/client/components/redirect-status-code.js\");\n/* harmony import */ var next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_26___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_26__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_25__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"__next_app__\",\"routeModule\",\"handler\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_25__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\nconst notFound0 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/builtin/not-found.js */ \"(rsc)/./node_modules/next/dist/client/components/builtin/not-found.js\", 23));\nconst module1 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/layout.tsx */ \"(rsc)/./src/app/layout.tsx\"));\nconst module2 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/global-error.tsx */ \"(rsc)/./src/app/global-error.tsx\"));\nconst module3 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/global-error.tsx */ \"(rsc)/./src/app/global-error.tsx\"));\nconst module4 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/builtin/forbidden.js */ \"(rsc)/./node_modules/next/dist/client/components/builtin/forbidden.js\", 23));\nconst module5 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/builtin/unauthorized.js */ \"(rsc)/./node_modules/next/dist/client/components/builtin/unauthorized.js\", 23));\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n children: [\n '',\n {\n children: [\"/_not-found\", {\n children: ['__PAGE__', {}, {\n page: [\n notFound0,\n \"next/dist/client/components/builtin/not-found.js\"\n ]\n }]\n }, {}]\n },\n {\n 'layout': [module1, \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/layout.tsx\"],\n'global-error': [module2, \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/global-error.tsx\"],\n'global-error': [module3, \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/global-error.tsx\"],\n'forbidden': [module4, \"next/dist/client/components/builtin/forbidden.js\"],\n'unauthorized': [module5, \"next/dist/client/components/builtin/unauthorized.js\"],\n metadata: {\n icon: [(async (props) => (await Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! next-metadata-image-loader?type=icon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx!./src/app/icon.svg?__next_metadata__ */ \"(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=icon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx!./src/app/icon.svg?__next_metadata__\"))).default(props))],\n apple: [],\n openGraph: [],\n twitter: [],\n manifest: \"/manifest.webmanifest\"\n }\n }\n ]\n }.children;\nconst pages = [];\n\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/_not-found/page\",\n pathname: \"/_not-found\",\n // The following aren't used in production.\n bundlePath: '',\n filename: '',\n appPaths: []\n },\n userland: {\n loaderTree: tree\n },\n distDir: \".next\" || 0,\n projectDir: false || ''\n});\nasync function handler(req, res, ctx) {\n var _this;\n let srcPage = \"/_not-found/page\";\n // turbopack doesn't normalize `/index` in the page name\n // so we need to to process dynamic routes properly\n // TODO: fix turbopack providing differing value from webpack\n if (false) {} else if (srcPage === '/index') {\n // we always normalize /index specifically\n srcPage = '/';\n }\n const multiZoneDraftMode = \"false\";\n const initialPostponed = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'postponed');\n // TODO: replace with more specific flags\n const minimalMode = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'minimalMode');\n const prepareResult = await routeModule.prepare(req, res, {\n srcPage,\n multiZoneDraftMode\n });\n if (!prepareResult) {\n res.statusCode = 400;\n res.end('Bad Request');\n ctx.waitUntil == null ? void 0 : ctx.waitUntil.call(ctx, Promise.resolve());\n return null;\n }\n const { buildId, query, params, parsedUrl, pageIsDynamic, buildManifest, nextFontManifest, reactLoadableManifest, serverActionsManifest, clientReferenceManifest, subresourceIntegrityManifest, prerenderManifest, isDraftMode, resolvedPathname, revalidateOnlyGenerated, routerServerContext, nextConfig } = prepareResult;\n const pathname = parsedUrl.pathname || '/';\n const normalizedSrcPage = (0,next_dist_shared_lib_router_utils_app_paths__WEBPACK_IMPORTED_MODULE_13__.normalizeAppPath)(srcPage);\n let { isOnDemandRevalidate } = prepareResult;\n const prerenderInfo = prerenderManifest.dynamicRoutes[normalizedSrcPage];\n const isPrerendered = prerenderManifest.routes[resolvedPathname];\n let isSSG = Boolean(prerenderInfo || isPrerendered || prerenderManifest.routes[normalizedSrcPage]);\n const userAgent = req.headers['user-agent'] || '';\n const botType = (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__.getBotType)(userAgent);\n const isHtmlBot = (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_11__.isHtmlBotRequest)(req);\n /**\n * If true, this indicates that the request being made is for an app\n * prefetch request.\n */ const isPrefetchRSCRequest = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'isPrefetchRSCRequest') ?? Boolean(req.headers[next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_ROUTER_PREFETCH_HEADER]);\n // NOTE: Don't delete headers[RSC] yet, it still needs to be used in renderToHTML later\n const isRSCRequest = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'isRSCRequest') ?? Boolean(req.headers[next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.RSC_HEADER]);\n const isPossibleServerAction = (0,next_dist_server_lib_server_action_request_meta__WEBPACK_IMPORTED_MODULE_14__.getIsPossibleServerAction)(req);\n /**\n * If the route being rendered is an app page, and the ppr feature has been\n * enabled, then the given route _could_ support PPR.\n */ const couldSupportPPR = (0,next_dist_server_lib_experimental_ppr__WEBPACK_IMPORTED_MODULE_8__.checkIsAppPPREnabled)(nextConfig.experimental.ppr);\n // When enabled, this will allow the use of the `?__nextppronly` query to\n // enable debugging of the static shell.\n const hasDebugStaticShellQuery = false && 0;\n // When enabled, this will allow the use of the `?__nextppronly` query\n // to enable debugging of the fallback shell.\n const hasDebugFallbackShellQuery = hasDebugStaticShellQuery && query.__nextppronly === 'fallback';\n // This page supports PPR if it is marked as being `PARTIALLY_STATIC` in the\n // prerender manifest and this is an app page.\n const isRoutePPREnabled = couldSupportPPR && (((_this = prerenderManifest.routes[normalizedSrcPage] ?? prerenderManifest.dynamicRoutes[normalizedSrcPage]) == null ? void 0 : _this.renderingMode) === 'PARTIALLY_STATIC' || // Ideally we'd want to check the appConfig to see if this page has PPR\n // enabled or not, but that would require plumbing the appConfig through\n // to the server during development. We assume that the page supports it\n // but only during development.\n hasDebugStaticShellQuery && (routeModule.isDev === true || (routerServerContext == null ? void 0 : routerServerContext.experimentalTestProxy) === true));\n const isDebugStaticShell = hasDebugStaticShellQuery && isRoutePPREnabled;\n // We should enable debugging dynamic accesses when the static shell\n // debugging has been enabled and we're also in development mode.\n const isDebugDynamicAccesses = isDebugStaticShell && routeModule.isDev === true;\n const isDebugFallbackShell = hasDebugFallbackShellQuery && isRoutePPREnabled;\n // If we're in minimal mode, then try to get the postponed information from\n // the request metadata. If available, use it for resuming the postponed\n // render.\n const minimalPostponed = isRoutePPREnabled ? initialPostponed : undefined;\n // If PPR is enabled, and this is a RSC request (but not a prefetch), then\n // we can use this fact to only generate the flight data for the request\n // because we can't cache the HTML (as it's also dynamic).\n const isDynamicRSCRequest = isRoutePPREnabled && isRSCRequest && !isPrefetchRSCRequest;\n // Need to read this before it's stripped by stripFlightHeaders. We don't\n // need to transfer it to the request meta because it's only read\n // within this function; the static segment data should have already been\n // generated, so we will always either return a static response or a 404.\n const segmentPrefetchHeader = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'segmentPrefetchRSCRequest');\n // TODO: investigate existing bug with shouldServeStreamingMetadata always\n // being true for a revalidate due to modifying the base-server this.renderOpts\n // when fixing this to correct logic it causes hydration issue since we set\n // serveStreamingMetadata to true during export\n let serveStreamingMetadata = !userAgent ? true : (0,next_dist_server_lib_streaming_metadata__WEBPACK_IMPORTED_MODULE_11__.shouldServeStreamingMetadata)(userAgent, nextConfig.htmlLimitedBots);\n if (isHtmlBot && isRoutePPREnabled) {\n isSSG = false;\n serveStreamingMetadata = false;\n }\n // In development, we always want to generate dynamic HTML.\n let supportsDynamicResponse = // If we're in development, we always support dynamic HTML, unless it's\n // a data request, in which case we only produce static HTML.\n routeModule.isDev === true || // If this is not SSG or does not have static paths, then it supports\n // dynamic HTML.\n !isSSG || // If this request has provided postponed data, it supports dynamic\n // HTML.\n typeof initialPostponed === 'string' || // If this is a dynamic RSC request, then this render supports dynamic\n // HTML (it's dynamic).\n isDynamicRSCRequest;\n // When html bots request PPR page, perform the full dynamic rendering.\n const shouldWaitOnAllReady = isHtmlBot && isRoutePPREnabled;\n let ssgCacheKey = null;\n if (!isDraftMode && isSSG && !supportsDynamicResponse && !isPossibleServerAction && !minimalPostponed && !isDynamicRSCRequest) {\n ssgCacheKey = resolvedPathname;\n }\n // the staticPathKey differs from ssgCacheKey since\n // ssgCacheKey is null in dev since we're always in \"dynamic\"\n // mode in dev to bypass the cache, but we still need to honor\n // dynamicParams = false in dev mode\n let staticPathKey = ssgCacheKey;\n if (!staticPathKey && routeModule.isDev) {\n staticPathKey = resolvedPathname;\n }\n const ComponentMod = {\n ...next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_25__,\n tree,\n pages,\n GlobalError: _home_Nicholai_Documents_Dev_biohazard_vfx_2_src_app_global_error_tsx__WEBPACK_IMPORTED_MODULE_24__[\"default\"],\n handler,\n routeModule,\n __next_app__\n };\n // Before rendering (which initializes component tree modules), we have to\n // set the reference manifests to our global store so Server Action's\n // encryption util can access to them at the top level of the page module.\n if (serverActionsManifest && clientReferenceManifest) {\n (0,next_dist_server_app_render_encryption_utils__WEBPACK_IMPORTED_MODULE_10__.setReferenceManifestsSingleton)({\n page: srcPage,\n clientReferenceManifest,\n serverActionsManifest,\n serverModuleMap: (0,next_dist_server_app_render_action_utils__WEBPACK_IMPORTED_MODULE_12__.createServerModuleMap)({\n serverActionsManifest\n })\n });\n }\n const method = req.method || 'GET';\n const tracer = (0,next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.getTracer)();\n const activeSpan = tracer.getActiveScopeSpan();\n try {\n const invokeRouteModule = async (span, context)=>{\n const nextReq = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_7__.NodeNextRequest(req);\n const nextRes = new next_dist_server_base_http_node__WEBPACK_IMPORTED_MODULE_7__.NodeNextResponse(res);\n // TODO: adapt for putting the RDC inside the postponed data\n // If we're in dev, and this isn't a prefetch or a server action,\n // we should seed the resume data cache.\n if (true) {\n if (nextConfig.experimental.dynamicIO && !isPrefetchRSCRequest && !context.renderOpts.isPossibleServerAction) {\n const warmup = await routeModule.warmup(nextReq, nextRes, context);\n // If the warmup is successful, we should use the resume data\n // cache from the warmup.\n if (warmup.metadata.renderResumeDataCache) {\n context.renderOpts.renderResumeDataCache = warmup.metadata.renderResumeDataCache;\n }\n }\n }\n return routeModule.render(nextReq, nextRes, context).finally(()=>{\n if (!span) return;\n span.setAttributes({\n 'http.status_code': res.statusCode,\n 'next.rsc': false\n });\n const rootSpanAttributes = tracer.getRootSpanAttributes();\n // We were unable to get attributes, probably OTEL is not enabled\n if (!rootSpanAttributes) {\n return;\n }\n if (rootSpanAttributes.get('next.span_type') !== next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest) {\n console.warn(`Unexpected root span type '${rootSpanAttributes.get('next.span_type')}'. Please report this Next.js issue https://github.com/vercel/next.js`);\n return;\n }\n const route = rootSpanAttributes.get('next.route');\n if (route) {\n const name = `${method} ${route}`;\n span.setAttributes({\n 'next.route': route,\n 'http.route': route,\n 'next.span_name': name\n });\n span.updateName(name);\n } else {\n span.updateName(`${method} ${req.url}`);\n }\n });\n };\n const doRender = async ({ span, postponed, fallbackRouteParams })=>{\n const context = {\n query,\n params,\n page: normalizedSrcPage,\n sharedContext: {\n buildId\n },\n serverComponentsHmrCache: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'serverComponentsHmrCache'),\n fallbackRouteParams,\n renderOpts: {\n App: ()=>null,\n Document: ()=>null,\n pageConfig: {},\n ComponentMod,\n Component: (0,next_dist_server_app_render_interop_default__WEBPACK_IMPORTED_MODULE_6__.interopDefault)(ComponentMod),\n params,\n routeModule,\n page: srcPage,\n postponed,\n shouldWaitOnAllReady,\n serveStreamingMetadata,\n supportsDynamicResponse: typeof postponed === 'string' || supportsDynamicResponse,\n buildManifest,\n nextFontManifest,\n reactLoadableManifest,\n subresourceIntegrityManifest,\n serverActionsManifest,\n clientReferenceManifest,\n setIsrStatus: routerServerContext == null ? void 0 : routerServerContext.setIsrStatus,\n dir: routeModule.projectDir,\n isDraftMode,\n isRevalidate: isSSG && !postponed && !isDynamicRSCRequest,\n botType,\n isOnDemandRevalidate,\n isPossibleServerAction,\n assetPrefix: nextConfig.assetPrefix,\n nextConfigOutput: nextConfig.output,\n crossOrigin: nextConfig.crossOrigin,\n trailingSlash: nextConfig.trailingSlash,\n previewProps: prerenderManifest.preview,\n deploymentId: nextConfig.deploymentId,\n enableTainting: nextConfig.experimental.taint,\n htmlLimitedBots: nextConfig.htmlLimitedBots,\n devtoolSegmentExplorer: nextConfig.experimental.devtoolSegmentExplorer,\n reactMaxHeadersLength: nextConfig.reactMaxHeadersLength,\n multiZoneDraftMode,\n incrementalCache: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'incrementalCache'),\n cacheLifeProfiles: nextConfig.experimental.cacheLife,\n basePath: nextConfig.basePath,\n serverActions: nextConfig.experimental.serverActions,\n ...isDebugStaticShell || isDebugDynamicAccesses ? {\n nextExport: true,\n supportsDynamicResponse: false,\n isStaticGeneration: true,\n isRevalidate: true,\n isDebugDynamicAccesses: isDebugDynamicAccesses\n } : {},\n experimental: {\n isRoutePPREnabled,\n expireTime: nextConfig.expireTime,\n staleTimes: nextConfig.experimental.staleTimes,\n dynamicIO: Boolean(nextConfig.experimental.dynamicIO),\n clientSegmentCache: Boolean(nextConfig.experimental.clientSegmentCache),\n dynamicOnHover: Boolean(nextConfig.experimental.dynamicOnHover),\n inlineCss: Boolean(nextConfig.experimental.inlineCss),\n authInterrupts: Boolean(nextConfig.experimental.authInterrupts),\n clientTraceMetadata: nextConfig.experimental.clientTraceMetadata || []\n },\n waitUntil: ctx.waitUntil,\n onClose: (cb)=>{\n res.on('close', cb);\n },\n onAfterTaskError: ()=>{},\n onInstrumentationRequestError: (error, _request, errorContext)=>routeModule.onRequestError(req, error, errorContext, routerServerContext),\n err: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'invokeError'),\n dev: routeModule.isDev\n }\n };\n const result = await invokeRouteModule(span, context);\n const { metadata } = result;\n const { cacheControl, headers = {}, // Add any fetch tags that were on the page to the response headers.\n fetchTags: cacheTags } = metadata;\n if (cacheTags) {\n headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER] = cacheTags;\n }\n // Pull any fetch metrics from the render onto the request.\n ;\n req.fetchMetrics = metadata.fetchMetrics;\n // we don't throw static to dynamic errors in dev as isSSG\n // is a best guess in dev since we don't have the prerender pass\n // to know whether the path is actually static or not\n if (isSSG && (cacheControl == null ? void 0 : cacheControl.revalidate) === 0 && !routeModule.isDev && !isRoutePPREnabled) {\n const staticBailoutInfo = metadata.staticBailoutInfo;\n const err = Object.defineProperty(new Error(`Page changed from static to dynamic at runtime ${resolvedPathname}${(staticBailoutInfo == null ? void 0 : staticBailoutInfo.description) ? `, reason: ${staticBailoutInfo.description}` : ``}` + `\\nsee more here https://nextjs.org/docs/messages/app-static-to-dynamic-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E132\",\n enumerable: false,\n configurable: true\n });\n if (staticBailoutInfo == null ? void 0 : staticBailoutInfo.stack) {\n const stack = staticBailoutInfo.stack;\n err.stack = err.message + stack.substring(stack.indexOf('\\n'));\n }\n throw err;\n }\n return {\n value: {\n kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE,\n html: result,\n headers,\n rscData: metadata.flightData,\n postponed: metadata.postponed,\n status: metadata.statusCode,\n segmentData: metadata.segmentData\n },\n cacheControl\n };\n };\n const responseGenerator = async ({ hasResolved, previousCacheEntry, isRevalidating, span })=>{\n const isProduction = routeModule.isDev === false;\n const didRespond = hasResolved || res.writableEnded;\n // skip on-demand revalidate if cache is not present and\n // revalidate-if-generated is set\n if (isOnDemandRevalidate && revalidateOnlyGenerated && !previousCacheEntry && !minimalMode) {\n if (routerServerContext == null ? void 0 : routerServerContext.render404) {\n await routerServerContext.render404(req, res);\n } else {\n res.statusCode = 404;\n res.end('This page could not be found');\n }\n return null;\n }\n let fallbackMode;\n if (prerenderInfo) {\n fallbackMode = (0,next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.parseFallbackField)(prerenderInfo.fallback);\n }\n // When serving a bot request, we want to serve a blocking render and not\n // the prerendered page. This ensures that the correct content is served\n // to the bot in the head.\n if (fallbackMode === next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.PRERENDER && (0,next_dist_shared_lib_router_utils_is_bot__WEBPACK_IMPORTED_MODULE_16__.isBot)(userAgent)) {\n fallbackMode = next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.BLOCKING_STATIC_RENDER;\n }\n if ((previousCacheEntry == null ? void 0 : previousCacheEntry.isStale) === -1) {\n isOnDemandRevalidate = true;\n }\n // TODO: adapt for PPR\n // only allow on-demand revalidate for fallback: true/blocking\n // or for prerendered fallback: false paths\n if (isOnDemandRevalidate && (fallbackMode !== next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.NOT_FOUND || previousCacheEntry)) {\n fallbackMode = next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.BLOCKING_STATIC_RENDER;\n }\n if (!minimalMode && fallbackMode !== next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.BLOCKING_STATIC_RENDER && staticPathKey && !didRespond && !isDraftMode && pageIsDynamic && (isProduction || !isPrerendered)) {\n // if the page has dynamicParams: false and this pathname wasn't\n // prerendered trigger the no fallback handling\n if (// In development, fall through to render to handle missing\n // getStaticPaths.\n (isProduction || prerenderInfo) && // When fallback isn't present, abort this render so we 404\n fallbackMode === next_dist_lib_fallback__WEBPACK_IMPORTED_MODULE_18__.FallbackMode.NOT_FOUND) {\n throw new next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_23__.NoFallbackError();\n }\n let fallbackResponse;\n if (isRoutePPREnabled && !isRSCRequest) {\n // We use the response cache here to handle the revalidation and\n // management of the fallback shell.\n fallbackResponse = await routeModule.handleResponse({\n cacheKey: isProduction ? normalizedSrcPage : null,\n req,\n nextConfig,\n routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n isFallback: true,\n prerenderManifest,\n isRoutePPREnabled,\n responseGenerator: async ()=>doRender({\n span,\n // We pass `undefined` as rendering a fallback isn't resumed\n // here.\n postponed: undefined,\n fallbackRouteParams: // If we're in production or we're debugging the fallback\n // shell then we should postpone when dynamic params are\n // accessed.\n isProduction || isDebugFallbackShell ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_9__.getFallbackRouteParams)(normalizedSrcPage) : null\n }),\n waitUntil: ctx.waitUntil\n });\n // If the fallback response was set to null, then we should return null.\n if (fallbackResponse === null) return null;\n // Otherwise, if we did get a fallback response, we should return it.\n if (fallbackResponse) {\n // Remove the cache control from the response to prevent it from being\n // used in the surrounding cache.\n delete fallbackResponse.cacheControl;\n return fallbackResponse;\n }\n }\n }\n // Only requests that aren't revalidating can be resumed. If we have the\n // minimal postponed data, then we should resume the render with it.\n const postponed = !isOnDemandRevalidate && !isRevalidating && minimalPostponed ? minimalPostponed : undefined;\n // When we're in minimal mode, if we're trying to debug the static shell,\n // we should just return nothing instead of resuming the dynamic render.\n if ((isDebugStaticShell || isDebugDynamicAccesses) && typeof postponed !== 'undefined') {\n return {\n cacheControl: {\n revalidate: 1,\n expire: undefined\n },\n value: {\n kind: next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.PAGES,\n html: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__[\"default\"].fromStatic(''),\n pageData: {},\n headers: undefined,\n status: undefined\n }\n };\n }\n // If this is a dynamic route with PPR enabled and the default route\n // matches were set, then we should pass the fallback route params to\n // the renderer as this is a fallback revalidation request.\n const fallbackRouteParams = pageIsDynamic && isRoutePPREnabled && ((0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'renderFallbackShell') || isDebugFallbackShell) ? (0,next_dist_server_request_fallback_params__WEBPACK_IMPORTED_MODULE_9__.getFallbackRouteParams)(pathname) : null;\n // Perform the render.\n return doRender({\n span,\n postponed,\n fallbackRouteParams\n });\n };\n const handleResponse = async (span)=>{\n var _cacheEntry_value, _cachedData_headers;\n const cacheEntry = await routeModule.handleResponse({\n cacheKey: ssgCacheKey,\n responseGenerator: (c)=>responseGenerator({\n span,\n ...c\n }),\n routeKind: next_dist_server_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n isOnDemandRevalidate,\n isRoutePPREnabled,\n req,\n nextConfig,\n prerenderManifest,\n waitUntil: ctx.waitUntil\n });\n if (isDraftMode) {\n res.setHeader('Cache-Control', 'private, no-cache, no-store, max-age=0, must-revalidate');\n }\n // In dev, we should not cache pages for any reason.\n if (routeModule.isDev) {\n res.setHeader('Cache-Control', 'no-store, must-revalidate');\n }\n if (!cacheEntry) {\n if (ssgCacheKey) {\n // A cache entry might not be generated if a response is written\n // in `getInitialProps` or `getServerSideProps`, but those shouldn't\n // have a cache key. If we do have a cache key but we don't end up\n // with a cache entry, then either Next.js or the application has a\n // bug that needs fixing.\n throw Object.defineProperty(new Error('invariant: cache entry required but not generated'), \"__NEXT_ERROR_CODE\", {\n value: \"E62\",\n enumerable: false,\n configurable: true\n });\n }\n return null;\n }\n if (((_cacheEntry_value = cacheEntry.value) == null ? void 0 : _cacheEntry_value.kind) !== next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE) {\n var _cacheEntry_value1;\n throw Object.defineProperty(new Error(`Invariant app-page handler received invalid cache entry ${(_cacheEntry_value1 = cacheEntry.value) == null ? void 0 : _cacheEntry_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E707\",\n enumerable: false,\n configurable: true\n });\n }\n const didPostpone = typeof cacheEntry.value.postponed === 'string';\n if (isSSG && // We don't want to send a cache header for requests that contain dynamic\n // data. If this is a Dynamic RSC request or wasn't a Prefetch RSC\n // request, then we should set the cache header.\n !isDynamicRSCRequest && (!didPostpone || isPrefetchRSCRequest)) {\n if (!minimalMode) {\n // set x-nextjs-cache header to match the header\n // we set for the image-optimizer\n res.setHeader('x-nextjs-cache', isOnDemandRevalidate ? 'REVALIDATED' : cacheEntry.isMiss ? 'MISS' : cacheEntry.isStale ? 'STALE' : 'HIT');\n }\n // Set a header used by the client router to signal the response is static\n // and should respect the `static` cache staleTime value.\n res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_IS_PRERENDER_HEADER, '1');\n }\n const { value: cachedData } = cacheEntry;\n // Coerce the cache control parameter from the render.\n let cacheControl;\n // If this is a resume request in minimal mode it is streamed with dynamic\n // content and should not be cached.\n if (minimalPostponed) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (minimalMode && isRSCRequest && !isPrefetchRSCRequest && isRoutePPREnabled) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (!routeModule.isDev) {\n // If this is a preview mode request, we shouldn't cache it\n if (isDraftMode) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n } else if (!isSSG) {\n if (!res.getHeader('Cache-Control')) {\n cacheControl = {\n revalidate: 0,\n expire: undefined\n };\n }\n } else if (cacheEntry.cacheControl) {\n // If the cache entry has a cache control with a revalidate value that's\n // a number, use it.\n if (typeof cacheEntry.cacheControl.revalidate === 'number') {\n var _cacheEntry_cacheControl;\n if (cacheEntry.cacheControl.revalidate < 1) {\n throw Object.defineProperty(new Error(`Invalid revalidate configuration provided: ${cacheEntry.cacheControl.revalidate} < 1`), \"__NEXT_ERROR_CODE\", {\n value: \"E22\",\n enumerable: false,\n configurable: true\n });\n }\n cacheControl = {\n revalidate: cacheEntry.cacheControl.revalidate,\n expire: ((_cacheEntry_cacheControl = cacheEntry.cacheControl) == null ? void 0 : _cacheEntry_cacheControl.expire) ?? nextConfig.expireTime\n };\n } else {\n cacheControl = {\n revalidate: next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.CACHE_ONE_YEAR,\n expire: undefined\n };\n }\n }\n }\n cacheEntry.cacheControl = cacheControl;\n if (typeof segmentPrefetchHeader === 'string' && (cachedData == null ? void 0 : cachedData.kind) === next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE && cachedData.segmentData) {\n var _cachedData_headers1;\n // This is a prefetch request issued by the client Segment Cache. These\n // should never reach the application layer (lambda). We should either\n // respond from the cache (HIT) or respond with 204 No Content (MISS).\n // Set a header to indicate that PPR is enabled for this route. This\n // lets the client distinguish between a regular cache miss and a cache\n // miss due to PPR being disabled. In other contexts this header is used\n // to indicate that the response contains dynamic data, but here we're\n // only using it to indicate that the feature is enabled — the segment\n // response itself contains whether the data is dynamic.\n res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_DID_POSTPONE_HEADER, '2');\n // Add the cache tags header to the response if it exists and we're in\n // minimal mode while rendering a static page.\n const tags = (_cachedData_headers1 = cachedData.headers) == null ? void 0 : _cachedData_headers1[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER];\n if (minimalMode && isSSG && tags && typeof tags === 'string') {\n res.setHeader(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER, tags);\n }\n const matchedSegment = cachedData.segmentData.get(segmentPrefetchHeader);\n if (matchedSegment !== undefined) {\n // Cache hit\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({\n req,\n res,\n type: 'rsc',\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__[\"default\"].fromStatic(matchedSegment),\n cacheControl: cacheEntry.cacheControl\n });\n }\n // Cache miss. Either a cache entry for this route has not been generated\n // (which technically should not be possible when PPR is enabled, because\n // at a minimum there should always be a fallback entry) or there's no\n // match for the requested segment. Respond with a 204 No Content. We\n // don't bother to respond with 404, because these requests are only\n // issued as part of a prefetch.\n res.statusCode = 204;\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({\n req,\n res,\n type: 'rsc',\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__[\"default\"].fromStatic(''),\n cacheControl: cacheEntry.cacheControl\n });\n }\n // If there's a callback for `onCacheEntry`, call it with the cache entry\n // and the revalidate options.\n const onCacheEntry = (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'onCacheEntry');\n if (onCacheEntry) {\n const finished = await onCacheEntry({\n ...cacheEntry,\n // TODO: remove this when upstream doesn't\n // always expect this value to be \"PAGE\"\n value: {\n ...cacheEntry.value,\n kind: 'PAGE'\n }\n }, {\n url: (0,next_dist_server_request_meta__WEBPACK_IMPORTED_MODULE_4__.getRequestMeta)(req, 'initURL')\n });\n if (finished) {\n // TODO: maybe we have to end the request?\n return null;\n }\n }\n // If the request has a postponed state and it's a resume request we\n // should error.\n if (didPostpone && minimalPostponed) {\n throw Object.defineProperty(new Error('Invariant: postponed state should not be present on a resume request'), \"__NEXT_ERROR_CODE\", {\n value: \"E396\",\n enumerable: false,\n configurable: true\n });\n }\n if (cachedData.headers) {\n const headers = {\n ...cachedData.headers\n };\n if (!minimalMode || !isSSG) {\n delete headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER];\n }\n for (let [key, value] of Object.entries(headers)){\n if (typeof value === 'undefined') continue;\n if (Array.isArray(value)) {\n for (const v of value){\n res.appendHeader(key, v);\n }\n } else if (typeof value === 'number') {\n value = value.toString();\n res.appendHeader(key, value);\n } else {\n res.appendHeader(key, value);\n }\n }\n }\n // Add the cache tags header to the response if it exists and we're in\n // minimal mode while rendering a static page.\n const tags = (_cachedData_headers = cachedData.headers) == null ? void 0 : _cachedData_headers[next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER];\n if (minimalMode && isSSG && tags && typeof tags === 'string') {\n res.setHeader(next_dist_lib_constants__WEBPACK_IMPORTED_MODULE_20__.NEXT_CACHE_TAGS_HEADER, tags);\n }\n // If the request is a data request, then we shouldn't set the status code\n // from the response because it should always be 200. This should be gated\n // behind the experimental PPR flag.\n if (cachedData.status && (!isRSCRequest || !isRoutePPREnabled)) {\n res.statusCode = cachedData.status;\n }\n // Redirect information is encoded in RSC payload, so we don't need to use redirect status codes\n if (!minimalMode && cachedData.status && next_dist_client_components_redirect_status_code__WEBPACK_IMPORTED_MODULE_26__.RedirectStatusCode[cachedData.status] && isRSCRequest) {\n res.statusCode = 200;\n }\n // Mark that the request did postpone.\n if (didPostpone) {\n res.setHeader(next_dist_client_components_app_router_headers__WEBPACK_IMPORTED_MODULE_15__.NEXT_DID_POSTPONE_HEADER, '1');\n }\n // we don't go through this block when preview mode is true\n // as preview mode is a dynamic request (bypasses cache) and doesn't\n // generate both HTML and payloads in the same request so continue to just\n // return the generated payload\n if (isRSCRequest && !isDraftMode) {\n // If this is a dynamic RSC request, then stream the response.\n if (typeof cachedData.rscData === 'undefined') {\n if (cachedData.postponed) {\n throw Object.defineProperty(new Error('Invariant: Expected postponed to be undefined'), \"__NEXT_ERROR_CODE\", {\n value: \"E372\",\n enumerable: false,\n configurable: true\n });\n }\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({\n req,\n res,\n type: 'rsc',\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: cachedData.html,\n // Dynamic RSC responses cannot be cached, even if they're\n // configured with `force-static` because we have no way of\n // distinguishing between `force-static` and pages that have no\n // postponed state.\n // TODO: distinguish `force-static` from pages with no postponed state (static)\n cacheControl: isDynamicRSCRequest ? {\n revalidate: 0,\n expire: undefined\n } : cacheEntry.cacheControl\n });\n }\n // As this isn't a prefetch request, we should serve the static flight\n // data.\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({\n req,\n res,\n type: 'rsc',\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: next_dist_server_render_result__WEBPACK_IMPORTED_MODULE_19__[\"default\"].fromStatic(cachedData.rscData),\n cacheControl: cacheEntry.cacheControl\n });\n }\n // This is a request for HTML data.\n let body = cachedData.html;\n // If there's no postponed state, we should just serve the HTML. This\n // should also be the case for a resume request because it's completed\n // as a server render (rather than a static render).\n if (!didPostpone || minimalMode) {\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({\n req,\n res,\n type: 'html',\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: body,\n cacheControl: cacheEntry.cacheControl\n });\n }\n // If we're debugging the static shell or the dynamic API accesses, we\n // should just serve the HTML without resuming the render. The returned\n // HTML will be the static shell so all the Dynamic API's will be used\n // during static generation.\n if (isDebugStaticShell || isDebugDynamicAccesses) {\n // Since we're not resuming the render, we need to at least add the\n // closing body and html tags to create valid HTML.\n body.chain(new ReadableStream({\n start (controller) {\n controller.enqueue(next_dist_server_stream_utils_encoded_tags__WEBPACK_IMPORTED_MODULE_21__.ENCODED_TAGS.CLOSED.BODY_AND_HTML);\n controller.close();\n }\n }));\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({\n req,\n res,\n type: 'html',\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: body,\n cacheControl: {\n revalidate: 0,\n expire: undefined\n }\n });\n }\n // This request has postponed, so let's create a new transformer that the\n // dynamic data can pipe to that will attach the dynamic data to the end\n // of the response.\n const transformer = new TransformStream();\n body.chain(transformer.readable);\n // Perform the render again, but this time, provide the postponed state.\n // We don't await because we want the result to start streaming now, and\n // we've already chained the transformer's readable to the render result.\n doRender({\n span,\n postponed: cachedData.postponed,\n // This is a resume render, not a fallback render, so we don't need to\n // set this.\n fallbackRouteParams: null\n }).then(async (result)=>{\n var _result_value;\n if (!result) {\n throw Object.defineProperty(new Error('Invariant: expected a result to be returned'), \"__NEXT_ERROR_CODE\", {\n value: \"E463\",\n enumerable: false,\n configurable: true\n });\n }\n if (((_result_value = result.value) == null ? void 0 : _result_value.kind) !== next_dist_server_response_cache__WEBPACK_IMPORTED_MODULE_17__.CachedRouteKind.APP_PAGE) {\n var _result_value1;\n throw Object.defineProperty(new Error(`Invariant: expected a page response, got ${(_result_value1 = result.value) == null ? void 0 : _result_value1.kind}`), \"__NEXT_ERROR_CODE\", {\n value: \"E305\",\n enumerable: false,\n configurable: true\n });\n }\n // Pipe the resume result to the transformer.\n await result.value.html.pipeTo(transformer.writable);\n }).catch((err)=>{\n // An error occurred during piping or preparing the render, abort\n // the transformers writer so we can terminate the stream.\n transformer.writable.abort(err).catch((e)=>{\n console.error(\"couldn't abort transformer\", e);\n });\n });\n return (0,next_dist_server_send_payload__WEBPACK_IMPORTED_MODULE_22__.sendRenderResult)({\n req,\n res,\n type: 'html',\n generateEtags: nextConfig.generateEtags,\n poweredByHeader: nextConfig.poweredByHeader,\n result: body,\n // We don't want to cache the response if it has postponed data because\n // the response being sent to the client it's dynamic parts are streamed\n // to the client on the same request.\n cacheControl: {\n revalidate: 0,\n expire: undefined\n }\n });\n };\n // TODO: activeSpan code path is for when wrapped by\n // next-server can be removed when this is no longer used\n if (activeSpan) {\n await handleResponse(activeSpan);\n } else {\n return await tracer.withPropagatedContext(req.headers, ()=>tracer.trace(next_dist_server_lib_trace_constants__WEBPACK_IMPORTED_MODULE_5__.BaseServerSpan.handleRequest, {\n spanName: `${method} ${req.url}`,\n kind: next_dist_server_lib_trace_tracer__WEBPACK_IMPORTED_MODULE_3__.SpanKind.SERVER,\n attributes: {\n 'http.method': method,\n 'http.target': req.url\n }\n }, handleResponse));\n }\n } catch (err) {\n // if we aren't wrapped by base-server handle here\n if (!activeSpan && !(err instanceof next_dist_shared_lib_no_fallback_error_external__WEBPACK_IMPORTED_MODULE_23__.NoFallbackError)) {\n await routeModule.onRequestError(req, err, {\n routerKind: 'App Router',\n routePath: srcPage,\n routeType: 'render',\n revalidateReason: (0,next_dist_server_instrumentation_utils__WEBPACK_IMPORTED_MODULE_2__.getRevalidateReason)({\n isRevalidate: isSSG,\n isOnDemandRevalidate\n })\n }, routerServerContext);\n }\n // rethrow so that we can handle serving error page\n throw err;\n }\n}\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIvaW5kZXguanM/bmFtZT1hcHAlMkZfbm90LWZvdW5kJTJGcGFnZSZwYWdlPSUyRl9ub3QtZm91bmQlMkZwYWdlJmFwcFBhdGhzPSZwYWdlUGF0aD0lMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZidWlsdGluJTJGZ2xvYmFsLW5vdC1mb3VuZC5qcyZhcHBEaXI9JTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9bWR4JnJvb3REaXI9JTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEJmlzR2xvYmFsTm90Rm91bmRFbmFibGVkPSEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSx3QkFBd0IsaU9BQXFGO0FBQzdHLHNCQUFzQixvSkFBb0c7QUFDMUgsc0JBQXNCLGdLQUEwRztBQUNoSSxzQkFBc0IsZ0tBQTBHO0FBQ2hJLHNCQUFzQixpT0FBcUY7QUFDM0csc0JBQXNCLHVPQUF3RjtBQUc1RztBQUdBO0FBQzJFO0FBQ0w7QUFDVDtBQUNPO0FBQ087QUFDTztBQUNQO0FBQ0s7QUFDWTtBQUNXO0FBQ3hCO0FBQ0Y7QUFDYTtBQUNpRTtBQUNoRjtBQUNYO0FBQ1E7QUFDaEI7QUFDdUI7QUFDUDtBQUNUO0FBQ2lCO0FBQ2xGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGVBQWUsSUFBSTtBQUNuQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsNGVBQXVQO0FBQzNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ3VCO0FBR3JCO0FBQ3FCO0FBQ3ZCLDZCQUE2QixtQkFBbUI7QUFDaEQ7QUFDTztBQUNQO0FBQ0E7QUFDQTtBQUdFO0FBQ29GO0FBR3BGO0FBQ0Y7QUFDTyx3QkFBd0IsdUdBQWtCO0FBQ2pEO0FBQ0EsY0FBYyxrRUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTCxhQUFhLE9BQW9DLElBQUksQ0FBRTtBQUN2RCxnQkFBZ0IsTUFBdUM7QUFDdkQsQ0FBQztBQUNNO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVEsS0FBcUIsRUFBRSxFQUUxQixDQUFDO0FBQ047QUFDQTtBQUNBO0FBQ0EsK0JBQStCLE9BQXdDO0FBQ3ZFLDZCQUE2Qiw2RUFBYztBQUMzQztBQUNBLHdCQUF3Qiw2RUFBYztBQUN0QztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsWUFBWSxxU0FBcVM7QUFDalQ7QUFDQSw4QkFBOEIsOEZBQWdCO0FBQzlDLFVBQVUsdUJBQXVCO0FBQ2pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CLHFGQUFVO0FBQzlCLHNCQUFzQiwwRkFBZ0I7QUFDdEM7QUFDQTtBQUNBO0FBQ0EsbUNBQW1DLDZFQUFjLHFEQUFxRCx3R0FBMkI7QUFDakk7QUFDQSx5QkFBeUIsNkVBQWMsNkNBQTZDLHVGQUFVO0FBQzlGLG1DQUFtQywyR0FBeUI7QUFDNUQ7QUFDQTtBQUNBO0FBQ0EsOEJBQThCLDJGQUFvQjtBQUNsRDtBQUNBO0FBQ0EscUNBQXFDLE1BQTRHLElBQUksQ0FBZTtBQUNwSztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBLGtDQUFrQyw2RUFBYztBQUNoRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxzR0FBNEI7QUFDakY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsb0VBQVM7QUFDcEI7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUSw2R0FBOEI7QUFDdEM7QUFDQTtBQUNBO0FBQ0EsNkJBQTZCLGdHQUFxQjtBQUNsRDtBQUNBLGFBQWE7QUFDYixTQUFTO0FBQ1Q7QUFDQTtBQUNBLG1CQUFtQiw0RUFBUztBQUM1QjtBQUNBO0FBQ0E7QUFDQSxnQ0FBZ0MsNEVBQWU7QUFDL0MsZ0NBQWdDLDZFQUFnQjtBQUNoRDtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsSUFBc0M7QUFDdEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUVBQWlFLGdGQUFjO0FBQy9FLCtEQUErRCx5Q0FBeUM7QUFDeEc7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MsUUFBUSxFQUFFLE1BQU07QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQSxrQkFBa0I7QUFDbEIsdUNBQXVDLFFBQVEsRUFBRSxRQUFRO0FBQ3pEO0FBQ0EsYUFBYTtBQUNiO0FBQ0Esa0NBQWtDLHNDQUFzQztBQUN4RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsMENBQTBDLDZFQUFjO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0NBQWtDO0FBQ2xDO0FBQ0EsK0JBQStCLDJGQUFjO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0NBQXNDLDZFQUFjO0FBQ3BEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHNCQUFzQixJQUFJO0FBQzFCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQiw0Q0FBNEM7QUFDNUM7QUFDQSx5QkFBeUIsNkVBQWM7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxvQkFBb0IsV0FBVztBQUMvQixvQkFBb0IsMEJBQTBCO0FBQzlDLG1DQUFtQztBQUNuQztBQUNBLHdCQUF3Qiw0RUFBc0I7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEdBQThHLGlCQUFpQixFQUFFLG9GQUFvRiw4QkFBOEIsT0FBTztBQUMxUDtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDBCQUEwQiw2RUFBZTtBQUN6QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLHVEQUF1RDtBQUNsRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtCQUFrQjtBQUNsQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQiwyRUFBa0I7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsaUVBQVksY0FBYyxnRkFBSztBQUNoRSwrQkFBK0IsaUVBQVk7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwwREFBMEQsaUVBQVk7QUFDdEUsK0JBQStCLGlFQUFZO0FBQzNDO0FBQ0EsaURBQWlELGlFQUFZO0FBQzdEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUMsaUVBQVk7QUFDN0MsOEJBQThCLDZGQUFlO0FBQzdDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxrRUFBUztBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUVBQXVFLGdHQUFzQjtBQUM3Riw2QkFBNkI7QUFDN0I7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0EsOEJBQThCLDZFQUFlO0FBQzdDLDhCQUE4Qix1RUFBWTtBQUMxQyxvQ0FBb0M7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtFQUErRSw2RUFBYyx3REFBd0QsZ0dBQXNCO0FBQzNLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQiwyQkFBMkIsa0VBQVM7QUFDcEM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSx1R0FBdUcsNkVBQWU7QUFDdEg7QUFDQSxpSEFBaUgsbUZBQW1GO0FBQ3BNO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixxR0FBd0I7QUFDdEQ7QUFDQSxvQkFBb0Isb0JBQW9CO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCO0FBQ2xCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnSEFBZ0gsb0NBQW9DO0FBQ3BKO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QjtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0Esd0NBQXdDLG9FQUFjO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlIQUFpSCw2RUFBZTtBQUNoSTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QixxR0FBd0I7QUFDdEQ7QUFDQTtBQUNBLGlIQUFpSCw0RUFBc0I7QUFDdkk7QUFDQSxrQ0FBa0MsNEVBQXNCO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLGdGQUFnQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0NBQWdDLHVFQUFZO0FBQzVDO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsZ0ZBQWdCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsdUVBQVk7QUFDeEM7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLDZFQUFjO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQix5QkFBeUIsNkVBQWM7QUFDdkMsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMsNEVBQXNCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0E7QUFDQSxzQkFBc0I7QUFDdEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkdBQTJHLDRFQUFzQjtBQUNqSTtBQUNBLDhCQUE4Qiw0RUFBc0I7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFEQUFxRCxpR0FBa0I7QUFDdkU7QUFDQTtBQUNBO0FBQ0E7QUFDQSw4QkFBOEIscUdBQXdCO0FBQ3REO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0EsMkJBQTJCLGdGQUFnQjtBQUMzQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMEJBQTBCO0FBQzFCLHFCQUFxQjtBQUNyQjtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsZ0ZBQWdCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSw0QkFBNEIsdUVBQVk7QUFDeEM7QUFDQSxpQkFBaUI7QUFDakI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsZ0ZBQWdCO0FBQ3ZDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkNBQTJDLHFGQUFZO0FBQ3ZEO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsdUJBQXVCLGdGQUFnQjtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCO0FBQ3JCO0FBQ0EsK0ZBQStGLDZFQUFlO0FBQzlHO0FBQ0Esc0dBQXNHLHVFQUF1RTtBQUM3SztBQUNBO0FBQ0E7QUFDQSxxQkFBcUI7QUFDckI7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCLGFBQWE7QUFDYixtQkFBbUIsZ0ZBQWdCO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Ysb0ZBQW9GLGdGQUFjO0FBQ2xHLGlDQUFpQyxRQUFRLEVBQUUsUUFBUTtBQUNuRCwwQkFBMEIsdUVBQVE7QUFDbEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakI7QUFDQSxNQUFNO0FBQ047QUFDQSw0Q0FBNEMsNkZBQWU7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MsMkZBQW1CO0FBQ3JEO0FBQ0E7QUFDQSxpQkFBaUI7QUFDakIsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBub3RGb3VuZDAgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL25vdC1mb3VuZC5qc1wiKTtcbmNvbnN0IG1vZHVsZTEgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvbGF5b3V0LnRzeFwiKTtcbmNvbnN0IG1vZHVsZTIgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvZ2xvYmFsLWVycm9yLnRzeFwiKTtcbmNvbnN0IG1vZHVsZTMgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvZ2xvYmFsLWVycm9yLnRzeFwiKTtcbmNvbnN0IG1vZHVsZTQgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL2ZvcmJpZGRlbi5qc1wiKTtcbmNvbnN0IG1vZHVsZTUgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL3VuYXV0aG9yaXplZC5qc1wiKTtcbmltcG9ydCB7IEFwcFBhZ2VSb3V0ZU1vZHVsZSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmNvbXBpbGVkXCIgd2l0aCB7XG4gICAgJ3R1cmJvcGFjay10cmFuc2l0aW9uJzogJ25leHQtc3NyJ1xufTtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLWtpbmRcIiB3aXRoIHtcbiAgICAndHVyYm9wYWNrLXRyYW5zaXRpb24nOiAnbmV4dC1zZXJ2ZXItdXRpbGl0eSdcbn07XG5pbXBvcnQgeyBnZXRSZXZhbGlkYXRlUmVhc29uIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvaW5zdHJ1bWVudGF0aW9uL3V0aWxzXCI7XG5pbXBvcnQgeyBnZXRUcmFjZXIsIFNwYW5LaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL3RyYWNlL3RyYWNlclwiO1xuaW1wb3J0IHsgZ2V0UmVxdWVzdE1ldGEgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0LW1ldGFcIjtcbmltcG9ydCB7IEJhc2VTZXJ2ZXJTcGFuIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL3RyYWNlL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgaW50ZXJvcERlZmF1bHQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2ludGVyb3AtZGVmYXVsdFwiO1xuaW1wb3J0IHsgTm9kZU5leHRSZXF1ZXN0LCBOb2RlTmV4dFJlc3BvbnNlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvYmFzZS1odHRwL25vZGVcIjtcbmltcG9ydCB7IGNoZWNrSXNBcHBQUFJFbmFibGVkIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL2V4cGVyaW1lbnRhbC9wcHJcIjtcbmltcG9ydCB7IGdldEZhbGxiYWNrUm91dGVQYXJhbXMgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L2ZhbGxiYWNrLXBhcmFtc1wiO1xuaW1wb3J0IHsgc2V0UmVmZXJlbmNlTWFuaWZlc3RzU2luZ2xldG9uIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9lbmNyeXB0aW9uLXV0aWxzXCI7XG5pbXBvcnQgeyBpc0h0bWxCb3RSZXF1ZXN0LCBzaG91bGRTZXJ2ZVN0cmVhbWluZ01ldGFkYXRhIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL3N0cmVhbWluZy1tZXRhZGF0YVwiO1xuaW1wb3J0IHsgY3JlYXRlU2VydmVyTW9kdWxlTWFwIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9hY3Rpb24tdXRpbHNcIjtcbmltcG9ydCB7IG5vcm1hbGl6ZUFwcFBhdGggfSBmcm9tIFwibmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2FwcC1wYXRoc1wiO1xuaW1wb3J0IHsgZ2V0SXNQb3NzaWJsZVNlcnZlckFjdGlvbiB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2xpYi9zZXJ2ZXItYWN0aW9uLXJlcXVlc3QtbWV0YVwiO1xuaW1wb3J0IHsgUlNDX0hFQURFUiwgTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSLCBORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIsIE5FWFRfRElEX1BPU1RQT05FX0hFQURFUiB9IGZyb20gXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvYXBwLXJvdXRlci1oZWFkZXJzXCI7XG5pbXBvcnQgeyBnZXRCb3RUeXBlLCBpc0JvdCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtYm90XCI7XG5pbXBvcnQgeyBDYWNoZWRSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yZXNwb25zZS1jYWNoZVwiO1xuaW1wb3J0IHsgRmFsbGJhY2tNb2RlLCBwYXJzZUZhbGxiYWNrRmllbGQgfSBmcm9tIFwibmV4dC9kaXN0L2xpYi9mYWxsYmFja1wiO1xuaW1wb3J0IFJlbmRlclJlc3VsdCBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9yZW5kZXItcmVzdWx0XCI7XG5pbXBvcnQgeyBDQUNIRV9PTkVfWUVBUiwgTkVYVF9DQUNIRV9UQUdTX0hFQURFUiB9IGZyb20gXCJuZXh0L2Rpc3QvbGliL2NvbnN0YW50c1wiO1xuaW1wb3J0IHsgRU5DT0RFRF9UQUdTIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvc3RyZWFtLXV0aWxzL2VuY29kZWQtdGFnc1wiO1xuaW1wb3J0IHsgc2VuZFJlbmRlclJlc3VsdCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3NlbmQtcGF5bG9hZFwiO1xuaW1wb3J0IHsgTm9GYWxsYmFja0Vycm9yIH0gZnJvbSBcIm5leHQvZGlzdC9zaGFyZWQvbGliL25vLWZhbGxiYWNrLWVycm9yLmV4dGVybmFsXCI7XG4vLyBXZSBpbmplY3QgdGhlIHRyZWUgYW5kIHBhZ2VzIGhlcmUgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZW0gaW4gdGhlIHJvdXRlXG4vLyBtb2R1bGUuXG5jb25zdCB0cmVlID0ge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAnJyxcbiAgICAgICAge1xuICAgICAgICAgICAgICBjaGlsZHJlbjogW1wiL19ub3QtZm91bmRcIiwge1xuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiBbJ19fUEFHRV9fJywge30sIHtcbiAgICAgICAgICAgICAgICAgIHBhZ2U6IFtcbiAgICAgICAgICAgICAgICAgICAgbm90Rm91bmQwLFxuICAgICAgICAgICAgICAgICAgICBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL25vdC1mb3VuZC5qc1wiXG4gICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgfV1cbiAgICAgICAgICAgICAgfSwge31dXG4gICAgICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICdsYXlvdXQnOiBbbW9kdWxlMSwgXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvYXBwL2xheW91dC50c3hcIl0sXG4nZ2xvYmFsLWVycm9yJzogW21vZHVsZTIsIFwiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2FwcC9nbG9iYWwtZXJyb3IudHN4XCJdLFxuJ2dsb2JhbC1lcnJvcic6IFttb2R1bGUzLCBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvZ2xvYmFsLWVycm9yLnRzeFwiXSxcbidmb3JiaWRkZW4nOiBbbW9kdWxlNCwgXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvYnVpbHRpbi9mb3JiaWRkZW4uanNcIl0sXG4ndW5hdXRob3JpemVkJzogW21vZHVsZTUsIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vdW5hdXRob3JpemVkLmpzXCJdLFxuICAgICAgICBtZXRhZGF0YToge1xuICAgIGljb246IFsoYXN5bmMgKHByb3BzKSA9PiAoYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlcj90eXBlPWljb24mc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9bWR4IS9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvaWNvbi5zdmc/X19uZXh0X21ldGFkYXRhX19cIikpLmRlZmF1bHQocHJvcHMpKV0sXG4gICAgYXBwbGU6IFtdLFxuICAgIG9wZW5HcmFwaDogW10sXG4gICAgdHdpdHRlcjogW10sXG4gICAgbWFuaWZlc3Q6IFwiL21hbmlmZXN0LndlYm1hbmlmZXN0XCJcbiAgfVxuICAgICAgfVxuICAgICAgXVxuICAgICAgfS5jaGlsZHJlbjtcbmNvbnN0IHBhZ2VzID0gW107XG5leHBvcnQgeyB0cmVlLCBwYWdlcyB9O1xuaW1wb3J0IEdsb2JhbEVycm9yIGZyb20gXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvYXBwL2dsb2JhbC1lcnJvci50c3hcIiB3aXRoIHtcbiAgICAndHVyYm9wYWNrLXRyYW5zaXRpb24nOiAnbmV4dC1zZXJ2ZXItdXRpbGl0eSdcbn07XG5leHBvcnQgeyBHbG9iYWxFcnJvciB9O1xuY29uc3QgX19uZXh0X2FwcF9yZXF1aXJlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fXG5jb25zdCBfX25leHRfYXBwX2xvYWRfY2h1bmtfXyA9ICgpID0+IFByb21pc2UucmVzb2x2ZSgpXG5leHBvcnQgY29uc3QgX19uZXh0X2FwcF9fID0ge1xuICAgIHJlcXVpcmU6IF9fbmV4dF9hcHBfcmVxdWlyZV9fLFxuICAgIGxvYWRDaHVuazogX19uZXh0X2FwcF9sb2FkX2NodW5rX19cbn07XG5pbXBvcnQgKiBhcyBlbnRyeUJhc2UgZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9lbnRyeS1iYXNlXCIgd2l0aCB7XG4gICAgJ3R1cmJvcGFjay10cmFuc2l0aW9uJzogJ25leHQtc2VydmVyLXV0aWxpdHknXG59O1xuaW1wb3J0IHsgUmVkaXJlY3RTdGF0dXNDb2RlIH0gZnJvbSBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZWRpcmVjdC1zdGF0dXMtY29kZVwiO1xuZXhwb3J0ICogZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvYXBwLXJlbmRlci9lbnRyeS1iYXNlXCIgd2l0aCB7XG4gICAgJ3R1cmJvcGFjay10cmFuc2l0aW9uJzogJ25leHQtc2VydmVyLXV0aWxpdHknXG59O1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgQXBwUGFnZVJvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgcGFnZTogXCIvX25vdC1mb3VuZC9wYWdlXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9fbm90LWZvdW5kXCIsXG4gICAgICAgIC8vIFRoZSBmb2xsb3dpbmcgYXJlbid0IHVzZWQgaW4gcHJvZHVjdGlvbi5cbiAgICAgICAgYnVuZGxlUGF0aDogJycsXG4gICAgICAgIGZpbGVuYW1lOiAnJyxcbiAgICAgICAgYXBwUGF0aHM6IFtdXG4gICAgfSxcbiAgICB1c2VybGFuZDoge1xuICAgICAgICBsb2FkZXJUcmVlOiB0cmVlXG4gICAgfSxcbiAgICBkaXN0RGlyOiBwcm9jZXNzLmVudi5fX05FWFRfUkVMQVRJVkVfRElTVF9ESVIgfHwgJycsXG4gICAgcHJvamVjdERpcjogcHJvY2Vzcy5lbnYuX19ORVhUX1JFTEFUSVZFX1BST0pFQ1RfRElSIHx8ICcnXG59KTtcbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKHJlcSwgcmVzLCBjdHgpIHtcbiAgICB2YXIgX3RoaXM7XG4gICAgbGV0IHNyY1BhZ2UgPSBcIi9fbm90LWZvdW5kL3BhZ2VcIjtcbiAgICAvLyB0dXJib3BhY2sgZG9lc24ndCBub3JtYWxpemUgYC9pbmRleGAgaW4gdGhlIHBhZ2UgbmFtZVxuICAgIC8vIHNvIHdlIG5lZWQgdG8gdG8gcHJvY2VzcyBkeW5hbWljIHJvdXRlcyBwcm9wZXJseVxuICAgIC8vIFRPRE86IGZpeCB0dXJib3BhY2sgcHJvdmlkaW5nIGRpZmZlcmluZyB2YWx1ZSBmcm9tIHdlYnBhY2tcbiAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgIHNyY1BhZ2UgPSBzcmNQYWdlLnJlcGxhY2UoL1xcL2luZGV4JC8sICcnKSB8fCAnLyc7XG4gICAgfSBlbHNlIGlmIChzcmNQYWdlID09PSAnL2luZGV4Jykge1xuICAgICAgICAvLyB3ZSBhbHdheXMgbm9ybWFsaXplIC9pbmRleCBzcGVjaWZpY2FsbHlcbiAgICAgICAgc3JjUGFnZSA9ICcvJztcbiAgICB9XG4gICAgY29uc3QgbXVsdGlab25lRHJhZnRNb2RlID0gcHJvY2Vzcy5lbnYuX19ORVhUX01VTFRJX1pPTkVfRFJBRlRfTU9ERTtcbiAgICBjb25zdCBpbml0aWFsUG9zdHBvbmVkID0gZ2V0UmVxdWVzdE1ldGEocmVxLCAncG9zdHBvbmVkJyk7XG4gICAgLy8gVE9ETzogcmVwbGFjZSB3aXRoIG1vcmUgc3BlY2lmaWMgZmxhZ3NcbiAgICBjb25zdCBtaW5pbWFsTW9kZSA9IGdldFJlcXVlc3RNZXRhKHJlcSwgJ21pbmltYWxNb2RlJyk7XG4gICAgY29uc3QgcHJlcGFyZVJlc3VsdCA9IGF3YWl0IHJvdXRlTW9kdWxlLnByZXBhcmUocmVxLCByZXMsIHtcbiAgICAgICAgc3JjUGFnZSxcbiAgICAgICAgbXVsdGlab25lRHJhZnRNb2RlXG4gICAgfSk7XG4gICAgaWYgKCFwcmVwYXJlUmVzdWx0KSB7XG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDAwO1xuICAgICAgICByZXMuZW5kKCdCYWQgUmVxdWVzdCcpO1xuICAgICAgICBjdHgud2FpdFVudGlsID09IG51bGwgPyB2b2lkIDAgOiBjdHgud2FpdFVudGlsLmNhbGwoY3R4LCBQcm9taXNlLnJlc29sdmUoKSk7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCB7IGJ1aWxkSWQsIHF1ZXJ5LCBwYXJhbXMsIHBhcnNlZFVybCwgcGFnZUlzRHluYW1pYywgYnVpbGRNYW5pZmVzdCwgbmV4dEZvbnRNYW5pZmVzdCwgcmVhY3RMb2FkYWJsZU1hbmlmZXN0LCBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QsIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LCBzdWJyZXNvdXJjZUludGVncml0eU1hbmlmZXN0LCBwcmVyZW5kZXJNYW5pZmVzdCwgaXNEcmFmdE1vZGUsIHJlc29sdmVkUGF0aG5hbWUsIHJldmFsaWRhdGVPbmx5R2VuZXJhdGVkLCByb3V0ZXJTZXJ2ZXJDb250ZXh0LCBuZXh0Q29uZmlnIH0gPSBwcmVwYXJlUmVzdWx0O1xuICAgIGNvbnN0IHBhdGhuYW1lID0gcGFyc2VkVXJsLnBhdGhuYW1lIHx8ICcvJztcbiAgICBjb25zdCBub3JtYWxpemVkU3JjUGFnZSA9IG5vcm1hbGl6ZUFwcFBhdGgoc3JjUGFnZSk7XG4gICAgbGV0IHsgaXNPbkRlbWFuZFJldmFsaWRhdGUgfSA9IHByZXBhcmVSZXN1bHQ7XG4gICAgY29uc3QgcHJlcmVuZGVySW5mbyA9IHByZXJlbmRlck1hbmlmZXN0LmR5bmFtaWNSb3V0ZXNbbm9ybWFsaXplZFNyY1BhZ2VdO1xuICAgIGNvbnN0IGlzUHJlcmVuZGVyZWQgPSBwcmVyZW5kZXJNYW5pZmVzdC5yb3V0ZXNbcmVzb2x2ZWRQYXRobmFtZV07XG4gICAgbGV0IGlzU1NHID0gQm9vbGVhbihwcmVyZW5kZXJJbmZvIHx8IGlzUHJlcmVuZGVyZWQgfHwgcHJlcmVuZGVyTWFuaWZlc3Qucm91dGVzW25vcm1hbGl6ZWRTcmNQYWdlXSk7XG4gICAgY29uc3QgdXNlckFnZW50ID0gcmVxLmhlYWRlcnNbJ3VzZXItYWdlbnQnXSB8fCAnJztcbiAgICBjb25zdCBib3RUeXBlID0gZ2V0Qm90VHlwZSh1c2VyQWdlbnQpO1xuICAgIGNvbnN0IGlzSHRtbEJvdCA9IGlzSHRtbEJvdFJlcXVlc3QocmVxKTtcbiAgICAvKipcbiAgICogSWYgdHJ1ZSwgdGhpcyBpbmRpY2F0ZXMgdGhhdCB0aGUgcmVxdWVzdCBiZWluZyBtYWRlIGlzIGZvciBhbiBhcHBcbiAgICogcHJlZmV0Y2ggcmVxdWVzdC5cbiAgICovIGNvbnN0IGlzUHJlZmV0Y2hSU0NSZXF1ZXN0ID0gZ2V0UmVxdWVzdE1ldGEocmVxLCAnaXNQcmVmZXRjaFJTQ1JlcXVlc3QnKSA/PyBCb29sZWFuKHJlcS5oZWFkZXJzW05FWFRfUk9VVEVSX1BSRUZFVENIX0hFQURFUl0pO1xuICAgIC8vIE5PVEU6IERvbid0IGRlbGV0ZSBoZWFkZXJzW1JTQ10geWV0LCBpdCBzdGlsbCBuZWVkcyB0byBiZSB1c2VkIGluIHJlbmRlclRvSFRNTCBsYXRlclxuICAgIGNvbnN0IGlzUlNDUmVxdWVzdCA9IGdldFJlcXVlc3RNZXRhKHJlcSwgJ2lzUlNDUmVxdWVzdCcpID8/IEJvb2xlYW4ocmVxLmhlYWRlcnNbUlNDX0hFQURFUl0pO1xuICAgIGNvbnN0IGlzUG9zc2libGVTZXJ2ZXJBY3Rpb24gPSBnZXRJc1Bvc3NpYmxlU2VydmVyQWN0aW9uKHJlcSk7XG4gICAgLyoqXG4gICAqIElmIHRoZSByb3V0ZSBiZWluZyByZW5kZXJlZCBpcyBhbiBhcHAgcGFnZSwgYW5kIHRoZSBwcHIgZmVhdHVyZSBoYXMgYmVlblxuICAgKiBlbmFibGVkLCB0aGVuIHRoZSBnaXZlbiByb3V0ZSBfY291bGRfIHN1cHBvcnQgUFBSLlxuICAgKi8gY29uc3QgY291bGRTdXBwb3J0UFBSID0gY2hlY2tJc0FwcFBQUkVuYWJsZWQobmV4dENvbmZpZy5leHBlcmltZW50YWwucHByKTtcbiAgICAvLyBXaGVuIGVuYWJsZWQsIHRoaXMgd2lsbCBhbGxvdyB0aGUgdXNlIG9mIHRoZSBgP19fbmV4dHBwcm9ubHlgIHF1ZXJ5IHRvXG4gICAgLy8gZW5hYmxlIGRlYnVnZ2luZyBvZiB0aGUgc3RhdGljIHNoZWxsLlxuICAgIGNvbnN0IGhhc0RlYnVnU3RhdGljU2hlbGxRdWVyeSA9IHByb2Nlc3MuZW52Ll9fTkVYVF9FWFBFUklNRU5UQUxfU1RBVElDX1NIRUxMX0RFQlVHR0lORyA9PT0gJzEnICYmIHR5cGVvZiBxdWVyeS5fX25leHRwcHJvbmx5ICE9PSAndW5kZWZpbmVkJyAmJiBjb3VsZFN1cHBvcnRQUFI7XG4gICAgLy8gV2hlbiBlbmFibGVkLCB0aGlzIHdpbGwgYWxsb3cgdGhlIHVzZSBvZiB0aGUgYD9fX25leHRwcHJvbmx5YCBxdWVyeVxuICAgIC8vIHRvIGVuYWJsZSBkZWJ1Z2dpbmcgb2YgdGhlIGZhbGxiYWNrIHNoZWxsLlxuICAgIGNvbnN0IGhhc0RlYnVnRmFsbGJhY2tTaGVsbFF1ZXJ5ID0gaGFzRGVidWdTdGF0aWNTaGVsbFF1ZXJ5ICYmIHF1ZXJ5Ll9fbmV4dHBwcm9ubHkgPT09ICdmYWxsYmFjayc7XG4gICAgLy8gVGhpcyBwYWdlIHN1cHBvcnRzIFBQUiBpZiBpdCBpcyBtYXJrZWQgYXMgYmVpbmcgYFBBUlRJQUxMWV9TVEFUSUNgIGluIHRoZVxuICAgIC8vIHByZXJlbmRlciBtYW5pZmVzdCBhbmQgdGhpcyBpcyBhbiBhcHAgcGFnZS5cbiAgICBjb25zdCBpc1JvdXRlUFBSRW5hYmxlZCA9IGNvdWxkU3VwcG9ydFBQUiAmJiAoKChfdGhpcyA9IHByZXJlbmRlck1hbmlmZXN0LnJvdXRlc1tub3JtYWxpemVkU3JjUGFnZV0gPz8gcHJlcmVuZGVyTWFuaWZlc3QuZHluYW1pY1JvdXRlc1tub3JtYWxpemVkU3JjUGFnZV0pID09IG51bGwgPyB2b2lkIDAgOiBfdGhpcy5yZW5kZXJpbmdNb2RlKSA9PT0gJ1BBUlRJQUxMWV9TVEFUSUMnIHx8IC8vIElkZWFsbHkgd2UnZCB3YW50IHRvIGNoZWNrIHRoZSBhcHBDb25maWcgdG8gc2VlIGlmIHRoaXMgcGFnZSBoYXMgUFBSXG4gICAgLy8gZW5hYmxlZCBvciBub3QsIGJ1dCB0aGF0IHdvdWxkIHJlcXVpcmUgcGx1bWJpbmcgdGhlIGFwcENvbmZpZyB0aHJvdWdoXG4gICAgLy8gdG8gdGhlIHNlcnZlciBkdXJpbmcgZGV2ZWxvcG1lbnQuIFdlIGFzc3VtZSB0aGF0IHRoZSBwYWdlIHN1cHBvcnRzIGl0XG4gICAgLy8gYnV0IG9ubHkgZHVyaW5nIGRldmVsb3BtZW50LlxuICAgIGhhc0RlYnVnU3RhdGljU2hlbGxRdWVyeSAmJiAocm91dGVNb2R1bGUuaXNEZXYgPT09IHRydWUgfHwgKHJvdXRlclNlcnZlckNvbnRleHQgPT0gbnVsbCA/IHZvaWQgMCA6IHJvdXRlclNlcnZlckNvbnRleHQuZXhwZXJpbWVudGFsVGVzdFByb3h5KSA9PT0gdHJ1ZSkpO1xuICAgIGNvbnN0IGlzRGVidWdTdGF0aWNTaGVsbCA9IGhhc0RlYnVnU3RhdGljU2hlbGxRdWVyeSAmJiBpc1JvdXRlUFBSRW5hYmxlZDtcbiAgICAvLyBXZSBzaG91bGQgZW5hYmxlIGRlYnVnZ2luZyBkeW5hbWljIGFjY2Vzc2VzIHdoZW4gdGhlIHN0YXRpYyBzaGVsbFxuICAgIC8vIGRlYnVnZ2luZyBoYXMgYmVlbiBlbmFibGVkIGFuZCB3ZSdyZSBhbHNvIGluIGRldmVsb3BtZW50IG1vZGUuXG4gICAgY29uc3QgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlcyA9IGlzRGVidWdTdGF0aWNTaGVsbCAmJiByb3V0ZU1vZHVsZS5pc0RldiA9PT0gdHJ1ZTtcbiAgICBjb25zdCBpc0RlYnVnRmFsbGJhY2tTaGVsbCA9IGhhc0RlYnVnRmFsbGJhY2tTaGVsbFF1ZXJ5ICYmIGlzUm91dGVQUFJFbmFibGVkO1xuICAgIC8vIElmIHdlJ3JlIGluIG1pbmltYWwgbW9kZSwgdGhlbiB0cnkgdG8gZ2V0IHRoZSBwb3N0cG9uZWQgaW5mb3JtYXRpb24gZnJvbVxuICAgIC8vIHRoZSByZXF1ZXN0IG1ldGFkYXRhLiBJZiBhdmFpbGFibGUsIHVzZSBpdCBmb3IgcmVzdW1pbmcgdGhlIHBvc3Rwb25lZFxuICAgIC8vIHJlbmRlci5cbiAgICBjb25zdCBtaW5pbWFsUG9zdHBvbmVkID0gaXNSb3V0ZVBQUkVuYWJsZWQgPyBpbml0aWFsUG9zdHBvbmVkIDogdW5kZWZpbmVkO1xuICAgIC8vIElmIFBQUiBpcyBlbmFibGVkLCBhbmQgdGhpcyBpcyBhIFJTQyByZXF1ZXN0IChidXQgbm90IGEgcHJlZmV0Y2gpLCB0aGVuXG4gICAgLy8gd2UgY2FuIHVzZSB0aGlzIGZhY3QgdG8gb25seSBnZW5lcmF0ZSB0aGUgZmxpZ2h0IGRhdGEgZm9yIHRoZSByZXF1ZXN0XG4gICAgLy8gYmVjYXVzZSB3ZSBjYW4ndCBjYWNoZSB0aGUgSFRNTCAoYXMgaXQncyBhbHNvIGR5bmFtaWMpLlxuICAgIGNvbnN0IGlzRHluYW1pY1JTQ1JlcXVlc3QgPSBpc1JvdXRlUFBSRW5hYmxlZCAmJiBpc1JTQ1JlcXVlc3QgJiYgIWlzUHJlZmV0Y2hSU0NSZXF1ZXN0O1xuICAgIC8vIE5lZWQgdG8gcmVhZCB0aGlzIGJlZm9yZSBpdCdzIHN0cmlwcGVkIGJ5IHN0cmlwRmxpZ2h0SGVhZGVycy4gV2UgZG9uJ3RcbiAgICAvLyBuZWVkIHRvIHRyYW5zZmVyIGl0IHRvIHRoZSByZXF1ZXN0IG1ldGEgYmVjYXVzZSBpdCdzIG9ubHkgcmVhZFxuICAgIC8vIHdpdGhpbiB0aGlzIGZ1bmN0aW9uOyB0aGUgc3RhdGljIHNlZ21lbnQgZGF0YSBzaG91bGQgaGF2ZSBhbHJlYWR5IGJlZW5cbiAgICAvLyBnZW5lcmF0ZWQsIHNvIHdlIHdpbGwgYWx3YXlzIGVpdGhlciByZXR1cm4gYSBzdGF0aWMgcmVzcG9uc2Ugb3IgYSA0MDQuXG4gICAgY29uc3Qgc2VnbWVudFByZWZldGNoSGVhZGVyID0gZ2V0UmVxdWVzdE1ldGEocmVxLCAnc2VnbWVudFByZWZldGNoUlNDUmVxdWVzdCcpO1xuICAgIC8vIFRPRE86IGludmVzdGlnYXRlIGV4aXN0aW5nIGJ1ZyB3aXRoIHNob3VsZFNlcnZlU3RyZWFtaW5nTWV0YWRhdGEgYWx3YXlzXG4gICAgLy8gYmVpbmcgdHJ1ZSBmb3IgYSByZXZhbGlkYXRlIGR1ZSB0byBtb2RpZnlpbmcgdGhlIGJhc2Utc2VydmVyIHRoaXMucmVuZGVyT3B0c1xuICAgIC8vIHdoZW4gZml4aW5nIHRoaXMgdG8gY29ycmVjdCBsb2dpYyBpdCBjYXVzZXMgaHlkcmF0aW9uIGlzc3VlIHNpbmNlIHdlIHNldFxuICAgIC8vIHNlcnZlU3RyZWFtaW5nTWV0YWRhdGEgdG8gdHJ1ZSBkdXJpbmcgZXhwb3J0XG4gICAgbGV0IHNlcnZlU3RyZWFtaW5nTWV0YWRhdGEgPSAhdXNlckFnZW50ID8gdHJ1ZSA6IHNob3VsZFNlcnZlU3RyZWFtaW5nTWV0YWRhdGEodXNlckFnZW50LCBuZXh0Q29uZmlnLmh0bWxMaW1pdGVkQm90cyk7XG4gICAgaWYgKGlzSHRtbEJvdCAmJiBpc1JvdXRlUFBSRW5hYmxlZCkge1xuICAgICAgICBpc1NTRyA9IGZhbHNlO1xuICAgICAgICBzZXJ2ZVN0cmVhbWluZ01ldGFkYXRhID0gZmFsc2U7XG4gICAgfVxuICAgIC8vIEluIGRldmVsb3BtZW50LCB3ZSBhbHdheXMgd2FudCB0byBnZW5lcmF0ZSBkeW5hbWljIEhUTUwuXG4gICAgbGV0IHN1cHBvcnRzRHluYW1pY1Jlc3BvbnNlID0gLy8gSWYgd2UncmUgaW4gZGV2ZWxvcG1lbnQsIHdlIGFsd2F5cyBzdXBwb3J0IGR5bmFtaWMgSFRNTCwgdW5sZXNzIGl0J3NcbiAgICAvLyBhIGRhdGEgcmVxdWVzdCwgaW4gd2hpY2ggY2FzZSB3ZSBvbmx5IHByb2R1Y2Ugc3RhdGljIEhUTUwuXG4gICAgcm91dGVNb2R1bGUuaXNEZXYgPT09IHRydWUgfHwgLy8gSWYgdGhpcyBpcyBub3QgU1NHIG9yIGRvZXMgbm90IGhhdmUgc3RhdGljIHBhdGhzLCB0aGVuIGl0IHN1cHBvcnRzXG4gICAgLy8gZHluYW1pYyBIVE1MLlxuICAgICFpc1NTRyB8fCAvLyBJZiB0aGlzIHJlcXVlc3QgaGFzIHByb3ZpZGVkIHBvc3Rwb25lZCBkYXRhLCBpdCBzdXBwb3J0cyBkeW5hbWljXG4gICAgLy8gSFRNTC5cbiAgICB0eXBlb2YgaW5pdGlhbFBvc3Rwb25lZCA9PT0gJ3N0cmluZycgfHwgLy8gSWYgdGhpcyBpcyBhIGR5bmFtaWMgUlNDIHJlcXVlc3QsIHRoZW4gdGhpcyByZW5kZXIgc3VwcG9ydHMgZHluYW1pY1xuICAgIC8vIEhUTUwgKGl0J3MgZHluYW1pYykuXG4gICAgaXNEeW5hbWljUlNDUmVxdWVzdDtcbiAgICAvLyBXaGVuIGh0bWwgYm90cyByZXF1ZXN0IFBQUiBwYWdlLCBwZXJmb3JtIHRoZSBmdWxsIGR5bmFtaWMgcmVuZGVyaW5nLlxuICAgIGNvbnN0IHNob3VsZFdhaXRPbkFsbFJlYWR5ID0gaXNIdG1sQm90ICYmIGlzUm91dGVQUFJFbmFibGVkO1xuICAgIGxldCBzc2dDYWNoZUtleSA9IG51bGw7XG4gICAgaWYgKCFpc0RyYWZ0TW9kZSAmJiBpc1NTRyAmJiAhc3VwcG9ydHNEeW5hbWljUmVzcG9uc2UgJiYgIWlzUG9zc2libGVTZXJ2ZXJBY3Rpb24gJiYgIW1pbmltYWxQb3N0cG9uZWQgJiYgIWlzRHluYW1pY1JTQ1JlcXVlc3QpIHtcbiAgICAgICAgc3NnQ2FjaGVLZXkgPSByZXNvbHZlZFBhdGhuYW1lO1xuICAgIH1cbiAgICAvLyB0aGUgc3RhdGljUGF0aEtleSBkaWZmZXJzIGZyb20gc3NnQ2FjaGVLZXkgc2luY2VcbiAgICAvLyBzc2dDYWNoZUtleSBpcyBudWxsIGluIGRldiBzaW5jZSB3ZSdyZSBhbHdheXMgaW4gXCJkeW5hbWljXCJcbiAgICAvLyBtb2RlIGluIGRldiB0byBieXBhc3MgdGhlIGNhY2hlLCBidXQgd2Ugc3RpbGwgbmVlZCB0byBob25vclxuICAgIC8vIGR5bmFtaWNQYXJhbXMgPSBmYWxzZSBpbiBkZXYgbW9kZVxuICAgIGxldCBzdGF0aWNQYXRoS2V5ID0gc3NnQ2FjaGVLZXk7XG4gICAgaWYgKCFzdGF0aWNQYXRoS2V5ICYmIHJvdXRlTW9kdWxlLmlzRGV2KSB7XG4gICAgICAgIHN0YXRpY1BhdGhLZXkgPSByZXNvbHZlZFBhdGhuYW1lO1xuICAgIH1cbiAgICBjb25zdCBDb21wb25lbnRNb2QgPSB7XG4gICAgICAgIC4uLmVudHJ5QmFzZSxcbiAgICAgICAgdHJlZSxcbiAgICAgICAgcGFnZXMsXG4gICAgICAgIEdsb2JhbEVycm9yLFxuICAgICAgICBoYW5kbGVyLFxuICAgICAgICByb3V0ZU1vZHVsZSxcbiAgICAgICAgX19uZXh0X2FwcF9fXG4gICAgfTtcbiAgICAvLyBCZWZvcmUgcmVuZGVyaW5nICh3aGljaCBpbml0aWFsaXplcyBjb21wb25lbnQgdHJlZSBtb2R1bGVzKSwgd2UgaGF2ZSB0b1xuICAgIC8vIHNldCB0aGUgcmVmZXJlbmNlIG1hbmlmZXN0cyB0byBvdXIgZ2xvYmFsIHN0b3JlIHNvIFNlcnZlciBBY3Rpb24nc1xuICAgIC8vIGVuY3J5cHRpb24gdXRpbCBjYW4gYWNjZXNzIHRvIHRoZW0gYXQgdGhlIHRvcCBsZXZlbCBvZiB0aGUgcGFnZSBtb2R1bGUuXG4gICAgaWYgKHNlcnZlckFjdGlvbnNNYW5pZmVzdCAmJiBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCkge1xuICAgICAgICBzZXRSZWZlcmVuY2VNYW5pZmVzdHNTaW5nbGV0b24oe1xuICAgICAgICAgICAgcGFnZTogc3JjUGFnZSxcbiAgICAgICAgICAgIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0LFxuICAgICAgICAgICAgc2VydmVyQWN0aW9uc01hbmlmZXN0LFxuICAgICAgICAgICAgc2VydmVyTW9kdWxlTWFwOiBjcmVhdGVTZXJ2ZXJNb2R1bGVNYXAoe1xuICAgICAgICAgICAgICAgIHNlcnZlckFjdGlvbnNNYW5pZmVzdFxuICAgICAgICAgICAgfSlcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IG1ldGhvZCA9IHJlcS5tZXRob2QgfHwgJ0dFVCc7XG4gICAgY29uc3QgdHJhY2VyID0gZ2V0VHJhY2VyKCk7XG4gICAgY29uc3QgYWN0aXZlU3BhbiA9IHRyYWNlci5nZXRBY3RpdmVTY29wZVNwYW4oKTtcbiAgICB0cnkge1xuICAgICAgICBjb25zdCBpbnZva2VSb3V0ZU1vZHVsZSA9IGFzeW5jIChzcGFuLCBjb250ZXh0KT0+e1xuICAgICAgICAgICAgY29uc3QgbmV4dFJlcSA9IG5ldyBOb2RlTmV4dFJlcXVlc3QocmVxKTtcbiAgICAgICAgICAgIGNvbnN0IG5leHRSZXMgPSBuZXcgTm9kZU5leHRSZXNwb25zZShyZXMpO1xuICAgICAgICAgICAgLy8gVE9ETzogYWRhcHQgZm9yIHB1dHRpbmcgdGhlIFJEQyBpbnNpZGUgdGhlIHBvc3Rwb25lZCBkYXRhXG4gICAgICAgICAgICAvLyBJZiB3ZSdyZSBpbiBkZXYsIGFuZCB0aGlzIGlzbid0IGEgcHJlZmV0Y2ggb3IgYSBzZXJ2ZXIgYWN0aW9uLFxuICAgICAgICAgICAgLy8gd2Ugc2hvdWxkIHNlZWQgdGhlIHJlc3VtZSBkYXRhIGNhY2hlLlxuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICAgICAgaWYgKG5leHRDb25maWcuZXhwZXJpbWVudGFsLmR5bmFtaWNJTyAmJiAhaXNQcmVmZXRjaFJTQ1JlcXVlc3QgJiYgIWNvbnRleHQucmVuZGVyT3B0cy5pc1Bvc3NpYmxlU2VydmVyQWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHdhcm11cCA9IGF3YWl0IHJvdXRlTW9kdWxlLndhcm11cChuZXh0UmVxLCBuZXh0UmVzLCBjb250ZXh0KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIHdhcm11cCBpcyBzdWNjZXNzZnVsLCB3ZSBzaG91bGQgdXNlIHRoZSByZXN1bWUgZGF0YVxuICAgICAgICAgICAgICAgICAgICAvLyBjYWNoZSBmcm9tIHRoZSB3YXJtdXAuXG4gICAgICAgICAgICAgICAgICAgIGlmICh3YXJtdXAubWV0YWRhdGEucmVuZGVyUmVzdW1lRGF0YUNhY2hlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250ZXh0LnJlbmRlck9wdHMucmVuZGVyUmVzdW1lRGF0YUNhY2hlID0gd2FybXVwLm1ldGFkYXRhLnJlbmRlclJlc3VtZURhdGFDYWNoZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiByb3V0ZU1vZHVsZS5yZW5kZXIobmV4dFJlcSwgbmV4dFJlcywgY29udGV4dCkuZmluYWxseSgoKT0+e1xuICAgICAgICAgICAgICAgIGlmICghc3BhbikgcmV0dXJuO1xuICAgICAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlcyh7XG4gICAgICAgICAgICAgICAgICAgICdodHRwLnN0YXR1c19jb2RlJzogcmVzLnN0YXR1c0NvZGUsXG4gICAgICAgICAgICAgICAgICAgICduZXh0LnJzYyc6IGZhbHNlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc3Qgcm9vdFNwYW5BdHRyaWJ1dGVzID0gdHJhY2VyLmdldFJvb3RTcGFuQXR0cmlidXRlcygpO1xuICAgICAgICAgICAgICAgIC8vIFdlIHdlcmUgdW5hYmxlIHRvIGdldCBhdHRyaWJ1dGVzLCBwcm9iYWJseSBPVEVMIGlzIG5vdCBlbmFibGVkXG4gICAgICAgICAgICAgICAgaWYgKCFyb290U3BhbkF0dHJpYnV0ZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAocm9vdFNwYW5BdHRyaWJ1dGVzLmdldCgnbmV4dC5zcGFuX3R5cGUnKSAhPT0gQmFzZVNlcnZlclNwYW4uaGFuZGxlUmVxdWVzdCkge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oYFVuZXhwZWN0ZWQgcm9vdCBzcGFuIHR5cGUgJyR7cm9vdFNwYW5BdHRyaWJ1dGVzLmdldCgnbmV4dC5zcGFuX3R5cGUnKX0nLiBQbGVhc2UgcmVwb3J0IHRoaXMgTmV4dC5qcyBpc3N1ZSBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanNgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByb3V0ZSA9IHJvb3RTcGFuQXR0cmlidXRlcy5nZXQoJ25leHQucm91dGUnKTtcbiAgICAgICAgICAgICAgICBpZiAocm91dGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmFtZSA9IGAke21ldGhvZH0gJHtyb3V0ZX1gO1xuICAgICAgICAgICAgICAgICAgICBzcGFuLnNldEF0dHJpYnV0ZXMoe1xuICAgICAgICAgICAgICAgICAgICAgICAgJ25leHQucm91dGUnOiByb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICdodHRwLnJvdXRlJzogcm91dGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAnbmV4dC5zcGFuX25hbWUnOiBuYW1lXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICBzcGFuLnVwZGF0ZU5hbWUobmFtZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbi51cGRhdGVOYW1lKGAke21ldGhvZH0gJHtyZXEudXJsfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBkb1JlbmRlciA9IGFzeW5jICh7IHNwYW4sIHBvc3Rwb25lZCwgZmFsbGJhY2tSb3V0ZVBhcmFtcyB9KT0+e1xuICAgICAgICAgICAgY29uc3QgY29udGV4dCA9IHtcbiAgICAgICAgICAgICAgICBxdWVyeSxcbiAgICAgICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICAgICAgcGFnZTogbm9ybWFsaXplZFNyY1BhZ2UsXG4gICAgICAgICAgICAgICAgc2hhcmVkQ29udGV4dDoge1xuICAgICAgICAgICAgICAgICAgICBidWlsZElkXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXJ2ZXJDb21wb25lbnRzSG1yQ2FjaGU6IGdldFJlcXVlc3RNZXRhKHJlcSwgJ3NlcnZlckNvbXBvbmVudHNIbXJDYWNoZScpLFxuICAgICAgICAgICAgICAgIGZhbGxiYWNrUm91dGVQYXJhbXMsXG4gICAgICAgICAgICAgICAgcmVuZGVyT3B0czoge1xuICAgICAgICAgICAgICAgICAgICBBcHA6ICgpPT5udWxsLFxuICAgICAgICAgICAgICAgICAgICBEb2N1bWVudDogKCk9Pm51bGwsXG4gICAgICAgICAgICAgICAgICAgIHBhZ2VDb25maWc6IHt9LFxuICAgICAgICAgICAgICAgICAgICBDb21wb25lbnRNb2QsXG4gICAgICAgICAgICAgICAgICAgIENvbXBvbmVudDogaW50ZXJvcERlZmF1bHQoQ29tcG9uZW50TW9kKSxcbiAgICAgICAgICAgICAgICAgICAgcGFyYW1zLFxuICAgICAgICAgICAgICAgICAgICByb3V0ZU1vZHVsZSxcbiAgICAgICAgICAgICAgICAgICAgcGFnZTogc3JjUGFnZSxcbiAgICAgICAgICAgICAgICAgICAgcG9zdHBvbmVkLFxuICAgICAgICAgICAgICAgICAgICBzaG91bGRXYWl0T25BbGxSZWFkeSxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVTdHJlYW1pbmdNZXRhZGF0YSxcbiAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHNEeW5hbWljUmVzcG9uc2U6IHR5cGVvZiBwb3N0cG9uZWQgPT09ICdzdHJpbmcnIHx8IHN1cHBvcnRzRHluYW1pY1Jlc3BvbnNlLFxuICAgICAgICAgICAgICAgICAgICBidWlsZE1hbmlmZXN0LFxuICAgICAgICAgICAgICAgICAgICBuZXh0Rm9udE1hbmlmZXN0LFxuICAgICAgICAgICAgICAgICAgICByZWFjdExvYWRhYmxlTWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgIHN1YnJlc291cmNlSW50ZWdyaXR5TWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgIHNlcnZlckFjdGlvbnNNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgIHNldElzclN0YXR1czogcm91dGVyU2VydmVyQ29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogcm91dGVyU2VydmVyQ29udGV4dC5zZXRJc3JTdGF0dXMsXG4gICAgICAgICAgICAgICAgICAgIGRpcjogcm91dGVNb2R1bGUucHJvamVjdERpcixcbiAgICAgICAgICAgICAgICAgICAgaXNEcmFmdE1vZGUsXG4gICAgICAgICAgICAgICAgICAgIGlzUmV2YWxpZGF0ZTogaXNTU0cgJiYgIXBvc3Rwb25lZCAmJiAhaXNEeW5hbWljUlNDUmVxdWVzdCxcbiAgICAgICAgICAgICAgICAgICAgYm90VHlwZSxcbiAgICAgICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgIGlzUG9zc2libGVTZXJ2ZXJBY3Rpb24sXG4gICAgICAgICAgICAgICAgICAgIGFzc2V0UHJlZml4OiBuZXh0Q29uZmlnLmFzc2V0UHJlZml4LFxuICAgICAgICAgICAgICAgICAgICBuZXh0Q29uZmlnT3V0cHV0OiBuZXh0Q29uZmlnLm91dHB1dCxcbiAgICAgICAgICAgICAgICAgICAgY3Jvc3NPcmlnaW46IG5leHRDb25maWcuY3Jvc3NPcmlnaW4sXG4gICAgICAgICAgICAgICAgICAgIHRyYWlsaW5nU2xhc2g6IG5leHRDb25maWcudHJhaWxpbmdTbGFzaCxcbiAgICAgICAgICAgICAgICAgICAgcHJldmlld1Byb3BzOiBwcmVyZW5kZXJNYW5pZmVzdC5wcmV2aWV3LFxuICAgICAgICAgICAgICAgICAgICBkZXBsb3ltZW50SWQ6IG5leHRDb25maWcuZGVwbG95bWVudElkLFxuICAgICAgICAgICAgICAgICAgICBlbmFibGVUYWludGluZzogbmV4dENvbmZpZy5leHBlcmltZW50YWwudGFpbnQsXG4gICAgICAgICAgICAgICAgICAgIGh0bWxMaW1pdGVkQm90czogbmV4dENvbmZpZy5odG1sTGltaXRlZEJvdHMsXG4gICAgICAgICAgICAgICAgICAgIGRldnRvb2xTZWdtZW50RXhwbG9yZXI6IG5leHRDb25maWcuZXhwZXJpbWVudGFsLmRldnRvb2xTZWdtZW50RXhwbG9yZXIsXG4gICAgICAgICAgICAgICAgICAgIHJlYWN0TWF4SGVhZGVyc0xlbmd0aDogbmV4dENvbmZpZy5yZWFjdE1heEhlYWRlcnNMZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgIG11bHRpWm9uZURyYWZ0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgaW5jcmVtZW50YWxDYWNoZTogZ2V0UmVxdWVzdE1ldGEocmVxLCAnaW5jcmVtZW50YWxDYWNoZScpLFxuICAgICAgICAgICAgICAgICAgICBjYWNoZUxpZmVQcm9maWxlczogbmV4dENvbmZpZy5leHBlcmltZW50YWwuY2FjaGVMaWZlLFxuICAgICAgICAgICAgICAgICAgICBiYXNlUGF0aDogbmV4dENvbmZpZy5iYXNlUGF0aCxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyQWN0aW9uczogbmV4dENvbmZpZy5leHBlcmltZW50YWwuc2VydmVyQWN0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgLi4uaXNEZWJ1Z1N0YXRpY1NoZWxsIHx8IGlzRGVidWdEeW5hbWljQWNjZXNzZXMgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXh0RXhwb3J0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydHNEeW5hbWljUmVzcG9uc2U6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNTdGF0aWNHZW5lcmF0aW9uOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNSZXZhbGlkYXRlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlczogaXNEZWJ1Z0R5bmFtaWNBY2Nlc3Nlc1xuICAgICAgICAgICAgICAgICAgICB9IDoge30sXG4gICAgICAgICAgICAgICAgICAgIGV4cGVyaW1lbnRhbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNSb3V0ZVBQUkVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmVUaW1lOiBuZXh0Q29uZmlnLmV4cGlyZVRpbWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFsZVRpbWVzOiBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5zdGFsZVRpbWVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY0lPOiBCb29sZWFuKG5leHRDb25maWcuZXhwZXJpbWVudGFsLmR5bmFtaWNJTyksXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRTZWdtZW50Q2FjaGU6IEJvb2xlYW4obmV4dENvbmZpZy5leHBlcmltZW50YWwuY2xpZW50U2VnbWVudENhY2hlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGR5bmFtaWNPbkhvdmVyOiBCb29sZWFuKG5leHRDb25maWcuZXhwZXJpbWVudGFsLmR5bmFtaWNPbkhvdmVyKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlubGluZUNzczogQm9vbGVhbihuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5pbmxpbmVDc3MpLFxuICAgICAgICAgICAgICAgICAgICAgICAgYXV0aEludGVycnVwdHM6IEJvb2xlYW4obmV4dENvbmZpZy5leHBlcmltZW50YWwuYXV0aEludGVycnVwdHMpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2xpZW50VHJhY2VNZXRhZGF0YTogbmV4dENvbmZpZy5leHBlcmltZW50YWwuY2xpZW50VHJhY2VNZXRhZGF0YSB8fCBbXVxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB3YWl0VW50aWw6IGN0eC53YWl0VW50aWwsXG4gICAgICAgICAgICAgICAgICAgIG9uQ2xvc2U6IChjYik9PntcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5vbignY2xvc2UnLCBjYik7XG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIG9uQWZ0ZXJUYXNrRXJyb3I6ICgpPT57fSxcbiAgICAgICAgICAgICAgICAgICAgb25JbnN0cnVtZW50YXRpb25SZXF1ZXN0RXJyb3I6IChlcnJvciwgX3JlcXVlc3QsIGVycm9yQ29udGV4dCk9PnJvdXRlTW9kdWxlLm9uUmVxdWVzdEVycm9yKHJlcSwgZXJyb3IsIGVycm9yQ29udGV4dCwgcm91dGVyU2VydmVyQ29udGV4dCksXG4gICAgICAgICAgICAgICAgICAgIGVycjogZ2V0UmVxdWVzdE1ldGEocmVxLCAnaW52b2tlRXJyb3InKSxcbiAgICAgICAgICAgICAgICAgICAgZGV2OiByb3V0ZU1vZHVsZS5pc0RldlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCBpbnZva2VSb3V0ZU1vZHVsZShzcGFuLCBjb250ZXh0KTtcbiAgICAgICAgICAgIGNvbnN0IHsgbWV0YWRhdGEgfSA9IHJlc3VsdDtcbiAgICAgICAgICAgIGNvbnN0IHsgY2FjaGVDb250cm9sLCBoZWFkZXJzID0ge30sIC8vIEFkZCBhbnkgZmV0Y2ggdGFncyB0aGF0IHdlcmUgb24gdGhlIHBhZ2UgdG8gdGhlIHJlc3BvbnNlIGhlYWRlcnMuXG4gICAgICAgICAgICBmZXRjaFRhZ3M6IGNhY2hlVGFncyB9ID0gbWV0YWRhdGE7XG4gICAgICAgICAgICBpZiAoY2FjaGVUYWdzKSB7XG4gICAgICAgICAgICAgICAgaGVhZGVyc1tORVhUX0NBQ0hFX1RBR1NfSEVBREVSXSA9IGNhY2hlVGFncztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFB1bGwgYW55IGZldGNoIG1ldHJpY3MgZnJvbSB0aGUgcmVuZGVyIG9udG8gdGhlIHJlcXVlc3QuXG4gICAgICAgICAgICA7XG4gICAgICAgICAgICByZXEuZmV0Y2hNZXRyaWNzID0gbWV0YWRhdGEuZmV0Y2hNZXRyaWNzO1xuICAgICAgICAgICAgLy8gd2UgZG9uJ3QgdGhyb3cgc3RhdGljIHRvIGR5bmFtaWMgZXJyb3JzIGluIGRldiBhcyBpc1NTR1xuICAgICAgICAgICAgLy8gaXMgYSBiZXN0IGd1ZXNzIGluIGRldiBzaW5jZSB3ZSBkb24ndCBoYXZlIHRoZSBwcmVyZW5kZXIgcGFzc1xuICAgICAgICAgICAgLy8gdG8ga25vdyB3aGV0aGVyIHRoZSBwYXRoIGlzIGFjdHVhbGx5IHN0YXRpYyBvciBub3RcbiAgICAgICAgICAgIGlmIChpc1NTRyAmJiAoY2FjaGVDb250cm9sID09IG51bGwgPyB2b2lkIDAgOiBjYWNoZUNvbnRyb2wucmV2YWxpZGF0ZSkgPT09IDAgJiYgIXJvdXRlTW9kdWxlLmlzRGV2ICYmICFpc1JvdXRlUFBSRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IHN0YXRpY0JhaWxvdXRJbmZvID0gbWV0YWRhdGEuc3RhdGljQmFpbG91dEluZm87XG4gICAgICAgICAgICAgICAgY29uc3QgZXJyID0gT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgUGFnZSBjaGFuZ2VkIGZyb20gc3RhdGljIHRvIGR5bmFtaWMgYXQgcnVudGltZSAke3Jlc29sdmVkUGF0aG5hbWV9JHsoc3RhdGljQmFpbG91dEluZm8gPT0gbnVsbCA/IHZvaWQgMCA6IHN0YXRpY0JhaWxvdXRJbmZvLmRlc2NyaXB0aW9uKSA/IGAsIHJlYXNvbjogJHtzdGF0aWNCYWlsb3V0SW5mby5kZXNjcmlwdGlvbn1gIDogYGB9YCArIGBcXG5zZWUgbW9yZSBoZXJlIGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL2FwcC1zdGF0aWMtdG8tZHluYW1pYy1lcnJvcmApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTEzMlwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKHN0YXRpY0JhaWxvdXRJbmZvID09IG51bGwgPyB2b2lkIDAgOiBzdGF0aWNCYWlsb3V0SW5mby5zdGFjaykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFjayA9IHN0YXRpY0JhaWxvdXRJbmZvLnN0YWNrO1xuICAgICAgICAgICAgICAgICAgICBlcnIuc3RhY2sgPSBlcnIubWVzc2FnZSArIHN0YWNrLnN1YnN0cmluZyhzdGFjay5pbmRleE9mKCdcXG4nKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRocm93IGVycjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICAgICAga2luZDogQ2FjaGVkUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICAgICAgICAgICAgICBodG1sOiByZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIGhlYWRlcnMsXG4gICAgICAgICAgICAgICAgICAgIHJzY0RhdGE6IG1ldGFkYXRhLmZsaWdodERhdGEsXG4gICAgICAgICAgICAgICAgICAgIHBvc3Rwb25lZDogbWV0YWRhdGEucG9zdHBvbmVkLFxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IG1ldGFkYXRhLnN0YXR1c0NvZGUsXG4gICAgICAgICAgICAgICAgICAgIHNlZ21lbnREYXRhOiBtZXRhZGF0YS5zZWdtZW50RGF0YVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY2FjaGVDb250cm9sXG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCByZXNwb25zZUdlbmVyYXRvciA9IGFzeW5jICh7IGhhc1Jlc29sdmVkLCBwcmV2aW91c0NhY2hlRW50cnksIGlzUmV2YWxpZGF0aW5nLCBzcGFuIH0pPT57XG4gICAgICAgICAgICBjb25zdCBpc1Byb2R1Y3Rpb24gPSByb3V0ZU1vZHVsZS5pc0RldiA9PT0gZmFsc2U7XG4gICAgICAgICAgICBjb25zdCBkaWRSZXNwb25kID0gaGFzUmVzb2x2ZWQgfHwgcmVzLndyaXRhYmxlRW5kZWQ7XG4gICAgICAgICAgICAvLyBza2lwIG9uLWRlbWFuZCByZXZhbGlkYXRlIGlmIGNhY2hlIGlzIG5vdCBwcmVzZW50IGFuZFxuICAgICAgICAgICAgLy8gcmV2YWxpZGF0ZS1pZi1nZW5lcmF0ZWQgaXMgc2V0XG4gICAgICAgICAgICBpZiAoaXNPbkRlbWFuZFJldmFsaWRhdGUgJiYgcmV2YWxpZGF0ZU9ubHlHZW5lcmF0ZWQgJiYgIXByZXZpb3VzQ2FjaGVFbnRyeSAmJiAhbWluaW1hbE1vZGUpIHtcbiAgICAgICAgICAgICAgICBpZiAocm91dGVyU2VydmVyQ29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogcm91dGVyU2VydmVyQ29udGV4dC5yZW5kZXI0MDQpIHtcbiAgICAgICAgICAgICAgICAgICAgYXdhaXQgcm91dGVyU2VydmVyQ29udGV4dC5yZW5kZXI0MDQocmVxLCByZXMpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gNDA0O1xuICAgICAgICAgICAgICAgICAgICByZXMuZW5kKCdUaGlzIHBhZ2UgY291bGQgbm90IGJlIGZvdW5kJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgbGV0IGZhbGxiYWNrTW9kZTtcbiAgICAgICAgICAgIGlmIChwcmVyZW5kZXJJbmZvKSB7XG4gICAgICAgICAgICAgICAgZmFsbGJhY2tNb2RlID0gcGFyc2VGYWxsYmFja0ZpZWxkKHByZXJlbmRlckluZm8uZmFsbGJhY2spO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gV2hlbiBzZXJ2aW5nIGEgYm90IHJlcXVlc3QsIHdlIHdhbnQgdG8gc2VydmUgYSBibG9ja2luZyByZW5kZXIgYW5kIG5vdFxuICAgICAgICAgICAgLy8gdGhlIHByZXJlbmRlcmVkIHBhZ2UuIFRoaXMgZW5zdXJlcyB0aGF0IHRoZSBjb3JyZWN0IGNvbnRlbnQgaXMgc2VydmVkXG4gICAgICAgICAgICAvLyB0byB0aGUgYm90IGluIHRoZSBoZWFkLlxuICAgICAgICAgICAgaWYgKGZhbGxiYWNrTW9kZSA9PT0gRmFsbGJhY2tNb2RlLlBSRVJFTkRFUiAmJiBpc0JvdCh1c2VyQWdlbnQpKSB7XG4gICAgICAgICAgICAgICAgZmFsbGJhY2tNb2RlID0gRmFsbGJhY2tNb2RlLkJMT0NLSU5HX1NUQVRJQ19SRU5ERVI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoKHByZXZpb3VzQ2FjaGVFbnRyeSA9PSBudWxsID8gdm9pZCAwIDogcHJldmlvdXNDYWNoZUVudHJ5LmlzU3RhbGUpID09PSAtMSkge1xuICAgICAgICAgICAgICAgIGlzT25EZW1hbmRSZXZhbGlkYXRlID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRPRE86IGFkYXB0IGZvciBQUFJcbiAgICAgICAgICAgIC8vIG9ubHkgYWxsb3cgb24tZGVtYW5kIHJldmFsaWRhdGUgZm9yIGZhbGxiYWNrOiB0cnVlL2Jsb2NraW5nXG4gICAgICAgICAgICAvLyBvciBmb3IgcHJlcmVuZGVyZWQgZmFsbGJhY2s6IGZhbHNlIHBhdGhzXG4gICAgICAgICAgICBpZiAoaXNPbkRlbWFuZFJldmFsaWRhdGUgJiYgKGZhbGxiYWNrTW9kZSAhPT0gRmFsbGJhY2tNb2RlLk5PVF9GT1VORCB8fCBwcmV2aW91c0NhY2hlRW50cnkpKSB7XG4gICAgICAgICAgICAgICAgZmFsbGJhY2tNb2RlID0gRmFsbGJhY2tNb2RlLkJMT0NLSU5HX1NUQVRJQ19SRU5ERVI7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIW1pbmltYWxNb2RlICYmIGZhbGxiYWNrTW9kZSAhPT0gRmFsbGJhY2tNb2RlLkJMT0NLSU5HX1NUQVRJQ19SRU5ERVIgJiYgc3RhdGljUGF0aEtleSAmJiAhZGlkUmVzcG9uZCAmJiAhaXNEcmFmdE1vZGUgJiYgcGFnZUlzRHluYW1pYyAmJiAoaXNQcm9kdWN0aW9uIHx8ICFpc1ByZXJlbmRlcmVkKSkge1xuICAgICAgICAgICAgICAgIC8vIGlmIHRoZSBwYWdlIGhhcyBkeW5hbWljUGFyYW1zOiBmYWxzZSBhbmQgdGhpcyBwYXRobmFtZSB3YXNuJ3RcbiAgICAgICAgICAgICAgICAvLyBwcmVyZW5kZXJlZCB0cmlnZ2VyIHRoZSBubyBmYWxsYmFjayBoYW5kbGluZ1xuICAgICAgICAgICAgICAgIGlmICgvLyBJbiBkZXZlbG9wbWVudCwgZmFsbCB0aHJvdWdoIHRvIHJlbmRlciB0byBoYW5kbGUgbWlzc2luZ1xuICAgICAgICAgICAgICAgIC8vIGdldFN0YXRpY1BhdGhzLlxuICAgICAgICAgICAgICAgIChpc1Byb2R1Y3Rpb24gfHwgcHJlcmVuZGVySW5mbykgJiYgLy8gV2hlbiBmYWxsYmFjayBpc24ndCBwcmVzZW50LCBhYm9ydCB0aGlzIHJlbmRlciBzbyB3ZSA0MDRcbiAgICAgICAgICAgICAgICBmYWxsYmFja01vZGUgPT09IEZhbGxiYWNrTW9kZS5OT1RfRk9VTkQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IE5vRmFsbGJhY2tFcnJvcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBsZXQgZmFsbGJhY2tSZXNwb25zZTtcbiAgICAgICAgICAgICAgICBpZiAoaXNSb3V0ZVBQUkVuYWJsZWQgJiYgIWlzUlNDUmVxdWVzdCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBXZSB1c2UgdGhlIHJlc3BvbnNlIGNhY2hlIGhlcmUgdG8gaGFuZGxlIHRoZSByZXZhbGlkYXRpb24gYW5kXG4gICAgICAgICAgICAgICAgICAgIC8vIG1hbmFnZW1lbnQgb2YgdGhlIGZhbGxiYWNrIHNoZWxsLlxuICAgICAgICAgICAgICAgICAgICBmYWxsYmFja1Jlc3BvbnNlID0gYXdhaXQgcm91dGVNb2R1bGUuaGFuZGxlUmVzcG9uc2Uoe1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVLZXk6IGlzUHJvZHVjdGlvbiA/IG5vcm1hbGl6ZWRTcmNQYWdlIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRDb25maWcsXG4gICAgICAgICAgICAgICAgICAgICAgICByb3V0ZUtpbmQ6IFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzRmFsbGJhY2s6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBwcmVyZW5kZXJNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUm91dGVQUFJFbmFibGVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2VHZW5lcmF0b3I6IGFzeW5jICgpPT5kb1JlbmRlcih7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNwYW4sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFdlIHBhc3MgYHVuZGVmaW5lZGAgYXMgcmVuZGVyaW5nIGEgZmFsbGJhY2sgaXNuJ3QgcmVzdW1lZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBoZXJlLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3N0cG9uZWQ6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmFsbGJhY2tSb3V0ZVBhcmFtczogLy8gSWYgd2UncmUgaW4gcHJvZHVjdGlvbiBvciB3ZSdyZSBkZWJ1Z2dpbmcgdGhlIGZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHNoZWxsIHRoZW4gd2Ugc2hvdWxkIHBvc3Rwb25lIHdoZW4gZHluYW1pYyBwYXJhbXMgYXJlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGFjY2Vzc2VkLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpc1Byb2R1Y3Rpb24gfHwgaXNEZWJ1Z0ZhbGxiYWNrU2hlbGwgPyBnZXRGYWxsYmFja1JvdXRlUGFyYW1zKG5vcm1hbGl6ZWRTcmNQYWdlKSA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHdhaXRVbnRpbDogY3R4LndhaXRVbnRpbFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgLy8gSWYgdGhlIGZhbGxiYWNrIHJlc3BvbnNlIHdhcyBzZXQgdG8gbnVsbCwgdGhlbiB3ZSBzaG91bGQgcmV0dXJuIG51bGwuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1Jlc3BvbnNlID09PSBudWxsKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgLy8gT3RoZXJ3aXNlLCBpZiB3ZSBkaWQgZ2V0IGEgZmFsbGJhY2sgcmVzcG9uc2UsIHdlIHNob3VsZCByZXR1cm4gaXQuXG4gICAgICAgICAgICAgICAgICAgIGlmIChmYWxsYmFja1Jlc3BvbnNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBSZW1vdmUgdGhlIGNhY2hlIGNvbnRyb2wgZnJvbSB0aGUgcmVzcG9uc2UgdG8gcHJldmVudCBpdCBmcm9tIGJlaW5nXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyB1c2VkIGluIHRoZSBzdXJyb3VuZGluZyBjYWNoZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZSBmYWxsYmFja1Jlc3BvbnNlLmNhY2hlQ29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmYWxsYmFja1Jlc3BvbnNlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gT25seSByZXF1ZXN0cyB0aGF0IGFyZW4ndCByZXZhbGlkYXRpbmcgY2FuIGJlIHJlc3VtZWQuIElmIHdlIGhhdmUgdGhlXG4gICAgICAgICAgICAvLyBtaW5pbWFsIHBvc3Rwb25lZCBkYXRhLCB0aGVuIHdlIHNob3VsZCByZXN1bWUgdGhlIHJlbmRlciB3aXRoIGl0LlxuICAgICAgICAgICAgY29uc3QgcG9zdHBvbmVkID0gIWlzT25EZW1hbmRSZXZhbGlkYXRlICYmICFpc1JldmFsaWRhdGluZyAmJiBtaW5pbWFsUG9zdHBvbmVkID8gbWluaW1hbFBvc3Rwb25lZCA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgIC8vIFdoZW4gd2UncmUgaW4gbWluaW1hbCBtb2RlLCBpZiB3ZSdyZSB0cnlpbmcgdG8gZGVidWcgdGhlIHN0YXRpYyBzaGVsbCxcbiAgICAgICAgICAgIC8vIHdlIHNob3VsZCBqdXN0IHJldHVybiBub3RoaW5nIGluc3RlYWQgb2YgcmVzdW1pbmcgdGhlIGR5bmFtaWMgcmVuZGVyLlxuICAgICAgICAgICAgaWYgKChpc0RlYnVnU3RhdGljU2hlbGwgfHwgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlcykgJiYgdHlwZW9mIHBvc3Rwb25lZCAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAga2luZDogQ2FjaGVkUm91dGVLaW5kLlBBR0VTLFxuICAgICAgICAgICAgICAgICAgICAgICAgaHRtbDogUmVuZGVyUmVzdWx0LmZyb21TdGF0aWMoJycpLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFnZURhdGE6IHt9LFxuICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVyczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgc3RhdHVzOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgZHluYW1pYyByb3V0ZSB3aXRoIFBQUiBlbmFibGVkIGFuZCB0aGUgZGVmYXVsdCByb3V0ZVxuICAgICAgICAgICAgLy8gbWF0Y2hlcyB3ZXJlIHNldCwgdGhlbiB3ZSBzaG91bGQgcGFzcyB0aGUgZmFsbGJhY2sgcm91dGUgcGFyYW1zIHRvXG4gICAgICAgICAgICAvLyB0aGUgcmVuZGVyZXIgYXMgdGhpcyBpcyBhIGZhbGxiYWNrIHJldmFsaWRhdGlvbiByZXF1ZXN0LlxuICAgICAgICAgICAgY29uc3QgZmFsbGJhY2tSb3V0ZVBhcmFtcyA9IHBhZ2VJc0R5bmFtaWMgJiYgaXNSb3V0ZVBQUkVuYWJsZWQgJiYgKGdldFJlcXVlc3RNZXRhKHJlcSwgJ3JlbmRlckZhbGxiYWNrU2hlbGwnKSB8fCBpc0RlYnVnRmFsbGJhY2tTaGVsbCkgPyBnZXRGYWxsYmFja1JvdXRlUGFyYW1zKHBhdGhuYW1lKSA6IG51bGw7XG4gICAgICAgICAgICAvLyBQZXJmb3JtIHRoZSByZW5kZXIuXG4gICAgICAgICAgICByZXR1cm4gZG9SZW5kZXIoe1xuICAgICAgICAgICAgICAgIHNwYW4sXG4gICAgICAgICAgICAgICAgcG9zdHBvbmVkLFxuICAgICAgICAgICAgICAgIGZhbGxiYWNrUm91dGVQYXJhbXNcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9O1xuICAgICAgICBjb25zdCBoYW5kbGVSZXNwb25zZSA9IGFzeW5jIChzcGFuKT0+e1xuICAgICAgICAgICAgdmFyIF9jYWNoZUVudHJ5X3ZhbHVlLCBfY2FjaGVkRGF0YV9oZWFkZXJzO1xuICAgICAgICAgICAgY29uc3QgY2FjaGVFbnRyeSA9IGF3YWl0IHJvdXRlTW9kdWxlLmhhbmRsZVJlc3BvbnNlKHtcbiAgICAgICAgICAgICAgICBjYWNoZUtleTogc3NnQ2FjaGVLZXksXG4gICAgICAgICAgICAgICAgcmVzcG9uc2VHZW5lcmF0b3I6IChjKT0+cmVzcG9uc2VHZW5lcmF0b3Ioe1xuICAgICAgICAgICAgICAgICAgICAgICAgc3BhbixcbiAgICAgICAgICAgICAgICAgICAgICAgIC4uLmNcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgcm91dGVLaW5kOiBSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgaXNSb3V0ZVBQUkVuYWJsZWQsXG4gICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgIG5leHRDb25maWcsXG4gICAgICAgICAgICAgICAgcHJlcmVuZGVyTWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgd2FpdFVudGlsOiBjdHgud2FpdFVudGlsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIGlmIChpc0RyYWZ0TW9kZSkge1xuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnLCAncHJpdmF0ZSwgbm8tY2FjaGUsIG5vLXN0b3JlLCBtYXgtYWdlPTAsIG11c3QtcmV2YWxpZGF0ZScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSW4gZGV2LCB3ZSBzaG91bGQgbm90IGNhY2hlIHBhZ2VzIGZvciBhbnkgcmVhc29uLlxuICAgICAgICAgICAgaWYgKHJvdXRlTW9kdWxlLmlzRGV2KSB7XG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICduby1zdG9yZSwgbXVzdC1yZXZhbGlkYXRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoIWNhY2hlRW50cnkpIHtcbiAgICAgICAgICAgICAgICBpZiAoc3NnQ2FjaGVLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQSBjYWNoZSBlbnRyeSBtaWdodCBub3QgYmUgZ2VuZXJhdGVkIGlmIGEgcmVzcG9uc2UgaXMgd3JpdHRlblxuICAgICAgICAgICAgICAgICAgICAvLyBpbiBgZ2V0SW5pdGlhbFByb3BzYCBvciBgZ2V0U2VydmVyU2lkZVByb3BzYCwgYnV0IHRob3NlIHNob3VsZG4ndFxuICAgICAgICAgICAgICAgICAgICAvLyBoYXZlIGEgY2FjaGUga2V5LiBJZiB3ZSBkbyBoYXZlIGEgY2FjaGUga2V5IGJ1dCB3ZSBkb24ndCBlbmQgdXBcbiAgICAgICAgICAgICAgICAgICAgLy8gd2l0aCBhIGNhY2hlIGVudHJ5LCB0aGVuIGVpdGhlciBOZXh0LmpzIG9yIHRoZSBhcHBsaWNhdGlvbiBoYXMgYVxuICAgICAgICAgICAgICAgICAgICAvLyBidWcgdGhhdCBuZWVkcyBmaXhpbmcuXG4gICAgICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ2ludmFyaWFudDogY2FjaGUgZW50cnkgcmVxdWlyZWQgYnV0IG5vdCBnZW5lcmF0ZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNjJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgoKF9jYWNoZUVudHJ5X3ZhbHVlID0gY2FjaGVFbnRyeS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZUVudHJ5X3ZhbHVlLmtpbmQpICE9PSBDYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UpIHtcbiAgICAgICAgICAgICAgICB2YXIgX2NhY2hlRW50cnlfdmFsdWUxO1xuICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEludmFyaWFudCBhcHAtcGFnZSBoYW5kbGVyIHJlY2VpdmVkIGludmFsaWQgY2FjaGUgZW50cnkgJHsoX2NhY2hlRW50cnlfdmFsdWUxID0gY2FjaGVFbnRyeS52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZUVudHJ5X3ZhbHVlMS5raW5kfWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTcwN1wiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCBkaWRQb3N0cG9uZSA9IHR5cGVvZiBjYWNoZUVudHJ5LnZhbHVlLnBvc3Rwb25lZCA9PT0gJ3N0cmluZyc7XG4gICAgICAgICAgICBpZiAoaXNTU0cgJiYgLy8gV2UgZG9uJ3Qgd2FudCB0byBzZW5kIGEgY2FjaGUgaGVhZGVyIGZvciByZXF1ZXN0cyB0aGF0IGNvbnRhaW4gZHluYW1pY1xuICAgICAgICAgICAgLy8gZGF0YS4gSWYgdGhpcyBpcyBhIER5bmFtaWMgUlNDIHJlcXVlc3Qgb3Igd2Fzbid0IGEgUHJlZmV0Y2ggUlNDXG4gICAgICAgICAgICAvLyByZXF1ZXN0LCB0aGVuIHdlIHNob3VsZCBzZXQgdGhlIGNhY2hlIGhlYWRlci5cbiAgICAgICAgICAgICFpc0R5bmFtaWNSU0NSZXF1ZXN0ICYmICghZGlkUG9zdHBvbmUgfHwgaXNQcmVmZXRjaFJTQ1JlcXVlc3QpKSB7XG4gICAgICAgICAgICAgICAgaWYgKCFtaW5pbWFsTW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBzZXQgeC1uZXh0anMtY2FjaGUgaGVhZGVyIHRvIG1hdGNoIHRoZSBoZWFkZXJcbiAgICAgICAgICAgICAgICAgICAgLy8gd2Ugc2V0IGZvciB0aGUgaW1hZ2Utb3B0aW1pemVyXG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoJ3gtbmV4dGpzLWNhY2hlJywgaXNPbkRlbWFuZFJldmFsaWRhdGUgPyAnUkVWQUxJREFURUQnIDogY2FjaGVFbnRyeS5pc01pc3MgPyAnTUlTUycgOiBjYWNoZUVudHJ5LmlzU3RhbGUgPyAnU1RBTEUnIDogJ0hJVCcpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBTZXQgYSBoZWFkZXIgdXNlZCBieSB0aGUgY2xpZW50IHJvdXRlciB0byBzaWduYWwgdGhlIHJlc3BvbnNlIGlzIHN0YXRpY1xuICAgICAgICAgICAgICAgIC8vIGFuZCBzaG91bGQgcmVzcGVjdCB0aGUgYHN0YXRpY2AgY2FjaGUgc3RhbGVUaW1lIHZhbHVlLlxuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoTkVYVF9JU19QUkVSRU5ERVJfSEVBREVSLCAnMScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgeyB2YWx1ZTogY2FjaGVkRGF0YSB9ID0gY2FjaGVFbnRyeTtcbiAgICAgICAgICAgIC8vIENvZXJjZSB0aGUgY2FjaGUgY29udHJvbCBwYXJhbWV0ZXIgZnJvbSB0aGUgcmVuZGVyLlxuICAgICAgICAgICAgbGV0IGNhY2hlQ29udHJvbDtcbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSByZXN1bWUgcmVxdWVzdCBpbiBtaW5pbWFsIG1vZGUgaXQgaXMgc3RyZWFtZWQgd2l0aCBkeW5hbWljXG4gICAgICAgICAgICAvLyBjb250ZW50IGFuZCBzaG91bGQgbm90IGJlIGNhY2hlZC5cbiAgICAgICAgICAgIGlmIChtaW5pbWFsUG9zdHBvbmVkKSB7XG4gICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1pbmltYWxNb2RlICYmIGlzUlNDUmVxdWVzdCAmJiAhaXNQcmVmZXRjaFJTQ1JlcXVlc3QgJiYgaXNSb3V0ZVBQUkVuYWJsZWQpIHtcbiAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIXJvdXRlTW9kdWxlLmlzRGV2KSB7XG4gICAgICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHByZXZpZXcgbW9kZSByZXF1ZXN0LCB3ZSBzaG91bGRuJ3QgY2FjaGUgaXRcbiAgICAgICAgICAgICAgICBpZiAoaXNEcmFmdE1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICghaXNTU0cpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZXMuZ2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmIChjYWNoZUVudHJ5LmNhY2hlQ29udHJvbCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgY2FjaGUgZW50cnkgaGFzIGEgY2FjaGUgY29udHJvbCB3aXRoIGEgcmV2YWxpZGF0ZSB2YWx1ZSB0aGF0J3NcbiAgICAgICAgICAgICAgICAgICAgLy8gYSBudW1iZXIsIHVzZSBpdC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWNoZUVudHJ5LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlID09PSAnbnVtYmVyJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFyIF9jYWNoZUVudHJ5X2NhY2hlQ29udHJvbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZUVudHJ5LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlIDwgMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEludmFsaWQgcmV2YWxpZGF0ZSBjb25maWd1cmF0aW9uIHByb3ZpZGVkOiAke2NhY2hlRW50cnkuY2FjaGVDb250cm9sLnJldmFsaWRhdGV9IDwgMWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTIyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiBjYWNoZUVudHJ5LmNhY2hlQ29udHJvbC5yZXZhbGlkYXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogKChfY2FjaGVFbnRyeV9jYWNoZUNvbnRyb2wgPSBjYWNoZUVudHJ5LmNhY2hlQ29udHJvbCkgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZUVudHJ5X2NhY2hlQ29udHJvbC5leHBpcmUpID8/IG5leHRDb25maWcuZXhwaXJlVGltZVxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiBDQUNIRV9PTkVfWUVBUixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNhY2hlRW50cnkuY2FjaGVDb250cm9sID0gY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgaWYgKHR5cGVvZiBzZWdtZW50UHJlZmV0Y2hIZWFkZXIgPT09ICdzdHJpbmcnICYmIChjYWNoZWREYXRhID09IG51bGwgPyB2b2lkIDAgOiBjYWNoZWREYXRhLmtpbmQpID09PSBDYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UgJiYgY2FjaGVkRGF0YS5zZWdtZW50RGF0YSkge1xuICAgICAgICAgICAgICAgIHZhciBfY2FjaGVkRGF0YV9oZWFkZXJzMTtcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgcHJlZmV0Y2ggcmVxdWVzdCBpc3N1ZWQgYnkgdGhlIGNsaWVudCBTZWdtZW50IENhY2hlLiBUaGVzZVxuICAgICAgICAgICAgICAgIC8vIHNob3VsZCBuZXZlciByZWFjaCB0aGUgYXBwbGljYXRpb24gbGF5ZXIgKGxhbWJkYSkuIFdlIHNob3VsZCBlaXRoZXJcbiAgICAgICAgICAgICAgICAvLyByZXNwb25kIGZyb20gdGhlIGNhY2hlIChISVQpIG9yIHJlc3BvbmQgd2l0aCAyMDQgTm8gQ29udGVudCAoTUlTUykuXG4gICAgICAgICAgICAgICAgLy8gU2V0IGEgaGVhZGVyIHRvIGluZGljYXRlIHRoYXQgUFBSIGlzIGVuYWJsZWQgZm9yIHRoaXMgcm91dGUuIFRoaXNcbiAgICAgICAgICAgICAgICAvLyBsZXRzIHRoZSBjbGllbnQgZGlzdGluZ3Vpc2ggYmV0d2VlbiBhIHJlZ3VsYXIgY2FjaGUgbWlzcyBhbmQgYSBjYWNoZVxuICAgICAgICAgICAgICAgIC8vIG1pc3MgZHVlIHRvIFBQUiBiZWluZyBkaXNhYmxlZC4gSW4gb3RoZXIgY29udGV4dHMgdGhpcyBoZWFkZXIgaXMgdXNlZFxuICAgICAgICAgICAgICAgIC8vIHRvIGluZGljYXRlIHRoYXQgdGhlIHJlc3BvbnNlIGNvbnRhaW5zIGR5bmFtaWMgZGF0YSwgYnV0IGhlcmUgd2UncmVcbiAgICAgICAgICAgICAgICAvLyBvbmx5IHVzaW5nIGl0IHRvIGluZGljYXRlIHRoYXQgdGhlIGZlYXR1cmUgaXMgZW5hYmxlZCDigJQgdGhlIHNlZ21lbnRcbiAgICAgICAgICAgICAgICAvLyByZXNwb25zZSBpdHNlbGYgY29udGFpbnMgd2hldGhlciB0aGUgZGF0YSBpcyBkeW5hbWljLlxuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSLCAnMicpO1xuICAgICAgICAgICAgICAgIC8vIEFkZCB0aGUgY2FjaGUgdGFncyBoZWFkZXIgdG8gdGhlIHJlc3BvbnNlIGlmIGl0IGV4aXN0cyBhbmQgd2UncmUgaW5cbiAgICAgICAgICAgICAgICAvLyBtaW5pbWFsIG1vZGUgd2hpbGUgcmVuZGVyaW5nIGEgc3RhdGljIHBhZ2UuXG4gICAgICAgICAgICAgICAgY29uc3QgdGFncyA9IChfY2FjaGVkRGF0YV9oZWFkZXJzMSA9IGNhY2hlZERhdGEuaGVhZGVycykgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZWREYXRhX2hlYWRlcnMxW05FWFRfQ0FDSEVfVEFHU19IRUFERVJdO1xuICAgICAgICAgICAgICAgIGlmIChtaW5pbWFsTW9kZSAmJiBpc1NTRyAmJiB0YWdzICYmIHR5cGVvZiB0YWdzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKE5FWFRfQ0FDSEVfVEFHU19IRUFERVIsIHRhZ3MpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBtYXRjaGVkU2VnbWVudCA9IGNhY2hlZERhdGEuc2VnbWVudERhdGEuZ2V0KHNlZ21lbnRQcmVmZXRjaEhlYWRlcik7XG4gICAgICAgICAgICAgICAgaWYgKG1hdGNoZWRTZWdtZW50ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gQ2FjaGUgaGl0XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZW5kUmVuZGVyUmVzdWx0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdyc2MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVFdGFnczogbmV4dENvbmZpZy5nZW5lcmF0ZUV0YWdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG93ZXJlZEJ5SGVhZGVyOiBuZXh0Q29uZmlnLnBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogUmVuZGVyUmVzdWx0LmZyb21TdGF0aWMobWF0Y2hlZFNlZ21lbnQpLFxuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiBjYWNoZUVudHJ5LmNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQ2FjaGUgbWlzcy4gRWl0aGVyIGEgY2FjaGUgZW50cnkgZm9yIHRoaXMgcm91dGUgaGFzIG5vdCBiZWVuIGdlbmVyYXRlZFxuICAgICAgICAgICAgICAgIC8vICh3aGljaCB0ZWNobmljYWxseSBzaG91bGQgbm90IGJlIHBvc3NpYmxlIHdoZW4gUFBSIGlzIGVuYWJsZWQsIGJlY2F1c2VcbiAgICAgICAgICAgICAgICAvLyBhdCBhIG1pbmltdW0gdGhlcmUgc2hvdWxkIGFsd2F5cyBiZSBhIGZhbGxiYWNrIGVudHJ5KSBvciB0aGVyZSdzIG5vXG4gICAgICAgICAgICAgICAgLy8gbWF0Y2ggZm9yIHRoZSByZXF1ZXN0ZWQgc2VnbWVudC4gUmVzcG9uZCB3aXRoIGEgMjA0IE5vIENvbnRlbnQuIFdlXG4gICAgICAgICAgICAgICAgLy8gZG9uJ3QgYm90aGVyIHRvIHJlc3BvbmQgd2l0aCA0MDQsIGJlY2F1c2UgdGhlc2UgcmVxdWVzdHMgYXJlIG9ubHlcbiAgICAgICAgICAgICAgICAvLyBpc3N1ZWQgYXMgcGFydCBvZiBhIHByZWZldGNoLlxuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjA0O1xuICAgICAgICAgICAgICAgIHJldHVybiBzZW5kUmVuZGVyUmVzdWx0KHtcbiAgICAgICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgICAgICByZXMsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdyc2MnLFxuICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZUV0YWdzOiBuZXh0Q29uZmlnLmdlbmVyYXRlRXRhZ3MsXG4gICAgICAgICAgICAgICAgICAgIHBvd2VyZWRCeUhlYWRlcjogbmV4dENvbmZpZy5wb3dlcmVkQnlIZWFkZXIsXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdDogUmVuZGVyUmVzdWx0LmZyb21TdGF0aWMoJycpLFxuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGNhY2hlRW50cnkuY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSdzIGEgY2FsbGJhY2sgZm9yIGBvbkNhY2hlRW50cnlgLCBjYWxsIGl0IHdpdGggdGhlIGNhY2hlIGVudHJ5XG4gICAgICAgICAgICAvLyBhbmQgdGhlIHJldmFsaWRhdGUgb3B0aW9ucy5cbiAgICAgICAgICAgIGNvbnN0IG9uQ2FjaGVFbnRyeSA9IGdldFJlcXVlc3RNZXRhKHJlcSwgJ29uQ2FjaGVFbnRyeScpO1xuICAgICAgICAgICAgaWYgKG9uQ2FjaGVFbnRyeSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbmlzaGVkID0gYXdhaXQgb25DYWNoZUVudHJ5KHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY2FjaGVFbnRyeSxcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogcmVtb3ZlIHRoaXMgd2hlbiB1cHN0cmVhbSBkb2Vzbid0XG4gICAgICAgICAgICAgICAgICAgIC8vIGFsd2F5cyBleHBlY3QgdGhpcyB2YWx1ZSB0byBiZSBcIlBBR0VcIlxuICAgICAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY2FjaGVFbnRyeS52YWx1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGtpbmQ6ICdQQUdFJ1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwge1xuICAgICAgICAgICAgICAgICAgICB1cmw6IGdldFJlcXVlc3RNZXRhKHJlcSwgJ2luaXRVUkwnKVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGlmIChmaW5pc2hlZCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiBtYXliZSB3ZSBoYXZlIHRvIGVuZCB0aGUgcmVxdWVzdD9cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgdGhlIHJlcXVlc3QgaGFzIGEgcG9zdHBvbmVkIHN0YXRlIGFuZCBpdCdzIGEgcmVzdW1lIHJlcXVlc3Qgd2VcbiAgICAgICAgICAgIC8vIHNob3VsZCBlcnJvci5cbiAgICAgICAgICAgIGlmIChkaWRQb3N0cG9uZSAmJiBtaW5pbWFsUG9zdHBvbmVkKSB7XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignSW52YXJpYW50OiBwb3N0cG9uZWQgc3RhdGUgc2hvdWxkIG5vdCBiZSBwcmVzZW50IG9uIGEgcmVzdW1lIHJlcXVlc3QnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUzOTZcIixcbiAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKGNhY2hlZERhdGEuaGVhZGVycykge1xuICAgICAgICAgICAgICAgIGNvbnN0IGhlYWRlcnMgPSB7XG4gICAgICAgICAgICAgICAgICAgIC4uLmNhY2hlZERhdGEuaGVhZGVyc1xuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgaWYgKCFtaW5pbWFsTW9kZSB8fCAhaXNTU0cpIHtcbiAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGhlYWRlcnNbTkVYVF9DQUNIRV9UQUdTX0hFQURFUl07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGZvciAobGV0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyhoZWFkZXJzKSl7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHYgb2YgdmFsdWUpe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRIZWFkZXIoa2V5LCB2KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZSA9IHZhbHVlLnRvU3RyaW5nKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuYXBwZW5kSGVhZGVyKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmFwcGVuZEhlYWRlcihrZXksIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIEFkZCB0aGUgY2FjaGUgdGFncyBoZWFkZXIgdG8gdGhlIHJlc3BvbnNlIGlmIGl0IGV4aXN0cyBhbmQgd2UncmUgaW5cbiAgICAgICAgICAgIC8vIG1pbmltYWwgbW9kZSB3aGlsZSByZW5kZXJpbmcgYSBzdGF0aWMgcGFnZS5cbiAgICAgICAgICAgIGNvbnN0IHRhZ3MgPSAoX2NhY2hlZERhdGFfaGVhZGVycyA9IGNhY2hlZERhdGEuaGVhZGVycykgPT0gbnVsbCA/IHZvaWQgMCA6IF9jYWNoZWREYXRhX2hlYWRlcnNbTkVYVF9DQUNIRV9UQUdTX0hFQURFUl07XG4gICAgICAgICAgICBpZiAobWluaW1hbE1vZGUgJiYgaXNTU0cgJiYgdGFncyAmJiB0eXBlb2YgdGFncyA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKE5FWFRfQ0FDSEVfVEFHU19IRUFERVIsIHRhZ3MpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgdGhlIHJlcXVlc3QgaXMgYSBkYXRhIHJlcXVlc3QsIHRoZW4gd2Ugc2hvdWxkbid0IHNldCB0aGUgc3RhdHVzIGNvZGVcbiAgICAgICAgICAgIC8vIGZyb20gdGhlIHJlc3BvbnNlIGJlY2F1c2UgaXQgc2hvdWxkIGFsd2F5cyBiZSAyMDAuIFRoaXMgc2hvdWxkIGJlIGdhdGVkXG4gICAgICAgICAgICAvLyBiZWhpbmQgdGhlIGV4cGVyaW1lbnRhbCBQUFIgZmxhZy5cbiAgICAgICAgICAgIGlmIChjYWNoZWREYXRhLnN0YXR1cyAmJiAoIWlzUlNDUmVxdWVzdCB8fCAhaXNSb3V0ZVBQUkVuYWJsZWQpKSB7XG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSBjYWNoZWREYXRhLnN0YXR1cztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFJlZGlyZWN0IGluZm9ybWF0aW9uIGlzIGVuY29kZWQgaW4gUlNDIHBheWxvYWQsIHNvIHdlIGRvbid0IG5lZWQgdG8gdXNlIHJlZGlyZWN0IHN0YXR1cyBjb2Rlc1xuICAgICAgICAgICAgaWYgKCFtaW5pbWFsTW9kZSAmJiBjYWNoZWREYXRhLnN0YXR1cyAmJiBSZWRpcmVjdFN0YXR1c0NvZGVbY2FjaGVkRGF0YS5zdGF0dXNdICYmIGlzUlNDUmVxdWVzdCkge1xuICAgICAgICAgICAgICAgIHJlcy5zdGF0dXNDb2RlID0gMjAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gTWFyayB0aGF0IHRoZSByZXF1ZXN0IGRpZCBwb3N0cG9uZS5cbiAgICAgICAgICAgIGlmIChkaWRQb3N0cG9uZSkge1xuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSLCAnMScpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gd2UgZG9uJ3QgZ28gdGhyb3VnaCB0aGlzIGJsb2NrIHdoZW4gcHJldmlldyBtb2RlIGlzIHRydWVcbiAgICAgICAgICAgIC8vIGFzIHByZXZpZXcgbW9kZSBpcyBhIGR5bmFtaWMgcmVxdWVzdCAoYnlwYXNzZXMgY2FjaGUpIGFuZCBkb2Vzbid0XG4gICAgICAgICAgICAvLyBnZW5lcmF0ZSBib3RoIEhUTUwgYW5kIHBheWxvYWRzIGluIHRoZSBzYW1lIHJlcXVlc3Qgc28gY29udGludWUgdG8ganVzdFxuICAgICAgICAgICAgLy8gcmV0dXJuIHRoZSBnZW5lcmF0ZWQgcGF5bG9hZFxuICAgICAgICAgICAgaWYgKGlzUlNDUmVxdWVzdCAmJiAhaXNEcmFmdE1vZGUpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgZHluYW1pYyBSU0MgcmVxdWVzdCwgdGhlbiBzdHJlYW0gdGhlIHJlc3BvbnNlLlxuICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgY2FjaGVkRGF0YS5yc2NEYXRhID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY2FjaGVkRGF0YS5wb3N0cG9uZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ludmFyaWFudDogRXhwZWN0ZWQgcG9zdHBvbmVkIHRvIGJlIHVuZGVmaW5lZCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMzcyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2VuZFJlbmRlclJlc3VsdCh7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAncnNjJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlRXRhZ3M6IG5leHRDb25maWcuZ2VuZXJhdGVFdGFncyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBvd2VyZWRCeUhlYWRlcjogbmV4dENvbmZpZy5wb3dlcmVkQnlIZWFkZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IGNhY2hlZERhdGEuaHRtbCxcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIER5bmFtaWMgUlNDIHJlc3BvbnNlcyBjYW5ub3QgYmUgY2FjaGVkLCBldmVuIGlmIHRoZXkncmVcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGNvbmZpZ3VyZWQgd2l0aCBgZm9yY2Utc3RhdGljYCBiZWNhdXNlIHdlIGhhdmUgbm8gd2F5IG9mXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBkaXN0aW5ndWlzaGluZyBiZXR3ZWVuIGBmb3JjZS1zdGF0aWNgIGFuZCBwYWdlcyB0aGF0IGhhdmUgbm9cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHBvc3Rwb25lZCBzdGF0ZS5cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IGRpc3Rpbmd1aXNoIGBmb3JjZS1zdGF0aWNgIGZyb20gcGFnZXMgd2l0aCBubyBwb3N0cG9uZWQgc3RhdGUgKHN0YXRpYylcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDogaXNEeW5hbWljUlNDUmVxdWVzdCA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICB9IDogY2FjaGVFbnRyeS5jYWNoZUNvbnRyb2xcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIEFzIHRoaXMgaXNuJ3QgYSBwcmVmZXRjaCByZXF1ZXN0LCB3ZSBzaG91bGQgc2VydmUgdGhlIHN0YXRpYyBmbGlnaHRcbiAgICAgICAgICAgICAgICAvLyBkYXRhLlxuICAgICAgICAgICAgICAgIHJldHVybiBzZW5kUmVuZGVyUmVzdWx0KHtcbiAgICAgICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgICAgICByZXMsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdyc2MnLFxuICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZUV0YWdzOiBuZXh0Q29uZmlnLmdlbmVyYXRlRXRhZ3MsXG4gICAgICAgICAgICAgICAgICAgIHBvd2VyZWRCeUhlYWRlcjogbmV4dENvbmZpZy5wb3dlcmVkQnlIZWFkZXIsXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdDogUmVuZGVyUmVzdWx0LmZyb21TdGF0aWMoY2FjaGVkRGF0YS5yc2NEYXRhKSxcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiBjYWNoZUVudHJ5LmNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVGhpcyBpcyBhIHJlcXVlc3QgZm9yIEhUTUwgZGF0YS5cbiAgICAgICAgICAgIGxldCBib2R5ID0gY2FjaGVkRGF0YS5odG1sO1xuICAgICAgICAgICAgLy8gSWYgdGhlcmUncyBubyBwb3N0cG9uZWQgc3RhdGUsIHdlIHNob3VsZCBqdXN0IHNlcnZlIHRoZSBIVE1MLiBUaGlzXG4gICAgICAgICAgICAvLyBzaG91bGQgYWxzbyBiZSB0aGUgY2FzZSBmb3IgYSByZXN1bWUgcmVxdWVzdCBiZWNhdXNlIGl0J3MgY29tcGxldGVkXG4gICAgICAgICAgICAvLyBhcyBhIHNlcnZlciByZW5kZXIgKHJhdGhlciB0aGFuIGEgc3RhdGljIHJlbmRlcikuXG4gICAgICAgICAgICBpZiAoIWRpZFBvc3Rwb25lIHx8IG1pbmltYWxNb2RlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbmRSZW5kZXJSZXN1bHQoe1xuICAgICAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ2h0bWwnLFxuICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZUV0YWdzOiBuZXh0Q29uZmlnLmdlbmVyYXRlRXRhZ3MsXG4gICAgICAgICAgICAgICAgICAgIHBvd2VyZWRCeUhlYWRlcjogbmV4dENvbmZpZy5wb3dlcmVkQnlIZWFkZXIsXG4gICAgICAgICAgICAgICAgICAgIHJlc3VsdDogYm9keSxcbiAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiBjYWNoZUVudHJ5LmNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gSWYgd2UncmUgZGVidWdnaW5nIHRoZSBzdGF0aWMgc2hlbGwgb3IgdGhlIGR5bmFtaWMgQVBJIGFjY2Vzc2VzLCB3ZVxuICAgICAgICAgICAgLy8gc2hvdWxkIGp1c3Qgc2VydmUgdGhlIEhUTUwgd2l0aG91dCByZXN1bWluZyB0aGUgcmVuZGVyLiBUaGUgcmV0dXJuZWRcbiAgICAgICAgICAgIC8vIEhUTUwgd2lsbCBiZSB0aGUgc3RhdGljIHNoZWxsIHNvIGFsbCB0aGUgRHluYW1pYyBBUEkncyB3aWxsIGJlIHVzZWRcbiAgICAgICAgICAgIC8vIGR1cmluZyBzdGF0aWMgZ2VuZXJhdGlvbi5cbiAgICAgICAgICAgIGlmIChpc0RlYnVnU3RhdGljU2hlbGwgfHwgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3Nlcykge1xuICAgICAgICAgICAgICAgIC8vIFNpbmNlIHdlJ3JlIG5vdCByZXN1bWluZyB0aGUgcmVuZGVyLCB3ZSBuZWVkIHRvIGF0IGxlYXN0IGFkZCB0aGVcbiAgICAgICAgICAgICAgICAvLyBjbG9zaW5nIGJvZHkgYW5kIGh0bWwgdGFncyB0byBjcmVhdGUgdmFsaWQgSFRNTC5cbiAgICAgICAgICAgICAgICBib2R5LmNoYWluKG5ldyBSZWFkYWJsZVN0cmVhbSh7XG4gICAgICAgICAgICAgICAgICAgIHN0YXJ0IChjb250cm9sbGVyKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb250cm9sbGVyLmVucXVldWUoRU5DT0RFRF9UQUdTLkNMT1NFRC5CT0RZX0FORF9IVE1MKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VuZFJlbmRlclJlc3VsdCh7XG4gICAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgICAgcmVzLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaHRtbCcsXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlRXRhZ3M6IG5leHRDb25maWcuZ2VuZXJhdGVFdGFncyxcbiAgICAgICAgICAgICAgICAgICAgcG93ZXJlZEJ5SGVhZGVyOiBuZXh0Q29uZmlnLnBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBib2R5LFxuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICBleHBpcmU6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUaGlzIHJlcXVlc3QgaGFzIHBvc3Rwb25lZCwgc28gbGV0J3MgY3JlYXRlIGEgbmV3IHRyYW5zZm9ybWVyIHRoYXQgdGhlXG4gICAgICAgICAgICAvLyBkeW5hbWljIGRhdGEgY2FuIHBpcGUgdG8gdGhhdCB3aWxsIGF0dGFjaCB0aGUgZHluYW1pYyBkYXRhIHRvIHRoZSBlbmRcbiAgICAgICAgICAgIC8vIG9mIHRoZSByZXNwb25zZS5cbiAgICAgICAgICAgIGNvbnN0IHRyYW5zZm9ybWVyID0gbmV3IFRyYW5zZm9ybVN0cmVhbSgpO1xuICAgICAgICAgICAgYm9keS5jaGFpbih0cmFuc2Zvcm1lci5yZWFkYWJsZSk7XG4gICAgICAgICAgICAvLyBQZXJmb3JtIHRoZSByZW5kZXIgYWdhaW4sIGJ1dCB0aGlzIHRpbWUsIHByb3ZpZGUgdGhlIHBvc3Rwb25lZCBzdGF0ZS5cbiAgICAgICAgICAgIC8vIFdlIGRvbid0IGF3YWl0IGJlY2F1c2Ugd2Ugd2FudCB0aGUgcmVzdWx0IHRvIHN0YXJ0IHN0cmVhbWluZyBub3csIGFuZFxuICAgICAgICAgICAgLy8gd2UndmUgYWxyZWFkeSBjaGFpbmVkIHRoZSB0cmFuc2Zvcm1lcidzIHJlYWRhYmxlIHRvIHRoZSByZW5kZXIgcmVzdWx0LlxuICAgICAgICAgICAgZG9SZW5kZXIoe1xuICAgICAgICAgICAgICAgIHNwYW4sXG4gICAgICAgICAgICAgICAgcG9zdHBvbmVkOiBjYWNoZWREYXRhLnBvc3Rwb25lZCxcbiAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIGEgcmVzdW1lIHJlbmRlciwgbm90IGEgZmFsbGJhY2sgcmVuZGVyLCBzbyB3ZSBkb24ndCBuZWVkIHRvXG4gICAgICAgICAgICAgICAgLy8gc2V0IHRoaXMuXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tSb3V0ZVBhcmFtczogbnVsbFxuICAgICAgICAgICAgfSkudGhlbihhc3luYyAocmVzdWx0KT0+e1xuICAgICAgICAgICAgICAgIHZhciBfcmVzdWx0X3ZhbHVlO1xuICAgICAgICAgICAgICAgIGlmICghcmVzdWx0KSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ludmFyaWFudDogZXhwZWN0ZWQgYSByZXN1bHQgdG8gYmUgcmV0dXJuZWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNDYzXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKCgoX3Jlc3VsdF92YWx1ZSA9IHJlc3VsdC52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXN1bHRfdmFsdWUua2luZCkgIT09IENhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSkge1xuICAgICAgICAgICAgICAgICAgICB2YXIgX3Jlc3VsdF92YWx1ZTE7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoYEludmFyaWFudDogZXhwZWN0ZWQgYSBwYWdlIHJlc3BvbnNlLCBnb3QgJHsoX3Jlc3VsdF92YWx1ZTEgPSByZXN1bHQudmFsdWUpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzdWx0X3ZhbHVlMS5raW5kfWApLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUzMDVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBQaXBlIHRoZSByZXN1bWUgcmVzdWx0IHRvIHRoZSB0cmFuc2Zvcm1lci5cbiAgICAgICAgICAgICAgICBhd2FpdCByZXN1bHQudmFsdWUuaHRtbC5waXBlVG8odHJhbnNmb3JtZXIud3JpdGFibGUpO1xuICAgICAgICAgICAgfSkuY2F0Y2goKGVycik9PntcbiAgICAgICAgICAgICAgICAvLyBBbiBlcnJvciBvY2N1cnJlZCBkdXJpbmcgcGlwaW5nIG9yIHByZXBhcmluZyB0aGUgcmVuZGVyLCBhYm9ydFxuICAgICAgICAgICAgICAgIC8vIHRoZSB0cmFuc2Zvcm1lcnMgd3JpdGVyIHNvIHdlIGNhbiB0ZXJtaW5hdGUgdGhlIHN0cmVhbS5cbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1lci53cml0YWJsZS5hYm9ydChlcnIpLmNhdGNoKChlKT0+e1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKFwiY291bGRuJ3QgYWJvcnQgdHJhbnNmb3JtZXJcIiwgZSk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiBzZW5kUmVuZGVyUmVzdWx0KHtcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgcmVzLFxuICAgICAgICAgICAgICAgIHR5cGU6ICdodG1sJyxcbiAgICAgICAgICAgICAgICBnZW5lcmF0ZUV0YWdzOiBuZXh0Q29uZmlnLmdlbmVyYXRlRXRhZ3MsXG4gICAgICAgICAgICAgICAgcG93ZXJlZEJ5SGVhZGVyOiBuZXh0Q29uZmlnLnBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICByZXN1bHQ6IGJvZHksXG4gICAgICAgICAgICAgICAgLy8gV2UgZG9uJ3Qgd2FudCB0byBjYWNoZSB0aGUgcmVzcG9uc2UgaWYgaXQgaGFzIHBvc3Rwb25lZCBkYXRhIGJlY2F1c2VcbiAgICAgICAgICAgICAgICAvLyB0aGUgcmVzcG9uc2UgYmVpbmcgc2VudCB0byB0aGUgY2xpZW50IGl0J3MgZHluYW1pYyBwYXJ0cyBhcmUgc3RyZWFtZWRcbiAgICAgICAgICAgICAgICAvLyB0byB0aGUgY2xpZW50IG9uIHRoZSBzYW1lIHJlcXVlc3QuXG4gICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIC8vIFRPRE86IGFjdGl2ZVNwYW4gY29kZSBwYXRoIGlzIGZvciB3aGVuIHdyYXBwZWQgYnlcbiAgICAgICAgLy8gbmV4dC1zZXJ2ZXIgY2FuIGJlIHJlbW92ZWQgd2hlbiB0aGlzIGlzIG5vIGxvbmdlciB1c2VkXG4gICAgICAgIGlmIChhY3RpdmVTcGFuKSB7XG4gICAgICAgICAgICBhd2FpdCBoYW5kbGVSZXNwb25zZShhY3RpdmVTcGFuKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBhd2FpdCB0cmFjZXIud2l0aFByb3BhZ2F0ZWRDb250ZXh0KHJlcS5oZWFkZXJzLCAoKT0+dHJhY2VyLnRyYWNlKEJhc2VTZXJ2ZXJTcGFuLmhhbmRsZVJlcXVlc3QsIHtcbiAgICAgICAgICAgICAgICAgICAgc3Bhbk5hbWU6IGAke21ldGhvZH0gJHtyZXEudXJsfWAsXG4gICAgICAgICAgICAgICAgICAgIGtpbmQ6IFNwYW5LaW5kLlNFUlZFUixcbiAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAubWV0aG9kJzogbWV0aG9kLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAudGFyZ2V0JzogcmVxLnVybFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSwgaGFuZGxlUmVzcG9uc2UpKTtcbiAgICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBpZiB3ZSBhcmVuJ3Qgd3JhcHBlZCBieSBiYXNlLXNlcnZlciBoYW5kbGUgaGVyZVxuICAgICAgICBpZiAoIWFjdGl2ZVNwYW4gJiYgIShlcnIgaW5zdGFuY2VvZiBOb0ZhbGxiYWNrRXJyb3IpKSB7XG4gICAgICAgICAgICBhd2FpdCByb3V0ZU1vZHVsZS5vblJlcXVlc3RFcnJvcihyZXEsIGVyciwge1xuICAgICAgICAgICAgICAgIHJvdXRlcktpbmQ6ICdBcHAgUm91dGVyJyxcbiAgICAgICAgICAgICAgICByb3V0ZVBhdGg6IHNyY1BhZ2UsXG4gICAgICAgICAgICAgICAgcm91dGVUeXBlOiAncmVuZGVyJyxcbiAgICAgICAgICAgICAgICByZXZhbGlkYXRlUmVhc29uOiBnZXRSZXZhbGlkYXRlUmVhc29uKHtcbiAgICAgICAgICAgICAgICAgICAgaXNSZXZhbGlkYXRlOiBpc1NTRyxcbiAgICAgICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGVcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgfSwgcm91dGVyU2VydmVyQ29udGV4dCk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gcmV0aHJvdyBzbyB0aGF0IHdlIGNhbiBoYW5kbGUgc2VydmluZyBlcnJvciBwYWdlXG4gICAgICAgIHRocm93IGVycjtcbiAgICB9XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1wYWdlLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-not-found.js&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
+/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
+ \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-page.js */ \"(rsc)/./node_modules/next/dist/client/components/client-page.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-segment.js */ \"(rsc)/./node_modules/next/dist/client/components/client-segment.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js */ \"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(rsc)/./node_modules/next/dist/client/components/layout-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/metadata/async-metadata.js */ \"(rsc)/./node_modules/next/dist/client/components/metadata/async-metadata.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/metadata/metadata-boundary.js */ \"(rsc)/./node_modules/next/dist/client/components/metadata/metadata-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/lib/metadata/generate/icon-mark.js */ \"(rsc)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js */ \"(rsc)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmNsaWVudC1wYWdlLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmNsaWVudC1zZWdtZW50LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmh0dHAtYWNjZXNzLWZhbGxiYWNrJTJGZXJyb3ItYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbGF5b3V0LXJvdXRlci5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZtZXRhZGF0YSUyRmFzeW5jLW1ldGFkYXRhLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRm1ldGFkYXRhJTJGbWV0YWRhdGEtYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmxpYiUyRm1ldGFkYXRhJTJGZ2VuZXJhdGUlMkZpY29uLW1hcmsuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZuZXh0LWRldnRvb2xzJTJGdXNlcnNwYWNlJTJGYXBwJTJGc2VnbWVudC1leHBsb3Jlci1ub2RlLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSxvT0FBeUk7QUFDekk7QUFDQSwwT0FBNEk7QUFDNUk7QUFDQSxvUkFBaUs7QUFDaks7QUFDQSx3T0FBMkk7QUFDM0k7QUFDQSw0UEFBcUo7QUFDcko7QUFDQSxrUUFBd0o7QUFDeEo7QUFDQSxzUUFBMEo7QUFDMUo7QUFDQSx3T0FBMkk7QUFDM0k7QUFDQSw0UUFBNkoiLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXBhZ2UuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXNlZ21lbnQuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvaHR0cC1hY2Nlc3MtZmFsbGJhY2svZXJyb3ItYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbGF5b3V0LXJvdXRlci5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9tZXRhZGF0YS9hc3luYy1tZXRhZGF0YS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9tZXRhZGF0YS9tZXRhZGF0YS1ib3VuZGFyeS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29uLW1hcmsuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3NlZ21lbnQtZXhwbG9yZXItbm9kZS5qc1wiKTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobal-error.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
+/*!*****************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobal-error.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
+ \*****************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/global-error.tsx */ \"(rsc)/./src/app/global-error.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRnNyYyUyRmFwcCUyRmdsb2JhbC1lcnJvci50c3glMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLGdLQUEwRyIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2FwcC9nbG9iYWwtZXJyb3IudHN4XCIpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobal-error.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-dmserif%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22dmserif%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FBentham-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-bentham%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22bentham%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-rajdhani%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22rajdhani%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-share%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22share%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-MediumItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-BoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-kanit%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22kanit%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FFooter.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FNavigation.tsx%22%2C%22ids%22%3A%5B%22Navigation%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FProviders.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FTrackingOptOutBanner.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=true!":
+/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-dmserif%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22dmserif%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FBentham-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-bentham%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22bentham%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-rajdhani%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22rajdhani%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-share%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22share%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-MediumItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-BoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-kanit%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22kanit%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FFooter.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FNavigation.tsx%22%2C%22ids%22%3A%5B%22Navigation%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FProviders.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FTrackingOptOutBanner.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=true! ***!
+ \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/Footer.tsx */ \"(rsc)/./src/components/Footer.tsx\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/Navigation.tsx */ \"(rsc)/./src/components/Navigation.tsx\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/Providers.tsx */ \"(rsc)/./src/components/Providers.tsx\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/TrackingOptOutBanner.tsx */ \"(rsc)/./src/components/TrackingOptOutBanner.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRnNyYyUyRmFwcCUyRmdsb2JhbHMuY3NzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZmb250JTJGbG9jYWwlMkZ0YXJnZXQuY3NzJTNGJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMnNyYyUyRmFwcCUyRmxheW91dC50c3glNUMlMjIlMkMlNUMlMjJpbXBvcnQlNUMlMjIlM0ElNUMlMjIlNUMlMjIlMkMlNUMlMjJhcmd1bWVudHMlNUMlMjIlM0ElNUIlN0IlNUMlMjJzcmMlNUMlMjIlM0ElNUIlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRkRNU2VyaWZUZXh0LVJlZ3VsYXIudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNDAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlMkMlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRkRNU2VyaWZUZXh0LUl0YWxpYy50dGYlNUMlMjIlMkMlNUMlMjJ3ZWlnaHQlNUMlMjIlM0ElNUMlMjI0MDAlNUMlMjIlMkMlNUMlMjJzdHlsZSU1QyUyMiUzQSU1QyUyMml0YWxpYyU1QyUyMiU3RCU1RCUyQyU1QyUyMnZhcmlhYmxlJTVDJTIyJTNBJTVDJTIyLS1mb250LWRtc2VyaWYlNUMlMjIlMkMlNUMlMjJkaXNwbGF5JTVDJTIyJTNBJTVDJTIyc3dhcCU1QyUyMiU3RCU1RCUyQyU1QyUyMnZhcmlhYmxlTmFtZSU1QyUyMiUzQSU1QyUyMmRtc2VyaWYlNUMlMjIlN0QlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmZvbnQlMkZsb2NhbCUyRnRhcmdldC5jc3MlM0YlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyc3JjJTJGYXBwJTJGbGF5b3V0LnRzeCU1QyUyMiUyQyU1QyUyMmltcG9ydCU1QyUyMiUzQSU1QyUyMiU1QyUyMiUyQyU1QyUyMmFyZ3VtZW50cyU1QyUyMiUzQSU1QiU3QiU1QyUyMnNyYyU1QyUyMiUzQSU1QiU3QiU1QyUyMnBhdGglNUMlMjIlM0ElNUMlMjIuLiUyRmZvbnRzJTJGQmVudGhhbS1SZWd1bGFyLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjQwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTVEJTJDJTVDJTIydmFyaWFibGUlNUMlMjIlM0ElNUMlMjItLWZvbnQtYmVudGhhbSU1QyUyMiUyQyU1QyUyMmRpc3BsYXklNUMlMjIlM0ElNUMlMjJzd2FwJTVDJTIyJTdEJTVEJTJDJTVDJTIydmFyaWFibGVOYW1lJTVDJTIyJTNBJTVDJTIyYmVudGhhbSU1QyUyMiU3RCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZm9udCUyRmxvY2FsJTJGdGFyZ2V0LmNzcyUzRiU3QiU1QyUyMnBhdGglNUMlMjIlM0ElNUMlMjJzcmMlMkZhcHAlMkZsYXlvdXQudHN4JTVDJTIyJTJDJTVDJTIyaW1wb3J0JTVDJTIyJTNBJTVDJTIyJTVDJTIyJTJDJTVDJTIyYXJndW1lbnRzJTVDJTIyJTNBJTVCJTdCJTVDJTIyc3JjJTVDJTIyJTNBJTVCJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZSYWpkaGFuaSUyRlJhamRoYW5pLVJlZ3VsYXIudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNDAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlMkMlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRlJhamRoYW5pJTJGUmFqZGhhbmktTWVkaXVtLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjUwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZSYWpkaGFuaSUyRlJhamRoYW5pLVNlbWlCb2xkLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjYwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZSYWpkaGFuaSUyRlJhamRoYW5pLUJvbGQudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNzAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlNUQlMkMlNUMlMjJ2YXJpYWJsZSU1QyUyMiUzQSU1QyUyMi0tZm9udC1yYWpkaGFuaSU1QyUyMiUyQyU1QyUyMmRpc3BsYXklNUMlMjIlM0ElNUMlMjJzd2FwJTVDJTIyJTdEJTVEJTJDJTVDJTIydmFyaWFibGVOYW1lJTVDJTIyJTNBJTVDJTIycmFqZGhhbmklNUMlMjIlN0QlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmZvbnQlMkZsb2NhbCUyRnRhcmdldC5jc3MlM0YlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyc3JjJTJGYXBwJTJGbGF5b3V0LnRzeCU1QyUyMiUyQyU1QyUyMmltcG9ydCU1QyUyMiUzQSU1QyUyMiU1QyUyMiUyQyU1QyUyMmFyZ3VtZW50cyU1QyUyMiUzQSU1QiU3QiU1QyUyMnNyYyU1QyUyMiUzQSU1QiU3QiU1QyUyMnBhdGglNUMlMjIlM0ElNUMlMjIuLiUyRmZvbnRzJTJGU2hhcmUlMkZTaGFyZS1SZWd1bGFyLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjQwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZTaGFyZSUyRlNoYXJlLUJvbGQudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNzAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlNUQlMkMlNUMlMjJ2YXJpYWJsZSU1QyUyMiUzQSU1QyUyMi0tZm9udC1zaGFyZSU1QyUyMiUyQyU1QyUyMmRpc3BsYXklNUMlMjIlM0ElNUMlMjJzd2FwJTVDJTIyJTdEJTVEJTJDJTVDJTIydmFyaWFibGVOYW1lJTVDJTIyJTNBJTVDJTIyc2hhcmUlNUMlMjIlN0QlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmZvbnQlMkZsb2NhbCUyRnRhcmdldC5jc3MlM0YlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyc3JjJTJGYXBwJTJGbGF5b3V0LnRzeCU1QyUyMiUyQyU1QyUyMmltcG9ydCU1QyUyMiUzQSU1QyUyMiU1QyUyMiUyQyU1QyUyMmFyZ3VtZW50cyU1QyUyMiUzQSU1QiU3QiU1QyUyMnNyYyU1QyUyMiUzQSU1QiU3QiU1QyUyMnBhdGglNUMlMjIlM0ElNUMlMjIuLiUyRmZvbnRzJTJGS2FuaXQlMkZLYW5pdC1SZWd1bGFyLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjQwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZLYW5pdCUyRkthbml0LUl0YWxpYy50dGYlNUMlMjIlMkMlNUMlMjJ3ZWlnaHQlNUMlMjIlM0ElNUMlMjI0MDAlNUMlMjIlMkMlNUMlMjJzdHlsZSU1QyUyMiUzQSU1QyUyMml0YWxpYyU1QyUyMiU3RCUyQyU3QiU1QyUyMnBhdGglNUMlMjIlM0ElNUMlMjIuLiUyRmZvbnRzJTJGS2FuaXQlMkZLYW5pdC1NZWRpdW0udHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNTAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlMkMlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRkthbml0JTJGS2FuaXQtTWVkaXVtSXRhbGljLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjUwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIyaXRhbGljJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZLYW5pdCUyRkthbml0LVNlbWlCb2xkLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjYwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZLYW5pdCUyRkthbml0LVNlbWlCb2xkSXRhbGljLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjYwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIyaXRhbGljJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZLYW5pdCUyRkthbml0LUJvbGQudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNzAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlMkMlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRkthbml0JTJGS2FuaXQtQm9sZEl0YWxpYy50dGYlNUMlMjIlMkMlNUMlMjJ3ZWlnaHQlNUMlMjIlM0ElNUMlMjI3MDAlNUMlMjIlMkMlNUMlMjJzdHlsZSU1QyUyMiUzQSU1QyUyMml0YWxpYyU1QyUyMiU3RCU1RCUyQyU1QyUyMnZhcmlhYmxlJTVDJTIyJTNBJTVDJTIyLS1mb250LWthbml0JTVDJTIyJTJDJTVDJTIyZGlzcGxheSU1QyUyMiUzQSU1QyUyMnN3YXAlNUMlMjIlN0QlNUQlMkMlNUMlMjJ2YXJpYWJsZU5hbWUlNUMlMjIlM0ElNUMlMjJrYW5pdCU1QyUyMiU3RCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZzcmMlMkZjb21wb25lbnRzJTJGRm9vdGVyLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMmRlZmF1bHQlMjIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGc3JjJTJGY29tcG9uZW50cyUyRk5hdmlnYXRpb24udHN4JTIyJTJDJTIyaWRzJTIyJTNBJTVCJTIyTmF2aWdhdGlvbiUyMiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZzcmMlMkZjb21wb25lbnRzJTJGUHJvdmlkZXJzLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMmRlZmF1bHQlMjIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGc3JjJTJGY29tcG9uZW50cyUyRlRyYWNraW5nT3B0T3V0QmFubmVyLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMmRlZmF1bHQlMjIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLGtLQUF3STtBQUN4STtBQUNBLDBLQUErSTtBQUMvSTtBQUNBLHdLQUEySTtBQUMzSTtBQUNBLDhMQUFzSiIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiZGVmYXVsdFwiXSAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL0Zvb3Rlci50c3hcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiwgd2VicGFja0V4cG9ydHM6IFtcIk5hdmlnYXRpb25cIl0gKi8gXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uLnRzeFwiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiZGVmYXVsdFwiXSAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL1Byb3ZpZGVycy50c3hcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiwgd2VicGFja0V4cG9ydHM6IFtcImRlZmF1bHRcIl0gKi8gXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy9UcmFja2luZ09wdE91dEJhbm5lci50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-dmserif%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22dmserif%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FBentham-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-bentham%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22bentham%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-rajdhani%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22rajdhani%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-share%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22share%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-MediumItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-BoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-kanit%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22kanit%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FFooter.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FNavigation.tsx%22%2C%22ids%22%3A%5B%22Navigation%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FProviders.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FTrackingOptOutBanner.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=true!\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=icon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx!./src/app/icon.svg?__next_metadata__":
+/*!*********************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=icon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx!./src/app/icon.svg?__next_metadata__ ***!
+ \*********************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/lib/metadata/get-metadata-route */ \"(rsc)/./node_modules/next/dist/lib/metadata/get-metadata-route.js\");\n/* harmony import */ var next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__);\n \n\n /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (async (props) => {\n const imageData = {\"type\":\"image/svg+xml\",\"sizes\":\"any\"}\n const imageUrl = (0,next_dist_lib_metadata_get_metadata_route__WEBPACK_IMPORTED_MODULE_0__.fillMetadataSegment)(\".\", await props.params, \"icon.svg\")\n\n return [{\n ...imageData,\n url: imageUrl + \"?042324936fe4a851\",\n }]\n });//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlci5qcz90eXBlPWljb24mc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9bWR4IS4vc3JjL2FwcC9pY29uLnN2Zz9fX25leHRfbWV0YWRhdGFfXyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxFQUFpRjs7QUFFakYsRUFBRSxpRUFBZTtBQUNqQix1QkFBdUI7QUFDdkIscUJBQXFCLDhGQUFtQjs7QUFFeEM7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvYXBwL2ljb24uc3ZnP19fbmV4dF9tZXRhZGF0YV9fIl0sInNvdXJjZXNDb250ZW50IjpbIiAgaW1wb3J0IHsgZmlsbE1ldGFkYXRhU2VnbWVudCB9IGZyb20gJ25leHQvZGlzdC9saWIvbWV0YWRhdGEvZ2V0LW1ldGFkYXRhLXJvdXRlJ1xuXG4gIGV4cG9ydCBkZWZhdWx0IGFzeW5jIChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGltYWdlRGF0YSA9IHtcInR5cGVcIjpcImltYWdlL3N2Zyt4bWxcIixcInNpemVzXCI6XCJhbnlcIn1cbiAgICBjb25zdCBpbWFnZVVybCA9IGZpbGxNZXRhZGF0YVNlZ21lbnQoXCIuXCIsIGF3YWl0IHByb3BzLnBhcmFtcywgXCJpY29uLnN2Z1wiKVxuXG4gICAgcmV0dXJuIFt7XG4gICAgICAuLi5pbWFnZURhdGEsXG4gICAgICB1cmw6IGltYWdlVXJsICsgXCI/MDQyMzI0OTM2ZmU0YTg1MVwiLFxuICAgIH1dXG4gIH0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-metadata-image-loader.js?type=icon&segment=&basePath=&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx!./src/app/icon.svg?__next_metadata__\n");
+
+/***/ }),
+
+/***/ "(rsc)/./src/app/global-error.tsx":
+/*!**********************************!*\
+ !*** ./src/app/global-error.tsx ***!
+ \**********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-server-dom-webpack/server */ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js");
+/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__);
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
+function() { throw new Error("Attempted to call the default export of \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/global-error.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component."); },
+"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/global-error.tsx",
+"default",
+));
+
+
+/***/ }),
+
+/***/ "(rsc)/./src/app/globals.css":
+/*!*****************************!*\
+ !*** ./src/app/globals.css ***!
+ \*****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (\"9458bdbba95c\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvYXBwL2dsb2JhbHMuY3NzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiOTQ1OGJkYmJhOTVjXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./src/app/globals.css\n");
+
+/***/ }),
+
+/***/ "(rsc)/./src/app/layout.tsx":
+/*!****************************!*\
+ !*** ./src/app/layout.tsx ***!
+ \****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ wrappedServerComponent$1),\n/* harmony export */ generateImageMetadata: () => (/* binding */ generateImageMetadata),\n/* harmony export */ generateMetadata: () => (/* binding */ generateMetadata),\n/* harmony export */ generateViewport: () => (/* binding */ generateViewport),\n/* harmony export */ metadata: () => (/* binding */ metadata)\n/* harmony export */ });\n/* harmony import */ var next_dist_server_app_render_work_unit_async_storage_external_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/app-render/work-unit-async-storage.external.js */ \"./work-unit-async-storage.external\");\n/* harmony import */ var next_dist_server_app_render_work_unit_async_storage_external_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_work_unit_async_storage_external_js__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _lib_metadata__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/metadata */ \"(rsc)/./src/lib/metadata.ts\");\n/* harmony import */ var _globals_css__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./src/app/globals.css\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _components_Providers__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/Providers */ \"(rsc)/./src/components/Providers.tsx\");\n/* harmony import */ var _components_Navigation__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/Navigation */ \"(rsc)/./src/components/Navigation.tsx\");\n/* harmony import */ var _components_Footer__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/Footer */ \"(rsc)/./src/components/Footer.tsx\");\n/* harmony import */ var _components_TrackingOptOutBanner__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/components/TrackingOptOutBanner */ \"(rsc)/./src/components/TrackingOptOutBanner.tsx\");\n/* harmony import */ var next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_DMSerifText_Regular_ttf_weight_400_style_normal_path_fonts_DMSerifText_Italic_ttf_weight_400_style_italic_variable_font_dmserif_display_swap_variableName_dmserif___WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/DMSerifText-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/DMSerifText-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"}],\"variable\":\"--font-dmserif\",\"display\":\"swap\"}],\"variableName\":\"dmserif\"} */ \"(rsc)/./node_modules/next/font/local/target.css?{\\\"path\\\":\\\"src/app/layout.tsx\\\",\\\"import\\\":\\\"\\\",\\\"arguments\\\":[{\\\"src\\\":[{\\\"path\\\":\\\"../fonts/DMSerifText-Regular.ttf\\\",\\\"weight\\\":\\\"400\\\",\\\"style\\\":\\\"normal\\\"},{\\\"path\\\":\\\"../fonts/DMSerifText-Italic.ttf\\\",\\\"weight\\\":\\\"400\\\",\\\"style\\\":\\\"italic\\\"}],\\\"variable\\\":\\\"--font-dmserif\\\",\\\"display\\\":\\\"swap\\\"}],\\\"variableName\\\":\\\"dmserif\\\"}\");\n/* harmony import */ var next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_DMSerifText_Regular_ttf_weight_400_style_normal_path_fonts_DMSerifText_Italic_ttf_weight_400_style_italic_variable_font_dmserif_display_swap_variableName_dmserif___WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_DMSerifText_Regular_ttf_weight_400_style_normal_path_fonts_DMSerifText_Italic_ttf_weight_400_style_italic_variable_font_dmserif_display_swap_variableName_dmserif___WEBPACK_IMPORTED_MODULE_9__);\n/* harmony import */ var next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Bentham_Regular_ttf_weight_400_style_normal_variable_font_bentham_display_swap_variableName_bentham___WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Bentham-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"}],\"variable\":\"--font-bentham\",\"display\":\"swap\"}],\"variableName\":\"bentham\"} */ \"(rsc)/./node_modules/next/font/local/target.css?{\\\"path\\\":\\\"src/app/layout.tsx\\\",\\\"import\\\":\\\"\\\",\\\"arguments\\\":[{\\\"src\\\":[{\\\"path\\\":\\\"../fonts/Bentham-Regular.ttf\\\",\\\"weight\\\":\\\"400\\\",\\\"style\\\":\\\"normal\\\"}],\\\"variable\\\":\\\"--font-bentham\\\",\\\"display\\\":\\\"swap\\\"}],\\\"variableName\\\":\\\"bentham\\\"}\");\n/* harmony import */ var next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Bentham_Regular_ttf_weight_400_style_normal_variable_font_bentham_display_swap_variableName_bentham___WEBPACK_IMPORTED_MODULE_10___default = /*#__PURE__*/__webpack_require__.n(next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Bentham_Regular_ttf_weight_400_style_normal_variable_font_bentham_display_swap_variableName_bentham___WEBPACK_IMPORTED_MODULE_10__);\n/* harmony import */ var next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Rajdhani_Rajdhani_Regular_ttf_weight_400_style_normal_path_fonts_Rajdhani_Rajdhani_Medium_ttf_weight_500_style_normal_path_fonts_Rajdhani_Rajdhani_SemiBold_ttf_weight_600_style_normal_path_fonts_Rajdhani_Rajdhani_Bold_ttf_weight_700_style_normal_variable_font_rajdhani_display_swap_variableName_rajdhani___WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Rajdhani/Rajdhani-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-rajdhani\",\"display\":\"swap\"}],\"variableName\":\"rajdhani\"} */ \"(rsc)/./node_modules/next/font/local/target.css?{\\\"path\\\":\\\"src/app/layout.tsx\\\",\\\"import\\\":\\\"\\\",\\\"arguments\\\":[{\\\"src\\\":[{\\\"path\\\":\\\"../fonts/Rajdhani/Rajdhani-Regular.ttf\\\",\\\"weight\\\":\\\"400\\\",\\\"style\\\":\\\"normal\\\"},{\\\"path\\\":\\\"../fonts/Rajdhani/Rajdhani-Medium.ttf\\\",\\\"weight\\\":\\\"500\\\",\\\"style\\\":\\\"normal\\\"},{\\\"path\\\":\\\"../fonts/Rajdhani/Rajdhani-SemiBold.ttf\\\",\\\"weight\\\":\\\"600\\\",\\\"style\\\":\\\"normal\\\"},{\\\"path\\\":\\\"../fonts/Rajdhani/Rajdhani-Bold.ttf\\\",\\\"weight\\\":\\\"700\\\",\\\"style\\\":\\\"normal\\\"}],\\\"variable\\\":\\\"--font-rajdhani\\\",\\\"display\\\":\\\"swap\\\"}],\\\"variableName\\\":\\\"rajdhani\\\"}\");\n/* harmony import */ var next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Rajdhani_Rajdhani_Regular_ttf_weight_400_style_normal_path_fonts_Rajdhani_Rajdhani_Medium_ttf_weight_500_style_normal_path_fonts_Rajdhani_Rajdhani_SemiBold_ttf_weight_600_style_normal_path_fonts_Rajdhani_Rajdhani_Bold_ttf_weight_700_style_normal_variable_font_rajdhani_display_swap_variableName_rajdhani___WEBPACK_IMPORTED_MODULE_11___default = /*#__PURE__*/__webpack_require__.n(next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Rajdhani_Rajdhani_Regular_ttf_weight_400_style_normal_path_fonts_Rajdhani_Rajdhani_Medium_ttf_weight_500_style_normal_path_fonts_Rajdhani_Rajdhani_SemiBold_ttf_weight_600_style_normal_path_fonts_Rajdhani_Rajdhani_Bold_ttf_weight_700_style_normal_variable_font_rajdhani_display_swap_variableName_rajdhani___WEBPACK_IMPORTED_MODULE_11__);\n/* harmony import */ var next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Share_Share_Regular_ttf_weight_400_style_normal_path_fonts_Share_Share_Bold_ttf_weight_700_style_normal_variable_font_share_display_swap_variableName_share___WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Share/Share-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Share/Share-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-share\",\"display\":\"swap\"}],\"variableName\":\"share\"} */ \"(rsc)/./node_modules/next/font/local/target.css?{\\\"path\\\":\\\"src/app/layout.tsx\\\",\\\"import\\\":\\\"\\\",\\\"arguments\\\":[{\\\"src\\\":[{\\\"path\\\":\\\"../fonts/Share/Share-Regular.ttf\\\",\\\"weight\\\":\\\"400\\\",\\\"style\\\":\\\"normal\\\"},{\\\"path\\\":\\\"../fonts/Share/Share-Bold.ttf\\\",\\\"weight\\\":\\\"700\\\",\\\"style\\\":\\\"normal\\\"}],\\\"variable\\\":\\\"--font-share\\\",\\\"display\\\":\\\"swap\\\"}],\\\"variableName\\\":\\\"share\\\"}\");\n/* harmony import */ var next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Share_Share_Regular_ttf_weight_400_style_normal_path_fonts_Share_Share_Bold_ttf_weight_700_style_normal_variable_font_share_display_swap_variableName_share___WEBPACK_IMPORTED_MODULE_12___default = /*#__PURE__*/__webpack_require__.n(next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Share_Share_Regular_ttf_weight_400_style_normal_path_fonts_Share_Share_Bold_ttf_weight_700_style_normal_variable_font_share_display_swap_variableName_share___WEBPACK_IMPORTED_MODULE_12__);\n/* harmony import */ var next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Kanit_Kanit_Regular_ttf_weight_400_style_normal_path_fonts_Kanit_Kanit_Italic_ttf_weight_400_style_italic_path_fonts_Kanit_Kanit_Medium_ttf_weight_500_style_normal_path_fonts_Kanit_Kanit_MediumItalic_ttf_weight_500_style_italic_path_fonts_Kanit_Kanit_SemiBold_ttf_weight_600_style_normal_path_fonts_Kanit_Kanit_SemiBoldItalic_ttf_weight_600_style_italic_path_fonts_Kanit_Kanit_Bold_ttf_weight_700_style_normal_path_fonts_Kanit_Kanit_BoldItalic_ttf_weight_700_style_italic_variable_font_kanit_display_swap_variableName_kanit___WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Kanit/Kanit-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-MediumItalic.ttf\",\"weight\":\"500\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBoldItalic.ttf\",\"weight\":\"600\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-BoldItalic.ttf\",\"weight\":\"700\",\"style\":\"italic\"}],\"variable\":\"--font-kanit\",\"display\":\"swap\"}],\"variableName\":\"kanit\"} */ \"(rsc)/./node_modules/next/font/local/target.css?{\\\"path\\\":\\\"src/app/layout.tsx\\\",\\\"import\\\":\\\"\\\",\\\"arguments\\\":[{\\\"src\\\":[{\\\"path\\\":\\\"../fonts/Kanit/Kanit-Regular.ttf\\\",\\\"weight\\\":\\\"400\\\",\\\"style\\\":\\\"normal\\\"},{\\\"path\\\":\\\"../fonts/Kanit/Kanit-Italic.ttf\\\",\\\"weight\\\":\\\"400\\\",\\\"style\\\":\\\"italic\\\"},{\\\"path\\\":\\\"../fonts/Kanit/Kanit-Medium.ttf\\\",\\\"weight\\\":\\\"500\\\",\\\"style\\\":\\\"normal\\\"},{\\\"path\\\":\\\"../fonts/Kanit/Kanit-MediumItalic.ttf\\\",\\\"weight\\\":\\\"500\\\",\\\"style\\\":\\\"italic\\\"},{\\\"path\\\":\\\"../fonts/Kanit/Kanit-SemiBold.ttf\\\",\\\"weight\\\":\\\"600\\\",\\\"style\\\":\\\"normal\\\"},{\\\"path\\\":\\\"../fonts/Kanit/Kanit-SemiBoldItalic.ttf\\\",\\\"weight\\\":\\\"600\\\",\\\"style\\\":\\\"italic\\\"},{\\\"path\\\":\\\"../fonts/Kanit/Kanit-Bold.ttf\\\",\\\"weight\\\":\\\"700\\\",\\\"style\\\":\\\"normal\\\"},{\\\"path\\\":\\\"../fonts/Kanit/Kanit-BoldItalic.ttf\\\",\\\"weight\\\":\\\"700\\\",\\\"style\\\":\\\"italic\\\"}],\\\"variable\\\":\\\"--font-kanit\\\",\\\"display\\\":\\\"swap\\\"}],\\\"variableName\\\":\\\"kanit\\\"}\");\n/* harmony import */ var next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Kanit_Kanit_Regular_ttf_weight_400_style_normal_path_fonts_Kanit_Kanit_Italic_ttf_weight_400_style_italic_path_fonts_Kanit_Kanit_Medium_ttf_weight_500_style_normal_path_fonts_Kanit_Kanit_MediumItalic_ttf_weight_500_style_italic_path_fonts_Kanit_Kanit_SemiBold_ttf_weight_600_style_normal_path_fonts_Kanit_Kanit_SemiBoldItalic_ttf_weight_600_style_italic_path_fonts_Kanit_Kanit_Bold_ttf_weight_700_style_normal_path_fonts_Kanit_Kanit_BoldItalic_ttf_weight_700_style_italic_variable_font_kanit_display_swap_variableName_kanit___WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Kanit_Kanit_Regular_ttf_weight_400_style_normal_path_fonts_Kanit_Kanit_Italic_ttf_weight_400_style_italic_path_fonts_Kanit_Kanit_Medium_ttf_weight_500_style_normal_path_fonts_Kanit_Kanit_MediumItalic_ttf_weight_500_style_italic_path_fonts_Kanit_Kanit_SemiBold_ttf_weight_600_style_normal_path_fonts_Kanit_Kanit_SemiBoldItalic_ttf_weight_600_style_italic_path_fonts_Kanit_Kanit_Bold_ttf_weight_700_style_normal_path_fonts_Kanit_Kanit_BoldItalic_ttf_weight_700_style_italic_variable_font_kanit_display_swap_variableName_kanit___WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var _sentry_nextjs__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! @sentry/nextjs */ \"(rsc)/./node_modules/@sentry/nextjs/build/cjs/index.server.js\");\n/* harmony import */ var _sentry_nextjs__WEBPACK_IMPORTED_MODULE_14___default = /*#__PURE__*/__webpack_require__.n(_sentry_nextjs__WEBPACK_IMPORTED_MODULE_14__);\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nconst metadata = _lib_metadata__WEBPACK_IMPORTED_MODULE_2__.baseMetadata;\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"html\", {\n lang: \"en\",\n className: \"dark\",\n suppressHydrationWarning: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"body\", {\n className: `${(next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_DMSerifText_Regular_ttf_weight_400_style_normal_path_fonts_DMSerifText_Italic_ttf_weight_400_style_italic_variable_font_dmserif_display_swap_variableName_dmserif___WEBPACK_IMPORTED_MODULE_9___default().variable)} ${(next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Bentham_Regular_ttf_weight_400_style_normal_variable_font_bentham_display_swap_variableName_bentham___WEBPACK_IMPORTED_MODULE_10___default().variable)} ${(next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Rajdhani_Rajdhani_Regular_ttf_weight_400_style_normal_path_fonts_Rajdhani_Rajdhani_Medium_ttf_weight_500_style_normal_path_fonts_Rajdhani_Rajdhani_SemiBold_ttf_weight_600_style_normal_path_fonts_Rajdhani_Rajdhani_Bold_ttf_weight_700_style_normal_variable_font_rajdhani_display_swap_variableName_rajdhani___WEBPACK_IMPORTED_MODULE_11___default().variable)} ${(next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Share_Share_Regular_ttf_weight_400_style_normal_path_fonts_Share_Share_Bold_ttf_weight_700_style_normal_variable_font_share_display_swap_variableName_share___WEBPACK_IMPORTED_MODULE_12___default().variable)} ${(next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_path_fonts_Kanit_Kanit_Regular_ttf_weight_400_style_normal_path_fonts_Kanit_Kanit_Italic_ttf_weight_400_style_italic_path_fonts_Kanit_Kanit_Medium_ttf_weight_500_style_normal_path_fonts_Kanit_Kanit_MediumItalic_ttf_weight_500_style_italic_path_fonts_Kanit_Kanit_SemiBold_ttf_weight_600_style_normal_path_fonts_Kanit_Kanit_SemiBoldItalic_ttf_weight_600_style_italic_path_fonts_Kanit_Kanit_Bold_ttf_weight_700_style_normal_path_fonts_Kanit_Kanit_BoldItalic_ttf_weight_700_style_italic_variable_font_kanit_display_swap_variableName_kanit___WEBPACK_IMPORTED_MODULE_13___default().variable)} min-h-screen bg-surface-800 text-text-primary antialiased`,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(_components_Providers__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(_components_Navigation__WEBPACK_IMPORTED_MODULE_6__.Navigation, {}, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/layout.tsx\",\n lineNumber: 147,\n columnNumber: 11\n }, this),\n children,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(_components_Footer__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {}, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/layout.tsx\",\n lineNumber: 149,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(_components_TrackingOptOutBanner__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {}, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/layout.tsx\",\n lineNumber: 150,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/layout.tsx\",\n lineNumber: 146,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/layout.tsx\",\n lineNumber: 143,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/layout.tsx\",\n lineNumber: 142,\n columnNumber: 5\n }, this);\n}\n\n// @ts-expect-error Because we cannot be sure if the RequestAsyncStorage module exists (it is not part of the Next.js public\n// API) we use a shim if it doesn't exist. The logic for this is in the wrapping loader.\n\nconst asyncStorageModule = { ...next_dist_server_app_render_work_unit_async_storage_external_js__WEBPACK_IMPORTED_MODULE_0__ } ;\n\nconst requestAsyncStorage =\n 'workUnitAsyncStorage' in asyncStorageModule\n ? asyncStorageModule.workUnitAsyncStorage\n : 'requestAsyncStorage' in asyncStorageModule\n ? asyncStorageModule.requestAsyncStorage\n : undefined;\n\nconst serverComponent = RootLayout;\n\nlet wrappedServerComponent;\nif (typeof serverComponent === 'function') {\n // For some odd Next.js magic reason, `headers()` will not work if used inside `wrapServerComponentsWithSentry`.\n // Current assumption is that Next.js applies some loader magic to userfiles, but not files in node_modules. This file\n // is technically a userfile so it gets the loader magic applied.\n wrappedServerComponent = new Proxy(serverComponent, {\n apply: (originalFunction, thisArg, args) => {\n let sentryTraceHeader = undefined;\n let baggageHeader = undefined;\n let headers = undefined;\n\n // We try-catch here just in `requestAsyncStorage` is undefined since it may not be defined\n try {\n const requestAsyncStore = requestAsyncStorage?.getStore() ;\n sentryTraceHeader = requestAsyncStore?.headers.get('sentry-trace') ?? undefined;\n baggageHeader = requestAsyncStore?.headers.get('baggage') ?? undefined;\n headers = requestAsyncStore?.headers;\n } catch {\n /** empty */\n }\n\n return _sentry_nextjs__WEBPACK_IMPORTED_MODULE_14__.wrapServerComponentWithSentry(originalFunction, {\n componentRoute: '/',\n componentType: 'Layout',\n sentryTraceHeader,\n baggageHeader,\n headers,\n }).apply(thisArg, args);\n },\n });\n} else {\n wrappedServerComponent = serverComponent;\n}\n\nconst generateMetadata = undefined;\n\nconst generateImageMetadata = undefined;\n\nconst generateViewport = undefined;\n\nconst wrappedServerComponent$1 = wrappedServerComponent;\n\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBcUlPLE1BQU1BLFdBQXFCQyx1REFBWUE7QUFFL0IsU0FBU0MsVUFBQUEsQ0FBVyxFQUNqQ0MsUUFBUSxFQUdUO0FBQ0MseUJBQ0VDLDZEQUFBLENBQUNDLE1BQUFBLEVBQUFBO1FBQUtDLElBQUFBLEVBQUs7UUFBS0MsU0FBQUEsRUFBVTtRQUFPQyx3QkFBd0I7QUFDdkQsZ0NBQUFKLDZEQUFBLENBQUNLLE1BQUFBLEVBQUFBO1lBQ0NGLFNBQUFBLEVBQVcsR0FBR0csdVNBQWdCLENBQUMsQ0FBQyxFQUFFRSwwT0FBZ0IsQ0FBQyxDQUFDLEVBQUVDLHNiQUFpQixDQUFDLENBQUMsRUFBRUMsa1NBQWMsQ0FBQyxDQUFDLEVBQUVDLGtwQkFBYyxDQUFDLDBEQUEwRCxDQUFDO0FBRXZLLG9DQUFBWCw2REFBQSxDQUFDWSw2REFBQUEsRUFBQUE7O2tDQUNDWiw2REFBQSxDQUFDYSw4REFBQUEsRUFBQUEsRUFBQUEsRUFBQUEsTUFBQUEsRUFBQUEsS0FBQUEsRUFBQUE7Ozs7O0FBQ0FkLG9CQUFBQSxRQUFBQTtrQ0FDREMsNkRBQUEsQ0FBQ2MsMERBQUFBLEVBQUFBLEVBQUFBLEVBQUFBLE1BQUFBLEVBQUFBLEtBQUFBLEVBQUFBOzs7OztrQ0FDRGQsNkRBQUEsQ0FBQ2Usd0VBQUFBLEVBQUFBLEVBQUFBLEVBQUFBLE1BQUFBLEVBQUFBLEtBQUFBLEVBQUFBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFLWDs7QUNySkE7QUFDQTs7QUFFQSxNQUFNLGtCQUFrQixHQUFHLEVBQUUsR0FBRyw0RkFBVSxFQUFFOztBQUU1QyxNQUFNLG1CQUFtQjtBQUN6QixFQUFFLHNCQUFzQixJQUFJO0FBQzVCLE1BQU0sa0JBQWtCLENBQUM7QUFDekIsTUFBTSxxQkFBcUIsSUFBSTtBQUMvQixRQUFRLGtCQUFrQixDQUFDO0FBQzNCLFFBQVEsU0FBUzs7QUFFakIsTUFBTSxlQUFlLEdBQUdDLFVBQTZCOztBQUVyRCxJQUFJLHNCQUFzQjtBQUMxQixJQUFJLE9BQU8sZUFBZSxLQUFLLFVBQVUsRUFBRTtBQUMzQztBQUNBO0FBQ0E7QUFDQSxFQUFFLHNCQUFzQixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRTtBQUN0RCxJQUFJLEtBQUssRUFBRSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxJQUFJLEtBQUs7QUFDaEQsTUFBTSxJQUFJLGlCQUFpQixHQUFHLFNBQVM7QUFDdkMsTUFBTSxJQUFJLGFBQWEsR0FBRyxTQUFTO0FBQ25DLE1BQU0sSUFBSSxPQUFPLEdBQUcsU0FBUzs7QUFFN0I7QUFDQSxNQUFNLElBQUk7QUFDVixRQUFRLE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLEVBQUUsUUFBUSxFQUFFO0FBQ2pFLFFBQVEsaUJBQWlCLEdBQUcsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxTQUFTO0FBQ3ZGLFFBQVEsYUFBYSxHQUFHLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUztBQUM5RSxRQUFRLE9BQU8sR0FBRyxpQkFBaUIsRUFBRSxPQUFPO0FBQzVDLE1BQU0sQ0FBQyxDQUFDLE1BQU07QUFDZDtBQUNBLE1BQU07O0FBRU4sTUFBTSxPQUFPLDBFQUFvQyxDQUFDLGdCQUFnQixFQUFFO0FBQ3BFLFFBQVEsY0FBYyxFQUFFLEdBQUc7QUFDM0IsUUFBUSxhQUFhLEVBQUUsUUFBUTtBQUMvQixRQUFRLGlCQUFpQjtBQUN6QixRQUFRLGFBQWE7QUFDckIsUUFBUSxPQUFPO0FBQ2YsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7QUFDN0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxDQUFDO0FBQ0osQ0FBQyxNQUFNO0FBQ1AsRUFBRSxzQkFBc0IsR0FBRyxlQUFlO0FBQzFDOztBQUVLLE1BQUMsZ0JBQWdCLEdBT2xCOztBQUVDLE1BQUMscUJBQXFCLEdBT3ZCOztBQUVDLE1BQUMsZ0JBQWdCLEdBT2xCOztBQUVDLE1BQUMsd0JBQXdCLEdBQUciLCJzb3VyY2VzIjpbInNyYy9hcHAvbGF5b3V0LnRzeCIsInNlbnRyeS13cmFwcGVyLW1vZHVsZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1ldGFkYXRhIH0gZnJvbSAnbmV4dCdcbmltcG9ydCB7IGJhc2VNZXRhZGF0YSB9IGZyb20gJ0AvbGliL21ldGFkYXRhJ1xuaW1wb3J0ICcuL2dsb2JhbHMuY3NzJ1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgUHJvdmlkZXJzIGZyb20gJ0AvY29tcG9uZW50cy9Qcm92aWRlcnMnXG5pbXBvcnQgeyBOYXZpZ2F0aW9uIH0gZnJvbSAnQC9jb21wb25lbnRzL05hdmlnYXRpb24nXG5pbXBvcnQgRm9vdGVyIGZyb20gJ0AvY29tcG9uZW50cy9Gb290ZXInXG5pbXBvcnQgVHJhY2tpbmdPcHRPdXRCYW5uZXIgZnJvbSAnQC9jb21wb25lbnRzL1RyYWNraW5nT3B0T3V0QmFubmVyJ1xuXG5pbXBvcnQgbG9jYWxGb250IGZyb20gJ25leHQvZm9udC9sb2NhbCdcblxuLy8gTG9hZCBjdXN0b20gZm9udHNcbmNvbnN0IGRtc2VyaWYgPSBsb2NhbEZvbnQoe1xuICBzcmM6IFtcbiAgICB7XG4gICAgICBwYXRoOiAnLi4vZm9udHMvRE1TZXJpZlRleHQtUmVndWxhci50dGYnLFxuICAgICAgd2VpZ2h0OiAnNDAwJyxcbiAgICAgIHN0eWxlOiAnbm9ybWFsJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHBhdGg6ICcuLi9mb250cy9ETVNlcmlmVGV4dC1JdGFsaWMudHRmJyxcbiAgICAgIHdlaWdodDogJzQwMCcsXG4gICAgICBzdHlsZTogJ2l0YWxpYycsXG4gICAgfSxcbiAgXSxcbiAgdmFyaWFibGU6ICctLWZvbnQtZG1zZXJpZicsXG4gIGRpc3BsYXk6ICdzd2FwJyxcbn0pXG5cbmNvbnN0IGJlbnRoYW0gPSBsb2NhbEZvbnQoe1xuICBzcmM6IFtcbiAgICB7XG4gICAgICBwYXRoOiAnLi4vZm9udHMvQmVudGhhbS1SZWd1bGFyLnR0ZicsXG4gICAgICB3ZWlnaHQ6ICc0MDAnLFxuICAgICAgc3R5bGU6ICdub3JtYWwnLFxuICAgIH0sXG4gIF0sXG4gIHZhcmlhYmxlOiAnLS1mb250LWJlbnRoYW0nLFxuICBkaXNwbGF5OiAnc3dhcCcsXG59KVxuXG5jb25zdCByYWpkaGFuaSA9IGxvY2FsRm9udCh7XG4gIHNyYzogW1xuICAgIHtcbiAgICAgIHBhdGg6ICcuLi9mb250cy9SYWpkaGFuaS9SYWpkaGFuaS1SZWd1bGFyLnR0ZicsXG4gICAgICB3ZWlnaHQ6ICc0MDAnLFxuICAgICAgc3R5bGU6ICdub3JtYWwnLFxuICAgIH0sXG4gICAge1xuICAgICAgcGF0aDogJy4uL2ZvbnRzL1JhamRoYW5pL1JhamRoYW5pLU1lZGl1bS50dGYnLFxuICAgICAgd2VpZ2h0OiAnNTAwJyxcbiAgICAgIHN0eWxlOiAnbm9ybWFsJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHBhdGg6ICcuLi9mb250cy9SYWpkaGFuaS9SYWpkaGFuaS1TZW1pQm9sZC50dGYnLFxuICAgICAgd2VpZ2h0OiAnNjAwJyxcbiAgICAgIHN0eWxlOiAnbm9ybWFsJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHBhdGg6ICcuLi9mb250cy9SYWpkaGFuaS9SYWpkaGFuaS1Cb2xkLnR0ZicsXG4gICAgICB3ZWlnaHQ6ICc3MDAnLFxuICAgICAgc3R5bGU6ICdub3JtYWwnLFxuICAgIH0sXG4gIF0sXG4gIHZhcmlhYmxlOiAnLS1mb250LXJhamRoYW5pJyxcbiAgZGlzcGxheTogJ3N3YXAnLFxufSlcblxuY29uc3Qgc2hhcmUgPSBsb2NhbEZvbnQoe1xuICBzcmM6IFtcbiAgICB7XG4gICAgICBwYXRoOiAnLi4vZm9udHMvU2hhcmUvU2hhcmUtUmVndWxhci50dGYnLFxuICAgICAgd2VpZ2h0OiAnNDAwJyxcbiAgICAgIHN0eWxlOiAnbm9ybWFsJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHBhdGg6ICcuLi9mb250cy9TaGFyZS9TaGFyZS1Cb2xkLnR0ZicsXG4gICAgICB3ZWlnaHQ6ICc3MDAnLFxuICAgICAgc3R5bGU6ICdub3JtYWwnLFxuICAgIH0sXG4gIF0sXG4gIHZhcmlhYmxlOiAnLS1mb250LXNoYXJlJyxcbiAgZGlzcGxheTogJ3N3YXAnLFxufSlcblxuY29uc3Qga2FuaXQgPSBsb2NhbEZvbnQoe1xuICBzcmM6IFtcbiAgICB7XG4gICAgICBwYXRoOiAnLi4vZm9udHMvS2FuaXQvS2FuaXQtUmVndWxhci50dGYnLFxuICAgICAgd2VpZ2h0OiAnNDAwJyxcbiAgICAgIHN0eWxlOiAnbm9ybWFsJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHBhdGg6ICcuLi9mb250cy9LYW5pdC9LYW5pdC1JdGFsaWMudHRmJyxcbiAgICAgIHdlaWdodDogJzQwMCcsXG4gICAgICBzdHlsZTogJ2l0YWxpYycsXG4gICAgfSxcbiAgICB7XG4gICAgICBwYXRoOiAnLi4vZm9udHMvS2FuaXQvS2FuaXQtTWVkaXVtLnR0ZicsXG4gICAgICB3ZWlnaHQ6ICc1MDAnLFxuICAgICAgc3R5bGU6ICdub3JtYWwnLFxuICAgIH0sXG4gICAge1xuICAgICAgcGF0aDogJy4uL2ZvbnRzL0thbml0L0thbml0LU1lZGl1bUl0YWxpYy50dGYnLFxuICAgICAgd2VpZ2h0OiAnNTAwJyxcbiAgICAgIHN0eWxlOiAnaXRhbGljJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHBhdGg6ICcuLi9mb250cy9LYW5pdC9LYW5pdC1TZW1pQm9sZC50dGYnLFxuICAgICAgd2VpZ2h0OiAnNjAwJyxcbiAgICAgIHN0eWxlOiAnbm9ybWFsJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHBhdGg6ICcuLi9mb250cy9LYW5pdC9LYW5pdC1TZW1pQm9sZEl0YWxpYy50dGYnLFxuICAgICAgd2VpZ2h0OiAnNjAwJyxcbiAgICAgIHN0eWxlOiAnaXRhbGljJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIHBhdGg6ICcuLi9mb250cy9LYW5pdC9LYW5pdC1Cb2xkLnR0ZicsXG4gICAgICB3ZWlnaHQ6ICc3MDAnLFxuICAgICAgc3R5bGU6ICdub3JtYWwnLFxuICAgIH0sXG4gICAge1xuICAgICAgcGF0aDogJy4uL2ZvbnRzL0thbml0L0thbml0LUJvbGRJdGFsaWMudHRmJyxcbiAgICAgIHdlaWdodDogJzcwMCcsXG4gICAgICBzdHlsZTogJ2l0YWxpYycsXG4gICAgfSxcbiAgXSxcbiAgdmFyaWFibGU6ICctLWZvbnQta2FuaXQnLFxuICBkaXNwbGF5OiAnc3dhcCcsXG59KVxuXG5leHBvcnQgY29uc3QgbWV0YWRhdGE6IE1ldGFkYXRhID0gYmFzZU1ldGFkYXRhXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFJvb3RMYXlvdXQoe1xuICBjaGlsZHJlbixcbn06IHtcbiAgY2hpbGRyZW46IFJlYWN0LlJlYWN0Tm9kZVxufSkge1xuICByZXR1cm4gKFxuICAgIDxodG1sIGxhbmc9XCJlblwiIGNsYXNzTmFtZT1cImRhcmtcIiBzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmc+XG4gICAgICA8Ym9keVxuICAgICAgICBjbGFzc05hbWU9e2Ake2Rtc2VyaWYudmFyaWFibGV9ICR7YmVudGhhbS52YXJpYWJsZX0gJHtyYWpkaGFuaS52YXJpYWJsZX0gJHtzaGFyZS52YXJpYWJsZX0gJHtrYW5pdC52YXJpYWJsZX0gbWluLWgtc2NyZWVuIGJnLXN1cmZhY2UtODAwIHRleHQtdGV4dC1wcmltYXJ5IGFudGlhbGlhc2VkYH1cbiAgICAgID5cbiAgICAgICAgPFByb3ZpZGVycz5cbiAgICAgICAgICA8TmF2aWdhdGlvbiAvPlxuICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICA8Rm9vdGVyIC8+XG4gICAgICAgICAgPFRyYWNraW5nT3B0T3V0QmFubmVyIC8+XG4gICAgICAgIDwvUHJvdmlkZXJzPlxuICAgICAgPC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgKVxufVxuIiwiaW1wb3J0ICogYXMgb3JpZ01vZHVsZSBmcm9tICduZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwuanMnO1xuaW1wb3J0ICogYXMgc2VydmVyQ29tcG9uZW50TW9kdWxlIGZyb20gJ19fU0VOVFJZX1dSQVBQSU5HX1RBUkdFVF9GSUxFX18uY2pzJztcbmV4cG9ydCAqIGZyb20gJ19fU0VOVFJZX1dSQVBQSU5HX1RBUkdFVF9GSUxFX18uY2pzJztcbmltcG9ydCAqIGFzIFNlbnRyeSBmcm9tICdAc2VudHJ5L25leHRqcyc7XG5cbi8vIEB0cy1leHBlY3QtZXJyb3IgQmVjYXVzZSB3ZSBjYW5ub3QgYmUgc3VyZSBpZiB0aGUgUmVxdWVzdEFzeW5jU3RvcmFnZSBtb2R1bGUgZXhpc3RzIChpdCBpcyBub3QgcGFydCBvZiB0aGUgTmV4dC5qcyBwdWJsaWNcbi8vIEFQSSkgd2UgdXNlIGEgc2hpbSBpZiBpdCBkb2Vzbid0IGV4aXN0LiBUaGUgbG9naWMgZm9yIHRoaXMgaXMgaW4gdGhlIHdyYXBwaW5nIGxvYWRlci5cblxuY29uc3QgYXN5bmNTdG9yYWdlTW9kdWxlID0geyAuLi5vcmlnTW9kdWxlIH0gO1xuXG5jb25zdCByZXF1ZXN0QXN5bmNTdG9yYWdlID1cbiAgJ3dvcmtVbml0QXN5bmNTdG9yYWdlJyBpbiBhc3luY1N0b3JhZ2VNb2R1bGVcbiAgICA/IGFzeW5jU3RvcmFnZU1vZHVsZS53b3JrVW5pdEFzeW5jU3RvcmFnZVxuICAgIDogJ3JlcXVlc3RBc3luY1N0b3JhZ2UnIGluIGFzeW5jU3RvcmFnZU1vZHVsZVxuICAgICAgPyBhc3luY1N0b3JhZ2VNb2R1bGUucmVxdWVzdEFzeW5jU3RvcmFnZVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbmNvbnN0IHNlcnZlckNvbXBvbmVudCA9IHNlcnZlckNvbXBvbmVudE1vZHVsZS5kZWZhdWx0O1xuXG5sZXQgd3JhcHBlZFNlcnZlckNvbXBvbmVudDtcbmlmICh0eXBlb2Ygc2VydmVyQ29tcG9uZW50ID09PSAnZnVuY3Rpb24nKSB7XG4gIC8vIEZvciBzb21lIG9kZCBOZXh0LmpzIG1hZ2ljIHJlYXNvbiwgYGhlYWRlcnMoKWAgd2lsbCBub3Qgd29yayBpZiB1c2VkIGluc2lkZSBgd3JhcFNlcnZlckNvbXBvbmVudHNXaXRoU2VudHJ5YC5cbiAgLy8gQ3VycmVudCBhc3N1bXB0aW9uIGlzIHRoYXQgTmV4dC5qcyBhcHBsaWVzIHNvbWUgbG9hZGVyIG1hZ2ljIHRvIHVzZXJmaWxlcywgYnV0IG5vdCBmaWxlcyBpbiBub2RlX21vZHVsZXMuIFRoaXMgZmlsZVxuICAvLyBpcyB0ZWNobmljYWxseSBhIHVzZXJmaWxlIHNvIGl0IGdldHMgdGhlIGxvYWRlciBtYWdpYyBhcHBsaWVkLlxuICB3cmFwcGVkU2VydmVyQ29tcG9uZW50ID0gbmV3IFByb3h5KHNlcnZlckNvbXBvbmVudCwge1xuICAgIGFwcGx5OiAob3JpZ2luYWxGdW5jdGlvbiwgdGhpc0FyZywgYXJncykgPT4ge1xuICAgICAgbGV0IHNlbnRyeVRyYWNlSGVhZGVyID0gdW5kZWZpbmVkO1xuICAgICAgbGV0IGJhZ2dhZ2VIZWFkZXIgPSB1bmRlZmluZWQ7XG4gICAgICBsZXQgaGVhZGVycyA9IHVuZGVmaW5lZDtcblxuICAgICAgLy8gV2UgdHJ5LWNhdGNoIGhlcmUganVzdCBpbiBgcmVxdWVzdEFzeW5jU3RvcmFnZWAgaXMgdW5kZWZpbmVkIHNpbmNlIGl0IG1heSBub3QgYmUgZGVmaW5lZFxuICAgICAgdHJ5IHtcbiAgICAgICAgY29uc3QgcmVxdWVzdEFzeW5jU3RvcmUgPSByZXF1ZXN0QXN5bmNTdG9yYWdlPy5nZXRTdG9yZSgpIDtcbiAgICAgICAgc2VudHJ5VHJhY2VIZWFkZXIgPSByZXF1ZXN0QXN5bmNTdG9yZT8uaGVhZGVycy5nZXQoJ3NlbnRyeS10cmFjZScpID8/IHVuZGVmaW5lZDtcbiAgICAgICAgYmFnZ2FnZUhlYWRlciA9IHJlcXVlc3RBc3luY1N0b3JlPy5oZWFkZXJzLmdldCgnYmFnZ2FnZScpID8/IHVuZGVmaW5lZDtcbiAgICAgICAgaGVhZGVycyA9IHJlcXVlc3RBc3luY1N0b3JlPy5oZWFkZXJzO1xuICAgICAgfSBjYXRjaCB7XG4gICAgICAgIC8qKiBlbXB0eSAqL1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gU2VudHJ5LndyYXBTZXJ2ZXJDb21wb25lbnRXaXRoU2VudHJ5KG9yaWdpbmFsRnVuY3Rpb24sIHtcbiAgICAgICAgY29tcG9uZW50Um91dGU6ICcvJyxcbiAgICAgICAgY29tcG9uZW50VHlwZTogJ0xheW91dCcsXG4gICAgICAgIHNlbnRyeVRyYWNlSGVhZGVyLFxuICAgICAgICBiYWdnYWdlSGVhZGVyLFxuICAgICAgICBoZWFkZXJzLFxuICAgICAgfSkuYXBwbHkodGhpc0FyZywgYXJncyk7XG4gICAgfSxcbiAgfSk7XG59IGVsc2Uge1xuICB3cmFwcGVkU2VydmVyQ29tcG9uZW50ID0gc2VydmVyQ29tcG9uZW50O1xufVxuXG5jb25zdCBnZW5lcmF0ZU1ldGFkYXRhID0gc2VydmVyQ29tcG9uZW50TW9kdWxlLmdlbmVyYXRlTWV0YWRhdGFcbiAgPyBTZW50cnkud3JhcEdlbmVyYXRpb25GdW5jdGlvbldpdGhTZW50cnkoc2VydmVyQ29tcG9uZW50TW9kdWxlLmdlbmVyYXRlTWV0YWRhdGEsIHtcbiAgICAgIGNvbXBvbmVudFJvdXRlOiAnLycsXG4gICAgICBjb21wb25lbnRUeXBlOiAnTGF5b3V0JyxcbiAgICAgIGdlbmVyYXRpb25GdW5jdGlvbklkZW50aWZpZXI6ICdnZW5lcmF0ZU1ldGFkYXRhJyxcbiAgICAgIHJlcXVlc3RBc3luY1N0b3JhZ2UsXG4gICAgfSlcbiAgOiB1bmRlZmluZWQ7XG5cbmNvbnN0IGdlbmVyYXRlSW1hZ2VNZXRhZGF0YSA9IHNlcnZlckNvbXBvbmVudE1vZHVsZS5nZW5lcmF0ZUltYWdlTWV0YWRhdGFcbiAgPyBTZW50cnkud3JhcEdlbmVyYXRpb25GdW5jdGlvbldpdGhTZW50cnkoc2VydmVyQ29tcG9uZW50TW9kdWxlLmdlbmVyYXRlSW1hZ2VNZXRhZGF0YSwge1xuICAgICAgY29tcG9uZW50Um91dGU6ICcvJyxcbiAgICAgIGNvbXBvbmVudFR5cGU6ICdMYXlvdXQnLFxuICAgICAgZ2VuZXJhdGlvbkZ1bmN0aW9uSWRlbnRpZmllcjogJ2dlbmVyYXRlSW1hZ2VNZXRhZGF0YScsXG4gICAgICByZXF1ZXN0QXN5bmNTdG9yYWdlLFxuICAgIH0pXG4gIDogdW5kZWZpbmVkO1xuXG5jb25zdCBnZW5lcmF0ZVZpZXdwb3J0ID0gc2VydmVyQ29tcG9uZW50TW9kdWxlLmdlbmVyYXRlVmlld3BvcnRcbiAgPyBTZW50cnkud3JhcEdlbmVyYXRpb25GdW5jdGlvbldpdGhTZW50cnkoc2VydmVyQ29tcG9uZW50TW9kdWxlLmdlbmVyYXRlVmlld3BvcnQsIHtcbiAgICAgIGNvbXBvbmVudFJvdXRlOiAnLycsXG4gICAgICBjb21wb25lbnRUeXBlOiAnTGF5b3V0JyxcbiAgICAgIGdlbmVyYXRpb25GdW5jdGlvbklkZW50aWZpZXI6ICdnZW5lcmF0ZVZpZXdwb3J0JyxcbiAgICAgIHJlcXVlc3RBc3luY1N0b3JhZ2UsXG4gICAgfSlcbiAgOiB1bmRlZmluZWQ7XG5cbmNvbnN0IHdyYXBwZWRTZXJ2ZXJDb21wb25lbnQkMSA9IHdyYXBwZWRTZXJ2ZXJDb21wb25lbnQ7XG5cbmV4cG9ydCB7IHdyYXBwZWRTZXJ2ZXJDb21wb25lbnQkMSBhcyBkZWZhdWx0LCBnZW5lcmF0ZUltYWdlTWV0YWRhdGEsIGdlbmVyYXRlTWV0YWRhdGEsIGdlbmVyYXRlVmlld3BvcnQgfTtcbiJdLCJuYW1lcyI6WyJtZXRhZGF0YSIsImJhc2VNZXRhZGF0YSIsIlJvb3RMYXlvdXQiLCJjaGlsZHJlbiIsIl9qc3hERVYiLCJodG1sIiwibGFuZyIsImNsYXNzTmFtZSIsInN1cHByZXNzSHlkcmF0aW9uV2FybmluZyIsImJvZHkiLCJkbXNlcmlmIiwidmFyaWFibGUiLCJiZW50aGFtIiwicmFqZGhhbmkiLCJzaGFyZSIsImthbml0IiwiUHJvdmlkZXJzIiwiTmF2aWdhdGlvbiIsIkZvb3RlciIsIlRyYWNraW5nT3B0T3V0QmFubmVyIiwic2VydmVyQ29tcG9uZW50TW9kdWxlLmRlZmF1bHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.tsx\n");
+
+/***/ }),
+
+/***/ "(rsc)/./src/components/Footer.tsx":
+/*!***********************************!*\
+ !*** ./src/components/Footer.tsx ***!
+ \***********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-server-dom-webpack/server */ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js");
+/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__);
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
+function() { throw new Error("Attempted to call the default export of \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component."); },
+"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx",
+"default",
+));
+
+
+/***/ }),
+
+/***/ "(rsc)/./src/components/Navigation.tsx":
+/*!***************************************!*\
+ !*** ./src/components/Navigation.tsx ***!
+ \***************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ AdminSidebar: () => (/* binding */ AdminSidebar),
+/* harmony export */ Breadcrumbs: () => (/* binding */ Breadcrumbs),
+/* harmony export */ Navigation: () => (/* binding */ Navigation)
+/* harmony export */ });
+/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-server-dom-webpack/server */ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js");
+/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__);
+
+const Navigation = (0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
+function() { throw new Error("Attempted to call Navigation() from the server but Navigation is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component."); },
+"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx",
+"Navigation",
+);const AdminSidebar = (0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
+function() { throw new Error("Attempted to call AdminSidebar() from the server but AdminSidebar is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component."); },
+"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx",
+"AdminSidebar",
+);const Breadcrumbs = (0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
+function() { throw new Error("Attempted to call Breadcrumbs() from the server but Breadcrumbs is on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component."); },
+"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx",
+"Breadcrumbs",
+);
+
+/***/ }),
+
+/***/ "(rsc)/./src/components/Providers.tsx":
+/*!**************************************!*\
+ !*** ./src/components/Providers.tsx ***!
+ \**************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-server-dom-webpack/server */ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js");
+/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__);
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
+function() { throw new Error("Attempted to call the default export of \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Providers.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component."); },
+"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Providers.tsx",
+"default",
+));
+
+
+/***/ }),
+
+/***/ "(rsc)/./src/components/TrackingOptOutBanner.tsx":
+/*!*************************************************!*\
+ !*** ./src/components/TrackingOptOutBanner.tsx ***!
+ \*************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+__webpack_require__.r(__webpack_exports__);
+/* harmony export */ __webpack_require__.d(__webpack_exports__, {
+/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
+/* harmony export */ });
+/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react-server-dom-webpack/server */ "(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js");
+/* harmony import */ var react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__);
+
+/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
+function() { throw new Error("Attempted to call the default export of \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/TrackingOptOutBanner.tsx\" from the server, but it's on the client. It's not possible to invoke a client function from the server, it can only be rendered as a Component or passed to props of a Client Component."); },
+"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/TrackingOptOutBanner.tsx",
+"default",
+));
+
+
+/***/ }),
+
+/***/ "(rsc)/./src/lib/metadata.ts":
+/*!*****************************!*\
+ !*** ./src/lib/metadata.ts ***!
+ \*****************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ baseMetadata: () => (/* binding */ baseMetadata),\n/* harmony export */ generateOrganizationSchema: () => (/* binding */ generateOrganizationSchema),\n/* harmony export */ generatePageMetadata: () => (/* binding */ generatePageMetadata),\n/* harmony export */ generateWebsiteSchema: () => (/* binding */ generateWebsiteSchema)\n/* harmony export */ });\nconst baseMetadata = {\n metadataBase: new URL('https://biohazardvfx.com'),\n title: {\n default: 'Biohazard VFX | Visual Effects Studio',\n template: '%s | Biohazard VFX'\n },\n description: 'Global visual effects studio delivering world-class VFX supervision, 3D animation, and post-production services.',\n keywords: [\n 'VFX',\n 'visual effects',\n 'post-production',\n '3D animation',\n 'video editing',\n 'music videos',\n 'commercials',\n 'film',\n 'animation'\n ],\n authors: [\n {\n name: 'Biohazard VFX Team'\n }\n ],\n creator: 'Biohazard VFX',\n publisher: 'Biohazard VFX',\n robots: {\n index: true,\n follow: true,\n googleBot: {\n index: true,\n follow: true,\n 'max-video-preview': -1,\n 'max-image-preview': 'large',\n 'max-snippet': -1\n }\n },\n openGraph: {\n type: 'website',\n locale: 'en_US',\n url: 'https://biohazardvfx.com',\n siteName: 'Biohazard VFX',\n images: [\n {\n url: '/images/splash.jpg',\n width: 1200,\n height: 630,\n alt: 'Biohazard VFX Studio Splash'\n }\n ]\n },\n twitter: {\n card: 'summary_large_image',\n site: '@biohazardvfx',\n creator: '@biohazardvfx',\n images: [\n '/images/splash.jpg'\n ]\n },\n icons: {\n icon: '/icon.svg'\n }\n};\nfunction generatePageMetadata(overrides = {}) {\n return {\n ...baseMetadata,\n ...overrides,\n openGraph: {\n ...baseMetadata.openGraph,\n ...overrides.openGraph || {}\n },\n twitter: {\n ...baseMetadata.twitter,\n ...overrides.twitter || {}\n }\n };\n}\n// JSON-LD structured data generators\nfunction generateOrganizationSchema() {\n return {\n '@context': 'https://schema.org',\n '@type': 'ProductionCompany',\n name: 'Biohazard VFX',\n description: 'Global visual effects studio delivering world-class VFX supervision, 3D animation, and post-production services.',\n url: 'https://biohazardvfx.com',\n logo: 'https://biohazardvfx.com/images/logo.png',\n foundingDate: '2023',\n founders: [\n {\n '@type': 'Person',\n name: 'Nicholai Vogel'\n },\n {\n '@type': 'Person',\n name: 'Davané'\n },\n {\n '@type': 'Person',\n name: 'Parth Gupta'\n }\n ],\n address: {\n '@type': 'PostalAddress',\n addressLocality: 'Multiple Cities',\n addressCountries: [\n 'US',\n 'CA',\n 'IN'\n ]\n }\n };\n}\nfunction generateWebsiteSchema() {\n return {\n '@context': 'https://schema.org',\n '@type': 'WebSite',\n name: 'Biohazard VFX',\n url: 'https://biohazardvfx.com',\n description: 'Global visual effects studio delivering world-class VFX supervision, 3D animation, and post-production services.',\n potentialAction: {\n '@type': 'SearchAction',\n target: 'https://biohazardvfx.com/search?q={search_term_string}',\n 'query-input': 'required name=search_term_string'\n }\n };\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvbGliL21ldGFkYXRhLnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFFTyxNQUFNQSxlQUF5QjtJQUNwQ0MsY0FBYyxJQUFJQyxJQUFJO0lBQ3RCQyxPQUFPO1FBQ0xDLFNBQVM7UUFDVEMsVUFBVTtJQUNaO0lBQ0FDLGFBQ0U7SUFDRkMsVUFBVTtRQUNSO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7UUFDQTtLQUNEO0lBQ0RDLFNBQVM7UUFBQztZQUFFQyxNQUFNO1FBQXFCO0tBQUU7SUFDekNDLFNBQVM7SUFDVEMsV0FBVztJQUNYQyxRQUFRO1FBQ05DLE9BQU87UUFDUEMsUUFBUTtRQUNSQyxXQUFXO1lBQ1RGLE9BQU87WUFDUEMsUUFBUTtZQUNSLHFCQUFxQixDQUFDO1lBQ3RCLHFCQUFxQjtZQUNyQixlQUFlLENBQUM7UUFDbEI7SUFDRjtJQUNBRSxXQUFXO1FBQ1RDLE1BQU07UUFDTkMsUUFBUTtRQUNSQyxLQUFLO1FBQ0xDLFVBQVU7UUFDVkMsUUFBUTtZQUNOO2dCQUNFRixLQUFLO2dCQUNMRyxPQUFPO2dCQUNQQyxRQUFRO2dCQUNSQyxLQUFLO1lBQ1A7U0FDRDtJQUNIO0lBQ0FDLFNBQVM7UUFDUEMsTUFBTTtRQUNOQyxNQUFNO1FBQ05qQixTQUFTO1FBQ1RXLFFBQVE7WUFBQztTQUFxQjtJQUNoQztJQUNBTyxPQUFPO1FBQ0xDLE1BQU07SUFDUjtBQUNGLEVBQUM7QUFFTSxTQUFTQyxxQkFDZEMsWUFBK0IsQ0FBQyxDQUFDO0lBRWpDLE9BQU87UUFDTCxHQUFHL0IsWUFBWTtRQUNmLEdBQUcrQixTQUFTO1FBQ1pmLFdBQVc7WUFDVCxHQUFHaEIsYUFBYWdCLFNBQVM7WUFDekIsR0FBSWUsVUFBVWYsU0FBUyxJQUFJLENBQUMsQ0FBQztRQUMvQjtRQUNBUyxTQUFTO1lBQ1AsR0FBR3pCLGFBQWF5QixPQUFPO1lBQ3ZCLEdBQUlNLFVBQVVOLE9BQU8sSUFBSSxDQUFDLENBQUM7UUFDN0I7SUFDRjtBQUNGO0FBRUEscUNBQXFDO0FBQzlCLFNBQVNPO0lBQ2QsT0FBTztRQUNMLFlBQVk7UUFDWixTQUFTO1FBQ1R2QixNQUFNO1FBQ05ILGFBQ0U7UUFDRmEsS0FBSztRQUNMYyxNQUFNO1FBQ05DLGNBQWM7UUFDZEMsVUFBVTtZQUNSO2dCQUNFLFNBQVM7Z0JBQ1QxQixNQUFNO1lBQ1I7WUFDQTtnQkFDRSxTQUFTO2dCQUNUQSxNQUFNO1lBQ1I7WUFDQTtnQkFDRSxTQUFTO2dCQUNUQSxNQUFNO1lBQ1I7U0FDRDtRQUNEMkIsU0FBUztZQUNQLFNBQVM7WUFDVEMsaUJBQWlCO1lBQ2pCQyxrQkFBa0I7Z0JBQUM7Z0JBQU07Z0JBQU07YUFBSztRQUN0QztJQUNGO0FBQ0Y7QUFFTyxTQUFTQztJQUNkLE9BQU87UUFDTCxZQUFZO1FBQ1osU0FBUztRQUNUOUIsTUFBTTtRQUNOVSxLQUFLO1FBQ0xiLGFBQ0U7UUFDRmtDLGlCQUFpQjtZQUNmLFNBQVM7WUFDVEMsUUFBUTtZQUNSLGVBQWU7UUFDakI7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvbGliL21ldGFkYXRhLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSAnbmV4dCdcblxuZXhwb3J0IGNvbnN0IGJhc2VNZXRhZGF0YTogTWV0YWRhdGEgPSB7XG4gIG1ldGFkYXRhQmFzZTogbmV3IFVSTCgnaHR0cHM6Ly9iaW9oYXphcmR2ZnguY29tJyksXG4gIHRpdGxlOiB7XG4gICAgZGVmYXVsdDogJ0Jpb2hhemFyZCBWRlggfCBWaXN1YWwgRWZmZWN0cyBTdHVkaW8nLFxuICAgIHRlbXBsYXRlOiAnJXMgfCBCaW9oYXphcmQgVkZYJyxcbiAgfSxcbiAgZGVzY3JpcHRpb246XG4gICAgJ0dsb2JhbCB2aXN1YWwgZWZmZWN0cyBzdHVkaW8gZGVsaXZlcmluZyB3b3JsZC1jbGFzcyBWRlggc3VwZXJ2aXNpb24sIDNEIGFuaW1hdGlvbiwgYW5kIHBvc3QtcHJvZHVjdGlvbiBzZXJ2aWNlcy4nLFxuICBrZXl3b3JkczogW1xuICAgICdWRlgnLFxuICAgICd2aXN1YWwgZWZmZWN0cycsXG4gICAgJ3Bvc3QtcHJvZHVjdGlvbicsXG4gICAgJzNEIGFuaW1hdGlvbicsXG4gICAgJ3ZpZGVvIGVkaXRpbmcnLFxuICAgICdtdXNpYyB2aWRlb3MnLFxuICAgICdjb21tZXJjaWFscycsXG4gICAgJ2ZpbG0nLFxuICAgICdhbmltYXRpb24nLFxuICBdLFxuICBhdXRob3JzOiBbeyBuYW1lOiAnQmlvaGF6YXJkIFZGWCBUZWFtJyB9XSxcbiAgY3JlYXRvcjogJ0Jpb2hhemFyZCBWRlgnLFxuICBwdWJsaXNoZXI6ICdCaW9oYXphcmQgVkZYJyxcbiAgcm9ib3RzOiB7XG4gICAgaW5kZXg6IHRydWUsXG4gICAgZm9sbG93OiB0cnVlLFxuICAgIGdvb2dsZUJvdDoge1xuICAgICAgaW5kZXg6IHRydWUsXG4gICAgICBmb2xsb3c6IHRydWUsXG4gICAgICAnbWF4LXZpZGVvLXByZXZpZXcnOiAtMSxcbiAgICAgICdtYXgtaW1hZ2UtcHJldmlldyc6ICdsYXJnZScsXG4gICAgICAnbWF4LXNuaXBwZXQnOiAtMSxcbiAgICB9LFxuICB9LFxuICBvcGVuR3JhcGg6IHtcbiAgICB0eXBlOiAnd2Vic2l0ZScsXG4gICAgbG9jYWxlOiAnZW5fVVMnLFxuICAgIHVybDogJ2h0dHBzOi8vYmlvaGF6YXJkdmZ4LmNvbScsXG4gICAgc2l0ZU5hbWU6ICdCaW9oYXphcmQgVkZYJyxcbiAgICBpbWFnZXM6IFtcbiAgICAgIHtcbiAgICAgICAgdXJsOiAnL2ltYWdlcy9zcGxhc2guanBnJyxcbiAgICAgICAgd2lkdGg6IDEyMDAsXG4gICAgICAgIGhlaWdodDogNjMwLFxuICAgICAgICBhbHQ6ICdCaW9oYXphcmQgVkZYIFN0dWRpbyBTcGxhc2gnLFxuICAgICAgfSxcbiAgICBdLFxuICB9LFxuICB0d2l0dGVyOiB7XG4gICAgY2FyZDogJ3N1bW1hcnlfbGFyZ2VfaW1hZ2UnLFxuICAgIHNpdGU6ICdAYmlvaGF6YXJkdmZ4JyxcbiAgICBjcmVhdG9yOiAnQGJpb2hhemFyZHZmeCcsXG4gICAgaW1hZ2VzOiBbJy9pbWFnZXMvc3BsYXNoLmpwZyddLFxuICB9LFxuICBpY29uczoge1xuICAgIGljb246ICcvaWNvbi5zdmcnLFxuICB9LFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVQYWdlTWV0YWRhdGEoXG4gIG92ZXJyaWRlczogUGFydGlhbDxNZXRhZGF0YT4gPSB7fVxuKTogTWV0YWRhdGEge1xuICByZXR1cm4ge1xuICAgIC4uLmJhc2VNZXRhZGF0YSxcbiAgICAuLi5vdmVycmlkZXMsXG4gICAgb3BlbkdyYXBoOiB7XG4gICAgICAuLi5iYXNlTWV0YWRhdGEub3BlbkdyYXBoLFxuICAgICAgLi4uKG92ZXJyaWRlcy5vcGVuR3JhcGggfHwge30pLFxuICAgIH0sXG4gICAgdHdpdHRlcjoge1xuICAgICAgLi4uYmFzZU1ldGFkYXRhLnR3aXR0ZXIsXG4gICAgICAuLi4ob3ZlcnJpZGVzLnR3aXR0ZXIgfHwge30pLFxuICAgIH0sXG4gIH1cbn1cblxuLy8gSlNPTi1MRCBzdHJ1Y3R1cmVkIGRhdGEgZ2VuZXJhdG9yc1xuZXhwb3J0IGZ1bmN0aW9uIGdlbmVyYXRlT3JnYW5pemF0aW9uU2NoZW1hKCkge1xuICByZXR1cm4ge1xuICAgICdAY29udGV4dCc6ICdodHRwczovL3NjaGVtYS5vcmcnLFxuICAgICdAdHlwZSc6ICdQcm9kdWN0aW9uQ29tcGFueScsXG4gICAgbmFtZTogJ0Jpb2hhemFyZCBWRlgnLFxuICAgIGRlc2NyaXB0aW9uOlxuICAgICAgJ0dsb2JhbCB2aXN1YWwgZWZmZWN0cyBzdHVkaW8gZGVsaXZlcmluZyB3b3JsZC1jbGFzcyBWRlggc3VwZXJ2aXNpb24sIDNEIGFuaW1hdGlvbiwgYW5kIHBvc3QtcHJvZHVjdGlvbiBzZXJ2aWNlcy4nLFxuICAgIHVybDogJ2h0dHBzOi8vYmlvaGF6YXJkdmZ4LmNvbScsXG4gICAgbG9nbzogJ2h0dHBzOi8vYmlvaGF6YXJkdmZ4LmNvbS9pbWFnZXMvbG9nby5wbmcnLFxuICAgIGZvdW5kaW5nRGF0ZTogJzIwMjMnLFxuICAgIGZvdW5kZXJzOiBbXG4gICAgICB7XG4gICAgICAgICdAdHlwZSc6ICdQZXJzb24nLFxuICAgICAgICBuYW1lOiAnTmljaG9sYWkgVm9nZWwnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgJ0B0eXBlJzogJ1BlcnNvbicsXG4gICAgICAgIG5hbWU6ICdEYXZhbsOpJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgICdAdHlwZSc6ICdQZXJzb24nLFxuICAgICAgICBuYW1lOiAnUGFydGggR3VwdGEnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGFkZHJlc3M6IHtcbiAgICAgICdAdHlwZSc6ICdQb3N0YWxBZGRyZXNzJyxcbiAgICAgIGFkZHJlc3NMb2NhbGl0eTogJ011bHRpcGxlIENpdGllcycsXG4gICAgICBhZGRyZXNzQ291bnRyaWVzOiBbJ1VTJywgJ0NBJywgJ0lOJ10sXG4gICAgfSxcbiAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZXJhdGVXZWJzaXRlU2NoZW1hKCkge1xuICByZXR1cm4ge1xuICAgICdAY29udGV4dCc6ICdodHRwczovL3NjaGVtYS5vcmcnLFxuICAgICdAdHlwZSc6ICdXZWJTaXRlJyxcbiAgICBuYW1lOiAnQmlvaGF6YXJkIFZGWCcsXG4gICAgdXJsOiAnaHR0cHM6Ly9iaW9oYXphcmR2ZnguY29tJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdHbG9iYWwgdmlzdWFsIGVmZmVjdHMgc3R1ZGlvIGRlbGl2ZXJpbmcgd29ybGQtY2xhc3MgVkZYIHN1cGVydmlzaW9uLCAzRCBhbmltYXRpb24sIGFuZCBwb3N0LXByb2R1Y3Rpb24gc2VydmljZXMuJyxcbiAgICBwb3RlbnRpYWxBY3Rpb246IHtcbiAgICAgICdAdHlwZSc6ICdTZWFyY2hBY3Rpb24nLFxuICAgICAgdGFyZ2V0OiAnaHR0cHM6Ly9iaW9oYXphcmR2ZnguY29tL3NlYXJjaD9xPXtzZWFyY2hfdGVybV9zdHJpbmd9JyxcbiAgICAgICdxdWVyeS1pbnB1dCc6ICdyZXF1aXJlZCBuYW1lPXNlYXJjaF90ZXJtX3N0cmluZycsXG4gICAgfSxcbiAgfVxufVxuIl0sIm5hbWVzIjpbImJhc2VNZXRhZGF0YSIsIm1ldGFkYXRhQmFzZSIsIlVSTCIsInRpdGxlIiwiZGVmYXVsdCIsInRlbXBsYXRlIiwiZGVzY3JpcHRpb24iLCJrZXl3b3JkcyIsImF1dGhvcnMiLCJuYW1lIiwiY3JlYXRvciIsInB1Ymxpc2hlciIsInJvYm90cyIsImluZGV4IiwiZm9sbG93IiwiZ29vZ2xlQm90Iiwib3BlbkdyYXBoIiwidHlwZSIsImxvY2FsZSIsInVybCIsInNpdGVOYW1lIiwiaW1hZ2VzIiwid2lkdGgiLCJoZWlnaHQiLCJhbHQiLCJ0d2l0dGVyIiwiY2FyZCIsInNpdGUiLCJpY29ucyIsImljb24iLCJnZW5lcmF0ZVBhZ2VNZXRhZGF0YSIsIm92ZXJyaWRlcyIsImdlbmVyYXRlT3JnYW5pemF0aW9uU2NoZW1hIiwibG9nbyIsImZvdW5kaW5nRGF0ZSIsImZvdW5kZXJzIiwiYWRkcmVzcyIsImFkZHJlc3NMb2NhbGl0eSIsImFkZHJlc3NDb3VudHJpZXMiLCJnZW5lcmF0ZVdlYnNpdGVTY2hlbWEiLCJwb3RlbnRpYWxBY3Rpb24iLCJ0YXJnZXQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./src/lib/metadata.ts\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/@opentelemetry/instrumentation/build/esm/platform/node sync recursive":
+/*!***********************************************************************************!*\
+ !*** ./node_modules/@opentelemetry/instrumentation/build/esm/platform/node/ sync ***!
+ \***********************************************************************************/
+/***/ ((module) => {
+
+function webpackEmptyContext(req) {
+ var e = new Error("Cannot find module '" + req + "'");
+ e.code = 'MODULE_NOT_FOUND';
+ throw e;
+}
+webpackEmptyContext.keys = () => ([]);
+webpackEmptyContext.resolve = webpackEmptyContext;
+webpackEmptyContext.id = "(ssr)/./node_modules/@opentelemetry/instrumentation/build/esm/platform/node sync recursive";
+module.exports = webpackEmptyContext;
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node sync recursive":
+/*!************************************************************************************************************************!*\
+ !*** ./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/ sync ***!
+ \************************************************************************************************************************/
+/***/ ((module) => {
+
+function webpackEmptyContext(req) {
+ var e = new Error("Cannot find module '" + req + "'");
+ e.code = 'MODULE_NOT_FOUND';
+ throw e;
+}
+webpackEmptyContext.keys = () => ([]);
+webpackEmptyContext.resolve = webpackEmptyContext;
+webpackEmptyContext.id = "(ssr)/./node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node sync recursive";
+module.exports = webpackEmptyContext;
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
+/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
+ \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-page.js */ \"(ssr)/./node_modules/next/dist/client/components/client-page.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-segment.js */ \"(ssr)/./node_modules/next/dist/client/components/client-segment.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(ssr)/./node_modules/next/dist/client/components/layout-router.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/metadata/async-metadata.js */ \"(ssr)/./node_modules/next/dist/client/components/metadata/async-metadata.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/metadata/metadata-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/metadata/metadata-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/render-from-template-context.js */ \"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./node_modules/next/dist/lib/metadata/generate/icon-mark.js */ \"(ssr)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js */ \"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmNsaWVudC1wYWdlLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmNsaWVudC1zZWdtZW50LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmh0dHAtYWNjZXNzLWZhbGxiYWNrJTJGZXJyb3ItYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbGF5b3V0LXJvdXRlci5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZtZXRhZGF0YSUyRmFzeW5jLW1ldGFkYXRhLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRm1ldGFkYXRhJTJGbWV0YWRhdGEtYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmxpYiUyRm1ldGFkYXRhJTJGZ2VuZXJhdGUlMkZpY29uLW1hcmsuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZuZXh0LWRldnRvb2xzJTJGdXNlcnNwYWNlJTJGYXBwJTJGc2VnbWVudC1leHBsb3Jlci1ub2RlLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj10cnVlISIsIm1hcHBpbmdzIjoiQUFBQSxvT0FBeUk7QUFDekk7QUFDQSwwT0FBNEk7QUFDNUk7QUFDQSxvUkFBaUs7QUFDaks7QUFDQSx3T0FBMkk7QUFDM0k7QUFDQSw0UEFBcUo7QUFDcko7QUFDQSxrUUFBd0o7QUFDeEo7QUFDQSxzUUFBMEo7QUFDMUo7QUFDQSxrT0FBMkk7QUFDM0k7QUFDQSw0UUFBNkoiLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXBhZ2UuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXNlZ21lbnQuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvaHR0cC1hY2Nlc3MtZmFsbGJhY2svZXJyb3ItYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbGF5b3V0LXJvdXRlci5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9tZXRhZGF0YS9hc3luYy1tZXRhZGF0YS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9tZXRhZGF0YS9tZXRhZGF0YS1ib3VuZGFyeS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9yZW5kZXItZnJvbS10ZW1wbGF0ZS1jb250ZXh0LmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9tZXRhZGF0YS9nZW5lcmF0ZS9pY29uLW1hcmsuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3NlZ21lbnQtZXhwbG9yZXItbm9kZS5qc1wiKTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobal-error.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!":
+/*!*****************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobal-error.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
+ \*****************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/global-error.tsx */ \"(ssr)/./src/app/global-error.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRnNyYyUyRmFwcCUyRmdsb2JhbC1lcnJvci50c3glMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLGdLQUEwRyIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2FwcC9nbG9iYWwtZXJyb3IudHN4XCIpO1xuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobal-error.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-dmserif%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22dmserif%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FBentham-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-bentham%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22bentham%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-rajdhani%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22rajdhani%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-share%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22share%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-MediumItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-BoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-kanit%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22kanit%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FFooter.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FNavigation.tsx%22%2C%22ids%22%3A%5B%22Navigation%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FProviders.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FTrackingOptOutBanner.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=true!":
+/*!********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-dmserif%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22dmserif%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FBentham-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-bentham%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22bentham%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-rajdhani%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22rajdhani%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-share%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22share%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-MediumItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-BoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-kanit%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22kanit%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FFooter.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FNavigation.tsx%22%2C%22ids%22%3A%5B%22Navigation%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FProviders.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FTrackingOptOutBanner.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=true! ***!
+ \********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/Footer.tsx */ \"(ssr)/./src/components/Footer.tsx\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/Navigation.tsx */ \"(ssr)/./src/components/Navigation.tsx\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/Providers.tsx */ \"(ssr)/./src/components/Providers.tsx\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/TrackingOptOutBanner.tsx */ \"(ssr)/./src/components/TrackingOptOutBanner.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRnNyYyUyRmFwcCUyRmdsb2JhbHMuY3NzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZmb250JTJGbG9jYWwlMkZ0YXJnZXQuY3NzJTNGJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMnNyYyUyRmFwcCUyRmxheW91dC50c3glNUMlMjIlMkMlNUMlMjJpbXBvcnQlNUMlMjIlM0ElNUMlMjIlNUMlMjIlMkMlNUMlMjJhcmd1bWVudHMlNUMlMjIlM0ElNUIlN0IlNUMlMjJzcmMlNUMlMjIlM0ElNUIlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRkRNU2VyaWZUZXh0LVJlZ3VsYXIudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNDAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlMkMlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRkRNU2VyaWZUZXh0LUl0YWxpYy50dGYlNUMlMjIlMkMlNUMlMjJ3ZWlnaHQlNUMlMjIlM0ElNUMlMjI0MDAlNUMlMjIlMkMlNUMlMjJzdHlsZSU1QyUyMiUzQSU1QyUyMml0YWxpYyU1QyUyMiU3RCU1RCUyQyU1QyUyMnZhcmlhYmxlJTVDJTIyJTNBJTVDJTIyLS1mb250LWRtc2VyaWYlNUMlMjIlMkMlNUMlMjJkaXNwbGF5JTVDJTIyJTNBJTVDJTIyc3dhcCU1QyUyMiU3RCU1RCUyQyU1QyUyMnZhcmlhYmxlTmFtZSU1QyUyMiUzQSU1QyUyMmRtc2VyaWYlNUMlMjIlN0QlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmZvbnQlMkZsb2NhbCUyRnRhcmdldC5jc3MlM0YlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyc3JjJTJGYXBwJTJGbGF5b3V0LnRzeCU1QyUyMiUyQyU1QyUyMmltcG9ydCU1QyUyMiUzQSU1QyUyMiU1QyUyMiUyQyU1QyUyMmFyZ3VtZW50cyU1QyUyMiUzQSU1QiU3QiU1QyUyMnNyYyU1QyUyMiUzQSU1QiU3QiU1QyUyMnBhdGglNUMlMjIlM0ElNUMlMjIuLiUyRmZvbnRzJTJGQmVudGhhbS1SZWd1bGFyLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjQwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTVEJTJDJTVDJTIydmFyaWFibGUlNUMlMjIlM0ElNUMlMjItLWZvbnQtYmVudGhhbSU1QyUyMiUyQyU1QyUyMmRpc3BsYXklNUMlMjIlM0ElNUMlMjJzd2FwJTVDJTIyJTdEJTVEJTJDJTVDJTIydmFyaWFibGVOYW1lJTVDJTIyJTNBJTVDJTIyYmVudGhhbSU1QyUyMiU3RCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZm9udCUyRmxvY2FsJTJGdGFyZ2V0LmNzcyUzRiU3QiU1QyUyMnBhdGglNUMlMjIlM0ElNUMlMjJzcmMlMkZhcHAlMkZsYXlvdXQudHN4JTVDJTIyJTJDJTVDJTIyaW1wb3J0JTVDJTIyJTNBJTVDJTIyJTVDJTIyJTJDJTVDJTIyYXJndW1lbnRzJTVDJTIyJTNBJTVCJTdCJTVDJTIyc3JjJTVDJTIyJTNBJTVCJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZSYWpkaGFuaSUyRlJhamRoYW5pLVJlZ3VsYXIudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNDAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlMkMlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRlJhamRoYW5pJTJGUmFqZGhhbmktTWVkaXVtLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjUwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZSYWpkaGFuaSUyRlJhamRoYW5pLVNlbWlCb2xkLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjYwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZSYWpkaGFuaSUyRlJhamRoYW5pLUJvbGQudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNzAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlNUQlMkMlNUMlMjJ2YXJpYWJsZSU1QyUyMiUzQSU1QyUyMi0tZm9udC1yYWpkaGFuaSU1QyUyMiUyQyU1QyUyMmRpc3BsYXklNUMlMjIlM0ElNUMlMjJzd2FwJTVDJTIyJTdEJTVEJTJDJTVDJTIydmFyaWFibGVOYW1lJTVDJTIyJTNBJTVDJTIycmFqZGhhbmklNUMlMjIlN0QlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmZvbnQlMkZsb2NhbCUyRnRhcmdldC5jc3MlM0YlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyc3JjJTJGYXBwJTJGbGF5b3V0LnRzeCU1QyUyMiUyQyU1QyUyMmltcG9ydCU1QyUyMiUzQSU1QyUyMiU1QyUyMiUyQyU1QyUyMmFyZ3VtZW50cyU1QyUyMiUzQSU1QiU3QiU1QyUyMnNyYyU1QyUyMiUzQSU1QiU3QiU1QyUyMnBhdGglNUMlMjIlM0ElNUMlMjIuLiUyRmZvbnRzJTJGU2hhcmUlMkZTaGFyZS1SZWd1bGFyLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjQwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZTaGFyZSUyRlNoYXJlLUJvbGQudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNzAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlNUQlMkMlNUMlMjJ2YXJpYWJsZSU1QyUyMiUzQSU1QyUyMi0tZm9udC1zaGFyZSU1QyUyMiUyQyU1QyUyMmRpc3BsYXklNUMlMjIlM0ElNUMlMjJzd2FwJTVDJTIyJTdEJTVEJTJDJTVDJTIydmFyaWFibGVOYW1lJTVDJTIyJTNBJTVDJTIyc2hhcmUlNUMlMjIlN0QlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmZvbnQlMkZsb2NhbCUyRnRhcmdldC5jc3MlM0YlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyc3JjJTJGYXBwJTJGbGF5b3V0LnRzeCU1QyUyMiUyQyU1QyUyMmltcG9ydCU1QyUyMiUzQSU1QyUyMiU1QyUyMiUyQyU1QyUyMmFyZ3VtZW50cyU1QyUyMiUzQSU1QiU3QiU1QyUyMnNyYyU1QyUyMiUzQSU1QiU3QiU1QyUyMnBhdGglNUMlMjIlM0ElNUMlMjIuLiUyRmZvbnRzJTJGS2FuaXQlMkZLYW5pdC1SZWd1bGFyLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjQwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZLYW5pdCUyRkthbml0LUl0YWxpYy50dGYlNUMlMjIlMkMlNUMlMjJ3ZWlnaHQlNUMlMjIlM0ElNUMlMjI0MDAlNUMlMjIlMkMlNUMlMjJzdHlsZSU1QyUyMiUzQSU1QyUyMml0YWxpYyU1QyUyMiU3RCUyQyU3QiU1QyUyMnBhdGglNUMlMjIlM0ElNUMlMjIuLiUyRmZvbnRzJTJGS2FuaXQlMkZLYW5pdC1NZWRpdW0udHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNTAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlMkMlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRkthbml0JTJGS2FuaXQtTWVkaXVtSXRhbGljLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjUwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIyaXRhbGljJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZLYW5pdCUyRkthbml0LVNlbWlCb2xkLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjYwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZLYW5pdCUyRkthbml0LVNlbWlCb2xkSXRhbGljLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjYwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIyaXRhbGljJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZLYW5pdCUyRkthbml0LUJvbGQudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNzAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlMkMlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRkthbml0JTJGS2FuaXQtQm9sZEl0YWxpYy50dGYlNUMlMjIlMkMlNUMlMjJ3ZWlnaHQlNUMlMjIlM0ElNUMlMjI3MDAlNUMlMjIlMkMlNUMlMjJzdHlsZSU1QyUyMiUzQSU1QyUyMml0YWxpYyU1QyUyMiU3RCU1RCUyQyU1QyUyMnZhcmlhYmxlJTVDJTIyJTNBJTVDJTIyLS1mb250LWthbml0JTVDJTIyJTJDJTVDJTIyZGlzcGxheSU1QyUyMiUzQSU1QyUyMnN3YXAlNUMlMjIlN0QlNUQlMkMlNUMlMjJ2YXJpYWJsZU5hbWUlNUMlMjIlM0ElNUMlMjJrYW5pdCU1QyUyMiU3RCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZzcmMlMkZjb21wb25lbnRzJTJGRm9vdGVyLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMmRlZmF1bHQlMjIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGc3JjJTJGY29tcG9uZW50cyUyRk5hdmlnYXRpb24udHN4JTIyJTJDJTIyaWRzJTIyJTNBJTVCJTIyTmF2aWdhdGlvbiUyMiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZzcmMlMkZjb21wb25lbnRzJTJGUHJvdmlkZXJzLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMmRlZmF1bHQlMjIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGc3JjJTJGY29tcG9uZW50cyUyRlRyYWNraW5nT3B0T3V0QmFubmVyLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMmRlZmF1bHQlMjIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLGtLQUF3STtBQUN4STtBQUNBLDBLQUErSTtBQUMvSTtBQUNBLHdLQUEySTtBQUMzSTtBQUNBLDhMQUFzSiIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiZGVmYXVsdFwiXSAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL0Zvb3Rlci50c3hcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiwgd2VicGFja0V4cG9ydHM6IFtcIk5hdmlnYXRpb25cIl0gKi8gXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uLnRzeFwiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiZGVmYXVsdFwiXSAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL1Byb3ZpZGVycy50c3hcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiwgd2VicGFja0V4cG9ydHM6IFtcImRlZmF1bHRcIl0gKi8gXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy9UcmFja2luZ09wdE91dEJhbm5lci50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-dmserif%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22dmserif%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FBentham-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-bentham%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22bentham%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-rajdhani%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22rajdhani%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-share%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22share%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-MediumItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-BoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-kanit%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22kanit%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FFooter.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FNavigation.tsx%22%2C%22ids%22%3A%5B%22Navigation%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FProviders.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FTrackingOptOutBanner.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=true!\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/app/global-error.tsx":
+/*!**********************************!*\
+ !*** ./src/app/global-error.tsx ***!
+ \**********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ GlobalError)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _sentry_nextjs__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @sentry/nextjs */ \"(ssr)/./node_modules/@sentry/nextjs/build/cjs/index.server.js\");\n/* harmony import */ var _sentry_nextjs__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(_sentry_nextjs__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var next_error__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/error */ \"(ssr)/./node_modules/next/error.js\");\n/* harmony import */ var next_error__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_error__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\nfunction GlobalError({ error }) {\n (0,react__WEBPACK_IMPORTED_MODULE_2__.useEffect)({\n \"GlobalError.useEffect\": ()=>{\n _sentry_nextjs__WEBPACK_IMPORTED_MODULE_3__.captureException(error);\n }\n }[\"GlobalError.useEffect\"], [\n error\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_error__WEBPACK_IMPORTED_MODULE_1___default()), {\n statusCode: 0\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/global-error.tsx\",\n lineNumber: 19,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/global-error.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/global-error.tsx\",\n lineNumber: 13,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvYXBwL2dsb2JhbC1lcnJvci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUV5QztBQUNOO0FBQ0Q7QUFFbkIsU0FBU0csWUFBWSxFQUFFQyxLQUFLLEVBQTBDO0lBQ25GRixnREFBU0E7aUNBQUM7WUFDUkYsNERBQXVCLENBQUNJO1FBQzFCO2dDQUFHO1FBQUNBO0tBQU07SUFFVixxQkFDRSw4REFBQ0U7a0JBQ0MsNEVBQUNDO3NCQUtDLDRFQUFDTixtREFBU0E7Z0JBQUNPLFlBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJL0IiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvZ2xvYmFsLWVycm9yLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0ICogYXMgU2VudHJ5IGZyb20gXCJAc2VudHJ5L25leHRqc1wiO1xuaW1wb3J0IE5leHRFcnJvciBmcm9tIFwibmV4dC9lcnJvclwiO1xuaW1wb3J0IHsgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEdsb2JhbEVycm9yKHsgZXJyb3IgfTogeyBlcnJvcjogRXJyb3IgJiB7IGRpZ2VzdD86IHN0cmluZyB9IH0pIHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihlcnJvcik7XG4gIH0sIFtlcnJvcl0pO1xuXG4gIHJldHVybiAoXG4gICAgPGh0bWw+XG4gICAgICA8Ym9keT5cbiAgICAgICAgey8qIGBOZXh0RXJyb3JgIGlzIHRoZSBkZWZhdWx0IE5leHQuanMgZXJyb3IgcGFnZSBjb21wb25lbnQuIEl0cyB0eXBlXG4gICAgICAgIGRlZmluaXRpb24gcmVxdWlyZXMgYSBgc3RhdHVzQ29kZWAgcHJvcC4gSG93ZXZlciwgc2luY2UgdGhlIEFwcCBSb3V0ZXJcbiAgICAgICAgZG9lcyBub3QgZXhwb3NlIHN0YXR1cyBjb2RlcyBmb3IgZXJyb3JzLCB3ZSBzaW1wbHkgcGFzcyAwIHRvIHJlbmRlciBhXG4gICAgICAgIGdlbmVyaWMgZXJyb3IgbWVzc2FnZS4gKi99XG4gICAgICAgIDxOZXh0RXJyb3Igc3RhdHVzQ29kZT17MH0gLz5cbiAgICAgIDwvYm9keT5cbiAgICA8L2h0bWw+XG4gICk7XG59Il0sIm5hbWVzIjpbIlNlbnRyeSIsIk5leHRFcnJvciIsInVzZUVmZmVjdCIsIkdsb2JhbEVycm9yIiwiZXJyb3IiLCJjYXB0dXJlRXhjZXB0aW9uIiwiaHRtbCIsImJvZHkiLCJzdGF0dXNDb2RlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/app/global-error.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/Buttons.tsx":
+/*!************************************!*\
+ !*** ./src/components/Buttons.tsx ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Button: () => (/* binding */ Button),\n/* harmony export */ FloatingActionButton: () => (/* binding */ FloatingActionButton),\n/* harmony export */ IconButton: () => (/* binding */ IconButton),\n/* harmony export */ LinkButton: () => (/* binding */ LinkButton)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(ssr)/./node_modules/next/dist/client/app-dir/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n\n\n\nfunction Button({ variant = 'primary', size = 'md', isLoading = false, children, className = '', disabled, ...props }) {\n const variants = {\n primary: 'btn-primary',\n secondary: 'btn-secondary',\n ghost: 'btn-ghost',\n danger: 'btn bg-red-500 hover:bg-red-600 text-white'\n };\n const sizes = {\n sm: 'px-2 py-1 text-xs',\n md: 'px-3 py-1.5 text-sm',\n lg: 'px-4 py-2 text-base'\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: `${variants[variant]} ${sizes[size]} ${className} ${isLoading ? 'opacity-75 cursor-wait' : ''}`,\n disabled: disabled || isLoading,\n ...props,\n children: isLoading ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"flex items-center gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"spinner w-3 h-3\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Buttons.tsx\",\n lineNumber: 43,\n columnNumber: 11\n }, this),\n \"Loading...\"\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Buttons.tsx\",\n lineNumber: 42,\n columnNumber: 9\n }, this) : children\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Buttons.tsx\",\n lineNumber: 34,\n columnNumber: 5\n }, this);\n}\nfunction LinkButton({ variant = 'primary', size = 'md', children, className = '', href = '#', ...props }) {\n const variants = {\n primary: 'btn-primary',\n secondary: 'btn-secondary',\n ghost: 'btn-ghost'\n };\n const sizes = {\n sm: 'px-2 py-1 text-xs',\n md: 'px-3 py-1.5 text-sm',\n lg: 'px-4 py-2 text-base'\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: href,\n className: `${variants[variant]} ${sizes[size]} ${className}`,\n ...props,\n children: children\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Buttons.tsx\",\n lineNumber: 79,\n columnNumber: 5\n }, this);\n}\nfunction IconButton({ icon, label, onClick, variant = 'ghost', className = '' }) {\n const variants = {\n primary: 'btn-primary',\n secondary: 'btn-secondary',\n ghost: 'btn-ghost',\n danger: 'btn bg-red-500 hover:bg-red-600 text-white'\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: onClick,\n className: `${variants[variant]} p-1.5 ${className}`,\n \"aria-label\": label,\n children: icon\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Buttons.tsx\",\n lineNumber: 110,\n columnNumber: 5\n }, this);\n}\nfunction FloatingActionButton({ icon, label, onClick, position = 'bottom-right' }) {\n const positions = {\n 'bottom-right': 'bottom-4 right-4',\n 'bottom-left': 'bottom-4 left-4',\n 'top-right': 'top-4 right-4',\n 'top-left': 'top-4 left-4'\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: onClick,\n className: `fixed ${positions[position]} z-40 w-12 h-12 rounded-full bg-accent text-text-primary flex items-center justify-center`,\n \"aria-label\": label,\n children: icon\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Buttons.tsx\",\n lineNumber: 139,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9CdXR0b25zLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUE0QjtBQUNIO0FBU2xCLFNBQVNFLE9BQU8sRUFDckJDLFVBQVUsU0FBUyxFQUNuQkMsT0FBTyxJQUFJLEVBQ1hDLFlBQVksS0FBSyxFQUNqQkMsUUFBUSxFQUNSQyxZQUFZLEVBQUUsRUFDZEMsUUFBUSxFQUNSLEdBQUdDLE9BQ1M7SUFDWixNQUFNQyxXQUFXO1FBQ2ZDLFNBQVM7UUFDVEMsV0FBVztRQUNYQyxPQUFPO1FBQ1BDLFFBQVE7SUFDVjtJQUVBLE1BQU1DLFFBQVE7UUFDWkMsSUFBSTtRQUNKQyxJQUFJO1FBQ0pDLElBQUk7SUFDTjtJQUVBLHFCQUNFLDhEQUFDQztRQUNDWixXQUFXLEdBQUdHLFFBQVEsQ0FBQ1AsUUFBUSxDQUFDLENBQUMsRUFBRVksS0FBSyxDQUFDWCxLQUFLLENBQUMsQ0FBQyxFQUFFRyxVQUFVLENBQUMsRUFDM0RGLFlBQVksMkJBQTJCLElBQ3ZDO1FBQ0ZHLFVBQVVBLFlBQVlIO1FBQ3JCLEdBQUdJLEtBQUs7a0JBRVJKLDBCQUNDLDhEQUFDZTtZQUFLYixXQUFVOzs4QkFDZCw4REFBQ2E7b0JBQUtiLFdBQVU7Ozs7OztnQkFBb0I7Ozs7OzttQkFJdENEOzs7Ozs7QUFJUjtBQU9PLFNBQVNlLFdBQVcsRUFDekJsQixVQUFVLFNBQVMsRUFDbkJDLE9BQU8sSUFBSSxFQUNYRSxRQUFRLEVBQ1JDLFlBQVksRUFBRSxFQUNkZSxPQUFPLEdBQUcsRUFDVixHQUFHYixPQUNhO0lBQ2hCLE1BQU1DLFdBQVc7UUFDZkMsU0FBUztRQUNUQyxXQUFXO1FBQ1hDLE9BQU87SUFDVDtJQUVBLE1BQU1FLFFBQVE7UUFDWkMsSUFBSTtRQUNKQyxJQUFJO1FBQ0pDLElBQUk7SUFDTjtJQUVBLHFCQUNFLDhEQUFDbEIsa0RBQUlBO1FBQ0hzQixNQUFNQTtRQUNOZixXQUFXLEdBQUdHLFFBQVEsQ0FBQ1AsUUFBUSxDQUFDLENBQUMsRUFBRVksS0FBSyxDQUFDWCxLQUFLLENBQUMsQ0FBQyxFQUFFRyxXQUFXO1FBQzVELEdBQUdFLEtBQUs7a0JBRVJIOzs7Ozs7QUFHUDtBQUVPLFNBQVNpQixXQUFXLEVBQ3pCQyxJQUFJLEVBQ0pDLEtBQUssRUFDTEMsT0FBTyxFQUNQdkIsVUFBVSxPQUFPLEVBQ2pCSSxZQUFZLEVBQUUsRUFPZjtJQUNDLE1BQU1HLFdBQVc7UUFDZkMsU0FBUztRQUNUQyxXQUFXO1FBQ1hDLE9BQU87UUFDUEMsUUFBUTtJQUNWO0lBRUEscUJBQ0UsOERBQUNLO1FBQ0NPLFNBQVNBO1FBQ1RuQixXQUFXLEdBQUdHLFFBQVEsQ0FBQ1AsUUFBUSxDQUFDLE9BQU8sRUFBRUksV0FBVztRQUNwRG9CLGNBQVlGO2tCQUVYRDs7Ozs7O0FBR1A7QUFFTyxTQUFTSSxxQkFBcUIsRUFDbkNKLElBQUksRUFDSkMsS0FBSyxFQUNMQyxPQUFPLEVBQ1BHLFdBQVcsY0FBYyxFQU0xQjtJQUNDLE1BQU1DLFlBQVk7UUFDaEIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixhQUFhO1FBQ2IsWUFBWTtJQUNkO0lBRUEscUJBQ0UsOERBQUNYO1FBQ0NPLFNBQVNBO1FBQ1RuQixXQUFXLENBQUMsTUFBTSxFQUFFdUIsU0FBUyxDQUFDRCxTQUFTLENBQUMseUZBQXlGLENBQUM7UUFDbElGLGNBQVlGO2tCQUVYRDs7Ozs7O0FBR1AiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL0J1dHRvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMaW5rIGZyb20gJ25leHQvbGluaydcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEJ1dHRvbkhUTUxBdHRyaWJ1dGVzLCBBbmNob3JIVE1MQXR0cmlidXRlcyB9IGZyb20gJ3JlYWN0J1xuXG5pbnRlcmZhY2UgQnV0dG9uUHJvcHMgZXh0ZW5kcyBCdXR0b25IVE1MQXR0cmlidXRlczxIVE1MQnV0dG9uRWxlbWVudD4ge1xuICB2YXJpYW50PzogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnZ2hvc3QnIHwgJ2RhbmdlcidcbiAgc2l6ZT86ICdzbScgfCAnbWQnIHwgJ2xnJ1xuICBpc0xvYWRpbmc/OiBib29sZWFuXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBCdXR0b24oe1xuICB2YXJpYW50ID0gJ3ByaW1hcnknLFxuICBzaXplID0gJ21kJyxcbiAgaXNMb2FkaW5nID0gZmFsc2UsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUgPSAnJyxcbiAgZGlzYWJsZWQsXG4gIC4uLnByb3BzXG59OiBCdXR0b25Qcm9wcykge1xuICBjb25zdCB2YXJpYW50cyA9IHtcbiAgICBwcmltYXJ5OiAnYnRuLXByaW1hcnknLFxuICAgIHNlY29uZGFyeTogJ2J0bi1zZWNvbmRhcnknLFxuICAgIGdob3N0OiAnYnRuLWdob3N0JyxcbiAgICBkYW5nZXI6ICdidG4gYmctcmVkLTUwMCBob3ZlcjpiZy1yZWQtNjAwIHRleHQtd2hpdGUnLFxuICB9XG5cbiAgY29uc3Qgc2l6ZXMgPSB7XG4gICAgc206ICdweC0yIHB5LTEgdGV4dC14cycsXG4gICAgbWQ6ICdweC0zIHB5LTEuNSB0ZXh0LXNtJyxcbiAgICBsZzogJ3B4LTQgcHktMiB0ZXh0LWJhc2UnLFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8YnV0dG9uXG4gICAgICBjbGFzc05hbWU9e2Ake3ZhcmlhbnRzW3ZhcmlhbnRdfSAke3NpemVzW3NpemVdfSAke2NsYXNzTmFtZX0gJHtcbiAgICAgICAgaXNMb2FkaW5nID8gJ29wYWNpdHktNzUgY3Vyc29yLXdhaXQnIDogJydcbiAgICAgIH1gfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IGlzTG9hZGluZ31cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICB7aXNMb2FkaW5nID8gKFxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNwaW5uZXIgdy0zIGgtM1wiIC8+XG4gICAgICAgICAgTG9hZGluZy4uLlxuICAgICAgICA8L3NwYW4+XG4gICAgICApIDogKFxuICAgICAgICBjaGlsZHJlblxuICAgICAgKX1cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5pbnRlcmZhY2UgTGlua0J1dHRvblByb3BzIGV4dGVuZHMgQW5jaG9ySFRNTEF0dHJpYnV0ZXM8SFRNTEFuY2hvckVsZW1lbnQ+IHtcbiAgdmFyaWFudD86ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ2dob3N0J1xuICBzaXplPzogJ3NtJyB8ICdtZCcgfCAnbGcnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBMaW5rQnV0dG9uKHtcbiAgdmFyaWFudCA9ICdwcmltYXJ5JyxcbiAgc2l6ZSA9ICdtZCcsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUgPSAnJyxcbiAgaHJlZiA9ICcjJyxcbiAgLi4ucHJvcHNcbn06IExpbmtCdXR0b25Qcm9wcykge1xuICBjb25zdCB2YXJpYW50cyA9IHtcbiAgICBwcmltYXJ5OiAnYnRuLXByaW1hcnknLFxuICAgIHNlY29uZGFyeTogJ2J0bi1zZWNvbmRhcnknLFxuICAgIGdob3N0OiAnYnRuLWdob3N0JyxcbiAgfVxuXG4gIGNvbnN0IHNpemVzID0ge1xuICAgIHNtOiAncHgtMiBweS0xIHRleHQteHMnLFxuICAgIG1kOiAncHgtMyBweS0xLjUgdGV4dC1zbScsXG4gICAgbGc6ICdweC00IHB5LTIgdGV4dC1iYXNlJyxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPExpbmtcbiAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICBjbGFzc05hbWU9e2Ake3ZhcmlhbnRzW3ZhcmlhbnRdfSAke3NpemVzW3NpemVdfSAke2NsYXNzTmFtZX1gfVxuICAgICAgey4uLnByb3BzfVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0xpbms+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEljb25CdXR0b24oe1xuICBpY29uLFxuICBsYWJlbCxcbiAgb25DbGljayxcbiAgdmFyaWFudCA9ICdnaG9zdCcsXG4gIGNsYXNzTmFtZSA9ICcnLFxufToge1xuICBpY29uOiBSZWFjdC5SZWFjdE5vZGVcbiAgbGFiZWw6IHN0cmluZ1xuICBvbkNsaWNrPzogKCkgPT4gdm9pZFxuICB2YXJpYW50PzogJ3ByaW1hcnknIHwgJ3NlY29uZGFyeScgfCAnZ2hvc3QnIHwgJ2RhbmdlcidcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59KSB7XG4gIGNvbnN0IHZhcmlhbnRzID0ge1xuICAgIHByaW1hcnk6ICdidG4tcHJpbWFyeScsXG4gICAgc2Vjb25kYXJ5OiAnYnRuLXNlY29uZGFyeScsXG4gICAgZ2hvc3Q6ICdidG4tZ2hvc3QnLFxuICAgIGRhbmdlcjogJ2J0biBiZy1yZWQtNTAwIGhvdmVyOmJnLXJlZC02MDAgdGV4dC13aGl0ZScsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICBjbGFzc05hbWU9e2Ake3ZhcmlhbnRzW3ZhcmlhbnRdfSBwLTEuNSAke2NsYXNzTmFtZX1gfVxuICAgICAgYXJpYS1sYWJlbD17bGFiZWx9XG4gICAgPlxuICAgICAge2ljb259XG4gICAgPC9idXR0b24+XG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEZsb2F0aW5nQWN0aW9uQnV0dG9uKHtcbiAgaWNvbixcbiAgbGFiZWwsXG4gIG9uQ2xpY2ssXG4gIHBvc2l0aW9uID0gJ2JvdHRvbS1yaWdodCcsXG59OiB7XG4gIGljb246IFJlYWN0LlJlYWN0Tm9kZVxuICBsYWJlbDogc3RyaW5nXG4gIG9uQ2xpY2s6ICgpID0+IHZvaWRcbiAgcG9zaXRpb24/OiAnYm90dG9tLXJpZ2h0JyB8ICdib3R0b20tbGVmdCcgfCAndG9wLXJpZ2h0JyB8ICd0b3AtbGVmdCdcbn0pIHtcbiAgY29uc3QgcG9zaXRpb25zID0ge1xuICAgICdib3R0b20tcmlnaHQnOiAnYm90dG9tLTQgcmlnaHQtNCcsXG4gICAgJ2JvdHRvbS1sZWZ0JzogJ2JvdHRvbS00IGxlZnQtNCcsXG4gICAgJ3RvcC1yaWdodCc6ICd0b3AtNCByaWdodC00JyxcbiAgICAndG9wLWxlZnQnOiAndG9wLTQgbGVmdC00JyxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIGNsYXNzTmFtZT17YGZpeGVkICR7cG9zaXRpb25zW3Bvc2l0aW9uXX0gei00MCB3LTEyIGgtMTIgcm91bmRlZC1mdWxsIGJnLWFjY2VudCB0ZXh0LXRleHQtcHJpbWFyeSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlcmB9XG4gICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICA+XG4gICAgICB7aWNvbn1cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkxpbmsiLCJSZWFjdCIsIkJ1dHRvbiIsInZhcmlhbnQiLCJzaXplIiwiaXNMb2FkaW5nIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsInByb3BzIiwidmFyaWFudHMiLCJwcmltYXJ5Iiwic2Vjb25kYXJ5IiwiZ2hvc3QiLCJkYW5nZXIiLCJzaXplcyIsInNtIiwibWQiLCJsZyIsImJ1dHRvbiIsInNwYW4iLCJMaW5rQnV0dG9uIiwiaHJlZiIsIkljb25CdXR0b24iLCJpY29uIiwibGFiZWwiLCJvbkNsaWNrIiwiYXJpYS1sYWJlbCIsIkZsb2F0aW5nQWN0aW9uQnV0dG9uIiwicG9zaXRpb24iLCJwb3NpdGlvbnMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/Buttons.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/Footer.tsx":
+/*!***********************************!*\
+ !*** ./src/components/Footer.tsx ***!
+ \***********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Footer)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/link */ \"(ssr)/./node_modules/next/dist/client/app-dir/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _Layouts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! ./Layouts */ \"(ssr)/./src/components/Layouts.tsx\");\n/* harmony import */ var _Forms__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./Forms */ \"(ssr)/./src/components/Forms.tsx\");\n/* harmony import */ var _Buttons__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./Buttons */ \"(ssr)/./src/components/Buttons.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\n\nfunction Footer() {\n const [email, setEmail] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const [firstName, setFirstName] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const [message, setMessage] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const [agree, setAgree] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [isSubmitting, setIsSubmitting] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [submitMessage, setSubmitMessage] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const handleSubmit = async (e)=>{\n e.preventDefault();\n setSubmitMessage('');\n if (!agree) {\n setSubmitMessage('Please agree to the Terms of Use and Privacy Policy.');\n return;\n }\n const accessKey = process.env.NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY;\n if (!accessKey) {\n setSubmitMessage('Form configuration error. Missing Web3Forms access key.');\n return;\n }\n setIsSubmitting(true);\n try {\n const res = await fetch('https://api.web3forms.com/submit', {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json'\n },\n body: JSON.stringify({\n access_key: accessKey,\n subject: 'Footer inquiry from Biohazard VFX',\n from_name: firstName || 'Website Visitor',\n replyto: email,\n firstName,\n email,\n message,\n consent_terms: true,\n consent_privacy: true,\n source: 'FooterForm'\n })\n });\n const result = await res.json();\n if (result.success) {\n setSubmitMessage(\"Thank you! We'll be in touch soon.\");\n setEmail('');\n setFirstName('');\n setMessage('');\n setAgree(false);\n } else {\n setSubmitMessage('There was an error sending your message. Please try again.');\n }\n } catch {\n setSubmitMessage('There was an error sending your message. Please try again.');\n } finally{\n setIsSubmitting(false);\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"footer\", {\n className: \"bg-surface-900 pt-12 pb-8 border-t border-surface-500\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Layouts__WEBPACK_IMPORTED_MODULE_3__.Container, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid grid-cols-1 md:grid-cols-3 gap-8 items-start\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-2xl font-display text-white mb-2\",\n children: \"Biohazard VFX\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 74,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-text-muted text-sm max-w-md\",\n children: \"Global visual effects studio delivering world-class VFX supervision, 3D animation, and post-production services.\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 75,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-text-muted text-sm mt-3\",\n children: \"We usually reply within 24 hours.\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 78,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 73,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-lg font-semibold text-white mb-3\",\n children: \"Explore\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 83,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/projects\",\n className: \"block link-muted text-sm\",\n children: \"Projects\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 86,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/crew\",\n className: \"block link-muted text-sm\",\n children: \"Our Crew\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 87,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/blog\",\n className: \"block link-muted text-sm\",\n children: \"Blog\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 88,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/contact\",\n className: \"block link-muted text-sm\",\n children: \"Contact\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 89,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 85,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"space-y-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/services\",\n className: \"block link-muted text-sm\",\n children: \"Services\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 92,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/privacy\",\n className: \"block link-muted text-sm\",\n children: \"Privacy\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 93,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/terms\",\n className: \"block link-muted text-sm\",\n children: \"Terms\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 94,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"mailto:Davane@biohazardvfx.com\",\n className: \"block link-muted text-sm\",\n children: \"DMCA\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 95,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 91,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 84,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 82,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h4\", {\n className: \"text-lg font-semibold text-white mb-3\",\n children: \"Contact Us\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 102,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"form\", {\n onSubmit: handleSubmit,\n className: \"space-y-3\",\n noValidate: true,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Forms__WEBPACK_IMPORTED_MODULE_4__.Input, {\n type: \"text\",\n placeholder: \"Name\",\n value: firstName,\n onChange: (e)=>setFirstName(e.target.value),\n className: \"text-sm\",\n autoComplete: \"given-name\",\n name: \"firstName\",\n id: \"footer-firstName\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 104,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Forms__WEBPACK_IMPORTED_MODULE_4__.Input, {\n type: \"email\",\n placeholder: \"Email\",\n value: email,\n onChange: (e)=>setEmail(e.target.value),\n className: \"text-sm\",\n autoComplete: \"email\",\n name: \"email\",\n id: \"footer-email\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 114,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Forms__WEBPACK_IMPORTED_MODULE_4__.Textarea, {\n placeholder: \"Message\",\n value: message,\n onChange: (e)=>setMessage(e.target.value),\n rows: 3,\n className: \"text-sm\",\n name: \"message\",\n id: \"footer-message\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 124,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"flex items-center gap-2 text-xs text-text-muted\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n className: \"h-4 w-4\",\n checked: agree,\n onChange: (e)=>setAgree(e.target.checked),\n \"aria-describedby\": \"footer-consent-help\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 135,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \"I agree to the \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/terms\",\n className: \"link\",\n children: \"Terms\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 142,\n columnNumber: 38\n }, this),\n \" and \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/privacy\",\n className: \"link\",\n children: \"Privacy Policy\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 142,\n columnNumber: 92\n }, this),\n \".\"\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 142,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 134,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n id: \"footer-consent-help\",\n className: \"sr-only\",\n children: \"You must agree before submitting.\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 144,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_Buttons__WEBPACK_IMPORTED_MODULE_5__.Button, {\n type: \"submit\",\n disabled: isSubmitting || !agree,\n isLoading: isSubmitting,\n size: \"sm\",\n children: \"Send\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 147,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/contact\",\n className: \"text-sm link-muted hover:text-text-secondary\",\n children: \"Or open contact page\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 150,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 146,\n columnNumber: 15\n }, this),\n submitMessage && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: `text-xs ${submitMessage.includes('Thank you') ? 'text-green-400' : 'text-red-400'}`,\n children: submitMessage\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 154,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 103,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 101,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 71,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border-t border-surface-500 mt-8 pt-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col md:flex-row justify-between items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://www.instagram.com/biohazardvfx/\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"text-text-muted hover:text-accent transition-colors\",\n \"aria-label\": \"Instagram\",\n title: \"Instagram\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-5 h-5\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zM12 5c-3.859 0-7 3.141-7 7 0 3.859 3.141 7 7 7s7-3.141 7-7c0-3.859-3.141-7-7-7zm6.406.52a1.44 1.44 0 1 0 0 2.88 1.44 1.44 0 0 0 0-2.88z\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 174,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 173,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 165,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://vimeo.com/biohazardvfx\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"text-text-muted hover:text-accent transition-colors\",\n \"aria-label\": \"Vimeo\",\n title: \"Vimeo\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-5 h-5\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M22.875 10.063c-2.442 5.217-8.337 12.319-12.063 12.319-3.672 0-4.203-7.831-6.208-13.043-.987-2.565-1.624-1.814-3.474-.281L0 8.019c2.698-2.435 5.394-5.391 7.396-5.553 3.162-.242 3.487 2.831 4.024 5.479.699 3.463 1.809 8.845 2.801 8.845.796 0 2.289-3.313 2.428-4.516.222-1.853-1.512-1.879-2.971-1.271C17.503-2.071 22.875 4.44 22.875 10.063z\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 186,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 185,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 177,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"https://www.youtube.com/@biohazardvfx\",\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"text-text-muted hover:text-accent transition-colors\",\n \"aria-label\": \"YouTube\",\n title: \"YouTube\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-5 h-5\",\n fill: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M23.498 6.186a3.016 3.016 0 0 0-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 0 0 .502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 0 0 2.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 0 0 2.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 198,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 197,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 189,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 164,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col md:flex-row items-center gap-4 text-sm text-text-muted\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: [\n \"\\xa9 \",\n new Date().getFullYear(),\n \" Biohazard VFX. All rights reserved.\"\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 204,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/privacy\",\n className: \"link-muted\",\n children: \"Privacy Policy\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 206,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/terms\",\n className: \"link-muted\",\n children: \"Terms of Use\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 207,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: \"mailto:Davane@biohazardvfx.com\",\n className: \"link-muted\",\n title: \"DMCA\",\n children: \"DMCA\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 208,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 205,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 203,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 163,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 162,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 70,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx\",\n lineNumber: 69,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9Gb290ZXIudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBRXlCO0FBQ0c7QUFDSTtBQUNLO0FBQ0k7QUFDUDtBQUVuQixTQUFTTztJQUN0QixNQUFNLENBQUNDLE9BQU9DLFNBQVMsR0FBR1AsK0NBQVFBLENBQUM7SUFDbkMsTUFBTSxDQUFDUSxXQUFXQyxhQUFhLEdBQUdULCtDQUFRQSxDQUFDO0lBQzNDLE1BQU0sQ0FBQ1UsU0FBU0MsV0FBVyxHQUFHWCwrQ0FBUUEsQ0FBQztJQUN2QyxNQUFNLENBQUNZLE9BQU9DLFNBQVMsR0FBR2IsK0NBQVFBLENBQUM7SUFDbkMsTUFBTSxDQUFDYyxjQUFjQyxnQkFBZ0IsR0FBR2YsK0NBQVFBLENBQUM7SUFDakQsTUFBTSxDQUFDZ0IsZUFBZUMsaUJBQWlCLEdBQUdqQiwrQ0FBUUEsQ0FBQztJQUVuRCxNQUFNa0IsZUFBZSxPQUFPQztRQUMxQkEsRUFBRUMsY0FBYztRQUNoQkgsaUJBQWlCO1FBRWpCLElBQUksQ0FBQ0wsT0FBTztZQUNWSyxpQkFBaUI7WUFDakI7UUFDRjtRQUVBLE1BQU1JLFlBQVlDLFFBQVFDLEdBQUcsQ0FBQ0MsZ0NBQWdDO1FBQzlELElBQUksQ0FBQ0gsV0FBVztZQUNkSixpQkFBaUI7WUFDakI7UUFDRjtRQUVBRixnQkFBZ0I7UUFDaEIsSUFBSTtZQUNGLE1BQU1VLE1BQU0sTUFBTUMsTUFBTSxvQ0FBb0M7Z0JBQzFEQyxRQUFRO2dCQUNSQyxTQUFTO29CQUFFLGdCQUFnQjtnQkFBbUI7Z0JBQzlDQyxNQUFNQyxLQUFLQyxTQUFTLENBQUM7b0JBQ25CQyxZQUFZWDtvQkFDWlksU0FBUztvQkFDVEMsV0FBVzFCLGFBQWE7b0JBQ3hCMkIsU0FBUzdCO29CQUNURTtvQkFDQUY7b0JBQ0FJO29CQUNBMEIsZUFBZTtvQkFDZkMsaUJBQWlCO29CQUNqQkMsUUFBUTtnQkFDVjtZQUNGO1lBQ0EsTUFBTUMsU0FBUyxNQUFNZCxJQUFJZSxJQUFJO1lBQzdCLElBQUlELE9BQU9FLE9BQU8sRUFBRTtnQkFDbEJ4QixpQkFBaUI7Z0JBQ2pCVixTQUFTO2dCQUNURSxhQUFhO2dCQUNiRSxXQUFXO2dCQUNYRSxTQUFTO1lBQ1gsT0FBTztnQkFDTEksaUJBQWlCO1lBQ25CO1FBQ0YsRUFBRSxPQUFNO1lBQ05BLGlCQUFpQjtRQUNuQixTQUFVO1lBQ1JGLGdCQUFnQjtRQUNsQjtJQUNGO0lBRUEscUJBQ0UsOERBQUMyQjtRQUFPQyxXQUFVO2tCQUNoQiw0RUFBQzFDLCtDQUFTQTs7OEJBQ1IsOERBQUMyQztvQkFBSUQsV0FBVTs7c0NBRWIsOERBQUNDOzs4Q0FDQyw4REFBQ0M7b0NBQUdGLFdBQVU7OENBQXdDOzs7Ozs7OENBQ3RELDhEQUFDRztvQ0FBRUgsV0FBVTs4Q0FBbUM7Ozs7Ozs4Q0FHaEQsOERBQUNHO29DQUFFSCxXQUFVOzhDQUErQjs7Ozs7Ozs7Ozs7O3NDQUk5Qyw4REFBQ0M7OzhDQUNDLDhEQUFDRztvQ0FBR0osV0FBVTs4Q0FBd0M7Ozs7Ozs4Q0FDdEQsOERBQUNDO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ0s7NENBQUlMLFdBQVU7OzhEQUNiLDhEQUFDNUMsa0RBQUlBO29EQUFDa0QsTUFBSztvREFBWU4sV0FBVTs4REFBMkI7Ozs7Ozs4REFDNUQsOERBQUM1QyxrREFBSUE7b0RBQUNrRCxNQUFLO29EQUFRTixXQUFVOzhEQUEyQjs7Ozs7OzhEQUN4RCw4REFBQzVDLGtEQUFJQTtvREFBQ2tELE1BQUs7b0RBQVFOLFdBQVU7OERBQTJCOzs7Ozs7OERBQ3hELDhEQUFDNUMsa0RBQUlBO29EQUFDa0QsTUFBSztvREFBV04sV0FBVTs4REFBMkI7Ozs7Ozs7Ozs7OztzREFFN0QsOERBQUNLOzRDQUFJTCxXQUFVOzs4REFDYiw4REFBQzVDLGtEQUFJQTtvREFBQ2tELE1BQUs7b0RBQVlOLFdBQVU7OERBQTJCOzs7Ozs7OERBQzVELDhEQUFDNUMsa0RBQUlBO29EQUFDa0QsTUFBSztvREFBV04sV0FBVTs4REFBMkI7Ozs7Ozs4REFDM0QsOERBQUM1QyxrREFBSUE7b0RBQUNrRCxNQUFLO29EQUFTTixXQUFVOzhEQUEyQjs7Ozs7OzhEQUN6RCw4REFBQ087b0RBQUVELE1BQUs7b0RBQWlDTixXQUFVOzhEQUEyQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQU1wRiw4REFBQ0M7OzhDQUNDLDhEQUFDRztvQ0FBR0osV0FBVTs4Q0FBd0M7Ozs7Ozs4Q0FDdEQsOERBQUNRO29DQUFLQyxVQUFVbEM7b0NBQWN5QixXQUFVO29DQUFZVSxVQUFVOztzREFDNUQsOERBQUNuRCx5Q0FBS0E7NENBQ0pvRCxNQUFLOzRDQUNMQyxhQUFZOzRDQUNaQyxPQUFPaEQ7NENBQ1BpRCxVQUFVLENBQUN0QyxJQUFNVixhQUFhVSxFQUFFdUMsTUFBTSxDQUFDRixLQUFLOzRDQUM1Q2IsV0FBVTs0Q0FDVmdCLGNBQWE7NENBQ2JDLE1BQUs7NENBQ0xDLElBQUc7Ozs7OztzREFFTCw4REFBQzNELHlDQUFLQTs0Q0FDSm9ELE1BQUs7NENBQ0xDLGFBQVk7NENBQ1pDLE9BQU9sRDs0Q0FDUG1ELFVBQVUsQ0FBQ3RDLElBQU1aLFNBQVNZLEVBQUV1QyxNQUFNLENBQUNGLEtBQUs7NENBQ3hDYixXQUFVOzRDQUNWZ0IsY0FBYTs0Q0FDYkMsTUFBSzs0Q0FDTEMsSUFBRzs7Ozs7O3NEQUVMLDhEQUFDMUQsNENBQVFBOzRDQUNQb0QsYUFBWTs0Q0FDWkMsT0FBTzlDOzRDQUNQK0MsVUFBVSxDQUFDdEMsSUFBTVIsV0FBV1EsRUFBRXVDLE1BQU0sQ0FBQ0YsS0FBSzs0Q0FDMUNNLE1BQU07NENBQ05uQixXQUFVOzRDQUNWaUIsTUFBSzs0Q0FDTEMsSUFBRzs7Ozs7O3NEQUdMLDhEQUFDRTs0Q0FBTXBCLFdBQVU7OzhEQUNmLDhEQUFDcUI7b0RBQ0NWLE1BQUs7b0RBQ0xYLFdBQVU7b0RBQ1ZzQixTQUFTckQ7b0RBQ1Q2QyxVQUFVLENBQUN0QyxJQUFNTixTQUFTTSxFQUFFdUMsTUFBTSxDQUFDTyxPQUFPO29EQUMxQ0Msb0JBQWlCOzs7Ozs7OERBRW5CLDhEQUFDQzs7d0RBQUs7c0VBQWUsOERBQUNwRSxrREFBSUE7NERBQUNrRCxNQUFLOzREQUFTTixXQUFVO3NFQUFPOzs7Ozs7d0RBQVk7c0VBQUssOERBQUM1QyxrREFBSUE7NERBQUNrRCxNQUFLOzREQUFXTixXQUFVO3NFQUFPOzs7Ozs7d0RBQXFCOzs7Ozs7Ozs7Ozs7O3NEQUV6SSw4REFBQ0c7NENBQUVlLElBQUc7NENBQXNCbEIsV0FBVTtzREFBVTs7Ozs7O3NEQUVoRCw4REFBQ0M7NENBQUlELFdBQVU7OzhEQUNiLDhEQUFDdkMsNENBQU1BO29EQUFDa0QsTUFBSztvREFBU2MsVUFBVXRELGdCQUFnQixDQUFDRjtvREFBT3lELFdBQVd2RDtvREFBY3dELE1BQUs7OERBQUs7Ozs7Ozs4REFHM0YsOERBQUN2RSxrREFBSUE7b0RBQUNrRCxNQUFLO29EQUFXTixXQUFVOzhEQUErQzs7Ozs7Ozs7Ozs7O3dDQUdoRjNCLCtCQUNDLDhEQUFDOEI7NENBQUVILFdBQVcsQ0FBQyxRQUFRLEVBQUUzQixjQUFjdUQsUUFBUSxDQUFDLGVBQWUsbUJBQW1CLGdCQUFnQjtzREFDL0Z2RDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQU9YLDhEQUFDNEI7b0JBQUlELFdBQVU7OEJBQ2IsNEVBQUNDO3dCQUFJRCxXQUFVOzswQ0FDYiw4REFBQ0M7Z0NBQUlELFdBQVU7O2tEQUNiLDhEQUFDTzt3Q0FDQ0QsTUFBSzt3Q0FDTFMsUUFBTzt3Q0FDUGMsS0FBSTt3Q0FDSjdCLFdBQVU7d0NBQ1Y4QixjQUFXO3dDQUNYQyxPQUFNO2tEQUVOLDRFQUFDQzs0Q0FBSWhDLFdBQVU7NENBQVVpQyxNQUFLOzRDQUFlQyxTQUFRO3NEQUNuRCw0RUFBQ0M7Z0RBQUtDLEdBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7a0RBR1osOERBQUM3Qjt3Q0FDQ0QsTUFBSzt3Q0FDTFMsUUFBTzt3Q0FDUGMsS0FBSTt3Q0FDSjdCLFdBQVU7d0NBQ1Y4QixjQUFXO3dDQUNYQyxPQUFNO2tEQUVOLDRFQUFDQzs0Q0FBSWhDLFdBQVU7NENBQVVpQyxNQUFLOzRDQUFlQyxTQUFRO3NEQUNuRCw0RUFBQ0M7Z0RBQUtDLEdBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7a0RBR1osOERBQUM3Qjt3Q0FDQ0QsTUFBSzt3Q0FDTFMsUUFBTzt3Q0FDUGMsS0FBSTt3Q0FDSjdCLFdBQVU7d0NBQ1Y4QixjQUFXO3dDQUNYQyxPQUFNO2tEQUVOLDRFQUFDQzs0Q0FBSWhDLFdBQVU7NENBQVVpQyxNQUFLOzRDQUFlQyxTQUFRO3NEQUNuRCw0RUFBQ0M7Z0RBQUtDLEdBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MENBS2QsOERBQUNuQztnQ0FBSUQsV0FBVTs7a0RBQ2IsOERBQUNHOzs0Q0FBRTs0Q0FBRyxJQUFJa0MsT0FBT0MsV0FBVzs0Q0FBRzs7Ozs7OztrREFDL0IsOERBQUNyQzt3Q0FBSUQsV0FBVTs7MERBQ2IsOERBQUM1QyxrREFBSUE7Z0RBQUNrRCxNQUFLO2dEQUFXTixXQUFVOzBEQUFhOzs7Ozs7MERBQzdDLDhEQUFDNUMsa0RBQUlBO2dEQUFDa0QsTUFBSztnREFBU04sV0FBVTswREFBYTs7Ozs7OzBEQUMzQyw4REFBQ087Z0RBQUVELE1BQUs7Z0RBQWlDTixXQUFVO2dEQUFhK0IsT0FBTTswREFBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVE3RiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2NvbXBvbmVudHMvRm9vdGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IExpbmsgZnJvbSAnbmV4dC9saW5rJ1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gJy4vTGF5b3V0cydcbmltcG9ydCB7IElucHV0LCBUZXh0YXJlYSB9IGZyb20gJy4vRm9ybXMnXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuL0J1dHRvbnMnXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEZvb3RlcigpIHtcbiAgY29uc3QgW2VtYWlsLCBzZXRFbWFpbF0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2ZpcnN0TmFtZSwgc2V0Rmlyc3ROYW1lXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbbWVzc2FnZSwgc2V0TWVzc2FnZV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2FncmVlLCBzZXRBZ3JlZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzU3VibWl0dGluZywgc2V0SXNTdWJtaXR0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc3VibWl0TWVzc2FnZSwgc2V0U3VibWl0TWVzc2FnZV0gPSB1c2VTdGF0ZSgnJylcblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAoZTogUmVhY3QuRm9ybUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgc2V0U3VibWl0TWVzc2FnZSgnJylcblxuICAgIGlmICghYWdyZWUpIHtcbiAgICAgIHNldFN1Ym1pdE1lc3NhZ2UoJ1BsZWFzZSBhZ3JlZSB0byB0aGUgVGVybXMgb2YgVXNlIGFuZCBQcml2YWN5IFBvbGljeS4nKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgYWNjZXNzS2V5ID0gcHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfV0VCM0ZPUk1TX0FDQ0VTU19LRVlcbiAgICBpZiAoIWFjY2Vzc0tleSkge1xuICAgICAgc2V0U3VibWl0TWVzc2FnZSgnRm9ybSBjb25maWd1cmF0aW9uIGVycm9yLiBNaXNzaW5nIFdlYjNGb3JtcyBhY2Nlc3Mga2V5LicpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRJc1N1Ym1pdHRpbmcodHJ1ZSlcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goJ2h0dHBzOi8vYXBpLndlYjNmb3Jtcy5jb20vc3VibWl0Jywge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBhY2Nlc3Nfa2V5OiBhY2Nlc3NLZXksXG4gICAgICAgICAgc3ViamVjdDogJ0Zvb3RlciBpbnF1aXJ5IGZyb20gQmlvaGF6YXJkIFZGWCcsXG4gICAgICAgICAgZnJvbV9uYW1lOiBmaXJzdE5hbWUgfHwgJ1dlYnNpdGUgVmlzaXRvcicsXG4gICAgICAgICAgcmVwbHl0bzogZW1haWwsXG4gICAgICAgICAgZmlyc3ROYW1lLFxuICAgICAgICAgIGVtYWlsLFxuICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgY29uc2VudF90ZXJtczogdHJ1ZSxcbiAgICAgICAgICBjb25zZW50X3ByaXZhY3k6IHRydWUsXG4gICAgICAgICAgc291cmNlOiAnRm9vdGVyRm9ybSdcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXMuanNvbigpXG4gICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgc2V0U3VibWl0TWVzc2FnZShcIlRoYW5rIHlvdSEgV2UnbGwgYmUgaW4gdG91Y2ggc29vbi5cIilcbiAgICAgICAgc2V0RW1haWwoJycpXG4gICAgICAgIHNldEZpcnN0TmFtZSgnJylcbiAgICAgICAgc2V0TWVzc2FnZSgnJylcbiAgICAgICAgc2V0QWdyZWUoZmFsc2UpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRTdWJtaXRNZXNzYWdlKCdUaGVyZSB3YXMgYW4gZXJyb3Igc2VuZGluZyB5b3VyIG1lc3NhZ2UuIFBsZWFzZSB0cnkgYWdhaW4uJylcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHNldFN1Ym1pdE1lc3NhZ2UoJ1RoZXJlIHdhcyBhbiBlcnJvciBzZW5kaW5nIHlvdXIgbWVzc2FnZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRJc1N1Ym1pdHRpbmcoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Zm9vdGVyIGNsYXNzTmFtZT1cImJnLXN1cmZhY2UtOTAwIHB0LTEyIHBiLTggYm9yZGVyLXQgYm9yZGVyLXN1cmZhY2UtNTAwXCI+XG4gICAgICA8Q29udGFpbmVyPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTMgZ2FwLTggaXRlbXMtc3RhcnRcIj5cbiAgICAgICAgICB7LyogQnJhbmQgKyBibHVyYiAqL31cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtZGlzcGxheSB0ZXh0LXdoaXRlIG1iLTJcIj5CaW9oYXphcmQgVkZYPC9oMz5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtdGV4dC1tdXRlZCB0ZXh0LXNtIG1heC13LW1kXCI+XG4gICAgICAgICAgICAgIEdsb2JhbCB2aXN1YWwgZWZmZWN0cyBzdHVkaW8gZGVsaXZlcmluZyB3b3JsZC1jbGFzcyBWRlggc3VwZXJ2aXNpb24sIDNEIGFuaW1hdGlvbiwgYW5kIHBvc3QtcHJvZHVjdGlvbiBzZXJ2aWNlcy5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtdGV4dC1tdXRlZCB0ZXh0LXNtIG10LTNcIj5XZSB1c3VhbGx5IHJlcGx5IHdpdGhpbiAyNCBob3Vycy48L3A+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICB7LyogUXVpY2sgbGlua3MgKi99XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSBtYi0zXCI+RXhwbG9yZTwvaDQ+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLThcIj5cbiAgICAgICAgICAgICAgPG5hdiBjbGFzc05hbWU9XCJzcGFjZS15LTJcIj5cbiAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3Byb2plY3RzXCIgY2xhc3NOYW1lPVwiYmxvY2sgbGluay1tdXRlZCB0ZXh0LXNtXCI+UHJvamVjdHM8L0xpbms+XG4gICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9jcmV3XCIgY2xhc3NOYW1lPVwiYmxvY2sgbGluay1tdXRlZCB0ZXh0LXNtXCI+T3VyIENyZXc8L0xpbms+XG4gICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9ibG9nXCIgY2xhc3NOYW1lPVwiYmxvY2sgbGluay1tdXRlZCB0ZXh0LXNtXCI+QmxvZzwvTGluaz5cbiAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2NvbnRhY3RcIiBjbGFzc05hbWU9XCJibG9jayBsaW5rLW11dGVkIHRleHQtc21cIj5Db250YWN0PC9MaW5rPlxuICAgICAgICAgICAgICA8L25hdj5cbiAgICAgICAgICAgICAgPG5hdiBjbGFzc05hbWU9XCJzcGFjZS15LTJcIj5cbiAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3NlcnZpY2VzXCIgY2xhc3NOYW1lPVwiYmxvY2sgbGluay1tdXRlZCB0ZXh0LXNtXCI+U2VydmljZXM8L0xpbms+XG4gICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9wcml2YWN5XCIgY2xhc3NOYW1lPVwiYmxvY2sgbGluay1tdXRlZCB0ZXh0LXNtXCI+UHJpdmFjeTwvTGluaz5cbiAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3Rlcm1zXCIgY2xhc3NOYW1lPVwiYmxvY2sgbGluay1tdXRlZCB0ZXh0LXNtXCI+VGVybXM8L0xpbms+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIm1haWx0bzpEYXZhbmVAYmlvaGF6YXJkdmZ4LmNvbVwiIGNsYXNzTmFtZT1cImJsb2NrIGxpbmstbXV0ZWQgdGV4dC1zbVwiPkRNQ0E8L2E+XG4gICAgICAgICAgICAgIDwvbmF2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICB7LyogQ29tcGFjdCBjb250YWN0IGZvcm0gKi99XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoNCBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSBtYi0zXCI+Q29udGFjdCBVczwvaDQ+XG4gICAgICAgICAgICA8Zm9ybSBvblN1Ym1pdD17aGFuZGxlU3VibWl0fSBjbGFzc05hbWU9XCJzcGFjZS15LTNcIiBub1ZhbGlkYXRlPlxuICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJOYW1lXCJcbiAgICAgICAgICAgICAgICB2YWx1ZT17Zmlyc3ROYW1lfVxuICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZSkgPT4gc2V0Rmlyc3ROYW1lKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXNtXCJcbiAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJnaXZlbi1uYW1lXCJcbiAgICAgICAgICAgICAgICBuYW1lPVwiZmlyc3ROYW1lXCJcbiAgICAgICAgICAgICAgICBpZD1cImZvb3Rlci1maXJzdE5hbWVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8SW5wdXRcbiAgICAgICAgICAgICAgICB0eXBlPVwiZW1haWxcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiRW1haWxcIlxuICAgICAgICAgICAgICAgIHZhbHVlPXtlbWFpbH1cbiAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGUpID0+IHNldEVtYWlsKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXNtXCJcbiAgICAgICAgICAgICAgICBhdXRvQ29tcGxldGU9XCJlbWFpbFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImVtYWlsXCJcbiAgICAgICAgICAgICAgICBpZD1cImZvb3Rlci1lbWFpbFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDxUZXh0YXJlYVxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiTWVzc2FnZVwiXG4gICAgICAgICAgICAgICAgdmFsdWU9e21lc3NhZ2V9XG4gICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRNZXNzYWdlKGUudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICByb3dzPXszfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtc21cIlxuICAgICAgICAgICAgICAgIG5hbWU9XCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICBpZD1cImZvb3Rlci1tZXNzYWdlXCJcbiAgICAgICAgICAgICAgLz5cblxuICAgICAgICAgICAgICA8bGFiZWwgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgdGV4dC14cyB0ZXh0LXRleHQtbXV0ZWRcIj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJoLTQgdy00XCJcbiAgICAgICAgICAgICAgICAgIGNoZWNrZWQ9e2FncmVlfVxuICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhlKSA9PiBzZXRBZ3JlZShlLnRhcmdldC5jaGVja2VkKX1cbiAgICAgICAgICAgICAgICAgIGFyaWEtZGVzY3JpYmVkYnk9XCJmb290ZXItY29uc2VudC1oZWxwXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDxzcGFuPkkgYWdyZWUgdG8gdGhlIDxMaW5rIGhyZWY9XCIvdGVybXNcIiBjbGFzc05hbWU9XCJsaW5rXCI+VGVybXM8L0xpbms+IGFuZCA8TGluayBocmVmPVwiL3ByaXZhY3lcIiBjbGFzc05hbWU9XCJsaW5rXCI+UHJpdmFjeSBQb2xpY3k8L0xpbms+Ljwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPHAgaWQ9XCJmb290ZXItY29uc2VudC1oZWxwXCIgY2xhc3NOYW1lPVwic3Itb25seVwiPllvdSBtdXN0IGFncmVlIGJlZm9yZSBzdWJtaXR0aW5nLjwvcD5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgPEJ1dHRvbiB0eXBlPVwic3VibWl0XCIgZGlzYWJsZWQ9e2lzU3VibWl0dGluZyB8fCAhYWdyZWV9IGlzTG9hZGluZz17aXNTdWJtaXR0aW5nfSBzaXplPVwic21cIj5cbiAgICAgICAgICAgICAgICAgIFNlbmRcbiAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL2NvbnRhY3RcIiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGxpbmstbXV0ZWQgaG92ZXI6dGV4dC10ZXh0LXNlY29uZGFyeVwiPk9yIG9wZW4gY29udGFjdCBwYWdlPC9MaW5rPlxuICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICB7c3VibWl0TWVzc2FnZSAmJiAoXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPXtgdGV4dC14cyAke3N1Ym1pdE1lc3NhZ2UuaW5jbHVkZXMoJ1RoYW5rIHlvdScpID8gJ3RleHQtZ3JlZW4tNDAwJyA6ICd0ZXh0LXJlZC00MDAnfWB9PlxuICAgICAgICAgICAgICAgICAge3N1Ym1pdE1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9mb3JtPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImJvcmRlci10IGJvcmRlci1zdXJmYWNlLTUwMCBtdC04IHB0LTZcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtNFwiPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2Jpb2hhemFyZHZmeC9cIlxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC10ZXh0LW11dGVkIGhvdmVyOnRleHQtYWNjZW50IHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiSW5zdGFncmFtXCJcbiAgICAgICAgICAgICAgICB0aXRsZT1cIkluc3RhZ3JhbVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cInctNSBoLTVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0xMiAyLjE2M2MzLjIwNCAwIDMuNTg0LjAxMiA0Ljg1LjA3IDMuMjUyLjE0OCA0Ljc3MSAxLjY5MSA0LjkxOSA0LjkxOS4wNTggMS4yNjUuMDY5IDEuNjQ1LjA2OSA0Ljg0OSAwIDMuMjA1LS4wMTIgMy41ODQtLjA2OSA0Ljg0OS0uMTQ5IDMuMjI1LTEuNjY0IDQuNzcxLTQuOTE5IDQuOTE5LTEuMjY2LjA1OC0xLjY0NC4wNy00Ljg1LjA3LTMuMjA0IDAtMy41ODQtLjAxMi00Ljg0OS0uMDctMy4yNi0uMTQ5LTQuNzcxLTEuNjk5LTQuOTE5LTQuOTItLjA1OC0xLjI2NS0uMDctMS42NDQtLjA3LTQuODQ5IDAtMy4yMDQuMDEzLTMuNTgzLjA3LTQuODQ5LjE0OS0zLjIyNyAxLjY2NC00Ljc3MSA0LjkxOS00LjkxOSAxLjI2Ni0uMDU3IDEuNjQ1LS4wNjkgNC44NDktLjA2OXpNMTIgNWMtMy44NTkgMC03IDMuMTQxLTcgNyAwIDMuODU5IDMuMTQxIDcgNyA3czctMy4xNDEgNy03YzAtMy44NTktMy4xNDEtNy03LTd6bTYuNDA2LjUyYTEuNDQgMS40NCAwIDEgMCAwIDIuODggMS40NCAxLjQ0IDAgMCAwIDAtMi44OHpcIiAvPlxuICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgaHJlZj1cImh0dHBzOi8vdmltZW8uY29tL2Jpb2hhemFyZHZmeFwiXG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXRleHQtbXV0ZWQgaG92ZXI6dGV4dC1hY2NlbnQgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJWaW1lb1wiXG4gICAgICAgICAgICAgICAgdGl0bGU9XCJWaW1lb1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cInctNSBoLTVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMi44NzUgMTAuMDYzYy0yLjQ0MiA1LjIxNy04LjMzNyAxMi4zMTktMTIuMDYzIDEyLjMxOS0zLjY3MiAwLTQuMjAzLTcuODMxLTYuMjA4LTEzLjA0My0uOTg3LTIuNTY1LTEuNjI0LTEuODE0LTMuNDc0LS4yODFMMCA4LjAxOWMyLjY5OC0yLjQzNSA1LjM5NC01LjM5MSA3LjM5Ni01LjU1MyAzLjE2Mi0uMjQyIDMuNDg3IDIuODMxIDQuMDI0IDUuNDc5LjY5OSAzLjQ2MyAxLjgwOSA4Ljg0NSAyLjgwMSA4Ljg0NS43OTYgMCAyLjI4OS0zLjMxMyAyLjQyOC00LjUxNi4yMjItMS44NTMtMS41MTItMS44NzktMi45NzEtMS4yNzFDMTcuNTAzLTIuMDcxIDIyLjg3NSA0LjQ0IDIyLjg3NSAxMC4wNjN6XCIgLz5cbiAgICAgICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy55b3V0dWJlLmNvbS9AYmlvaGF6YXJkdmZ4XCJcbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtdGV4dC1tdXRlZCBob3Zlcjp0ZXh0LWFjY2VudCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIllvdVR1YmVcIlxuICAgICAgICAgICAgICAgIHRpdGxlPVwiWW91VHViZVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8c3ZnIGNsYXNzTmFtZT1cInctNSBoLTVcIiBmaWxsPVwiY3VycmVudENvbG9yXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiPlxuICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0yMy40OTggNi4xODZhMy4wMTYgMy4wMTYgMCAwIDAtMi4xMjItMi4xMzZDMTkuNTA1IDMuNTQ1IDEyIDMuNTQ1IDEyIDMuNTQ1cy03LjUwNSAwLTkuMzc3LjUwNUEzLjAxNyAzLjAxNyAwIDAgMCAuNTAyIDYuMTg2QzAgOC4wNyAwIDEyIDAgMTJzMCAzLjkzLjUwMiA1LjgxNGEzLjAxNiAzLjAxNiAwIDAgMCAyLjEyMiAyLjEzNmMxLjg3MS41MDUgOS4zNzYuNTA1IDkuMzc2LjUwNXM3LjUwNSAwIDkuMzc3LS41MDVhMy4wMTUgMy4wMTUgMCAwIDAgMi4xMjItMi4xMzZDMjQgMTUuOTMgMjQgMTIgMjQgMTJzMC0zLjkzLS41MDItNS44MTR6TTkuNTQ1IDE1LjU2OFY4LjQzMkwxNS44MTggMTJsLTYuMjczIDMuNTY4elwiIC8+XG4gICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgbWQ6ZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC00IHRleHQtc20gdGV4dC10ZXh0LW11dGVkXCI+XG4gICAgICAgICAgICAgIDxwPsKpIHtuZXcgRGF0ZSgpLmdldEZ1bGxZZWFyKCl9IEJpb2hhemFyZCBWRlguIEFsbCByaWdodHMgcmVzZXJ2ZWQuPC9wPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICA8TGluayBocmVmPVwiL3ByaXZhY3lcIiBjbGFzc05hbWU9XCJsaW5rLW11dGVkXCI+UHJpdmFjeSBQb2xpY3k8L0xpbms+XG4gICAgICAgICAgICAgICAgPExpbmsgaHJlZj1cIi90ZXJtc1wiIGNsYXNzTmFtZT1cImxpbmstbXV0ZWRcIj5UZXJtcyBvZiBVc2U8L0xpbms+XG4gICAgICAgICAgICAgICAgPGEgaHJlZj1cIm1haWx0bzpEYXZhbmVAYmlvaGF6YXJkdmZ4LmNvbVwiIGNsYXNzTmFtZT1cImxpbmstbXV0ZWRcIiB0aXRsZT1cIkRNQ0FcIj5ETUNBPC9hPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvQ29udGFpbmVyPlxuICAgIDwvZm9vdGVyPlxuICApXG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJMaW5rIiwidXNlU3RhdGUiLCJDb250YWluZXIiLCJJbnB1dCIsIlRleHRhcmVhIiwiQnV0dG9uIiwiRm9vdGVyIiwiZW1haWwiLCJzZXRFbWFpbCIsImZpcnN0TmFtZSIsInNldEZpcnN0TmFtZSIsIm1lc3NhZ2UiLCJzZXRNZXNzYWdlIiwiYWdyZWUiLCJzZXRBZ3JlZSIsImlzU3VibWl0dGluZyIsInNldElzU3VibWl0dGluZyIsInN1Ym1pdE1lc3NhZ2UiLCJzZXRTdWJtaXRNZXNzYWdlIiwiaGFuZGxlU3VibWl0IiwiZSIsInByZXZlbnREZWZhdWx0IiwiYWNjZXNzS2V5IiwicHJvY2VzcyIsImVudiIsIk5FWFRfUFVCTElDX1dFQjNGT1JNU19BQ0NFU1NfS0VZIiwicmVzIiwiZmV0Y2giLCJtZXRob2QiLCJoZWFkZXJzIiwiYm9keSIsIkpTT04iLCJzdHJpbmdpZnkiLCJhY2Nlc3Nfa2V5Iiwic3ViamVjdCIsImZyb21fbmFtZSIsInJlcGx5dG8iLCJjb25zZW50X3Rlcm1zIiwiY29uc2VudF9wcml2YWN5Iiwic291cmNlIiwicmVzdWx0IiwianNvbiIsInN1Y2Nlc3MiLCJmb290ZXIiLCJjbGFzc05hbWUiLCJkaXYiLCJoMyIsInAiLCJoNCIsIm5hdiIsImhyZWYiLCJhIiwiZm9ybSIsIm9uU3VibWl0Iiwibm9WYWxpZGF0ZSIsInR5cGUiLCJwbGFjZWhvbGRlciIsInZhbHVlIiwib25DaGFuZ2UiLCJ0YXJnZXQiLCJhdXRvQ29tcGxldGUiLCJuYW1lIiwiaWQiLCJyb3dzIiwibGFiZWwiLCJpbnB1dCIsImNoZWNrZWQiLCJhcmlhLWRlc2NyaWJlZGJ5Iiwic3BhbiIsImRpc2FibGVkIiwiaXNMb2FkaW5nIiwic2l6ZSIsImluY2x1ZGVzIiwicmVsIiwiYXJpYS1sYWJlbCIsInRpdGxlIiwic3ZnIiwiZmlsbCIsInZpZXdCb3giLCJwYXRoIiwiZCIsIkRhdGUiLCJnZXRGdWxsWWVhciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/Footer.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/Forms.tsx":
+/*!**********************************!*\
+ !*** ./src/components/Forms.tsx ***!
+ \**********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Checkbox: () => (/* binding */ Checkbox),\n/* harmony export */ FormGroup: () => (/* binding */ FormGroup),\n/* harmony export */ FormSection: () => (/* binding */ FormSection),\n/* harmony export */ Input: () => (/* binding */ Input),\n/* harmony export */ Radio: () => (/* binding */ Radio),\n/* harmony export */ Select: () => (/* binding */ Select),\n/* harmony export */ Textarea: () => (/* binding */ Textarea)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ Input,Textarea,Select,Checkbox,Radio,FormGroup,FormSection auto */ \nfunction Input({ label, error, helperText, className = '', id, ...props }) {\n const inputId = id || label?.toLowerCase().replace(/\\s+/g, '-');\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n label && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: inputId,\n className: \"label\",\n children: label\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 28,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n id: inputId,\n className: `input ${error ? 'border-red-500' : ''} ${className}`,\n ...props\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 32,\n columnNumber: 7\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-red-400\",\n children: error\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 37,\n columnNumber: 17\n }, this),\n helperText && !error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-text-muted\",\n children: helperText\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 39,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\nfunction Textarea({ label, error, helperText, className = '', id, ...props }) {\n const textareaId = id || label?.toLowerCase().replace(/\\s+/g, '-');\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n label && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: textareaId,\n className: \"label\",\n children: label\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 64,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"textarea\", {\n id: textareaId,\n className: `input min-h-[120px] ${error ? 'border-red-500' : ''} ${className}`,\n ...props\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 68,\n columnNumber: 7\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-red-400\",\n children: error\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 73,\n columnNumber: 17\n }, this),\n helperText && !error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-text-muted\",\n children: helperText\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 75,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 62,\n columnNumber: 5\n }, this);\n}\nfunction Select({ label, error, helperText, options, className = '', id, ...props }) {\n const selectId = id || label?.toLowerCase().replace(/\\s+/g, '-');\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: [\n label && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: selectId,\n className: \"label\",\n children: label\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 102,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n id: selectId,\n className: `input ${error ? 'border-red-500' : ''} ${className}`,\n ...props,\n children: options.map((option)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: option.value,\n children: option.label\n }, option.value, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 112,\n columnNumber: 11\n }, this))\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 106,\n columnNumber: 7\n }, this),\n error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-red-400\",\n children: error\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 117,\n columnNumber: 17\n }, this),\n helperText && !error && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-text-muted\",\n children: helperText\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 119,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 100,\n columnNumber: 5\n }, this);\n}\nfunction Checkbox({ label, className = '', id, ...props }) {\n const checkboxId = id || label.toLowerCase().replace(/\\s+/g, '-');\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"checkbox\",\n id: checkboxId,\n className: `w-4 h-4 rounded border-surface-500 bg-surface-600 text-accent focus:ring-accent focus:ring-offset-0 ${className}`,\n ...props\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 139,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: checkboxId,\n className: \"text-sm text-text-secondary\",\n children: label\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 145,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 138,\n columnNumber: 5\n }, this);\n}\nfunction Radio({ label, className = '', id, ...props }) {\n const radioId = id || label.toLowerCase().replace(/\\s+/g, '-');\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n type: \"radio\",\n id: radioId,\n className: `w-4 h-4 border-surface-500 bg-surface-600 text-accent focus:ring-accent focus:ring-offset-0 ${className}`,\n ...props\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 161,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n htmlFor: radioId,\n className: \"text-sm text-text-secondary\",\n children: label\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 167,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 160,\n columnNumber: 5\n }, this);\n}\nfunction FormGroup({ children, className = '' }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `space-y-4 ${className}`,\n children: children\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 180,\n columnNumber: 10\n }, this);\n}\nfunction FormSection({ title, description, children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold text-white\",\n children: title\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 197,\n columnNumber: 9\n }, this),\n description && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-text-muted mt-1\",\n children: description\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 199,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 196,\n columnNumber: 7\n }, this),\n children\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Forms.tsx\",\n lineNumber: 195,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9Gb3Jtcy50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQWNPLFNBQVNBLE1BQU0sRUFDcEJDLEtBQUssRUFDTEMsS0FBSyxFQUNMQyxVQUFVLEVBQ1ZDLFlBQVksRUFBRSxFQUNkQyxFQUFFLEVBQ0YsR0FBR0MsT0FDUTtJQUNYLE1BQU1DLFVBQVVGLE1BQU1KLE9BQU9PLGNBQWNDLFFBQVEsUUFBUTtJQUUzRCxxQkFDRSw4REFBQ0M7UUFBSU4sV0FBVTs7WUFDWkgsdUJBQ0MsOERBQUNBO2dCQUFNVSxTQUFTSjtnQkFBU0gsV0FBVTswQkFDaENIOzs7Ozs7MEJBR0wsOERBQUNXO2dCQUNDUCxJQUFJRTtnQkFDSkgsV0FBVyxDQUFDLE1BQU0sRUFBRUYsUUFBUSxtQkFBbUIsR0FBRyxDQUFDLEVBQUVFLFdBQVc7Z0JBQy9ELEdBQUdFLEtBQUs7Ozs7OztZQUVWSix1QkFBUyw4REFBQ1c7Z0JBQUVULFdBQVU7MEJBQXdCRjs7Ozs7O1lBQzlDQyxjQUFjLENBQUNELHVCQUNkLDhEQUFDVztnQkFBRVQsV0FBVTswQkFBMkJEOzs7Ozs7Ozs7Ozs7QUFJaEQ7QUFRTyxTQUFTVyxTQUFTLEVBQ3ZCYixLQUFLLEVBQ0xDLEtBQUssRUFDTEMsVUFBVSxFQUNWQyxZQUFZLEVBQUUsRUFDZEMsRUFBRSxFQUNGLEdBQUdDLE9BQ1c7SUFDZCxNQUFNUyxhQUFhVixNQUFNSixPQUFPTyxjQUFjQyxRQUFRLFFBQVE7SUFFOUQscUJBQ0UsOERBQUNDO1FBQUlOLFdBQVU7O1lBQ1pILHVCQUNDLDhEQUFDQTtnQkFBTVUsU0FBU0k7Z0JBQVlYLFdBQVU7MEJBQ25DSDs7Ozs7OzBCQUdMLDhEQUFDZTtnQkFDQ1gsSUFBSVU7Z0JBQ0pYLFdBQVcsQ0FBQyxvQkFBb0IsRUFBRUYsUUFBUSxtQkFBbUIsR0FBRyxDQUFDLEVBQUVFLFdBQVc7Z0JBQzdFLEdBQUdFLEtBQUs7Ozs7OztZQUVWSix1QkFBUyw4REFBQ1c7Z0JBQUVULFdBQVU7MEJBQXdCRjs7Ozs7O1lBQzlDQyxjQUFjLENBQUNELHVCQUNkLDhEQUFDVztnQkFBRVQsV0FBVTswQkFBMkJEOzs7Ozs7Ozs7Ozs7QUFJaEQ7QUFTTyxTQUFTYyxPQUFPLEVBQ3JCaEIsS0FBSyxFQUNMQyxLQUFLLEVBQ0xDLFVBQVUsRUFDVmUsT0FBTyxFQUNQZCxZQUFZLEVBQUUsRUFDZEMsRUFBRSxFQUNGLEdBQUdDLE9BQ1M7SUFDWixNQUFNYSxXQUFXZCxNQUFNSixPQUFPTyxjQUFjQyxRQUFRLFFBQVE7SUFFNUQscUJBQ0UsOERBQUNDO1FBQUlOLFdBQVU7O1lBQ1pILHVCQUNDLDhEQUFDQTtnQkFBTVUsU0FBU1E7Z0JBQVVmLFdBQVU7MEJBQ2pDSDs7Ozs7OzBCQUdMLDhEQUFDbUI7Z0JBQ0NmLElBQUljO2dCQUNKZixXQUFXLENBQUMsTUFBTSxFQUFFRixRQUFRLG1CQUFtQixHQUFHLENBQUMsRUFBRUUsV0FBVztnQkFDL0QsR0FBR0UsS0FBSzswQkFFUlksUUFBUUcsR0FBRyxDQUFDLENBQUNDLHVCQUNaLDhEQUFDQTt3QkFBMEJDLE9BQU9ELE9BQU9DLEtBQUs7a0NBQzNDRCxPQUFPckIsS0FBSzt1QkFERnFCLE9BQU9DLEtBQUs7Ozs7Ozs7Ozs7WUFLNUJyQix1QkFBUyw4REFBQ1c7Z0JBQUVULFdBQVU7MEJBQXdCRjs7Ozs7O1lBQzlDQyxjQUFjLENBQUNELHVCQUNkLDhEQUFDVztnQkFBRVQsV0FBVTswQkFBMkJEOzs7Ozs7Ozs7Ozs7QUFJaEQ7QUFNTyxTQUFTcUIsU0FBUyxFQUN2QnZCLEtBQUssRUFDTEcsWUFBWSxFQUFFLEVBQ2RDLEVBQUUsRUFDRixHQUFHQyxPQUNXO0lBQ2QsTUFBTW1CLGFBQWFwQixNQUFNSixNQUFNTyxXQUFXLEdBQUdDLE9BQU8sQ0FBQyxRQUFRO0lBRTdELHFCQUNFLDhEQUFDQztRQUFJTixXQUFVOzswQkFDYiw4REFBQ1E7Z0JBQ0NjLE1BQUs7Z0JBQ0xyQixJQUFJb0I7Z0JBQ0pyQixXQUFXLENBQUMsb0dBQW9HLEVBQUVBLFdBQVc7Z0JBQzVILEdBQUdFLEtBQUs7Ozs7OzswQkFFWCw4REFBQ0w7Z0JBQU1VLFNBQVNjO2dCQUFZckIsV0FBVTswQkFDbkNIOzs7Ozs7Ozs7Ozs7QUFJVDtBQU1PLFNBQVMwQixNQUFNLEVBQUUxQixLQUFLLEVBQUVHLFlBQVksRUFBRSxFQUFFQyxFQUFFLEVBQUUsR0FBR0MsT0FBbUI7SUFDdkUsTUFBTXNCLFVBQVV2QixNQUFNSixNQUFNTyxXQUFXLEdBQUdDLE9BQU8sQ0FBQyxRQUFRO0lBRTFELHFCQUNFLDhEQUFDQztRQUFJTixXQUFVOzswQkFDYiw4REFBQ1E7Z0JBQ0NjLE1BQUs7Z0JBQ0xyQixJQUFJdUI7Z0JBQ0p4QixXQUFXLENBQUMsNEZBQTRGLEVBQUVBLFdBQVc7Z0JBQ3BILEdBQUdFLEtBQUs7Ozs7OzswQkFFWCw4REFBQ0w7Z0JBQU1VLFNBQVNpQjtnQkFBU3hCLFdBQVU7MEJBQ2hDSDs7Ozs7Ozs7Ozs7O0FBSVQ7QUFPTyxTQUFTNEIsVUFBVSxFQUFFQyxRQUFRLEVBQUUxQixZQUFZLEVBQUUsRUFBa0I7SUFDcEUscUJBQU8sOERBQUNNO1FBQUlOLFdBQVcsQ0FBQyxVQUFVLEVBQUVBLFdBQVc7a0JBQUcwQjs7Ozs7O0FBQ3BEO0FBUU8sU0FBU0MsWUFBWSxFQUMxQkMsS0FBSyxFQUNMQyxXQUFXLEVBQ1hILFFBQVEsRUFDUztJQUNqQixxQkFDRSw4REFBQ3BCO1FBQUlOLFdBQVU7OzBCQUNiLDhEQUFDTTs7a0NBQ0MsOERBQUN3Qjt3QkFBRzlCLFdBQVU7a0NBQW9DNEI7Ozs7OztvQkFDakRDLDZCQUNDLDhEQUFDcEI7d0JBQUVULFdBQVU7a0NBQWdDNkI7Ozs7Ozs7Ozs7OztZQUdoREg7Ozs7Ozs7QUFHUCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2NvbXBvbmVudHMvRm9ybXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQge1xuICBJbnB1dEhUTUxBdHRyaWJ1dGVzLFxuICBUZXh0YXJlYUhUTUxBdHRyaWJ1dGVzLFxuICBTZWxlY3RIVE1MQXR0cmlidXRlcyxcbn0gZnJvbSAncmVhY3QnXG5cbmludGVyZmFjZSBJbnB1dFByb3BzIGV4dGVuZHMgSW5wdXRIVE1MQXR0cmlidXRlczxIVE1MSW5wdXRFbGVtZW50PiB7XG4gIGxhYmVsPzogc3RyaW5nXG4gIGVycm9yPzogc3RyaW5nXG4gIGhlbHBlclRleHQ/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIElucHV0KHtcbiAgbGFiZWwsXG4gIGVycm9yLFxuICBoZWxwZXJUZXh0LFxuICBjbGFzc05hbWUgPSAnJyxcbiAgaWQsXG4gIC4uLnByb3BzXG59OiBJbnB1dFByb3BzKSB7XG4gIGNvbnN0IGlucHV0SWQgPSBpZCB8fCBsYWJlbD8udG9Mb3dlckNhc2UoKS5yZXBsYWNlKC9cXHMrL2csICctJylcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XG4gICAgICB7bGFiZWwgJiYgKFxuICAgICAgICA8bGFiZWwgaHRtbEZvcj17aW5wdXRJZH0gY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICB7bGFiZWx9XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICApfVxuICAgICAgPGlucHV0XG4gICAgICAgIGlkPXtpbnB1dElkfVxuICAgICAgICBjbGFzc05hbWU9e2BpbnB1dCAke2Vycm9yID8gJ2JvcmRlci1yZWQtNTAwJyA6ICcnfSAke2NsYXNzTmFtZX1gfVxuICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAvPlxuICAgICAge2Vycm9yICYmIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC1yZWQtNDAwXCI+e2Vycm9yfTwvcD59XG4gICAgICB7aGVscGVyVGV4dCAmJiAhZXJyb3IgJiYgKFxuICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtdGV4dC1tdXRlZFwiPntoZWxwZXJUZXh0fTwvcD5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gIClcbn1cblxuaW50ZXJmYWNlIFRleHRhcmVhUHJvcHMgZXh0ZW5kcyBUZXh0YXJlYUhUTUxBdHRyaWJ1dGVzPEhUTUxUZXh0QXJlYUVsZW1lbnQ+IHtcbiAgbGFiZWw/OiBzdHJpbmdcbiAgZXJyb3I/OiBzdHJpbmdcbiAgaGVscGVyVGV4dD86IHN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gVGV4dGFyZWEoe1xuICBsYWJlbCxcbiAgZXJyb3IsXG4gIGhlbHBlclRleHQsXG4gIGNsYXNzTmFtZSA9ICcnLFxuICBpZCxcbiAgLi4ucHJvcHNcbn06IFRleHRhcmVhUHJvcHMpIHtcbiAgY29uc3QgdGV4dGFyZWFJZCA9IGlkIHx8IGxhYmVsPy50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccysvZywgJy0nKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTJcIj5cbiAgICAgIHtsYWJlbCAmJiAoXG4gICAgICAgIDxsYWJlbCBodG1sRm9yPXt0ZXh0YXJlYUlkfSBjbGFzc05hbWU9XCJsYWJlbFwiPlxuICAgICAgICAgIHtsYWJlbH1cbiAgICAgICAgPC9sYWJlbD5cbiAgICAgICl9XG4gICAgICA8dGV4dGFyZWFcbiAgICAgICAgaWQ9e3RleHRhcmVhSWR9XG4gICAgICAgIGNsYXNzTmFtZT17YGlucHV0IG1pbi1oLVsxMjBweF0gJHtlcnJvciA/ICdib3JkZXItcmVkLTUwMCcgOiAnJ30gJHtjbGFzc05hbWV9YH1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgLz5cbiAgICAgIHtlcnJvciAmJiA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtcmVkLTQwMFwiPntlcnJvcn08L3A+fVxuICAgICAge2hlbHBlclRleHQgJiYgIWVycm9yICYmIChcbiAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXRleHQtbXV0ZWRcIj57aGVscGVyVGV4dH08L3A+XG4gICAgICApfVxuICAgIDwvZGl2PlxuICApXG59XG5cbmludGVyZmFjZSBTZWxlY3RQcm9wcyBleHRlbmRzIFNlbGVjdEhUTUxBdHRyaWJ1dGVzPEhUTUxTZWxlY3RFbGVtZW50PiB7XG4gIGxhYmVsPzogc3RyaW5nXG4gIGVycm9yPzogc3RyaW5nXG4gIGhlbHBlclRleHQ/OiBzdHJpbmdcbiAgb3B0aW9uczogeyB2YWx1ZTogc3RyaW5nOyBsYWJlbDogc3RyaW5nIH1bXVxufVxuXG5leHBvcnQgZnVuY3Rpb24gU2VsZWN0KHtcbiAgbGFiZWwsXG4gIGVycm9yLFxuICBoZWxwZXJUZXh0LFxuICBvcHRpb25zLFxuICBjbGFzc05hbWUgPSAnJyxcbiAgaWQsXG4gIC4uLnByb3BzXG59OiBTZWxlY3RQcm9wcykge1xuICBjb25zdCBzZWxlY3RJZCA9IGlkIHx8IGxhYmVsPy50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccysvZywgJy0nKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTJcIj5cbiAgICAgIHtsYWJlbCAmJiAoXG4gICAgICAgIDxsYWJlbCBodG1sRm9yPXtzZWxlY3RJZH0gY2xhc3NOYW1lPVwibGFiZWxcIj5cbiAgICAgICAgICB7bGFiZWx9XG4gICAgICAgIDwvbGFiZWw+XG4gICAgICApfVxuICAgICAgPHNlbGVjdFxuICAgICAgICBpZD17c2VsZWN0SWR9XG4gICAgICAgIGNsYXNzTmFtZT17YGlucHV0ICR7ZXJyb3IgPyAnYm9yZGVyLXJlZC01MDAnIDogJyd9ICR7Y2xhc3NOYW1lfWB9XG4gICAgICAgIHsuLi5wcm9wc31cbiAgICAgID5cbiAgICAgICAge29wdGlvbnMubWFwKChvcHRpb24pID0+IChcbiAgICAgICAgICA8b3B0aW9uIGtleT17b3B0aW9uLnZhbHVlfSB2YWx1ZT17b3B0aW9uLnZhbHVlfT5cbiAgICAgICAgICAgIHtvcHRpb24ubGFiZWx9XG4gICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICkpfVxuICAgICAgPC9zZWxlY3Q+XG4gICAgICB7ZXJyb3IgJiYgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXJlZC00MDBcIj57ZXJyb3J9PC9wPn1cbiAgICAgIHtoZWxwZXJUZXh0ICYmICFlcnJvciAmJiAoXG4gICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC10ZXh0LW11dGVkXCI+e2hlbHBlclRleHR9PC9wPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5pbnRlcmZhY2UgQ2hlY2tib3hQcm9wcyBleHRlbmRzIElucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudD4ge1xuICBsYWJlbDogc3RyaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGVja2JveCh7XG4gIGxhYmVsLFxuICBjbGFzc05hbWUgPSAnJyxcbiAgaWQsXG4gIC4uLnByb3BzXG59OiBDaGVja2JveFByb3BzKSB7XG4gIGNvbnN0IGNoZWNrYm94SWQgPSBpZCB8fCBsYWJlbC50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1xccysvZywgJy0nKVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPGlucHV0XG4gICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgIGlkPXtjaGVja2JveElkfVxuICAgICAgICBjbGFzc05hbWU9e2B3LTQgaC00IHJvdW5kZWQgYm9yZGVyLXN1cmZhY2UtNTAwIGJnLXN1cmZhY2UtNjAwIHRleHQtYWNjZW50IGZvY3VzOnJpbmctYWNjZW50IGZvY3VzOnJpbmctb2Zmc2V0LTAgJHtjbGFzc05hbWV9YH1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgLz5cbiAgICAgIDxsYWJlbCBodG1sRm9yPXtjaGVja2JveElkfSBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtdGV4dC1zZWNvbmRhcnlcIj5cbiAgICAgICAge2xhYmVsfVxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5pbnRlcmZhY2UgUmFkaW9Qcm9wcyBleHRlbmRzIElucHV0SFRNTEF0dHJpYnV0ZXM8SFRNTElucHV0RWxlbWVudD4ge1xuICBsYWJlbDogc3RyaW5nXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBSYWRpbyh7IGxhYmVsLCBjbGFzc05hbWUgPSAnJywgaWQsIC4uLnByb3BzIH06IFJhZGlvUHJvcHMpIHtcbiAgY29uc3QgcmFkaW9JZCA9IGlkIHx8IGxhYmVsLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzKy9nLCAnLScpXG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgaWQ9e3JhZGlvSWR9XG4gICAgICAgIGNsYXNzTmFtZT17YHctNCBoLTQgYm9yZGVyLXN1cmZhY2UtNTAwIGJnLXN1cmZhY2UtNjAwIHRleHQtYWNjZW50IGZvY3VzOnJpbmctYWNjZW50IGZvY3VzOnJpbmctb2Zmc2V0LTAgJHtjbGFzc05hbWV9YH1cbiAgICAgICAgey4uLnByb3BzfVxuICAgICAgLz5cbiAgICAgIDxsYWJlbCBodG1sRm9yPXtyYWRpb0lkfSBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtdGV4dC1zZWNvbmRhcnlcIj5cbiAgICAgICAge2xhYmVsfVxuICAgICAgPC9sYWJlbD5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5pbnRlcmZhY2UgRm9ybUdyb3VwUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gRm9ybUdyb3VwKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSA9ICcnIH06IEZvcm1Hcm91cFByb3BzKSB7XG4gIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17YHNwYWNlLXktNCAke2NsYXNzTmFtZX1gfT57Y2hpbGRyZW59PC9kaXY+XG59XG5cbmludGVyZmFjZSBGb3JtU2VjdGlvblByb3BzIHtcbiAgdGl0bGU6IHN0cmluZ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBGb3JtU2VjdGlvbih7XG4gIHRpdGxlLFxuICBkZXNjcmlwdGlvbixcbiAgY2hpbGRyZW4sXG59OiBGb3JtU2VjdGlvblByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTRcIj5cbiAgICAgIDxkaXY+XG4gICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZVwiPnt0aXRsZX08L2gzPlxuICAgICAgICB7ZGVzY3JpcHRpb24gJiYgKFxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC10ZXh0LW11dGVkIG10LTFcIj57ZGVzY3JpcHRpb259PC9wPlxuICAgICAgICApfVxuICAgICAgPC9kaXY+XG4gICAgICB7Y2hpbGRyZW59XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJJbnB1dCIsImxhYmVsIiwiZXJyb3IiLCJoZWxwZXJUZXh0IiwiY2xhc3NOYW1lIiwiaWQiLCJwcm9wcyIsImlucHV0SWQiLCJ0b0xvd2VyQ2FzZSIsInJlcGxhY2UiLCJkaXYiLCJodG1sRm9yIiwiaW5wdXQiLCJwIiwiVGV4dGFyZWEiLCJ0ZXh0YXJlYUlkIiwidGV4dGFyZWEiLCJTZWxlY3QiLCJvcHRpb25zIiwic2VsZWN0SWQiLCJzZWxlY3QiLCJtYXAiLCJvcHRpb24iLCJ2YWx1ZSIsIkNoZWNrYm94IiwiY2hlY2tib3hJZCIsInR5cGUiLCJSYWRpbyIsInJhZGlvSWQiLCJGb3JtR3JvdXAiLCJjaGlsZHJlbiIsIkZvcm1TZWN0aW9uIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImgzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/Forms.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/Layouts.tsx":
+/*!************************************!*\
+ !*** ./src/components/Layouts.tsx ***!
+ \************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Container: () => (/* binding */ Container),\n/* harmony export */ EmptyState: () => (/* binding */ EmptyState),\n/* harmony export */ Grid: () => (/* binding */ Grid),\n/* harmony export */ Hero: () => (/* binding */ Hero),\n/* harmony export */ PageHeader: () => (/* binding */ PageHeader),\n/* harmony export */ Section: () => (/* binding */ Section),\n/* harmony export */ SplitLayout: () => (/* binding */ SplitLayout)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n\n\nfunction PageHeader({ title, subtitle, actions }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-between\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-3xl font-display tracking-tight text-white mb-2\",\n children: title\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 14,\n columnNumber: 11\n }, this),\n subtitle && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-text-muted text-base max-w-3xl\",\n children: subtitle\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 17,\n columnNumber: 24\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 13,\n columnNumber: 9\n }, this),\n actions && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: actions\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 19,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 12,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 11,\n columnNumber: 5\n }, this);\n}\nfunction Section({ children, className = '' }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: `section-spacing ${className}`,\n children: children\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 32,\n columnNumber: 5\n }, this);\n}\nfunction Container({ children, className = '' }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `w-full px-4 sm:px-6 lg:px-8 ${className}`,\n children: children\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 42,\n columnNumber: 10\n }, this);\n}\nfunction Grid({ children, cols = 3, gap = 'md', className = '' }) {\n const colClasses = {\n 1: 'grid-cols-1',\n 2: 'grid-cols-1 md:grid-cols-2',\n 3: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-3',\n 4: 'grid-cols-1 md:grid-cols-2 lg:grid-cols-4'\n };\n const gapClasses = {\n sm: 'gap-3',\n md: 'gap-4',\n lg: 'gap-6'\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `grid ${colClasses[cols]} ${gapClasses[gap]} ${className}`,\n children: children\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 72,\n columnNumber: 5\n }, this);\n}\nfunction SplitLayout({ left, right, className = '' }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `grid grid-cols-1 lg:grid-cols-2 gap-6 lg:gap-8 ${className}`,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: left\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 89,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: right\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 90,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 86,\n columnNumber: 5\n }, this);\n}\nfunction Hero({ title, subtitle, backgroundImage, children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative min-h-[50vh] flex items-center justify-center text-center\",\n style: backgroundImage ? {\n backgroundImage: `linear-gradient(rgba(0,0,0,0.7), rgba(0,0,0,0.7)), url(${backgroundImage})`,\n backgroundSize: 'cover',\n backgroundPosition: 'center'\n } : {},\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(Container, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-4xl md:text-6xl font-display tracking-tight text-white mb-3\",\n children: title\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 122,\n columnNumber: 9\n }, this),\n subtitle && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-lg md:text-xl text-text-muted mb-6\",\n children: subtitle\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 126,\n columnNumber: 11\n }, this),\n children\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 121,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 109,\n columnNumber: 5\n }, this);\n}\nfunction EmptyState({ icon, title, description, action }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center py-8\",\n children: [\n icon && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-4xl mb-3 opacity-20\",\n children: icon\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 149,\n columnNumber: 16\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-semibold text-white mb-2\",\n children: title\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 150,\n columnNumber: 7\n }, this),\n description && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-text-muted mb-4\",\n children: description\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 151,\n columnNumber: 23\n }, this),\n action\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Layouts.tsx\",\n lineNumber: 148,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9MYXlvdXRzLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBeUI7QUFRbEIsU0FBU0MsV0FBVyxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsRUFBRUMsT0FBTyxFQUFtQjtJQUN0RSxxQkFDRSw4REFBQ0M7UUFBSUMsV0FBVTtrQkFDYiw0RUFBQ0Q7WUFBSUMsV0FBVTs7OEJBQ2IsOERBQUNEOztzQ0FDQyw4REFBQ0U7NEJBQUdELFdBQVU7c0NBQ1hKOzs7Ozs7d0JBRUZDLDBCQUFZLDhEQUFDSzs0QkFBRUYsV0FBVTtzQ0FBdUNIOzs7Ozs7Ozs7Ozs7Z0JBRWxFQyx5QkFBVyw4REFBQ0M7b0JBQUlDLFdBQVU7OEJBQTJCRjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJOUQ7QUFPTyxTQUFTSyxRQUFRLEVBQUVDLFFBQVEsRUFBRUosWUFBWSxFQUFFLEVBQWdCO0lBQ2hFLHFCQUNFLDhEQUFDSztRQUFRTCxXQUFXLENBQUMsZ0JBQWdCLEVBQUVBLFdBQVc7a0JBQUdJOzs7Ozs7QUFFekQ7QUFPTyxTQUFTRSxVQUFVLEVBQUVGLFFBQVEsRUFBRUosWUFBWSxFQUFFLEVBQWtCO0lBQ3BFLHFCQUFPLDhEQUFDRDtRQUFJQyxXQUFXLENBQUMsNEJBQTRCLEVBQUVBLFdBQVc7a0JBQUdJOzs7Ozs7QUFDdEU7QUFTTyxTQUFTRyxLQUFLLEVBQ25CSCxRQUFRLEVBQ1JJLE9BQU8sQ0FBQyxFQUNSQyxNQUFNLElBQUksRUFDVlQsWUFBWSxFQUFFLEVBQ0o7SUFDVixNQUFNVSxhQUFhO1FBQ2pCLEdBQUc7UUFDSCxHQUFHO1FBQ0gsR0FBRztRQUNILEdBQUc7SUFDTDtJQUVBLE1BQU1DLGFBQWE7UUFDakJDLElBQUk7UUFDSkMsSUFBSTtRQUNKQyxJQUFJO0lBQ047SUFFQSxxQkFDRSw4REFBQ2Y7UUFBSUMsV0FBVyxDQUFDLEtBQUssRUFBRVUsVUFBVSxDQUFDRixLQUFLLENBQUMsQ0FBQyxFQUFFRyxVQUFVLENBQUNGLElBQUksQ0FBQyxDQUFDLEVBQUVULFdBQVc7a0JBQ3ZFSTs7Ozs7O0FBR1A7QUFRTyxTQUFTVyxZQUFZLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFakIsWUFBWSxFQUFFLEVBQW9CO0lBQzNFLHFCQUNFLDhEQUFDRDtRQUNDQyxXQUFXLENBQUMsK0NBQStDLEVBQUVBLFdBQVc7OzBCQUV4RSw4REFBQ0Q7MEJBQUtpQjs7Ozs7OzBCQUNOLDhEQUFDakI7MEJBQUtrQjs7Ozs7Ozs7Ozs7O0FBR1o7QUFTTyxTQUFTQyxLQUFLLEVBQ25CdEIsS0FBSyxFQUNMQyxRQUFRLEVBQ1JzQixlQUFlLEVBQ2ZmLFFBQVEsRUFDRTtJQUNWLHFCQUNFLDhEQUFDTDtRQUNDQyxXQUFVO1FBQ1ZvQixPQUNFRCxrQkFDSTtZQUNFQSxpQkFBaUIsQ0FBQyx1REFBdUQsRUFBRUEsZ0JBQWdCLENBQUMsQ0FBQztZQUM3RkUsZ0JBQWdCO1lBQ2hCQyxvQkFBb0I7UUFDdEIsSUFDQSxDQUFDO2tCQUdQLDRFQUFDaEI7OzhCQUNDLDhEQUFDTDtvQkFBR0QsV0FBVTs4QkFDWEo7Ozs7OztnQkFFRkMsMEJBQ0MsOERBQUNLO29CQUFFRixXQUFVOzhCQUEyQ0g7Ozs7OztnQkFFekRPOzs7Ozs7Ozs7Ozs7QUFJVDtBQVNPLFNBQVNtQixXQUFXLEVBQ3pCQyxJQUFJLEVBQ0o1QixLQUFLLEVBQ0w2QixXQUFXLEVBQ1hDLE1BQU0sRUFDVTtJQUNoQixxQkFDRSw4REFBQzNCO1FBQUlDLFdBQVU7O1lBQ1p3QixzQkFBUSw4REFBQ3pCO2dCQUFJQyxXQUFVOzBCQUE0QndCOzs7Ozs7MEJBQ3BELDhEQUFDRztnQkFBRzNCLFdBQVU7MEJBQXlDSjs7Ozs7O1lBQ3RENkIsNkJBQWUsOERBQUN2QjtnQkFBRUYsV0FBVTswQkFBd0J5Qjs7Ozs7O1lBQ3BEQzs7Ozs7OztBQUdQIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy9MYXlvdXRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmludGVyZmFjZSBQYWdlSGVhZGVyUHJvcHMge1xuICB0aXRsZTogc3RyaW5nXG4gIHN1YnRpdGxlPzogc3RyaW5nXG4gIGFjdGlvbnM/OiBSZWFjdC5SZWFjdE5vZGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFBhZ2VIZWFkZXIoeyB0aXRsZSwgc3VidGl0bGUsIGFjdGlvbnMgfTogUGFnZUhlYWRlclByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJtYi02XCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRleHQtM3hsIGZvbnQtZGlzcGxheSB0cmFja2luZy10aWdodCB0ZXh0LXdoaXRlIG1iLTJcIj5cbiAgICAgICAgICAgIHt0aXRsZX1cbiAgICAgICAgICA8L2gxPlxuICAgICAgICAgIHtzdWJ0aXRsZSAmJiA8cCBjbGFzc05hbWU9XCJ0ZXh0LXRleHQtbXV0ZWQgdGV4dC1iYXNlIG1heC13LTN4bFwiPntzdWJ0aXRsZX08L3A+fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge2FjdGlvbnMgJiYgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPnthY3Rpb25zfTwvZGl2Pn1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5cbmludGVyZmFjZSBTZWN0aW9uUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gU2VjdGlvbih7IGNoaWxkcmVuLCBjbGFzc05hbWUgPSAnJyB9OiBTZWN0aW9uUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8c2VjdGlvbiBjbGFzc05hbWU9e2BzZWN0aW9uLXNwYWNpbmcgJHtjbGFzc05hbWV9YH0+e2NoaWxkcmVufTwvc2VjdGlvbj5cbiAgKVxufVxuXG5pbnRlcmZhY2UgQ29udGFpbmVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ29udGFpbmVyKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSA9ICcnIH06IENvbnRhaW5lclByb3BzKSB7XG4gIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17YHctZnVsbCBweC00IHNtOnB4LTYgbGc6cHgtOCAke2NsYXNzTmFtZX1gfT57Y2hpbGRyZW59PC9kaXY+XG59XG5cbmludGVyZmFjZSBHcmlkUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIGNvbHM/OiAxIHwgMiB8IDMgfCA0XG4gIGdhcD86ICdzbScgfCAnbWQnIHwgJ2xnJ1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEdyaWQoe1xuICBjaGlsZHJlbixcbiAgY29scyA9IDMsXG4gIGdhcCA9ICdtZCcsXG4gIGNsYXNzTmFtZSA9ICcnLFxufTogR3JpZFByb3BzKSB7XG4gIGNvbnN0IGNvbENsYXNzZXMgPSB7XG4gICAgMTogJ2dyaWQtY29scy0xJyxcbiAgICAyOiAnZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTInLFxuICAgIDM6ICdncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMiBsZzpncmlkLWNvbHMtMycsXG4gICAgNDogJ2dyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy00JyxcbiAgfVxuXG4gIGNvbnN0IGdhcENsYXNzZXMgPSB7XG4gICAgc206ICdnYXAtMycsXG4gICAgbWQ6ICdnYXAtNCcsXG4gICAgbGc6ICdnYXAtNicsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgZ3JpZCAke2NvbENsYXNzZXNbY29sc119ICR7Z2FwQ2xhc3Nlc1tnYXBdfSAke2NsYXNzTmFtZX1gfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5pbnRlcmZhY2UgU3BsaXRMYXlvdXRQcm9wcyB7XG4gIGxlZnQ6IFJlYWN0LlJlYWN0Tm9kZVxuICByaWdodDogUmVhY3QuUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gU3BsaXRMYXlvdXQoeyBsZWZ0LCByaWdodCwgY2xhc3NOYW1lID0gJycgfTogU3BsaXRMYXlvdXRQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17YGdyaWQgZ3JpZC1jb2xzLTEgbGc6Z3JpZC1jb2xzLTIgZ2FwLTYgbGc6Z2FwLTggJHtjbGFzc05hbWV9YH1cbiAgICA+XG4gICAgICA8ZGl2PntsZWZ0fTwvZGl2PlxuICAgICAgPGRpdj57cmlnaHR9PC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuaW50ZXJmYWNlIEhlcm9Qcm9wcyB7XG4gIHRpdGxlOiBzdHJpbmdcbiAgc3VidGl0bGU/OiBzdHJpbmdcbiAgYmFja2dyb3VuZEltYWdlPzogc3RyaW5nXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIZXJvKHtcbiAgdGl0bGUsXG4gIHN1YnRpdGxlLFxuICBiYWNrZ3JvdW5kSW1hZ2UsXG4gIGNoaWxkcmVuLFxufTogSGVyb1Byb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPVwicmVsYXRpdmUgbWluLWgtWzUwdmhdIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtY2VudGVyXCJcbiAgICAgIHN0eWxlPXtcbiAgICAgICAgYmFja2dyb3VuZEltYWdlXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogYGxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDAuNyksIHJnYmEoMCwwLDAsMC43KSksIHVybCgke2JhY2tncm91bmRJbWFnZX0pYCxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZFNpemU6ICdjb3ZlcicsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogJ2NlbnRlcicsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fVxuICAgICAgfVxuICAgID5cbiAgICAgIDxDb250YWluZXI+XG4gICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTR4bCBtZDp0ZXh0LTZ4bCBmb250LWRpc3BsYXkgdHJhY2tpbmctdGlnaHQgdGV4dC13aGl0ZSBtYi0zXCI+XG4gICAgICAgICAge3RpdGxlfVxuICAgICAgICA8L2gxPlxuICAgICAgICB7c3VidGl0bGUgJiYgKFxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtbGcgbWQ6dGV4dC14bCB0ZXh0LXRleHQtbXV0ZWQgbWItNlwiPntzdWJ0aXRsZX08L3A+XG4gICAgICAgICl9XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvQ29udGFpbmVyPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmludGVyZmFjZSBFbXB0eVN0YXRlUHJvcHMge1xuICBpY29uPzogUmVhY3QuUmVhY3ROb2RlXG4gIHRpdGxlOiBzdHJpbmdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgYWN0aW9uPzogUmVhY3QuUmVhY3ROb2RlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBFbXB0eVN0YXRlKHtcbiAgaWNvbixcbiAgdGl0bGUsXG4gIGRlc2NyaXB0aW9uLFxuICBhY3Rpb24sXG59OiBFbXB0eVN0YXRlUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHB5LThcIj5cbiAgICAgIHtpY29uICYmIDxkaXYgY2xhc3NOYW1lPVwidGV4dC00eGwgbWItMyBvcGFjaXR5LTIwXCI+e2ljb259PC9kaXY+fVxuICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIG1iLTJcIj57dGl0bGV9PC9oMz5cbiAgICAgIHtkZXNjcmlwdGlvbiAmJiA8cCBjbGFzc05hbWU9XCJ0ZXh0LXRleHQtbXV0ZWQgbWItNFwiPntkZXNjcmlwdGlvbn08L3A+fVxuICAgICAge2FjdGlvbn1cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiUGFnZUhlYWRlciIsInRpdGxlIiwic3VidGl0bGUiLCJhY3Rpb25zIiwiZGl2IiwiY2xhc3NOYW1lIiwiaDEiLCJwIiwiU2VjdGlvbiIsImNoaWxkcmVuIiwic2VjdGlvbiIsIkNvbnRhaW5lciIsIkdyaWQiLCJjb2xzIiwiZ2FwIiwiY29sQ2xhc3NlcyIsImdhcENsYXNzZXMiLCJzbSIsIm1kIiwibGciLCJTcGxpdExheW91dCIsImxlZnQiLCJyaWdodCIsIkhlcm8iLCJiYWNrZ3JvdW5kSW1hZ2UiLCJzdHlsZSIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZFBvc2l0aW9uIiwiRW1wdHlTdGF0ZSIsImljb24iLCJkZXNjcmlwdGlvbiIsImFjdGlvbiIsImgzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/Layouts.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/LoadingProvider.tsx":
+/*!********************************************!*\
+ !*** ./src/components/LoadingProvider.tsx ***!
+ \********************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ LoadingProvider),\n/* harmony export */ useLoading: () => (/* binding */ useLoading)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _ui_multi_step_loader__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ui/multi-step-loader */ \"(ssr)/./src/components/ui/multi-step-loader.tsx\");\n/* __next_internal_client_entry_do_not_use__ useLoading,default auto */ \n\n\nconst LoadingContext = /*#__PURE__*/ (0,react__WEBPACK_IMPORTED_MODULE_1__.createContext)({\n isLoading: true,\n setIsLoading: ()=>{}\n});\nconst useLoading = ()=>(0,react__WEBPACK_IMPORTED_MODULE_1__.useContext)(LoadingContext);\nfunction LoadingProvider({ children }) {\n const [isLoading, setIsLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [showLoader, setShowLoader] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(true);\n const [isMounted, setIsMounted] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n // Multi-step loader texts\n const loadingStates = [\n {\n text: 'Paying for Nuke'\n },\n {\n text: 'Rewriting After Effects'\n },\n {\n text: 'Containing the 19 sided ngon'\n },\n {\n text: 'Rewriting IBK'\n },\n {\n text: 'Migrating Nukepedia'\n },\n {\n text: 'Overloading our renderfarm'\n },\n {\n text: 'Hammering the VFX button'\n },\n {\n text: 'Welcome to the shitshow'\n }\n ];\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"LoadingProvider.useEffect\": ()=>{\n setIsMounted(true);\n // Check URL params for force loading\n const urlParams = new URLSearchParams(globalThis.location?.search ?? '');\n const forceLoading = urlParams.get('loading') === 'true';\n // Check if this is the first visit\n const hasVisited = globalThis.sessionStorage?.getItem('hasVisited');\n if (hasVisited && !forceLoading) {\n // Still show a brief loading for smooth transition\n globalThis.setTimeout({\n \"LoadingProvider.useEffect\": ()=>{\n setIsLoading(false);\n setShowLoader(false);\n }\n }[\"LoadingProvider.useEffect\"], 100);\n } else {\n globalThis.sessionStorage?.setItem('hasVisited', 'true');\n }\n }\n }[\"LoadingProvider.useEffect\"], []);\n const handleLoadingComplete = ()=>{\n setShowLoader(false);\n // Small delay to ensure smooth transition\n globalThis.setTimeout(()=>{\n setIsLoading(false);\n }, 100);\n };\n // Don't render anything until mounted to avoid hydration issues\n if (!isMounted) {\n return null;\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(LoadingContext.Provider, {\n value: {\n isLoading,\n setIsLoading\n },\n children: [\n showLoader && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ui_multi_step_loader__WEBPACK_IMPORTED_MODULE_2__.MultiStepLoader, {\n loadingStates: loadingStates,\n loading: showLoader,\n duration: 2000,\n onComplete: handleLoadingComplete\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/LoadingProvider.tsx\",\n lineNumber: 73,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `transition-opacity duration-1000 ${isLoading ? 'opacity-0' : 'opacity-100'}`,\n children: children\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/LoadingProvider.tsx\",\n lineNumber: 80,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/LoadingProvider.tsx\",\n lineNumber: 71,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9Mb2FkaW5nUHJvdmlkZXIudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRXNFO0FBRWQ7QUFPeEQsTUFBTUssK0JBQWlCTCxvREFBYUEsQ0FBcUI7SUFDdkRNLFdBQVc7SUFDWEMsY0FBYyxLQUFPO0FBQ3ZCO0FBRU8sTUFBTUMsYUFBYSxJQUFNUCxpREFBVUEsQ0FBQ0ksZ0JBQWU7QUFFM0MsU0FBU0ksZ0JBQWdCLEVBQUVDLFFBQVEsRUFBMkI7SUFDM0UsTUFBTSxDQUFDSixXQUFXQyxhQUFhLEdBQUdMLCtDQUFRQSxDQUFDO0lBQzNDLE1BQU0sQ0FBQ1MsWUFBWUMsY0FBYyxHQUFHViwrQ0FBUUEsQ0FBQztJQUM3QyxNQUFNLENBQUNXLFdBQVdDLGFBQWEsR0FBR1osK0NBQVFBLENBQUM7SUFFM0MsMEJBQTBCO0lBQzFCLE1BQU1hLGdCQUFnQjtRQUNwQjtZQUFFQyxNQUFNO1FBQWtCO1FBQzFCO1lBQUVBLE1BQU07UUFBMEI7UUFDbEM7WUFBRUEsTUFBTTtRQUErQjtRQUN2QztZQUFFQSxNQUFNO1FBQWdCO1FBQ3hCO1lBQUVBLE1BQU07UUFBc0I7UUFDOUI7WUFBRUEsTUFBTTtRQUE2QjtRQUNyQztZQUFFQSxNQUFNO1FBQTJCO1FBQ25DO1lBQUVBLE1BQU07UUFBMEI7S0FDbkM7SUFFRGIsZ0RBQVNBO3FDQUFDO1lBQ1JXLGFBQWE7WUFFYixxQ0FBcUM7WUFDckMsTUFBTUcsWUFBWSxJQUFJQyxnQkFBZ0JDLFdBQVdDLFFBQVEsRUFBRUMsVUFBVTtZQUNyRSxNQUFNQyxlQUFlTCxVQUFVTSxHQUFHLENBQUMsZUFBZTtZQUVsRCxtQ0FBbUM7WUFDbkMsTUFBTUMsYUFBYUwsV0FBV00sY0FBYyxFQUFFQyxRQUFRO1lBRXRELElBQUlGLGNBQWMsQ0FBQ0YsY0FBYztnQkFDL0IsbURBQW1EO2dCQUNuREgsV0FBV1EsVUFBVTtpREFBQzt3QkFDcEJwQixhQUFhO3dCQUNiSyxjQUFjO29CQUNoQjtnREFBRztZQUNMLE9BQU87Z0JBQ0xPLFdBQVdNLGNBQWMsRUFBRUcsUUFBUSxjQUFjO1lBQ25EO1FBQ0Y7b0NBQUcsRUFBRTtJQUVMLE1BQU1DLHdCQUF3QjtRQUM1QmpCLGNBQWM7UUFDZCwwQ0FBMEM7UUFDMUNPLFdBQVdRLFVBQVUsQ0FBQztZQUNwQnBCLGFBQWE7UUFDZixHQUFHO0lBQ0w7SUFFQSxnRUFBZ0U7SUFDaEUsSUFBSSxDQUFDTSxXQUFXO1FBQ2QsT0FBTztJQUNUO0lBRUEscUJBQ0UsOERBQUNSLGVBQWV5QixRQUFRO1FBQUNDLE9BQU87WUFBRXpCO1lBQVdDO1FBQWE7O1lBQ3ZESSw0QkFDQyw4REFBQ1Asa0VBQWVBO2dCQUNkVyxlQUFlQTtnQkFDZmlCLFNBQVNyQjtnQkFDVHNCLFVBQVU7Z0JBQ1ZDLFlBQVlMOzs7Ozs7MEJBR2hCLDhEQUFDTTtnQkFDQ0MsV0FBVyxDQUFDLGlDQUFpQyxFQUFFOUIsWUFBWSxjQUFjLGVBQWU7MEJBRXZGSTs7Ozs7Ozs7Ozs7O0FBSVQiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL0xvYWRpbmdQcm92aWRlci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IGNyZWF0ZUNvbnRleHQsIHVzZUNvbnRleHQsIHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBNdWx0aVN0ZXBMb2FkZXIgfSBmcm9tICcuL3VpL211bHRpLXN0ZXAtbG9hZGVyJ1xuXG5pbnRlcmZhY2UgTG9hZGluZ0NvbnRleHRUeXBlIHtcbiAgaXNMb2FkaW5nOiBib29sZWFuXG4gIHNldElzTG9hZGluZzogKGxvYWRpbmc6IGJvb2xlYW4pID0+IHZvaWRcbn1cblxuY29uc3QgTG9hZGluZ0NvbnRleHQgPSBjcmVhdGVDb250ZXh0PExvYWRpbmdDb250ZXh0VHlwZT4oe1xuICBpc0xvYWRpbmc6IHRydWUsXG4gIHNldElzTG9hZGluZzogKCkgPT4ge30sXG59KVxuXG5leHBvcnQgY29uc3QgdXNlTG9hZGluZyA9ICgpID0+IHVzZUNvbnRleHQoTG9hZGluZ0NvbnRleHQpXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIExvYWRpbmdQcm92aWRlcih7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IFtpc0xvYWRpbmcsIHNldElzTG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKVxuICBjb25zdCBbc2hvd0xvYWRlciwgc2V0U2hvd0xvYWRlcl0gPSB1c2VTdGF0ZSh0cnVlKVxuICBjb25zdCBbaXNNb3VudGVkLCBzZXRJc01vdW50ZWRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgLy8gTXVsdGktc3RlcCBsb2FkZXIgdGV4dHNcbiAgY29uc3QgbG9hZGluZ1N0YXRlcyA9IFtcbiAgICB7IHRleHQ6ICdQYXlpbmcgZm9yIE51a2UnIH0sXG4gICAgeyB0ZXh0OiAnUmV3cml0aW5nIEFmdGVyIEVmZmVjdHMnIH0sXG4gICAgeyB0ZXh0OiAnQ29udGFpbmluZyB0aGUgMTkgc2lkZWQgbmdvbicgfSxcbiAgICB7IHRleHQ6ICdSZXdyaXRpbmcgSUJLJyB9LFxuICAgIHsgdGV4dDogJ01pZ3JhdGluZyBOdWtlcGVkaWEnIH0sXG4gICAgeyB0ZXh0OiAnT3ZlcmxvYWRpbmcgb3VyIHJlbmRlcmZhcm0nIH0sXG4gICAgeyB0ZXh0OiAnSGFtbWVyaW5nIHRoZSBWRlggYnV0dG9uJyB9LFxuICAgIHsgdGV4dDogJ1dlbGNvbWUgdG8gdGhlIHNoaXRzaG93JyB9LFxuICBdXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZXRJc01vdW50ZWQodHJ1ZSlcblxuICAgIC8vIENoZWNrIFVSTCBwYXJhbXMgZm9yIGZvcmNlIGxvYWRpbmdcbiAgICBjb25zdCB1cmxQYXJhbXMgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKGdsb2JhbFRoaXMubG9jYXRpb24/LnNlYXJjaCA/PyAnJylcbiAgICBjb25zdCBmb3JjZUxvYWRpbmcgPSB1cmxQYXJhbXMuZ2V0KCdsb2FkaW5nJykgPT09ICd0cnVlJ1xuXG4gICAgLy8gQ2hlY2sgaWYgdGhpcyBpcyB0aGUgZmlyc3QgdmlzaXRcbiAgICBjb25zdCBoYXNWaXNpdGVkID0gZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZT8uZ2V0SXRlbSgnaGFzVmlzaXRlZCcpXG5cbiAgICBpZiAoaGFzVmlzaXRlZCAmJiAhZm9yY2VMb2FkaW5nKSB7XG4gICAgICAvLyBTdGlsbCBzaG93IGEgYnJpZWYgbG9hZGluZyBmb3Igc21vb3RoIHRyYW5zaXRpb25cbiAgICAgIGdsb2JhbFRoaXMuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHNldElzTG9hZGluZyhmYWxzZSlcbiAgICAgICAgc2V0U2hvd0xvYWRlcihmYWxzZSlcbiAgICAgIH0sIDEwMClcbiAgICB9IGVsc2Uge1xuICAgICAgZ2xvYmFsVGhpcy5zZXNzaW9uU3RvcmFnZT8uc2V0SXRlbSgnaGFzVmlzaXRlZCcsICd0cnVlJylcbiAgICB9XG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZUxvYWRpbmdDb21wbGV0ZSA9ICgpID0+IHtcbiAgICBzZXRTaG93TG9hZGVyKGZhbHNlKVxuICAgIC8vIFNtYWxsIGRlbGF5IHRvIGVuc3VyZSBzbW9vdGggdHJhbnNpdGlvblxuICAgIGdsb2JhbFRoaXMuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpXG4gICAgfSwgMTAwKVxuICB9XG5cbiAgLy8gRG9uJ3QgcmVuZGVyIGFueXRoaW5nIHVudGlsIG1vdW50ZWQgdG8gYXZvaWQgaHlkcmF0aW9uIGlzc3Vlc1xuICBpZiAoIWlzTW91bnRlZCkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxMb2FkaW5nQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17eyBpc0xvYWRpbmcsIHNldElzTG9hZGluZyB9fT5cbiAgICAgIHtzaG93TG9hZGVyICYmIChcbiAgICAgICAgPE11bHRpU3RlcExvYWRlclxuICAgICAgICAgIGxvYWRpbmdTdGF0ZXM9e2xvYWRpbmdTdGF0ZXN9XG4gICAgICAgICAgbG9hZGluZz17c2hvd0xvYWRlcn1cbiAgICAgICAgICBkdXJhdGlvbj17MjAwMH1cbiAgICAgICAgICBvbkNvbXBsZXRlPXtoYW5kbGVMb2FkaW5nQ29tcGxldGV9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAgPGRpdlxuICAgICAgICBjbGFzc05hbWU9e2B0cmFuc2l0aW9uLW9wYWNpdHkgZHVyYXRpb24tMTAwMCAke2lzTG9hZGluZyA/ICdvcGFjaXR5LTAnIDogJ29wYWNpdHktMTAwJ31gfVxuICAgICAgPlxuICAgICAgICB7Y2hpbGRyZW59XG4gICAgICA8L2Rpdj5cbiAgICA8L0xvYWRpbmdDb250ZXh0LlByb3ZpZGVyPlxuICApXG59XG4iXSwibmFtZXMiOlsiY3JlYXRlQ29udGV4dCIsInVzZUNvbnRleHQiLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIk11bHRpU3RlcExvYWRlciIsIkxvYWRpbmdDb250ZXh0IiwiaXNMb2FkaW5nIiwic2V0SXNMb2FkaW5nIiwidXNlTG9hZGluZyIsIkxvYWRpbmdQcm92aWRlciIsImNoaWxkcmVuIiwic2hvd0xvYWRlciIsInNldFNob3dMb2FkZXIiLCJpc01vdW50ZWQiLCJzZXRJc01vdW50ZWQiLCJsb2FkaW5nU3RhdGVzIiwidGV4dCIsInVybFBhcmFtcyIsIlVSTFNlYXJjaFBhcmFtcyIsImdsb2JhbFRoaXMiLCJsb2NhdGlvbiIsInNlYXJjaCIsImZvcmNlTG9hZGluZyIsImdldCIsImhhc1Zpc2l0ZWQiLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJzZXRUaW1lb3V0Iiwic2V0SXRlbSIsImhhbmRsZUxvYWRpbmdDb21wbGV0ZSIsIlByb3ZpZGVyIiwidmFsdWUiLCJsb2FkaW5nIiwiZHVyYXRpb24iLCJvbkNvbXBsZXRlIiwiZGl2IiwiY2xhc3NOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/LoadingProvider.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/LogoutDialog.tsx":
+/*!*****************************************!*\
+ !*** ./src/components/LogoutDialog.tsx ***!
+ \*****************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ LogoutDialog)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next-auth/react */ \"(ssr)/./node_modules/next-auth/react/index.js\");\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_auth_react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var _components_Buttons__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/Buttons */ \"(ssr)/./src/components/Buttons.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\nfunction LogoutDialog({ className = '' }) {\n const [open, setOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [isLoading, setIsLoading] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Buttons__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"secondary\",\n size: \"sm\",\n className: className,\n onClick: ()=>setOpen(true),\n children: \"Sign Out\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/LogoutDialog.tsx\",\n lineNumber: 17,\n columnNumber: 7\n }, this),\n open && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed inset-0 z-50 flex items-center justify-center p-6\",\n onClick: (e)=>{\n if (e.target === e.currentTarget) setOpen(false);\n },\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-black/60 backdrop-blur-sm\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/LogoutDialog.tsx\",\n lineNumber: 33,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full max-w-md bg-surface-900 border border-surface-600 rounded-xl shadow-xl p-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-semibold text-white mb-2\",\n children: \"Sign out\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/LogoutDialog.tsx\",\n lineNumber: 35,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-text-muted mb-6\",\n children: \"Are you sure you want to sign out of your account?\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/LogoutDialog.tsx\",\n lineNumber: 36,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-end gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Buttons__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"ghost\",\n onClick: ()=>setOpen(false),\n children: \"Cancel\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/LogoutDialog.tsx\",\n lineNumber: 40,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Buttons__WEBPACK_IMPORTED_MODULE_3__.Button, {\n variant: \"danger\",\n isLoading: isLoading,\n onClick: async ()=>{\n try {\n setIsLoading(true);\n await (0,next_auth_react__WEBPACK_IMPORTED_MODULE_2__.signOut)({\n callbackUrl: '/'\n });\n } finally{\n setIsLoading(false);\n }\n },\n children: \"Sign Out\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/LogoutDialog.tsx\",\n lineNumber: 43,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/LogoutDialog.tsx\",\n lineNumber: 39,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/LogoutDialog.tsx\",\n lineNumber: 34,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/LogoutDialog.tsx\",\n lineNumber: 27,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9Mb2dvdXREaWFsb2cudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUVnQztBQUNTO0FBQ0k7QUFFOUIsU0FBU0csYUFBYSxFQUNuQ0MsWUFBWSxFQUFFLEVBR2Y7SUFDQyxNQUFNLENBQUNDLE1BQU1DLFFBQVEsR0FBR04sK0NBQVFBLENBQUM7SUFDakMsTUFBTSxDQUFDTyxXQUFXQyxhQUFhLEdBQUdSLCtDQUFRQSxDQUFDO0lBRTNDLHFCQUNFOzswQkFDRSw4REFBQ0UsdURBQU1BO2dCQUNMTyxTQUFRO2dCQUNSQyxNQUFLO2dCQUNMTixXQUFXQTtnQkFDWE8sU0FBUyxJQUFNTCxRQUFROzBCQUN4Qjs7Ozs7O1lBSUFELHNCQUNDLDhEQUFDTztnQkFDQ1IsV0FBVTtnQkFDVk8sU0FBUyxDQUFDRTtvQkFDUixJQUFJQSxFQUFFQyxNQUFNLEtBQUtELEVBQUVFLGFBQWEsRUFBRVQsUUFBUTtnQkFDNUM7O2tDQUVBLDhEQUFDTTt3QkFBSVIsV0FBVTs7Ozs7O2tDQUNmLDhEQUFDUTt3QkFBSVIsV0FBVTs7MENBQ2IsOERBQUNZO2dDQUFHWixXQUFVOzBDQUF3Qzs7Ozs7OzBDQUN0RCw4REFBQ2E7Z0NBQUViLFdBQVU7MENBQXVCOzs7Ozs7MENBR3BDLDhEQUFDUTtnQ0FBSVIsV0FBVTs7a0RBQ2IsOERBQUNGLHVEQUFNQTt3Q0FBQ08sU0FBUTt3Q0FBUUUsU0FBUyxJQUFNTCxRQUFRO2tEQUFROzs7Ozs7a0RBR3ZELDhEQUFDSix1REFBTUE7d0NBQ0xPLFNBQVE7d0NBQ1JGLFdBQVdBO3dDQUNYSSxTQUFTOzRDQUNQLElBQUk7Z0RBQ0ZILGFBQWE7Z0RBQ2IsTUFBTVAsd0RBQU9BLENBQUM7b0RBQUVpQixhQUFhO2dEQUFJOzRDQUNuQyxTQUFVO2dEQUNSVixhQUFhOzRDQUNmO3dDQUNGO2tEQUNEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNmIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy9Mb2dvdXREaWFsb2cudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgc2lnbk91dCB9IGZyb20gJ25leHQtYXV0aC9yZWFjdCdcbmltcG9ydCB7IEJ1dHRvbiB9IGZyb20gJ0AvY29tcG9uZW50cy9CdXR0b25zJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBMb2dvdXREaWFsb2coe1xuICBjbGFzc05hbWUgPSAnJyxcbn06IHtcbiAgY2xhc3NOYW1lPzogc3RyaW5nXG59KSB7XG4gIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbaXNMb2FkaW5nLCBzZXRJc0xvYWRpbmddID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPEJ1dHRvblxuICAgICAgICB2YXJpYW50PVwic2Vjb25kYXJ5XCJcbiAgICAgICAgc2l6ZT1cInNtXCJcbiAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHNldE9wZW4odHJ1ZSl9XG4gICAgICA+XG4gICAgICAgIFNpZ24gT3V0XG4gICAgICA8L0J1dHRvbj5cblxuICAgICAge29wZW4gJiYgKFxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3NOYW1lPVwiZml4ZWQgaW5zZXQtMCB6LTUwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHAtNlwiXG4gICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgIGlmIChlLnRhcmdldCA9PT0gZS5jdXJyZW50VGFyZ2V0KSBzZXRPcGVuKGZhbHNlKVxuICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgYmctYmxhY2svNjAgYmFja2Ryb3AtYmx1ci1zbVwiIC8+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSB3LWZ1bGwgbWF4LXctbWQgYmctc3VyZmFjZS05MDAgYm9yZGVyIGJvcmRlci1zdXJmYWNlLTYwMCByb3VuZGVkLXhsIHNoYWRvdy14bCBwLTZcIj5cbiAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJ0ZXh0LXhsIGZvbnQtc2VtaWJvbGQgdGV4dC13aGl0ZSBtYi0yXCI+U2lnbiBvdXQ8L2gzPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC10ZXh0LW11dGVkIG1iLTZcIj5cbiAgICAgICAgICAgICAgQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIHNpZ24gb3V0IG9mIHlvdXIgYWNjb3VudD9cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1lbmQgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwiZ2hvc3RcIiBvbkNsaWNrPXsoKSA9PiBzZXRPcGVuKGZhbHNlKX0+XG4gICAgICAgICAgICAgICAgQ2FuY2VsXG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgdmFyaWFudD1cImRhbmdlclwiXG4gICAgICAgICAgICAgICAgaXNMb2FkaW5nPXtpc0xvYWRpbmd9XG4gICAgICAgICAgICAgICAgb25DbGljaz17YXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNMb2FkaW5nKHRydWUpXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHNpZ25PdXQoeyBjYWxsYmFja1VybDogJy8nIH0pXG4gICAgICAgICAgICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgICAgICAgICAgICBzZXRJc0xvYWRpbmcoZmFsc2UpXG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFNpZ24gT3V0XG4gICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKX1cbiAgICA8Lz5cbiAgKVxufVxuXG4iXSwibmFtZXMiOlsidXNlU3RhdGUiLCJzaWduT3V0IiwiQnV0dG9uIiwiTG9nb3V0RGlhbG9nIiwiY2xhc3NOYW1lIiwib3BlbiIsInNldE9wZW4iLCJpc0xvYWRpbmciLCJzZXRJc0xvYWRpbmciLCJ2YXJpYW50Iiwic2l6ZSIsIm9uQ2xpY2siLCJkaXYiLCJlIiwidGFyZ2V0IiwiY3VycmVudFRhcmdldCIsImgzIiwicCIsImNhbGxiYWNrVXJsIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/LogoutDialog.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/Navigation.tsx":
+/*!***************************************!*\
+ !*** ./src/components/Navigation.tsx ***!
+ \***************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ AdminSidebar: () => (/* binding */ AdminSidebar),\n/* harmony export */ Breadcrumbs: () => (/* binding */ Breadcrumbs),\n/* harmony export */ Navigation: () => (/* binding */ Navigation)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(ssr)/./node_modules/next/dist/client/app-dir/link.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_link__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/navigation */ \"(ssr)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! next-auth/react */ \"(ssr)/./node_modules/next-auth/react/index.js\");\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(next_auth_react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var _LogoutDialog__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./LogoutDialog */ \"(ssr)/./src/components/LogoutDialog.tsx\");\n/* harmony import */ var motion_react__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! motion/react */ \"(ssr)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\");\n/* __next_internal_client_entry_do_not_use__ Navigation,AdminSidebar,Breadcrumbs auto */ \n\n\n\n\n\n\nfunction Navigation() {\n const pathname = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.usePathname)();\n const { data: session, status } = (0,next_auth_react__WEBPACK_IMPORTED_MODULE_4__.useSession)();\n const [hovered, setHovered] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(null);\n const baseNav = [\n {\n href: '/',\n label: 'Home'\n },\n {\n href: '/projects',\n label: 'Projects'\n },\n {\n href: '/crew',\n label: 'Crew'\n },\n {\n href: '/blog',\n label: 'Blog'\n },\n {\n href: '/faq',\n label: 'FAQ'\n },\n {\n href: '/contact',\n label: 'Contact'\n }\n ];\n const navItems = status === 'authenticated' ? [\n ...baseNav,\n {\n href: '/admin',\n label: 'Admin'\n }\n ] : baseNav;\n // Hide site navigation on admin routes to avoid overlap with AdminSidebar\n if (pathname?.startsWith('/admin')) {\n return null;\n }\n const current = hovered ?? pathname;\n const [scrollProgress, setScrollProgress] = (0,react__WEBPACK_IMPORTED_MODULE_3__.useState)(0);\n (0,react__WEBPACK_IMPORTED_MODULE_3__.useEffect)({\n \"Navigation.useEffect\": ()=>{\n const onScroll = {\n \"Navigation.useEffect.onScroll\": ()=>{\n const y = typeof globalThis !== 'undefined' && 'scrollY' in globalThis ? globalThis.scrollY || 0 : 0;\n const p = Math.min(1, Math.max(0, y / 200));\n setScrollProgress(p);\n }\n }[\"Navigation.useEffect.onScroll\"];\n onScroll();\n if (typeof globalThis !== 'undefined' && 'addEventListener' in globalThis) {\n const g = globalThis;\n g.addEventListener('scroll', onScroll, {\n passive: true\n });\n return ({\n \"Navigation.useEffect\": ()=>g.removeEventListener('scroll', onScroll)\n })[\"Navigation.useEffect\"];\n }\n }\n }[\"Navigation.useEffect\"], []);\n const MAX_W_BASE = 1120 // px ~ 70rem\n ;\n const MAX_W_MIN = 860 // px ~ 53.75rem\n ;\n const maxWidth = MAX_W_BASE - scrollProgress * (MAX_W_BASE - MAX_W_MIN);\n const glassActive = scrollProgress > 0.01;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pointer-events-none fixed top-2 left-1/2 z-50 -translate-x-1/2 w-full px-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(motion_react__WEBPACK_IMPORTED_MODULE_6__.motion.nav, {\n initial: {\n opacity: 0,\n y: -16\n },\n animate: {\n opacity: 1,\n y: 0\n },\n transition: {\n type: 'spring',\n stiffness: 120,\n damping: 16,\n mass: 0.6\n },\n style: {\n maxWidth: `${Math.round(maxWidth)}px`,\n transition: 'max-width 200ms ease'\n },\n className: `pointer-events-auto mx-auto max-w-6xl rounded-full origin-center transition-[background-color,backdrop-filter,box-shadow,border-color] duration-200 ${glassActive ? 'border border-white/10 bg-black/20 backdrop-blur-xl shadow-[0_8px_40px_rgba(0,0,0,0.35)]' : 'border border-transparent bg-transparent backdrop-blur-0 shadow-none'}`,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3 px-3 py-1.5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n className: \"text-[13px] md:text-sm font-brand tracking-tight text-white whitespace-nowrap leading-none\",\n children: \"Biohazard VFX\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 84,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"hidden md:block h-5 w-px bg-white/10\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 92,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"hidden md:flex items-center gap-1 mx-auto\",\n children: navItems.map((item)=>{\n const isActive = current === item.href;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative px-3 py-1\",\n onMouseEnter: ()=>setHovered(item.href),\n onMouseLeave: ()=>setHovered(null),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: item.href,\n className: [\n 'text-sm leading-none tracking-wide transition-colors',\n pathname === item.href ? 'text-white' : 'text-neutral-300 hover:text-white'\n ].join(' '),\n children: item.label.toUpperCase()\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 105,\n columnNumber: 21\n }, this),\n isActive && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(motion_react__WEBPACK_IMPORTED_MODULE_6__.motion.div, {\n layoutId: \"nav-underline\",\n className: \"absolute left-2 right-2 -bottom-1 h-0.5 bg-white/80\",\n transition: {\n type: 'spring',\n stiffness: 300,\n damping: 30\n }\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 117,\n columnNumber: 23\n }, this)\n ]\n }, item.href, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 99,\n columnNumber: 19\n }, this);\n })\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 95,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"ml-auto hidden md:flex items-center gap-3\",\n children: status === 'authenticated' ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.Fragment, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-text-muted\",\n children: session?.user?.email\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 136,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_LogoutDialog__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 139,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true) : null\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 133,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"md:hidden flex-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"overflow-x-auto no-scrollbar\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-1\",\n children: navItems.map((item)=>{\n const isActive = pathname === item.href;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: item.href,\n className: [\n 'px-3 py-2 rounded-full text-xs transition-colors',\n isActive ? 'bg-white/15 text-white' : 'text-neutral-300 hover:text-white hover:bg-white/10'\n ].join(' '),\n children: item.label\n }, item.href, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 151,\n columnNumber: 23\n }, this);\n })\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 147,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 146,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 145,\n columnNumber: 13\n }, this),\n status === 'authenticated' && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"md:hidden\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_LogoutDialog__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 171,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 170,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 82,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 63,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 62,\n columnNumber: 7\n }, this)\n }, void 0, false);\n}\nfunction AdminSidebar() {\n const pathname = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.usePathname)();\n const navItems = [\n {\n href: '/admin',\n label: 'Dashboard'\n },\n {\n href: '/admin/projects',\n label: 'Projects'\n },\n {\n href: '/admin/blog',\n label: 'Blog'\n },\n {\n href: '/admin/team',\n label: 'Team'\n },\n {\n href: '/admin/faq',\n label: 'FAQs'\n },\n {\n href: '/admin/media',\n label: 'Media'\n },\n {\n href: '/admin/assets',\n label: 'Site Assets'\n }\n ];\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"w-60 h-screen fixed left-0 top-0 z-40\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full bg-surface-900/90 border-r border-surface-500/70 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"p-5 border-b border-surface-500/60\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-base font-semibold text-white leading-tight\",\n children: \"Admin Dashboard\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 199,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-text-muted\",\n children: \"Biohazard VFX\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 202,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 198,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 197,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"p-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-1\",\n children: navItems.map((item)=>{\n const active = pathname === item.href;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: item.href,\n className: `block px-3 py-2 rounded text-sm transition-colors ${active ? 'bg-surface-700 text-white' : 'text-text-muted hover:bg-surface-700 hover:text-white'}`,\n children: item.label\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 211,\n columnNumber: 19\n }, this)\n }, item.href, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 210,\n columnNumber: 17\n }, this);\n })\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 206,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 205,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-auto p-3 border-t border-surface-500/60\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: \"/\",\n className: \"btn-secondary w-full inline-flex items-center justify-center gap-2 text-sm\",\n title: \"Return to site\",\n children: \"← Back to site\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 227,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 226,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 196,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 195,\n columnNumber: 5\n }, this);\n}\nfunction Breadcrumbs({ items }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"flex items-center space-x-2 text-sm text-text-muted mb-4\",\n children: items.map((item, index)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center\",\n children: [\n index > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"mx-2\",\n children: \"/\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 249,\n columnNumber: 25\n }, this),\n item.href ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_1___default()), {\n href: item.href,\n className: \"link-muted\",\n children: item.label\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 251,\n columnNumber: 13\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-text-primary\",\n children: item.label\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 255,\n columnNumber: 13\n }, this)\n ]\n }, index, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 248,\n columnNumber: 9\n }, this))\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx\",\n lineNumber: 246,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9OYXZpZ2F0aW9uLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFNEI7QUFDaUI7QUFDRjtBQUNDO0FBQ0g7QUFDSjtBQUU5QixTQUFTTztJQUNkLE1BQU1DLFdBQVdQLDREQUFXQTtJQUM1QixNQUFNLEVBQUVRLE1BQU1DLE9BQU8sRUFBRUMsTUFBTSxFQUFFLEdBQUdQLDJEQUFVQTtJQUM1QyxNQUFNLENBQUNRLFNBQVNDLFdBQVcsR0FBR1YsK0NBQVFBLENBQWdCO0lBRXRELE1BQU1XLFVBQVU7UUFDZDtZQUFFQyxNQUFNO1lBQUtDLE9BQU87UUFBTztRQUMzQjtZQUFFRCxNQUFNO1lBQWFDLE9BQU87UUFBVztRQUN2QztZQUFFRCxNQUFNO1lBQVNDLE9BQU87UUFBTztRQUMvQjtZQUFFRCxNQUFNO1lBQVNDLE9BQU87UUFBTztRQUMvQjtZQUFFRCxNQUFNO1lBQVFDLE9BQU87UUFBTTtRQUM3QjtZQUFFRCxNQUFNO1lBQVlDLE9BQU87UUFBVTtLQUN0QztJQUVELE1BQU1DLFdBQ0pOLFdBQVcsa0JBQ1A7V0FBSUc7UUFBUztZQUFFQyxNQUFNO1lBQVVDLE9BQU87UUFBUTtLQUFFLEdBQ2hERjtJQUVOLDBFQUEwRTtJQUMxRSxJQUFJTixVQUFVVSxXQUFXLFdBQVc7UUFDbEMsT0FBTztJQUNUO0lBRUEsTUFBTUMsVUFBVVAsV0FBV0o7SUFFM0IsTUFBTSxDQUFDWSxnQkFBZ0JDLGtCQUFrQixHQUFHbEIsK0NBQVFBLENBQUM7SUFDckRELGdEQUFTQTtnQ0FBQztZQUNSLE1BQU1vQjtpREFBVztvQkFDZixNQUFNQyxJQUNKLE9BQU9DLGVBQWUsZUFBZSxhQUFhQSxhQUM5QyxXQUEyQ0MsT0FBTyxJQUFJLElBQ3REO29CQUNOLE1BQU1DLElBQUlDLEtBQUtDLEdBQUcsQ0FBQyxHQUFHRCxLQUFLRSxHQUFHLENBQUMsR0FBR04sSUFBSTtvQkFDdENGLGtCQUFrQks7Z0JBQ3BCOztZQUNBSjtZQUNBLElBQUksT0FBT0UsZUFBZSxlQUFlLHNCQUFzQkEsWUFBWTtnQkFDekUsTUFBTU0sSUFBSU47Z0JBQ1ZNLEVBQUVDLGdCQUFnQixDQUFDLFVBQVVULFVBQVU7b0JBQUVVLFNBQVM7Z0JBQUs7Z0JBQ3ZEOzRDQUFPLElBQU1GLEVBQUVHLG1CQUFtQixDQUFDLFVBQVVYOztZQUMvQztRQUNGOytCQUFHLEVBQUU7SUFFTCxNQUFNWSxhQUFhLEtBQUssYUFBYTs7SUFDckMsTUFBTUMsWUFBWSxJQUFJLGdCQUFnQjs7SUFDdEMsTUFBTUMsV0FBV0YsYUFBYWQsaUJBQWtCYyxDQUFBQSxhQUFhQyxTQUFRO0lBQ3JFLE1BQU1FLGNBQWNqQixpQkFBaUI7SUFFckMscUJBQ0U7a0JBRUUsNEVBQUNrQjtZQUFJQyxXQUFVO3NCQUNiLDRFQUFDakMsZ0RBQU1BLENBQUNrQyxHQUFHO2dCQUNUQyxTQUFTO29CQUFFQyxTQUFTO29CQUFHbkIsR0FBRyxDQUFDO2dCQUFHO2dCQUM5Qm9CLFNBQVM7b0JBQUVELFNBQVM7b0JBQUduQixHQUFHO2dCQUFFO2dCQUM1QnFCLFlBQVk7b0JBQ1ZDLE1BQU07b0JBQ05DLFdBQVc7b0JBQ1hDLFNBQVM7b0JBQ1RDLE1BQU07Z0JBQ1I7Z0JBQ0FDLE9BQU87b0JBQ0xiLFVBQVUsR0FBR1QsS0FBS3VCLEtBQUssQ0FBQ2QsVUFBVSxFQUFFLENBQUM7b0JBQ3JDUSxZQUFZO2dCQUNkO2dCQUNBTCxXQUFXLENBQUMsb0pBQW9KLEVBQzlKRixjQUNJLDZGQUNBLHdFQUNKOzBCQUVGLDRFQUFDQztvQkFBSUMsV0FBVTs7c0NBRWIsOERBQUN2QyxrREFBSUE7NEJBQ0hlLE1BQUs7NEJBQ0x3QixXQUFVO3NDQUNYOzs7Ozs7c0NBS0QsOERBQUNEOzRCQUFJQyxXQUFVOzs7Ozs7c0NBR2YsOERBQUNEOzRCQUFJQyxXQUFVO3NDQUNadEIsU0FBU2tDLEdBQUcsQ0FBQyxDQUFDQztnQ0FDYixNQUFNQyxXQUFXbEMsWUFBWWlDLEtBQUtyQyxJQUFJO2dDQUN0QyxxQkFDRSw4REFBQ3VCO29DQUVDQyxXQUFVO29DQUNWZSxjQUFjLElBQU16QyxXQUFXdUMsS0FBS3JDLElBQUk7b0NBQ3hDd0MsY0FBYyxJQUFNMUMsV0FBVzs7c0RBRS9CLDhEQUFDYixrREFBSUE7NENBQ0hlLE1BQU1xQyxLQUFLckMsSUFBSTs0Q0FDZndCLFdBQVc7Z0RBQ1Q7Z0RBQ0EvQixhQUFhNEMsS0FBS3JDLElBQUksR0FDbEIsZUFDQTs2Q0FDTCxDQUFDeUMsSUFBSSxDQUFDO3NEQUVOSixLQUFLcEMsS0FBSyxDQUFDeUMsV0FBVzs7Ozs7O3dDQUV4QkosMEJBQ0MsOERBQUMvQyxnREFBTUEsQ0FBQ2dDLEdBQUc7NENBQ1RvQixVQUFTOzRDQUNUbkIsV0FBVTs0Q0FDVkssWUFBWTtnREFDVkMsTUFBTTtnREFDTkMsV0FBVztnREFDWEMsU0FBUzs0Q0FDWDs7Ozs7OzttQ0F4QkNLLEtBQUtyQyxJQUFJOzs7Ozs0QkE2QnBCOzs7Ozs7c0NBSUYsOERBQUN1Qjs0QkFBSUMsV0FBVTtzQ0FDWjVCLFdBQVcsZ0NBQ1Y7O2tEQUNFLDhEQUFDZ0Q7d0NBQUtwQixXQUFVO2tEQUNiN0IsU0FBU2tELE1BQU1DOzs7Ozs7a0RBRWxCLDhEQUFDeEQscURBQVlBOzs7Ozs7K0NBRWI7Ozs7OztzQ0FJTiw4REFBQ2lDOzRCQUFJQyxXQUFVO3NDQUNiLDRFQUFDRDtnQ0FBSUMsV0FBVTswQ0FDYiw0RUFBQ0Q7b0NBQUlDLFdBQVU7OENBQ1p0QixTQUFTa0MsR0FBRyxDQUFDLENBQUNDO3dDQUNiLE1BQU1DLFdBQVc3QyxhQUFhNEMsS0FBS3JDLElBQUk7d0NBQ3ZDLHFCQUNFLDhEQUFDZixrREFBSUE7NENBRUhlLE1BQU1xQyxLQUFLckMsSUFBSTs0Q0FDZndCLFdBQVc7Z0RBQ1Q7Z0RBQ0FjLFdBQ0ksMkJBQ0E7NkNBQ0wsQ0FBQ0csSUFBSSxDQUFDO3NEQUVOSixLQUFLcEMsS0FBSzsyQ0FUTm9DLEtBQUtyQyxJQUFJOzs7OztvQ0FZcEI7Ozs7Ozs7Ozs7Ozs7Ozs7d0JBS0xKLFdBQVcsaUNBQ1YsOERBQUMyQjs0QkFBSUMsV0FBVTtzQ0FDYiw0RUFBQ2xDLHFEQUFZQTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBUTdCO0FBRU8sU0FBU3lEO0lBQ2QsTUFBTXRELFdBQVdQLDREQUFXQTtJQUU1QixNQUFNZ0IsV0FBVztRQUNmO1lBQUVGLE1BQU07WUFBVUMsT0FBTztRQUFZO1FBQ3JDO1lBQUVELE1BQU07WUFBbUJDLE9BQU87UUFBVztRQUM3QztZQUFFRCxNQUFNO1lBQWVDLE9BQU87UUFBTztRQUNyQztZQUFFRCxNQUFNO1lBQWVDLE9BQU87UUFBTztRQUNyQztZQUFFRCxNQUFNO1lBQWNDLE9BQU87UUFBTztRQUNwQztZQUFFRCxNQUFNO1lBQWdCQyxPQUFPO1FBQVE7UUFDdkM7WUFBRUQsTUFBTTtZQUFpQkMsT0FBTztRQUFjO0tBQy9DO0lBRUQscUJBQ0UsOERBQUMrQztRQUFNeEIsV0FBVTtrQkFDZiw0RUFBQ0Q7WUFBSUMsV0FBVTs7OEJBQ2IsOERBQUNEO29CQUFJQyxXQUFVOzhCQUNiLDRFQUFDRDs7MENBQ0MsOERBQUMwQjtnQ0FBR3pCLFdBQVU7MENBQW1EOzs7Ozs7MENBR2pFLDhEQUFDYjtnQ0FBRWEsV0FBVTswQ0FBMEI7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQUczQyw4REFBQ0M7b0JBQUlELFdBQVU7OEJBQ2IsNEVBQUMwQjt3QkFBRzFCLFdBQVU7a0NBQ1h0QixTQUFTa0MsR0FBRyxDQUFDLENBQUNDOzRCQUNiLE1BQU1jLFNBQVMxRCxhQUFhNEMsS0FBS3JDLElBQUk7NEJBQ3JDLHFCQUNFLDhEQUFDb0Q7MENBQ0MsNEVBQUNuRSxrREFBSUE7b0NBQ0hlLE1BQU1xQyxLQUFLckMsSUFBSTtvQ0FDZndCLFdBQVcsQ0FBQyxrREFBa0QsRUFDNUQyQixTQUNJLDhCQUNBLHlEQUNKOzhDQUVEZCxLQUFLcEMsS0FBSzs7Ozs7OytCQVROb0MsS0FBS3JDLElBQUk7Ozs7O3dCQWF0Qjs7Ozs7Ozs7Ozs7OEJBR0osOERBQUN1QjtvQkFBSUMsV0FBVTs4QkFDYiw0RUFBQ3ZDLGtEQUFJQTt3QkFDSGUsTUFBSzt3QkFDTHdCLFdBQVU7d0JBQ1Y2QixPQUFNO2tDQUNQOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBT1g7QUFFTyxTQUFTQyxZQUFZLEVBQzFCQyxLQUFLLEVBR047SUFDQyxxQkFDRSw4REFBQzlCO1FBQUlELFdBQVU7a0JBQ1orQixNQUFNbkIsR0FBRyxDQUFDLENBQUNDLE1BQU1tQixzQkFDaEIsOERBQUNqQztnQkFBZ0JDLFdBQVU7O29CQUN4QmdDLFFBQVEsbUJBQUssOERBQUNaO3dCQUFLcEIsV0FBVTtrQ0FBTzs7Ozs7O29CQUNwQ2EsS0FBS3JDLElBQUksaUJBQ1IsOERBQUNmLGtEQUFJQTt3QkFBQ2UsTUFBTXFDLEtBQUtyQyxJQUFJO3dCQUFFd0IsV0FBVTtrQ0FDOUJhLEtBQUtwQyxLQUFLOzs7Ozs2Q0FHYiw4REFBQzJDO3dCQUFLcEIsV0FBVTtrQ0FBcUJhLEtBQUtwQyxLQUFLOzs7Ozs7O2VBUHpDdUQ7Ozs7Ozs7Ozs7QUFhbEIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL05hdmlnYXRpb24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgTGluayBmcm9tICduZXh0L2xpbmsnXG5pbXBvcnQgeyB1c2VQYXRobmFtZSB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCB7IHVzZUVmZmVjdCwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IHVzZVNlc3Npb24gfSBmcm9tICduZXh0LWF1dGgvcmVhY3QnXG5pbXBvcnQgTG9nb3V0RGlhbG9nIGZyb20gJy4vTG9nb3V0RGlhbG9nJ1xuaW1wb3J0IHsgbW90aW9uIH0gZnJvbSAnbW90aW9uL3JlYWN0J1xuXG5leHBvcnQgZnVuY3Rpb24gTmF2aWdhdGlvbigpIHtcbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VQYXRobmFtZSgpXG4gIGNvbnN0IHsgZGF0YTogc2Vzc2lvbiwgc3RhdHVzIH0gPSB1c2VTZXNzaW9uKClcbiAgY29uc3QgW2hvdmVyZWQsIHNldEhvdmVyZWRdID0gdXNlU3RhdGU8c3RyaW5nIHwgbnVsbD4obnVsbClcblxuICBjb25zdCBiYXNlTmF2ID0gW1xuICAgIHsgaHJlZjogJy8nLCBsYWJlbDogJ0hvbWUnIH0sXG4gICAgeyBocmVmOiAnL3Byb2plY3RzJywgbGFiZWw6ICdQcm9qZWN0cycgfSxcbiAgICB7IGhyZWY6ICcvY3JldycsIGxhYmVsOiAnQ3JldycgfSxcbiAgICB7IGhyZWY6ICcvYmxvZycsIGxhYmVsOiAnQmxvZycgfSxcbiAgICB7IGhyZWY6ICcvZmFxJywgbGFiZWw6ICdGQVEnIH0sXG4gICAgeyBocmVmOiAnL2NvbnRhY3QnLCBsYWJlbDogJ0NvbnRhY3QnIH0sXG4gIF1cblxuICBjb25zdCBuYXZJdGVtcyA9XG4gICAgc3RhdHVzID09PSAnYXV0aGVudGljYXRlZCdcbiAgICAgID8gWy4uLmJhc2VOYXYsIHsgaHJlZjogJy9hZG1pbicsIGxhYmVsOiAnQWRtaW4nIH1dXG4gICAgICA6IGJhc2VOYXZcblxuICAvLyBIaWRlIHNpdGUgbmF2aWdhdGlvbiBvbiBhZG1pbiByb3V0ZXMgdG8gYXZvaWQgb3ZlcmxhcCB3aXRoIEFkbWluU2lkZWJhclxuICBpZiAocGF0aG5hbWU/LnN0YXJ0c1dpdGgoJy9hZG1pbicpKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIGNvbnN0IGN1cnJlbnQgPSBob3ZlcmVkID8/IHBhdGhuYW1lXG5cbiAgY29uc3QgW3Njcm9sbFByb2dyZXNzLCBzZXRTY3JvbGxQcm9ncmVzc10gPSB1c2VTdGF0ZSgwKVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IG9uU2Nyb2xsID0gKCkgPT4ge1xuICAgICAgY29uc3QgeSA9XG4gICAgICAgIHR5cGVvZiBnbG9iYWxUaGlzICE9PSAndW5kZWZpbmVkJyAmJiAnc2Nyb2xsWScgaW4gZ2xvYmFsVGhpc1xuICAgICAgICAgID8gKGdsb2JhbFRoaXMgYXMgV2luZG93ICYgdHlwZW9mIGdsb2JhbFRoaXMpLnNjcm9sbFkgfHwgMFxuICAgICAgICAgIDogMFxuICAgICAgY29uc3QgcCA9IE1hdGgubWluKDEsIE1hdGgubWF4KDAsIHkgLyAyMDApKVxuICAgICAgc2V0U2Nyb2xsUHJvZ3Jlc3MocClcbiAgICB9XG4gICAgb25TY3JvbGwoKVxuICAgIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCcgJiYgJ2FkZEV2ZW50TGlzdGVuZXInIGluIGdsb2JhbFRoaXMpIHtcbiAgICAgIGNvbnN0IGcgPSBnbG9iYWxUaGlzIGFzIFdpbmRvdyAmIHR5cGVvZiBnbG9iYWxUaGlzXG4gICAgICBnLmFkZEV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsLCB7IHBhc3NpdmU6IHRydWUgfSlcbiAgICAgIHJldHVybiAoKSA9PiBnLnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3Njcm9sbCcsIG9uU2Nyb2xsKVxuICAgIH1cbiAgfSwgW10pXG5cbiAgY29uc3QgTUFYX1dfQkFTRSA9IDExMjAgLy8gcHggfiA3MHJlbVxuICBjb25zdCBNQVhfV19NSU4gPSA4NjAgLy8gcHggfiA1My43NXJlbVxuICBjb25zdCBtYXhXaWR0aCA9IE1BWF9XX0JBU0UgLSBzY3JvbGxQcm9ncmVzcyAqIChNQVhfV19CQVNFIC0gTUFYX1dfTUlOKVxuICBjb25zdCBnbGFzc0FjdGl2ZSA9IHNjcm9sbFByb2dyZXNzID4gMC4wMVxuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHsvKiBGbG9hdGluZyBwaWxsIG5hdiAqL31cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicG9pbnRlci1ldmVudHMtbm9uZSBmaXhlZCB0b3AtMiBsZWZ0LTEvMiB6LTUwIC10cmFuc2xhdGUteC0xLzIgdy1mdWxsIHB4LTRcIj5cbiAgICAgICAgPG1vdGlvbi5uYXZcbiAgICAgICAgICBpbml0aWFsPXt7IG9wYWNpdHk6IDAsIHk6IC0xNiB9fVxuICAgICAgICAgIGFuaW1hdGU9e3sgb3BhY2l0eTogMSwgeTogMCB9fVxuICAgICAgICAgIHRyYW5zaXRpb249e3tcbiAgICAgICAgICAgIHR5cGU6ICdzcHJpbmcnLFxuICAgICAgICAgICAgc3RpZmZuZXNzOiAxMjAsXG4gICAgICAgICAgICBkYW1waW5nOiAxNixcbiAgICAgICAgICAgIG1hc3M6IDAuNixcbiAgICAgICAgICB9fVxuICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICBtYXhXaWR0aDogYCR7TWF0aC5yb3VuZChtYXhXaWR0aCl9cHhgLFxuICAgICAgICAgICAgdHJhbnNpdGlvbjogJ21heC13aWR0aCAyMDBtcyBlYXNlJyxcbiAgICAgICAgICB9fVxuICAgICAgICAgIGNsYXNzTmFtZT17YHBvaW50ZXItZXZlbnRzLWF1dG8gbXgtYXV0byBtYXgtdy02eGwgcm91bmRlZC1mdWxsIG9yaWdpbi1jZW50ZXIgdHJhbnNpdGlvbi1bYmFja2dyb3VuZC1jb2xvcixiYWNrZHJvcC1maWx0ZXIsYm94LXNoYWRvdyxib3JkZXItY29sb3JdIGR1cmF0aW9uLTIwMCAke1xuICAgICAgICAgICAgZ2xhc3NBY3RpdmVcbiAgICAgICAgICAgICAgPyAnYm9yZGVyIGJvcmRlci13aGl0ZS8xMCBiZy1ibGFjay8yMCBiYWNrZHJvcC1ibHVyLXhsIHNoYWRvdy1bMF84cHhfNDBweF9yZ2JhKDAsMCwwLDAuMzUpXSdcbiAgICAgICAgICAgICAgOiAnYm9yZGVyIGJvcmRlci10cmFuc3BhcmVudCBiZy10cmFuc3BhcmVudCBiYWNrZHJvcC1ibHVyLTAgc2hhZG93LW5vbmUnXG4gICAgICAgICAgfWB9XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHB4LTMgcHktMS41XCI+XG4gICAgICAgICAgICB7LyogQnJhbmQgKi99XG4gICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICBocmVmPVwiL1wiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtWzEzcHhdIG1kOnRleHQtc20gZm9udC1icmFuZCB0cmFja2luZy10aWdodCB0ZXh0LXdoaXRlIHdoaXRlc3BhY2Utbm93cmFwIGxlYWRpbmctbm9uZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIEJpb2hhemFyZCBWRlhcbiAgICAgICAgICAgIDwvTGluaz5cblxuICAgICAgICAgICAgey8qIERpdmlkZXIgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImhpZGRlbiBtZDpibG9jayBoLTUgdy1weCBiZy13aGl0ZS8xMFwiIC8+XG5cbiAgICAgICAgICAgIHsvKiBEZXNrdG9wIGl0ZW1zICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJoaWRkZW4gbWQ6ZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTEgbXgtYXV0b1wiPlxuICAgICAgICAgICAgICB7bmF2SXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBjdXJyZW50ID09PSBpdGVtLmhyZWZcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBrZXk9e2l0ZW0uaHJlZn1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwicmVsYXRpdmUgcHgtMyBweS0xXCJcbiAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBzZXRIb3ZlcmVkKGl0ZW0uaHJlZil9XG4gICAgICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4gc2V0SG92ZXJlZChudWxsKX1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgICAgICBocmVmPXtpdGVtLmhyZWZ9XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtbXG4gICAgICAgICAgICAgICAgICAgICAgICAndGV4dC1zbSBsZWFkaW5nLW5vbmUgdHJhY2tpbmctd2lkZSB0cmFuc2l0aW9uLWNvbG9ycycsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRobmFtZSA9PT0gaXRlbS5ocmVmXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RleHQtd2hpdGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RleHQtbmV1dHJhbC0zMDAgaG92ZXI6dGV4dC13aGl0ZScsXG4gICAgICAgICAgICAgICAgICAgICAgXS5qb2luKCcgJyl9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7aXRlbS5sYWJlbC50b1VwcGVyQ2FzZSgpfVxuICAgICAgICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICAgICAgICAgIHtpc0FjdGl2ZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPG1vdGlvbi5kaXZcbiAgICAgICAgICAgICAgICAgICAgICAgIGxheW91dElkPVwibmF2LXVuZGVybGluZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBsZWZ0LTIgcmlnaHQtMiAtYm90dG9tLTEgaC0wLjUgYmctd2hpdGUvODBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNpdGlvbj17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnc3ByaW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3RpZmZuZXNzOiAzMDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhbXBpbmc6IDMwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogUmlnaHQgY29udHJvbHMgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1sLWF1dG8gaGlkZGVuIG1kOmZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgICAgICAgIHtzdGF0dXMgPT09ICdhdXRoZW50aWNhdGVkJyA/IChcbiAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXRleHQtbXV0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAge3Nlc3Npb24/LnVzZXI/LmVtYWlsfVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPExvZ291dERpYWxvZyAvPlxuICAgICAgICAgICAgICAgIDwvPlxuICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogTW9iaWxlIGl0ZW1zIGluc2lkZSBwaWxsICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtZDpoaWRkZW4gZmxleC0xXCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwib3ZlcmZsb3cteC1hdXRvIG5vLXNjcm9sbGJhclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTFcIj5cbiAgICAgICAgICAgICAgICAgIHtuYXZJdGVtcy5tYXAoKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBwYXRobmFtZSA9PT0gaXRlbS5ocmVmXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aXRlbS5ocmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17aXRlbS5ocmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICdweC0zIHB5LTIgcm91bmRlZC1mdWxsIHRleHQteHMgdHJhbnNpdGlvbi1jb2xvcnMnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpc0FjdGl2ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ2JnLXdoaXRlLzE1IHRleHQtd2hpdGUnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiAndGV4dC1uZXV0cmFsLTMwMCBob3Zlcjp0ZXh0LXdoaXRlIGhvdmVyOmJnLXdoaXRlLzEwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIF0uam9pbignICcpfVxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLmxhYmVsfVxuICAgICAgICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHtzdGF0dXMgPT09ICdhdXRoZW50aWNhdGVkJyAmJiAoXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWQ6aGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgPExvZ291dERpYWxvZyAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvbW90aW9uLm5hdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvPlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBBZG1pblNpZGViYXIoKSB7XG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlUGF0aG5hbWUoKVxuXG4gIGNvbnN0IG5hdkl0ZW1zID0gW1xuICAgIHsgaHJlZjogJy9hZG1pbicsIGxhYmVsOiAnRGFzaGJvYXJkJyB9LFxuICAgIHsgaHJlZjogJy9hZG1pbi9wcm9qZWN0cycsIGxhYmVsOiAnUHJvamVjdHMnIH0sXG4gICAgeyBocmVmOiAnL2FkbWluL2Jsb2cnLCBsYWJlbDogJ0Jsb2cnIH0sXG4gICAgeyBocmVmOiAnL2FkbWluL3RlYW0nLCBsYWJlbDogJ1RlYW0nIH0sXG4gICAgeyBocmVmOiAnL2FkbWluL2ZhcScsIGxhYmVsOiAnRkFRcycgfSxcbiAgICB7IGhyZWY6ICcvYWRtaW4vbWVkaWEnLCBsYWJlbDogJ01lZGlhJyB9LFxuICAgIHsgaHJlZjogJy9hZG1pbi9hc3NldHMnLCBsYWJlbDogJ1NpdGUgQXNzZXRzJyB9LFxuICBdXG5cbiAgcmV0dXJuIChcbiAgICA8YXNpZGUgY2xhc3NOYW1lPVwidy02MCBoLXNjcmVlbiBmaXhlZCBsZWZ0LTAgdG9wLTAgei00MFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJoLWZ1bGwgYmctc3VyZmFjZS05MDAvOTAgYm9yZGVyLXIgYm9yZGVyLXN1cmZhY2UtNTAwLzcwIGZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwLTUgYm9yZGVyLWIgYm9yZGVyLXN1cmZhY2UtNTAwLzYwXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LWJhc2UgZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIGxlYWRpbmctdGlnaHRcIj5cbiAgICAgICAgICAgICAgQWRtaW4gRGFzaGJvYXJkXG4gICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXRleHQtbXV0ZWRcIj5CaW9oYXphcmQgVkZYPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPG5hdiBjbGFzc05hbWU9XCJwLTNcIj5cbiAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic3BhY2UteS0xXCI+XG4gICAgICAgICAgICB7bmF2SXRlbXMubWFwKChpdGVtKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IHBhdGhuYW1lID09PSBpdGVtLmhyZWZcbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8bGkga2V5PXtpdGVtLmhyZWZ9PlxuICAgICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgICAgaHJlZj17aXRlbS5ocmVmfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BibG9jayBweC0zIHB5LTIgcm91bmRlZCB0ZXh0LXNtIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgICAgICAgICAgYWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgICA/ICdiZy1zdXJmYWNlLTcwMCB0ZXh0LXdoaXRlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgOiAndGV4dC10ZXh0LW11dGVkIGhvdmVyOmJnLXN1cmZhY2UtNzAwIGhvdmVyOnRleHQtd2hpdGUnXG4gICAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7aXRlbS5sYWJlbH1cbiAgICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9KX1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L25hdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC1hdXRvIHAtMyBib3JkZXItdCBib3JkZXItc3VyZmFjZS01MDAvNjBcIj5cbiAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgaHJlZj1cIi9cIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwiYnRuLXNlY29uZGFyeSB3LWZ1bGwgaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yIHRleHQtc21cIlxuICAgICAgICAgICAgdGl0bGU9XCJSZXR1cm4gdG8gc2l0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAg4oaQIEJhY2sgdG8gc2l0ZVxuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2FzaWRlPlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBCcmVhZGNydW1icyh7XG4gIGl0ZW1zLFxufToge1xuICBpdGVtczogeyBsYWJlbDogc3RyaW5nOyBocmVmPzogc3RyaW5nIH1bXVxufSkge1xuICByZXR1cm4gKFxuICAgIDxuYXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgc3BhY2UteC0yIHRleHQtc20gdGV4dC10ZXh0LW11dGVkIG1iLTRcIj5cbiAgICAgIHtpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiAoXG4gICAgICAgIDxkaXYga2V5PXtpbmRleH0gY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICB7aW5kZXggPiAwICYmIDxzcGFuIGNsYXNzTmFtZT1cIm14LTJcIj4vPC9zcGFuPn1cbiAgICAgICAgICB7aXRlbS5ocmVmID8gKFxuICAgICAgICAgICAgPExpbmsgaHJlZj17aXRlbS5ocmVmfSBjbGFzc05hbWU9XCJsaW5rLW11dGVkXCI+XG4gICAgICAgICAgICAgIHtpdGVtLmxhYmVsfVxuICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXRleHQtcHJpbWFyeVwiPntpdGVtLmxhYmVsfTwvc3Bhbj5cbiAgICAgICAgICApfVxuICAgICAgICA8L2Rpdj5cbiAgICAgICkpfVxuICAgIDwvbmF2PlxuICApXG59XG4iXSwibmFtZXMiOlsiTGluayIsInVzZVBhdGhuYW1lIiwidXNlRWZmZWN0IiwidXNlU3RhdGUiLCJ1c2VTZXNzaW9uIiwiTG9nb3V0RGlhbG9nIiwibW90aW9uIiwiTmF2aWdhdGlvbiIsInBhdGhuYW1lIiwiZGF0YSIsInNlc3Npb24iLCJzdGF0dXMiLCJob3ZlcmVkIiwic2V0SG92ZXJlZCIsImJhc2VOYXYiLCJocmVmIiwibGFiZWwiLCJuYXZJdGVtcyIsInN0YXJ0c1dpdGgiLCJjdXJyZW50Iiwic2Nyb2xsUHJvZ3Jlc3MiLCJzZXRTY3JvbGxQcm9ncmVzcyIsIm9uU2Nyb2xsIiwieSIsImdsb2JhbFRoaXMiLCJzY3JvbGxZIiwicCIsIk1hdGgiLCJtaW4iLCJtYXgiLCJnIiwiYWRkRXZlbnRMaXN0ZW5lciIsInBhc3NpdmUiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwiTUFYX1dfQkFTRSIsIk1BWF9XX01JTiIsIm1heFdpZHRoIiwiZ2xhc3NBY3RpdmUiLCJkaXYiLCJjbGFzc05hbWUiLCJuYXYiLCJpbml0aWFsIiwib3BhY2l0eSIsImFuaW1hdGUiLCJ0cmFuc2l0aW9uIiwidHlwZSIsInN0aWZmbmVzcyIsImRhbXBpbmciLCJtYXNzIiwic3R5bGUiLCJyb3VuZCIsIm1hcCIsIml0ZW0iLCJpc0FjdGl2ZSIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsImpvaW4iLCJ0b1VwcGVyQ2FzZSIsImxheW91dElkIiwic3BhbiIsInVzZXIiLCJlbWFpbCIsIkFkbWluU2lkZWJhciIsImFzaWRlIiwiaDIiLCJ1bCIsImFjdGl2ZSIsImxpIiwidGl0bGUiLCJCcmVhZGNydW1icyIsIml0ZW1zIiwiaW5kZXgiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/Navigation.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/Providers.tsx":
+/*!**************************************!*\
+ !*** ./src/components/Providers.tsx ***!
+ \**************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ Providers)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next-auth/react */ \"(ssr)/./node_modules/next-auth/react/index.js\");\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(next_auth_react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var next_themes__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next-themes */ \"(ssr)/./node_modules/next-themes/dist/index.mjs\");\n/* harmony import */ var _components_ui_toaster__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/ui/toaster */ \"(ssr)/./src/components/ui/toaster.tsx\");\n/* harmony import */ var _LoadingProvider__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ./LoadingProvider */ \"(ssr)/./src/components/LoadingProvider.tsx\");\n/* harmony import */ var framer_motion__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/components/MotionConfig/index.mjs\");\n/* harmony import */ var _ScrollEnhancements__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./ScrollEnhancements */ \"(ssr)/./src/components/ScrollEnhancements.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\n\nfunction Providers({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_auth_react__WEBPACK_IMPORTED_MODULE_1__.SessionProvider, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_themes__WEBPACK_IMPORTED_MODULE_2__.ThemeProvider, {\n attribute: \"class\",\n defaultTheme: \"dark\",\n enableSystem: false,\n disableTransitionOnChange: true,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_6__.MotionConfig, {\n reducedMotion: \"user\",\n transition: {\n duration: 0.6,\n ease: [\n 0.2,\n 0.8,\n 0.2,\n 1\n ]\n },\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_LoadingProvider__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n children: [\n children,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_toaster__WEBPACK_IMPORTED_MODULE_3__.Toaster, {}, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Providers.tsx\",\n lineNumber: 23,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_ScrollEnhancements__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Providers.tsx\",\n lineNumber: 24,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Providers.tsx\",\n lineNumber: 21,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Providers.tsx\",\n lineNumber: 20,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Providers.tsx\",\n lineNumber: 14,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Providers.tsx\",\n lineNumber: 13,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9Qcm92aWRlcnMudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7O0FBR2lEO0FBQ047QUFDTTtBQUNGO0FBQ0g7QUFDUztBQUV0QyxTQUFTTSxVQUFVLEVBQUVDLFFBQVEsRUFBMkI7SUFDckUscUJBQ0UsOERBQUNQLDREQUFlQTtrQkFDZCw0RUFBQ0Msc0RBQWFBO1lBQ1pPLFdBQVU7WUFDVkMsY0FBYTtZQUNiQyxjQUFjO1lBQ2RDLHlCQUF5QjtzQkFFekIsNEVBQUNQLHVEQUFZQTtnQkFBQ1EsZUFBYztnQkFBT0MsWUFBWTtvQkFBRUMsVUFBVTtvQkFBS0MsTUFBTTt3QkFBQzt3QkFBSzt3QkFBSzt3QkFBSztxQkFBRTtnQkFBQzswQkFDdkYsNEVBQUNaLHdEQUFlQTs7d0JBQ2JJO3NDQUNELDhEQUFDTCwyREFBT0E7Ozs7O3NDQUNSLDhEQUFDRywyREFBa0JBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU0vQiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2NvbXBvbmVudHMvUHJvdmlkZXJzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFNlc3Npb25Qcm92aWRlciB9IGZyb20gJ25leHQtYXV0aC9yZWFjdCdcbmltcG9ydCB7IFRoZW1lUHJvdmlkZXIgfSBmcm9tICduZXh0LXRoZW1lcydcbmltcG9ydCB7IFRvYXN0ZXIgfSBmcm9tICdAL2NvbXBvbmVudHMvdWkvdG9hc3RlcidcbmltcG9ydCBMb2FkaW5nUHJvdmlkZXIgZnJvbSAnLi9Mb2FkaW5nUHJvdmlkZXInXG5pbXBvcnQgeyBNb3Rpb25Db25maWcgfSBmcm9tICdmcmFtZXItbW90aW9uJ1xuaW1wb3J0IFNjcm9sbEVuaGFuY2VtZW50cyBmcm9tICcuL1Njcm9sbEVuaGFuY2VtZW50cydcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUHJvdmlkZXJzKHsgY2hpbGRyZW4gfTogeyBjaGlsZHJlbjogUmVhY3ROb2RlIH0pIHtcbiAgcmV0dXJuIChcbiAgICA8U2Vzc2lvblByb3ZpZGVyPlxuICAgICAgPFRoZW1lUHJvdmlkZXJcbiAgICAgICAgYXR0cmlidXRlPVwiY2xhc3NcIlxuICAgICAgICBkZWZhdWx0VGhlbWU9XCJkYXJrXCJcbiAgICAgICAgZW5hYmxlU3lzdGVtPXtmYWxzZX1cbiAgICAgICAgZGlzYWJsZVRyYW5zaXRpb25PbkNoYW5nZVxuICAgICAgPlxuICAgICAgICA8TW90aW9uQ29uZmlnIHJlZHVjZWRNb3Rpb249XCJ1c2VyXCIgdHJhbnNpdGlvbj17eyBkdXJhdGlvbjogMC42LCBlYXNlOiBbMC4yLCAwLjgsIDAuMiwgMV0gfX0+XG4gICAgICAgICAgPExvYWRpbmdQcm92aWRlcj5cbiAgICAgICAgICAgIHtjaGlsZHJlbn1cbiAgICAgICAgICAgIDxUb2FzdGVyIC8+XG4gICAgICAgICAgICA8U2Nyb2xsRW5oYW5jZW1lbnRzIC8+XG4gICAgICAgICAgPC9Mb2FkaW5nUHJvdmlkZXI+XG4gICAgICAgIDwvTW90aW9uQ29uZmlnPlxuICAgICAgPC9UaGVtZVByb3ZpZGVyPlxuICAgIDwvU2Vzc2lvblByb3ZpZGVyPlxuICApXG59XG4iXSwibmFtZXMiOlsiU2Vzc2lvblByb3ZpZGVyIiwiVGhlbWVQcm92aWRlciIsIlRvYXN0ZXIiLCJMb2FkaW5nUHJvdmlkZXIiLCJNb3Rpb25Db25maWciLCJTY3JvbGxFbmhhbmNlbWVudHMiLCJQcm92aWRlcnMiLCJjaGlsZHJlbiIsImF0dHJpYnV0ZSIsImRlZmF1bHRUaGVtZSIsImVuYWJsZVN5c3RlbSIsImRpc2FibGVUcmFuc2l0aW9uT25DaGFuZ2UiLCJyZWR1Y2VkTW90aW9uIiwidHJhbnNpdGlvbiIsImR1cmF0aW9uIiwiZWFzZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/Providers.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/ScrollEnhancements.tsx":
+/*!***********************************************!*\
+ !*** ./src/components/ScrollEnhancements.tsx ***!
+ \***********************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ ScrollEnhancements)\n/* harmony export */ });\n/* harmony import */ var _motion_useAutoplayVideos__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./motion/useAutoplayVideos */ \"(ssr)/./src/components/motion/useAutoplayVideos.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n/**\n * Mount-only enhancements for scroll behavior across the app.\n * - Autoplay inline videos when in view (guarded play/pause)\n * Extend here later if we add more global, scroll-related hooks.\n */ function ScrollEnhancements(_) {\n (0,_motion_useAutoplayVideos__WEBPACK_IMPORTED_MODULE_0__.useAutoplayVideos)();\n return null;\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9TY3JvbGxFbmhhbmNlbWVudHMudHN4IiwibWFwcGluZ3MiOiI7Ozs7OzZEQUc4RDtBQUU5RDs7OztDQUlDLEdBQ2MsU0FBU0MsbUJBQW1CQyxDQUEyQjtJQUNwRUYsNEVBQWlCQTtJQUNqQixPQUFPO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL1Njcm9sbEVuaGFuY2VtZW50cy50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VBdXRvcGxheVZpZGVvcyB9IGZyb20gJy4vbW90aW9uL3VzZUF1dG9wbGF5VmlkZW9zJ1xuXG4vKipcbiAqIE1vdW50LW9ubHkgZW5oYW5jZW1lbnRzIGZvciBzY3JvbGwgYmVoYXZpb3IgYWNyb3NzIHRoZSBhcHAuXG4gKiAtIEF1dG9wbGF5IGlubGluZSB2aWRlb3Mgd2hlbiBpbiB2aWV3IChndWFyZGVkIHBsYXkvcGF1c2UpXG4gKiBFeHRlbmQgaGVyZSBsYXRlciBpZiB3ZSBhZGQgbW9yZSBnbG9iYWwsIHNjcm9sbC1yZWxhdGVkIGhvb2tzLlxuICovXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBTY3JvbGxFbmhhbmNlbWVudHMoXzogeyBjaGlsZHJlbj86IFJlYWN0Tm9kZSB9KSB7XG4gIHVzZUF1dG9wbGF5VmlkZW9zKClcbiAgcmV0dXJuIG51bGxcbn1cbiJdLCJuYW1lcyI6WyJ1c2VBdXRvcGxheVZpZGVvcyIsIlNjcm9sbEVuaGFuY2VtZW50cyIsIl8iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/ScrollEnhancements.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/TrackingOptOutBanner.tsx":
+/*!*************************************************!*\
+ !*** ./src/components/TrackingOptOutBanner.tsx ***!
+ \*************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* binding */ TrackingOptOutBanner)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\nfunction TrackingOptOutBanner() {\n const [isVisible, setIsVisible] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [hasOptedOut, setHasOptedOut] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"TrackingOptOutBanner.useEffect\": ()=>{\n // Check if user has already opted out\n const storedOptOut = localStorage.getItem('tracking-opted-out');\n if (storedOptOut === 'true') {\n setHasOptedOut(true);\n return;\n }\n // Show banner after a short delay to avoid immediate distraction\n const timer = setTimeout({\n \"TrackingOptOutBanner.useEffect.timer\": ()=>{\n setIsVisible(true);\n }\n }[\"TrackingOptOutBanner.useEffect.timer\"], 1000);\n return ({\n \"TrackingOptOutBanner.useEffect\": ()=>clearTimeout(timer)\n })[\"TrackingOptOutBanner.useEffect\"];\n }\n }[\"TrackingOptOutBanner.useEffect\"], []);\n const handleOptOut = ()=>{\n localStorage.setItem('tracking-opted-out', 'true');\n setHasOptedOut(true);\n setIsVisible(false);\n };\n const handleAllow = ()=>{\n localStorage.setItem('tracking-opted-out', 'false');\n setHasOptedOut(false);\n setIsVisible(false);\n };\n // Don't render if user has already opted out\n if (hasOptedOut || !isVisible) {\n return null;\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed bottom-0 left-0 right-0 z-50 bg-surface-900 border-t border-surface-700 p-4 shadow-lg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-7xl mx-auto flex flex-col sm:flex-row items-center justify-between gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-text-primary text-sm\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-semibold\",\n children: \"Privacy Notice:\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/TrackingOptOutBanner.tsx\",\n lineNumber: 47,\n columnNumber: 13\n }, this),\n \" We use cookies and tracking technologies to improve your experience. You can opt out of tracking at any time.\"\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/TrackingOptOutBanner.tsx\",\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/TrackingOptOutBanner.tsx\",\n lineNumber: 45,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleAllow,\n className: \"px-4 py-2 text-sm bg-surface-700 hover:bg-surface-600 text-text-primary rounded-md transition-colors duration-200\",\n children: \"Allow Tracking\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/TrackingOptOutBanner.tsx\",\n lineNumber: 52,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: handleOptOut,\n className: \"px-4 py-2 text-sm bg-accent hover:bg-accent-hover text-white rounded-md transition-colors duration-200\",\n children: \"Opt Out\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/TrackingOptOutBanner.tsx\",\n lineNumber: 58,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/TrackingOptOutBanner.tsx\",\n lineNumber: 51,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/TrackingOptOutBanner.tsx\",\n lineNumber: 44,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/TrackingOptOutBanner.tsx\",\n lineNumber: 43,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9UcmFja2luZ09wdE91dEJhbm5lci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRTJDO0FBRTVCLFNBQVNFO0lBQ3RCLE1BQU0sQ0FBQ0MsV0FBV0MsYUFBYSxHQUFHSiwrQ0FBUUEsQ0FBQztJQUMzQyxNQUFNLENBQUNLLGFBQWFDLGVBQWUsR0FBR04sK0NBQVFBLENBQUM7SUFFL0NDLGdEQUFTQTswQ0FBQztZQUNSLHNDQUFzQztZQUN0QyxNQUFNTSxlQUFlQyxhQUFhQyxPQUFPLENBQUM7WUFDMUMsSUFBSUYsaUJBQWlCLFFBQVE7Z0JBQzNCRCxlQUFlO2dCQUNmO1lBQ0Y7WUFFQSxpRUFBaUU7WUFDakUsTUFBTUksUUFBUUM7d0RBQVc7b0JBQ3ZCUCxhQUFhO2dCQUNmO3VEQUFHO1lBRUg7a0RBQU8sSUFBTVEsYUFBYUY7O1FBQzVCO3lDQUFHLEVBQUU7SUFFTCxNQUFNRyxlQUFlO1FBQ25CTCxhQUFhTSxPQUFPLENBQUMsc0JBQXNCO1FBQzNDUixlQUFlO1FBQ2ZGLGFBQWE7SUFDZjtJQUVBLE1BQU1XLGNBQWM7UUFDbEJQLGFBQWFNLE9BQU8sQ0FBQyxzQkFBc0I7UUFDM0NSLGVBQWU7UUFDZkYsYUFBYTtJQUNmO0lBRUEsNkNBQTZDO0lBQzdDLElBQUlDLGVBQWUsQ0FBQ0YsV0FBVztRQUM3QixPQUFPO0lBQ1Q7SUFFQSxxQkFDRSw4REFBQ2E7UUFBSUMsV0FBVTtrQkFDYiw0RUFBQ0Q7WUFBSUMsV0FBVTs7OEJBQ2IsOERBQUNEO29CQUFJQyxXQUFVOzhCQUNiLDRFQUFDQzt3QkFBRUQsV0FBVTs7MENBQ1gsOERBQUNFO2dDQUFLRixXQUFVOzBDQUFnQjs7Ozs7OzRCQUFzQjs7Ozs7Ozs7Ozs7OzhCQUkxRCw4REFBQ0Q7b0JBQUlDLFdBQVU7O3NDQUNiLDhEQUFDRzs0QkFDQ0MsU0FBU047NEJBQ1RFLFdBQVU7c0NBQ1g7Ozs7OztzQ0FHRCw4REFBQ0c7NEJBQ0NDLFNBQVNSOzRCQUNUSSxXQUFVO3NDQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9YIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy9UcmFja2luZ09wdE91dEJhbm5lci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZVN0YXRlLCB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gVHJhY2tpbmdPcHRPdXRCYW5uZXIoKSB7XG4gIGNvbnN0IFtpc1Zpc2libGUsIHNldElzVmlzaWJsZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2hhc09wdGVkT3V0LCBzZXRIYXNPcHRlZE91dF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIENoZWNrIGlmIHVzZXIgaGFzIGFscmVhZHkgb3B0ZWQgb3V0XG4gICAgY29uc3Qgc3RvcmVkT3B0T3V0ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3RyYWNraW5nLW9wdGVkLW91dCcpXG4gICAgaWYgKHN0b3JlZE9wdE91dCA9PT0gJ3RydWUnKSB7XG4gICAgICBzZXRIYXNPcHRlZE91dCh0cnVlKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gU2hvdyBiYW5uZXIgYWZ0ZXIgYSBzaG9ydCBkZWxheSB0byBhdm9pZCBpbW1lZGlhdGUgZGlzdHJhY3Rpb25cbiAgICBjb25zdCB0aW1lciA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgc2V0SXNWaXNpYmxlKHRydWUpXG4gICAgfSwgMTAwMClcblxuICAgIHJldHVybiAoKSA9PiBjbGVhclRpbWVvdXQodGltZXIpXG4gIH0sIFtdKVxuXG4gIGNvbnN0IGhhbmRsZU9wdE91dCA9ICgpID0+IHtcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndHJhY2tpbmctb3B0ZWQtb3V0JywgJ3RydWUnKVxuICAgIHNldEhhc09wdGVkT3V0KHRydWUpXG4gICAgc2V0SXNWaXNpYmxlKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlQWxsb3cgPSAoKSA9PiB7XG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oJ3RyYWNraW5nLW9wdGVkLW91dCcsICdmYWxzZScpXG4gICAgc2V0SGFzT3B0ZWRPdXQoZmFsc2UpXG4gICAgc2V0SXNWaXNpYmxlKGZhbHNlKVxuICB9XG5cbiAgLy8gRG9uJ3QgcmVuZGVyIGlmIHVzZXIgaGFzIGFscmVhZHkgb3B0ZWQgb3V0XG4gIGlmIChoYXNPcHRlZE91dCB8fCAhaXNWaXNpYmxlKSB7XG4gICAgcmV0dXJuIG51bGxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmaXhlZCBib3R0b20tMCBsZWZ0LTAgcmlnaHQtMCB6LTUwIGJnLXN1cmZhY2UtOTAwIGJvcmRlci10IGJvcmRlci1zdXJmYWNlLTcwMCBwLTQgc2hhZG93LWxnXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTd4bCBteC1hdXRvIGZsZXggZmxleC1jb2wgc206ZmxleC1yb3cgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBnYXAtNFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMVwiPlxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtdGV4dC1wcmltYXJ5IHRleHQtc21cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtc2VtaWJvbGRcIj5Qcml2YWN5IE5vdGljZTo8L3NwYW4+IFdlIHVzZSBjb29raWVzIGFuZCB0cmFja2luZyB0ZWNobm9sb2dpZXMgdG8gaW1wcm92ZSB5b3VyIGV4cGVyaWVuY2UuIFxuICAgICAgICAgICAgWW91IGNhbiBvcHQgb3V0IG9mIHRyYWNraW5nIGF0IGFueSB0aW1lLlxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBnYXAtMlwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZUFsbG93fVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicHgtNCBweS0yIHRleHQtc20gYmctc3VyZmFjZS03MDAgaG92ZXI6Ymctc3VyZmFjZS02MDAgdGV4dC10ZXh0LXByaW1hcnkgcm91bmRlZC1tZCB0cmFuc2l0aW9uLWNvbG9ycyBkdXJhdGlvbi0yMDBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEFsbG93IFRyYWNraW5nXG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgb25DbGljaz17aGFuZGxlT3B0T3V0fVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwicHgtNCBweS0yIHRleHQtc20gYmctYWNjZW50IGhvdmVyOmJnLWFjY2VudC1ob3ZlciB0ZXh0LXdoaXRlIHJvdW5kZWQtbWQgdHJhbnNpdGlvbi1jb2xvcnMgZHVyYXRpb24tMjAwXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICBPcHQgT3V0XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIlRyYWNraW5nT3B0T3V0QmFubmVyIiwiaXNWaXNpYmxlIiwic2V0SXNWaXNpYmxlIiwiaGFzT3B0ZWRPdXQiLCJzZXRIYXNPcHRlZE91dCIsInN0b3JlZE9wdE91dCIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJ0aW1lciIsInNldFRpbWVvdXQiLCJjbGVhclRpbWVvdXQiLCJoYW5kbGVPcHRPdXQiLCJzZXRJdGVtIiwiaGFuZGxlQWxsb3ciLCJkaXYiLCJjbGFzc05hbWUiLCJwIiwic3BhbiIsImJ1dHRvbiIsIm9uQ2xpY2siXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/TrackingOptOutBanner.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/motion/useAutoplayVideos.ts":
+/*!****************************************************!*\
+ !*** ./src/components/motion/useAutoplayVideos.ts ***!
+ \****************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ useAutoplayVideos: () => (/* binding */ useAutoplayVideos)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ useAutoplayVideos auto */ \n/**\n * Autoplay muted inline videos only while in view.\n * Guards play/pause to avoid AbortError spam from rapidly toggling state.\n */ function useAutoplayVideos(selector = 'video[data-autoplay]') {\n (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)({\n \"useAutoplayVideos.useEffect\": ()=>{\n if (typeof globalThis === 'undefined' || !globalThis.document) return;\n const doc = globalThis.document;\n const videos = Array.from(doc.querySelectorAll(selector));\n const playSafe = {\n \"useAutoplayVideos.useEffect.playSafe\": (v)=>{\n if (!v.paused) return;\n v.muted = true;\n v.playsInline = true;\n const p = v.play();\n if (p && typeof p.catch === 'function') {\n p.catch({\n \"useAutoplayVideos.useEffect.playSafe\": ()=>{\n // Ignore rejections caused by UA policies or rapid toggle\n }\n }[\"useAutoplayVideos.useEffect.playSafe\"]);\n }\n }\n }[\"useAutoplayVideos.useEffect.playSafe\"];\n const pauseSafe = {\n \"useAutoplayVideos.useEffect.pauseSafe\": (v)=>{\n if (v.paused) return;\n v.pause();\n }\n }[\"useAutoplayVideos.useEffect.pauseSafe\"];\n const onIntersect = {\n \"useAutoplayVideos.useEffect.onIntersect\": (entries)=>{\n for (const e of entries){\n const v = e.target;\n const shouldPlay = e.isIntersecting && e.intersectionRatio > 0.35;\n // Coalesce toggles in the same frame to avoid churn\n globalThis.requestAnimationFrame({\n \"useAutoplayVideos.useEffect.onIntersect\": ()=>{\n if (shouldPlay) {\n playSafe(v);\n } else {\n pauseSafe(v);\n }\n }\n }[\"useAutoplayVideos.useEffect.onIntersect\"]);\n }\n }\n }[\"useAutoplayVideos.useEffect.onIntersect\"];\n const io = new IntersectionObserver(onIntersect, {\n threshold: [\n 0,\n 0.35,\n 0.75\n ]\n });\n videos.forEach({\n \"useAutoplayVideos.useEffect\": (v)=>io.observe(v)\n }[\"useAutoplayVideos.useEffect\"]);\n return ({\n \"useAutoplayVideos.useEffect\": ()=>io.disconnect()\n })[\"useAutoplayVideos.useEffect\"];\n }\n }[\"useAutoplayVideos.useEffect\"], [\n selector\n ]);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9tb3Rpb24vdXNlQXV0b3BsYXlWaWRlb3MudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7O3VFQUVpQztBQUVqQzs7O0NBR0MsR0FDTSxTQUFTQyxrQkFBa0JDLFdBQVcsc0JBQXNCO0lBQ2pFRixnREFBU0E7dUNBQUM7WUFDUixJQUFJLE9BQU9HLGVBQWUsZUFBZSxDQUFDQSxXQUFXQyxRQUFRLEVBQUU7WUFFL0QsTUFBTUMsTUFBTUYsV0FBV0MsUUFBUTtZQUMvQixNQUFNRSxTQUFTQyxNQUFNQyxJQUFJLENBQUNILElBQUlJLGdCQUFnQixDQUFtQlA7WUFFakUsTUFBTVE7d0RBQVcsQ0FBQ0M7b0JBQ2hCLElBQUksQ0FBQ0EsRUFBRUMsTUFBTSxFQUFFO29CQUNmRCxFQUFFRSxLQUFLLEdBQUc7b0JBQ1ZGLEVBQUVHLFdBQVcsR0FBRztvQkFDaEIsTUFBTUMsSUFBSUosRUFBRUssSUFBSTtvQkFDaEIsSUFBSUQsS0FBSyxPQUFPQSxFQUFFRSxLQUFLLEtBQUssWUFBWTt3QkFDdENGLEVBQUVFLEtBQUs7b0VBQUM7NEJBQ04sMERBQTBEOzRCQUM1RDs7b0JBQ0Y7Z0JBQ0Y7O1lBRUEsTUFBTUM7eURBQVksQ0FBQ1A7b0JBQ2pCLElBQUlBLEVBQUVDLE1BQU0sRUFBRTtvQkFDZEQsRUFBRVEsS0FBSztnQkFDVDs7WUFFQSxNQUFNQzsyREFBNEMsQ0FBQ0M7b0JBQ2pELEtBQUssTUFBTUMsS0FBS0QsUUFBUzt3QkFDdkIsTUFBTVYsSUFBSVcsRUFBRUMsTUFBTTt3QkFDbEIsTUFBTUMsYUFBYUYsRUFBRUcsY0FBYyxJQUFJSCxFQUFFSSxpQkFBaUIsR0FBRzt3QkFDN0Qsb0RBQW9EO3dCQUNwRHZCLFdBQVd3QixxQkFBcUI7dUVBQUM7Z0NBQy9CLElBQUlILFlBQVk7b0NBQ2RkLFNBQVNDO2dDQUNYLE9BQU87b0NBQ0xPLFVBQVVQO2dDQUNaOzRCQUNGOztvQkFDRjtnQkFDRjs7WUFFQSxNQUFNaUIsS0FBSyxJQUFJQyxxQkFBcUJULGFBQWE7Z0JBQy9DVSxXQUFXO29CQUFDO29CQUFHO29CQUFNO2lCQUFLO1lBQzVCO1lBQ0F4QixPQUFPeUIsT0FBTzsrQ0FBQyxDQUFDcEIsSUFBTWlCLEdBQUdJLE9BQU8sQ0FBQ3JCOztZQUNqQzsrQ0FBTyxJQUFNaUIsR0FBR0ssVUFBVTs7UUFDNUI7c0NBQUc7UUFBQy9CO0tBQVM7QUFDZiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2NvbXBvbmVudHMvbW90aW9uL3VzZUF1dG9wbGF5VmlkZW9zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyB1c2VFZmZlY3QgfSBmcm9tICdyZWFjdCdcblxuLyoqXG4gKiBBdXRvcGxheSBtdXRlZCBpbmxpbmUgdmlkZW9zIG9ubHkgd2hpbGUgaW4gdmlldy5cbiAqIEd1YXJkcyBwbGF5L3BhdXNlIHRvIGF2b2lkIEFib3J0RXJyb3Igc3BhbSBmcm9tIHJhcGlkbHkgdG9nZ2xpbmcgc3RhdGUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiB1c2VBdXRvcGxheVZpZGVvcyhzZWxlY3RvciA9ICd2aWRlb1tkYXRhLWF1dG9wbGF5XScpIHtcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIGdsb2JhbFRoaXMgPT09ICd1bmRlZmluZWQnIHx8ICFnbG9iYWxUaGlzLmRvY3VtZW50KSByZXR1cm5cblxuICAgIGNvbnN0IGRvYyA9IGdsb2JhbFRoaXMuZG9jdW1lbnRcbiAgICBjb25zdCB2aWRlb3MgPSBBcnJheS5mcm9tKGRvYy5xdWVyeVNlbGVjdG9yQWxsPEhUTUxWaWRlb0VsZW1lbnQ+KHNlbGVjdG9yKSlcblxuICAgIGNvbnN0IHBsYXlTYWZlID0gKHY6IEhUTUxWaWRlb0VsZW1lbnQpID0+IHtcbiAgICAgIGlmICghdi5wYXVzZWQpIHJldHVyblxuICAgICAgdi5tdXRlZCA9IHRydWVcbiAgICAgIHYucGxheXNJbmxpbmUgPSB0cnVlXG4gICAgICBjb25zdCBwID0gdi5wbGF5KClcbiAgICAgIGlmIChwICYmIHR5cGVvZiBwLmNhdGNoID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgIHAuY2F0Y2goKCkgPT4ge1xuICAgICAgICAgIC8vIElnbm9yZSByZWplY3Rpb25zIGNhdXNlZCBieSBVQSBwb2xpY2llcyBvciByYXBpZCB0b2dnbGVcbiAgICAgICAgfSlcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwYXVzZVNhZmUgPSAodjogSFRNTFZpZGVvRWxlbWVudCkgPT4ge1xuICAgICAgaWYgKHYucGF1c2VkKSByZXR1cm5cbiAgICAgIHYucGF1c2UoKVxuICAgIH1cblxuICAgIGNvbnN0IG9uSW50ZXJzZWN0OiBJbnRlcnNlY3Rpb25PYnNlcnZlckNhbGxiYWNrID0gKGVudHJpZXMpID0+IHtcbiAgICAgIGZvciAoY29uc3QgZSBvZiBlbnRyaWVzKSB7XG4gICAgICAgIGNvbnN0IHYgPSBlLnRhcmdldCBhcyBIVE1MVmlkZW9FbGVtZW50XG4gICAgICAgIGNvbnN0IHNob3VsZFBsYXkgPSBlLmlzSW50ZXJzZWN0aW5nICYmIGUuaW50ZXJzZWN0aW9uUmF0aW8gPiAwLjM1XG4gICAgICAgIC8vIENvYWxlc2NlIHRvZ2dsZXMgaW4gdGhlIHNhbWUgZnJhbWUgdG8gYXZvaWQgY2h1cm5cbiAgICAgICAgZ2xvYmFsVGhpcy5yZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICAgIGlmIChzaG91bGRQbGF5KSB7XG4gICAgICAgICAgICBwbGF5U2FmZSh2KVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwYXVzZVNhZmUodilcbiAgICAgICAgICB9XG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgaW8gPSBuZXcgSW50ZXJzZWN0aW9uT2JzZXJ2ZXIob25JbnRlcnNlY3QsIHtcbiAgICAgIHRocmVzaG9sZDogWzAsIDAuMzUsIDAuNzVdLFxuICAgIH0pXG4gICAgdmlkZW9zLmZvckVhY2goKHYpID0+IGlvLm9ic2VydmUodikpXG4gICAgcmV0dXJuICgpID0+IGlvLmRpc2Nvbm5lY3QoKVxuICB9LCBbc2VsZWN0b3JdKVxufVxuIl0sIm5hbWVzIjpbInVzZUVmZmVjdCIsInVzZUF1dG9wbGF5VmlkZW9zIiwic2VsZWN0b3IiLCJnbG9iYWxUaGlzIiwiZG9jdW1lbnQiLCJkb2MiLCJ2aWRlb3MiLCJBcnJheSIsImZyb20iLCJxdWVyeVNlbGVjdG9yQWxsIiwicGxheVNhZmUiLCJ2IiwicGF1c2VkIiwibXV0ZWQiLCJwbGF5c0lubGluZSIsInAiLCJwbGF5IiwiY2F0Y2giLCJwYXVzZVNhZmUiLCJwYXVzZSIsIm9uSW50ZXJzZWN0IiwiZW50cmllcyIsImUiLCJ0YXJnZXQiLCJzaG91bGRQbGF5IiwiaXNJbnRlcnNlY3RpbmciLCJpbnRlcnNlY3Rpb25SYXRpbyIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsImlvIiwiSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJ0aHJlc2hvbGQiLCJmb3JFYWNoIiwib2JzZXJ2ZSIsImRpc2Nvbm5lY3QiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/motion/useAutoplayVideos.ts\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/ui/multi-step-loader.tsx":
+/*!*************************************************!*\
+ !*** ./src/components/ui/multi-step-loader.tsx ***!
+ \*************************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ MultiStepLoader: () => (/* binding */ MultiStepLoader),\n/* harmony export */ \"default\": () => (__WEBPACK_DEFAULT_EXPORT__)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* __next_internal_client_entry_do_not_use__ MultiStepLoader,default auto */ \n\n/**\n * MultiStepLoader\n * - Displays a fullscreen modal overlay while loading is true\n * - Cycles through provided loadingStates evenly distributed across `duration`\n * - Fades out and invokes onComplete after finishing the last step\n */ function MultiStepLoader({ loadingStates, loading, duration = 2500, onComplete, className }) {\n const [mounted, setMounted] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [currentIndex, setCurrentIndex] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n const [isExiting, setIsExiting] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const stepInterval = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"MultiStepLoader.useMemo[stepInterval]\": ()=>{\n const count = Math.max(1, loadingStates.length);\n // Ensure at least 200ms per step for readability\n return Math.max(200, Math.floor(duration / count));\n }\n }[\"MultiStepLoader.useMemo[stepInterval]\"], [\n duration,\n loadingStates.length\n ]);\n // Use number refs for browser timers to satisfy ESLint/TS in DOM env\n const intervalRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const totalTimerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const exitTimerRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n // Ensure smooth fade-in once mounted\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"MultiStepLoader.useEffect\": ()=>{\n setMounted(true);\n }\n }[\"MultiStepLoader.useEffect\"], []);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"MultiStepLoader.useEffect\": ()=>{\n // Reset internal state when loading restarts\n if (loading) {\n setCurrentIndex(0);\n setIsExiting(false);\n // Advance steps\n if (loadingStates.length > 0) {\n intervalRef.current = globalThis.setInterval({\n \"MultiStepLoader.useEffect\": ()=>{\n setCurrentIndex({\n \"MultiStepLoader.useEffect\": (idx)=>{\n const next = idx + 1;\n if (next >= loadingStates.length) {\n return loadingStates.length - 1;\n }\n return next;\n }\n }[\"MultiStepLoader.useEffect\"]);\n }\n }[\"MultiStepLoader.useEffect\"], stepInterval);\n }\n // Finish after total duration\n totalTimerRef.current = globalThis.setTimeout({\n \"MultiStepLoader.useEffect\": ()=>{\n setIsExiting(true);\n // Give time for fade-out\n exitTimerRef.current = globalThis.setTimeout({\n \"MultiStepLoader.useEffect\": ()=>{\n onComplete?.();\n }\n }[\"MultiStepLoader.useEffect\"], 800);\n }\n }[\"MultiStepLoader.useEffect\"], duration);\n }\n return ({\n \"MultiStepLoader.useEffect\": ()=>{\n if (intervalRef.current !== null) {\n globalThis.clearInterval(intervalRef.current);\n }\n if (totalTimerRef.current !== null) {\n globalThis.clearTimeout(totalTimerRef.current);\n }\n if (exitTimerRef.current !== null) {\n globalThis.clearTimeout(exitTimerRef.current);\n }\n intervalRef.current = null;\n totalTimerRef.current = null;\n exitTimerRef.current = null;\n }\n })[\"MultiStepLoader.useEffect\"];\n }\n }[\"MultiStepLoader.useEffect\"], [\n loading,\n duration,\n stepInterval,\n loadingStates.length,\n onComplete\n ]);\n if (!loading) return null;\n const currentText = loadingStates[currentIndex]?.text ?? loadingStates[loadingStates.length - 1]?.text ?? '';\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: [\n 'fixed inset-0 z-[120] bg-black/95 flex items-center justify-center overflow-hidden transition-opacity duration-700',\n mounted ? 'opacity-100' : 'opacity-0',\n isExiting ? 'opacity-0' : 'opacity-100',\n className ?? ''\n ].join(' '),\n \"aria-live\": \"polite\",\n role: \"status\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative flex flex-col items-center justify-center px-6 text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl md:text-3xl font-light tracking-[0.5em] text-white/90 mb-6 select-none\",\n children: \"BIOHAZARD VFX\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/multi-step-loader.tsx\",\n lineNumber: 129,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"min-h-[2.5rem] md:min-h-[3rem] flex items-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-base md:text-lg font-medium text-white transition-all duration-300\",\n children: currentText\n }, currentIndex, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/multi-step-loader.tsx\",\n lineNumber: 135,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/multi-step-loader.tsx\",\n lineNumber: 134,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-6 w-[220px] md:w-[300px] h-[3px] bg-white/15 rounded overflow-hidden\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"h-full bg-[#39C3EF] transition-all ease-out\",\n style: {\n width: loadingStates.length > 0 ? `${Math.min(100, Math.round((currentIndex + 1) / loadingStates.length * 100))}%` : '0%'\n }\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/multi-step-loader.tsx\",\n lineNumber: 145,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/multi-step-loader.tsx\",\n lineNumber: 144,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/multi-step-loader.tsx\",\n lineNumber: 127,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/multi-step-loader.tsx\",\n lineNumber: 117,\n columnNumber: 5\n }, this);\n}\n/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (MultiStepLoader);\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy91aS9tdWx0aS1zdGVwLWxvYWRlci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUVtRTtBQXNCbkU7Ozs7O0NBS0MsR0FDTSxTQUFTSyxnQkFBZ0IsRUFDOUJDLGFBQWEsRUFDYkMsT0FBTyxFQUNQQyxXQUFXLElBQUksRUFDZkMsVUFBVSxFQUNWQyxTQUFTLEVBQ1k7SUFDckIsTUFBTSxDQUFDQyxTQUFTQyxXQUFXLEdBQUdSLCtDQUFRQSxDQUFDO0lBQ3ZDLE1BQU0sQ0FBQ1MsY0FBY0MsZ0JBQWdCLEdBQUdWLCtDQUFRQSxDQUFDO0lBQ2pELE1BQU0sQ0FBQ1csV0FBV0MsYUFBYSxHQUFHWiwrQ0FBUUEsQ0FBQztJQUUzQyxNQUFNYSxlQUFlZiw4Q0FBT0E7aURBQUM7WUFDM0IsTUFBTWdCLFFBQVFDLEtBQUtDLEdBQUcsQ0FBQyxHQUFHZCxjQUFjZSxNQUFNO1lBQzlDLGlEQUFpRDtZQUNqRCxPQUFPRixLQUFLQyxHQUFHLENBQUMsS0FBS0QsS0FBS0csS0FBSyxDQUFDZCxXQUFXVTtRQUM3QztnREFBRztRQUFDVjtRQUFVRixjQUFjZSxNQUFNO0tBQUM7SUFFbkMscUVBQXFFO0lBQ3JFLE1BQU1FLGNBQWNwQiw2Q0FBTUEsQ0FDeEI7SUFFRixNQUFNcUIsZ0JBQWdCckIsNkNBQU1BLENBQzFCO0lBRUYsTUFBTXNCLGVBQWV0Qiw2Q0FBTUEsQ0FDekI7SUFHRixxQ0FBcUM7SUFDckNGLGdEQUFTQTtxQ0FBQztZQUNSVyxXQUFXO1FBQ2I7b0NBQUcsRUFBRTtJQUVMWCxnREFBU0E7cUNBQUM7WUFDUiw2Q0FBNkM7WUFDN0MsSUFBSU0sU0FBUztnQkFDWE8sZ0JBQWdCO2dCQUNoQkUsYUFBYTtnQkFFYixnQkFBZ0I7Z0JBQ2hCLElBQUlWLGNBQWNlLE1BQU0sR0FBRyxHQUFHO29CQUM1QkUsWUFBWUcsT0FBTyxHQUFHQyxXQUFXQyxXQUFXO3FEQUFDOzRCQUMzQ2Q7NkRBQWdCLENBQUNlO29DQUNmLE1BQU1DLE9BQU9ELE1BQU07b0NBQ25CLElBQUlDLFFBQVF4QixjQUFjZSxNQUFNLEVBQUU7d0NBQ2hDLE9BQU9mLGNBQWNlLE1BQU0sR0FBRztvQ0FDaEM7b0NBQ0EsT0FBT1M7Z0NBQ1Q7O3dCQUNGO29EQUFHYjtnQkFDTDtnQkFFQSw4QkFBOEI7Z0JBQzlCTyxjQUFjRSxPQUFPLEdBQUdDLFdBQVdJLFVBQVU7aURBQUM7d0JBQzVDZixhQUFhO3dCQUNiLHlCQUF5Qjt3QkFDekJTLGFBQWFDLE9BQU8sR0FBR0MsV0FBV0ksVUFBVTt5REFBQztnQ0FDM0N0Qjs0QkFDRjt3REFBRztvQkFDTDtnREFBR0Q7WUFDTDtZQUVBOzZDQUFPO29CQUNMLElBQUllLFlBQVlHLE9BQU8sS0FBSyxNQUFNO3dCQUNoQ0MsV0FBV0ssYUFBYSxDQUFDVCxZQUFZRyxPQUFPO29CQUM5QztvQkFDQSxJQUFJRixjQUFjRSxPQUFPLEtBQUssTUFBTTt3QkFDbENDLFdBQVdNLFlBQVksQ0FBQ1QsY0FBY0UsT0FBTztvQkFDL0M7b0JBQ0EsSUFBSUQsYUFBYUMsT0FBTyxLQUFLLE1BQU07d0JBQ2pDQyxXQUFXTSxZQUFZLENBQUNSLGFBQWFDLE9BQU87b0JBQzlDO29CQUNBSCxZQUFZRyxPQUFPLEdBQUc7b0JBQ3RCRixjQUFjRSxPQUFPLEdBQUc7b0JBQ3hCRCxhQUFhQyxPQUFPLEdBQUc7Z0JBQ3pCOztRQUNGO29DQUFHO1FBQUNuQjtRQUFTQztRQUFVUztRQUFjWCxjQUFjZSxNQUFNO1FBQUVaO0tBQVc7SUFFdEUsSUFBSSxDQUFDRixTQUFTLE9BQU87SUFFckIsTUFBTTJCLGNBQ0o1QixhQUFhLENBQUNPLGFBQWEsRUFBRXNCLFFBQzdCN0IsYUFBYSxDQUFDQSxjQUFjZSxNQUFNLEdBQUcsRUFBRSxFQUFFYyxRQUN6QztJQUVGLHFCQUNFLDhEQUFDQztRQUNDMUIsV0FBVztZQUNUO1lBQ0FDLFVBQVUsZ0JBQWdCO1lBQzFCSSxZQUFZLGNBQWM7WUFDMUJMLGFBQWE7U0FDZCxDQUFDMkIsSUFBSSxDQUFDO1FBQ1BDLGFBQVU7UUFDVkMsTUFBSztrQkFFTCw0RUFBQ0g7WUFBSTFCLFdBQVU7OzhCQUViLDhEQUFDMEI7b0JBQUkxQixXQUFVOzhCQUFrRjs7Ozs7OzhCQUtqRyw4REFBQzBCO29CQUFJMUIsV0FBVTs4QkFDYiw0RUFBQzhCO3dCQUNDOUIsV0FBVTtrQ0FHVHdCO3VCQUZJckI7Ozs7Ozs7Ozs7OEJBT1QsOERBQUN1QjtvQkFBSTFCLFdBQVU7OEJBQ2IsNEVBQUMwQjt3QkFDQzFCLFdBQVU7d0JBQ1YrQixPQUFPOzRCQUNMQyxPQUNFcEMsY0FBY2UsTUFBTSxHQUFHLElBQ25CLEdBQUdGLEtBQUt3QixHQUFHLENBQUMsS0FBS3hCLEtBQUt5QixLQUFLLENBQUMsQ0FBRS9CLGVBQWUsS0FBS1AsY0FBY2UsTUFBTSxHQUFJLE1BQU0sQ0FBQyxDQUFDLEdBQ2xGO3dCQUNSOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBTVo7QUFFQSxpRUFBZWhCLGVBQWVBLEVBQUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL3VpL211bHRpLXN0ZXAtbG9hZGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IFJlYWN0LCB7IHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlUmVmLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG50eXBlIExvYWRpbmdTdGF0ZSA9IHsgdGV4dDogc3RyaW5nIH1cblxuZXhwb3J0IGludGVyZmFjZSBNdWx0aVN0ZXBMb2FkZXJQcm9wcyB7XG4gIGxvYWRpbmdTdGF0ZXM6IExvYWRpbmdTdGF0ZVtdXG4gIGxvYWRpbmc6IGJvb2xlYW5cbiAgLyoqXG4gICAqIFRvdGFsIGR1cmF0aW9uIGluIG1zIHRvIGN5Y2xlIHRocm91Z2ggYWxsIHN0ZXBzIChleGNsdWRpbmcgZXhpdCBmYWRlKVxuICAgKiBEZWZhdWx0OiAyNTAwXG4gICAqL1xuICBkdXJhdGlvbj86IG51bWJlclxuICAvKipcbiAgICogQ2FsbGVkIGFmdGVyIHRoZSBsb2FkZXIgZmluaXNoZXMgYW5kIGZhZGVzIG91dFxuICAgKi9cbiAgb25Db21wbGV0ZT86ICgpID0+IHZvaWRcbiAgLyoqXG4gICAqIE9wdGlvbmFsIGNsYXNzTmFtZSB0byBvdmVycmlkZSBjb250YWluZXIgc3R5bGVzXG4gICAqL1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBNdWx0aVN0ZXBMb2FkZXJcbiAqIC0gRGlzcGxheXMgYSBmdWxsc2NyZWVuIG1vZGFsIG92ZXJsYXkgd2hpbGUgbG9hZGluZyBpcyB0cnVlXG4gKiAtIEN5Y2xlcyB0aHJvdWdoIHByb3ZpZGVkIGxvYWRpbmdTdGF0ZXMgZXZlbmx5IGRpc3RyaWJ1dGVkIGFjcm9zcyBgZHVyYXRpb25gXG4gKiAtIEZhZGVzIG91dCBhbmQgaW52b2tlcyBvbkNvbXBsZXRlIGFmdGVyIGZpbmlzaGluZyB0aGUgbGFzdCBzdGVwXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBNdWx0aVN0ZXBMb2FkZXIoe1xuICBsb2FkaW5nU3RhdGVzLFxuICBsb2FkaW5nLFxuICBkdXJhdGlvbiA9IDI1MDAsXG4gIG9uQ29tcGxldGUsXG4gIGNsYXNzTmFtZSxcbn06IE11bHRpU3RlcExvYWRlclByb3BzKSB7XG4gIGNvbnN0IFttb3VudGVkLCBzZXRNb3VudGVkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbY3VycmVudEluZGV4LCBzZXRDdXJyZW50SW5kZXhdID0gdXNlU3RhdGUoMClcbiAgY29uc3QgW2lzRXhpdGluZywgc2V0SXNFeGl0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuXG4gIGNvbnN0IHN0ZXBJbnRlcnZhbCA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIGNvbnN0IGNvdW50ID0gTWF0aC5tYXgoMSwgbG9hZGluZ1N0YXRlcy5sZW5ndGgpXG4gICAgLy8gRW5zdXJlIGF0IGxlYXN0IDIwMG1zIHBlciBzdGVwIGZvciByZWFkYWJpbGl0eVxuICAgIHJldHVybiBNYXRoLm1heCgyMDAsIE1hdGguZmxvb3IoZHVyYXRpb24gLyBjb3VudCkpXG4gIH0sIFtkdXJhdGlvbiwgbG9hZGluZ1N0YXRlcy5sZW5ndGhdKVxuXG4gIC8vIFVzZSBudW1iZXIgcmVmcyBmb3IgYnJvd3NlciB0aW1lcnMgdG8gc2F0aXNmeSBFU0xpbnQvVFMgaW4gRE9NIGVudlxuICBjb25zdCBpbnRlcnZhbFJlZiA9IHVzZVJlZjxSZXR1cm5UeXBlPHR5cGVvZiBnbG9iYWxUaGlzLnNldEludGVydmFsPiB8IG51bGw+KFxuICAgIG51bGxcbiAgKVxuICBjb25zdCB0b3RhbFRpbWVyUmVmID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIGdsb2JhbFRoaXMuc2V0VGltZW91dD4gfCBudWxsPihcbiAgICBudWxsXG4gIClcbiAgY29uc3QgZXhpdFRpbWVyUmVmID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIGdsb2JhbFRoaXMuc2V0VGltZW91dD4gfCBudWxsPihcbiAgICBudWxsXG4gIClcblxuICAvLyBFbnN1cmUgc21vb3RoIGZhZGUtaW4gb25jZSBtb3VudGVkXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0TW91bnRlZCh0cnVlKVxuICB9LCBbXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIC8vIFJlc2V0IGludGVybmFsIHN0YXRlIHdoZW4gbG9hZGluZyByZXN0YXJ0c1xuICAgIGlmIChsb2FkaW5nKSB7XG4gICAgICBzZXRDdXJyZW50SW5kZXgoMClcbiAgICAgIHNldElzRXhpdGluZyhmYWxzZSlcblxuICAgICAgLy8gQWR2YW5jZSBzdGVwc1xuICAgICAgaWYgKGxvYWRpbmdTdGF0ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICBpbnRlcnZhbFJlZi5jdXJyZW50ID0gZ2xvYmFsVGhpcy5zZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICAgICAgc2V0Q3VycmVudEluZGV4KChpZHgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IG5leHQgPSBpZHggKyAxXG4gICAgICAgICAgICBpZiAobmV4dCA+PSBsb2FkaW5nU3RhdGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICByZXR1cm4gbG9hZGluZ1N0YXRlcy5sZW5ndGggLSAxXG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gbmV4dFxuICAgICAgICAgIH0pXG4gICAgICAgIH0sIHN0ZXBJbnRlcnZhbClcbiAgICAgIH1cblxuICAgICAgLy8gRmluaXNoIGFmdGVyIHRvdGFsIGR1cmF0aW9uXG4gICAgICB0b3RhbFRpbWVyUmVmLmN1cnJlbnQgPSBnbG9iYWxUaGlzLnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBzZXRJc0V4aXRpbmcodHJ1ZSlcbiAgICAgICAgLy8gR2l2ZSB0aW1lIGZvciBmYWRlLW91dFxuICAgICAgICBleGl0VGltZXJSZWYuY3VycmVudCA9IGdsb2JhbFRoaXMuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgb25Db21wbGV0ZT8uKClcbiAgICAgICAgfSwgODAwKVxuICAgICAgfSwgZHVyYXRpb24pXG4gICAgfVxuXG4gICAgcmV0dXJuICgpID0+IHtcbiAgICAgIGlmIChpbnRlcnZhbFJlZi5jdXJyZW50ICE9PSBudWxsKSB7XG4gICAgICAgIGdsb2JhbFRoaXMuY2xlYXJJbnRlcnZhbChpbnRlcnZhbFJlZi5jdXJyZW50KVxuICAgICAgfVxuICAgICAgaWYgKHRvdGFsVGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBnbG9iYWxUaGlzLmNsZWFyVGltZW91dCh0b3RhbFRpbWVyUmVmLmN1cnJlbnQpXG4gICAgICB9XG4gICAgICBpZiAoZXhpdFRpbWVyUmVmLmN1cnJlbnQgIT09IG51bGwpIHtcbiAgICAgICAgZ2xvYmFsVGhpcy5jbGVhclRpbWVvdXQoZXhpdFRpbWVyUmVmLmN1cnJlbnQpXG4gICAgICB9XG4gICAgICBpbnRlcnZhbFJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgdG90YWxUaW1lclJlZi5jdXJyZW50ID0gbnVsbFxuICAgICAgZXhpdFRpbWVyUmVmLmN1cnJlbnQgPSBudWxsXG4gICAgfVxuICB9LCBbbG9hZGluZywgZHVyYXRpb24sIHN0ZXBJbnRlcnZhbCwgbG9hZGluZ1N0YXRlcy5sZW5ndGgsIG9uQ29tcGxldGVdKVxuXG4gIGlmICghbG9hZGluZykgcmV0dXJuIG51bGxcblxuICBjb25zdCBjdXJyZW50VGV4dCA9XG4gICAgbG9hZGluZ1N0YXRlc1tjdXJyZW50SW5kZXhdPy50ZXh0ID8/XG4gICAgbG9hZGluZ1N0YXRlc1tsb2FkaW5nU3RhdGVzLmxlbmd0aCAtIDFdPy50ZXh0ID8/XG4gICAgJydcblxuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17W1xuICAgICAgICAnZml4ZWQgaW5zZXQtMCB6LVsxMjBdIGJnLWJsYWNrLzk1IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIG92ZXJmbG93LWhpZGRlbiB0cmFuc2l0aW9uLW9wYWNpdHkgZHVyYXRpb24tNzAwJyxcbiAgICAgICAgbW91bnRlZCA/ICdvcGFjaXR5LTEwMCcgOiAnb3BhY2l0eS0wJyxcbiAgICAgICAgaXNFeGl0aW5nID8gJ29wYWNpdHktMCcgOiAnb3BhY2l0eS0xMDAnLFxuICAgICAgICBjbGFzc05hbWUgPz8gJycsXG4gICAgICBdLmpvaW4oJyAnKX1cbiAgICAgIGFyaWEtbGl2ZT1cInBvbGl0ZVwiXG4gICAgICByb2xlPVwic3RhdHVzXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTYgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgey8qIEJyYW5kIC8gVGl0bGUgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC0yeGwgbWQ6dGV4dC0zeGwgZm9udC1saWdodCB0cmFja2luZy1bMC41ZW1dIHRleHQtd2hpdGUvOTAgbWItNiBzZWxlY3Qtbm9uZVwiPlxuICAgICAgICAgIEJJT0hBWkFSRCBWRlhcbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgey8qIFN0ZXAgVGV4dCAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtaW4taC1bMi41cmVtXSBtZDptaW4taC1bM3JlbV0gZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8cFxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1iYXNlIG1kOnRleHQtbGcgZm9udC1tZWRpdW0gdGV4dC13aGl0ZSB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDBcIlxuICAgICAgICAgICAga2V5PXtjdXJyZW50SW5kZXh9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2N1cnJlbnRUZXh0fVxuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgey8qIFByb2dyZXNzIEJhciAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC02IHctWzIyMHB4XSBtZDp3LVszMDBweF0gaC1bM3B4XSBiZy13aGl0ZS8xNSByb3VuZGVkIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImgtZnVsbCBiZy1bIzM5QzNFRl0gdHJhbnNpdGlvbi1hbGwgZWFzZS1vdXRcIlxuICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgd2lkdGg6XG4gICAgICAgICAgICAgICAgbG9hZGluZ1N0YXRlcy5sZW5ndGggPiAwXG4gICAgICAgICAgICAgICAgICA/IGAke01hdGgubWluKDEwMCwgTWF0aC5yb3VuZCgoKGN1cnJlbnRJbmRleCArIDEpIC8gbG9hZGluZ1N0YXRlcy5sZW5ndGgpICogMTAwKSl9JWBcbiAgICAgICAgICAgICAgICAgIDogJzAlJyxcbiAgICAgICAgICAgIH19XG4gICAgICAgICAgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5leHBvcnQgZGVmYXVsdCBNdWx0aVN0ZXBMb2FkZXJcbiJdLCJuYW1lcyI6WyJSZWFjdCIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsIk11bHRpU3RlcExvYWRlciIsImxvYWRpbmdTdGF0ZXMiLCJsb2FkaW5nIiwiZHVyYXRpb24iLCJvbkNvbXBsZXRlIiwiY2xhc3NOYW1lIiwibW91bnRlZCIsInNldE1vdW50ZWQiLCJjdXJyZW50SW5kZXgiLCJzZXRDdXJyZW50SW5kZXgiLCJpc0V4aXRpbmciLCJzZXRJc0V4aXRpbmciLCJzdGVwSW50ZXJ2YWwiLCJjb3VudCIsIk1hdGgiLCJtYXgiLCJsZW5ndGgiLCJmbG9vciIsImludGVydmFsUmVmIiwidG90YWxUaW1lclJlZiIsImV4aXRUaW1lclJlZiIsImN1cnJlbnQiLCJnbG9iYWxUaGlzIiwic2V0SW50ZXJ2YWwiLCJpZHgiLCJuZXh0Iiwic2V0VGltZW91dCIsImNsZWFySW50ZXJ2YWwiLCJjbGVhclRpbWVvdXQiLCJjdXJyZW50VGV4dCIsInRleHQiLCJkaXYiLCJqb2luIiwiYXJpYS1saXZlIiwicm9sZSIsInAiLCJzdHlsZSIsIndpZHRoIiwibWluIiwicm91bmQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/ui/multi-step-loader.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/ui/toast.tsx":
+/*!*************************************!*\
+ !*** ./src/components/ui/toast.tsx ***!
+ \*************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Toast: () => (/* binding */ Toast),\n/* harmony export */ ToastClose: () => (/* binding */ ToastClose),\n/* harmony export */ ToastDescription: () => (/* binding */ ToastDescription),\n/* harmony export */ ToastProvider: () => (/* binding */ ToastProvider),\n/* harmony export */ ToastTitle: () => (/* binding */ ToastTitle),\n/* harmony export */ ToastViewport: () => (/* binding */ ToastViewport)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @radix-ui/react-toast */ \"(ssr)/./node_modules/@radix-ui/react-toast/dist/index.mjs\");\n/* harmony import */ var class_variance_authority__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! class-variance-authority */ \"(ssr)/./node_modules/class-variance-authority/dist/index.mjs\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/utils */ \"(ssr)/./src/lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ Toast,ToastClose,ToastDescription,ToastProvider,ToastTitle,ToastViewport auto */ \n\n\n\n\nconst ToastProvider = _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__.Provider;\nconst ToastViewport = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__.Viewport, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)('fixed bottom-0 z-[100] flex max-h-screen w-full flex-col-reverse p-4 sm:bottom-4 sm:right-4 sm:w-[390px]', className),\n ...props\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toast.tsx\",\n lineNumber: 14,\n columnNumber: 3\n }, undefined));\nToastViewport.displayName = _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__.Viewport.displayName;\nconst toastVariants = (0,class_variance_authority__WEBPACK_IMPORTED_MODULE_2__.cva)('group pointer-events-auto relative flex w-full items-center justify-between space-x-4 overflow-hidden rounded-md border p-6 pr-8 shadow-lg transition-all data-[swipe=cancel]:translate-x-0 data-[swipe=end]:translate-x-[var(--radix-toast-swipe-end-x)] data-[swipe=move]:translate-x-[var(--radix-toast-swipe-move-x)] data-[swipe=move]:transition-none', {\n variants: {\n variant: {\n default: 'border-bg-light bg-bg text-text',\n destructive: 'destructive group border-destructive bg-destructive text-destructive-foreground'\n }\n },\n defaultVariants: {\n variant: 'default'\n }\n});\nconst Toast = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, variant, ...props }, ref)=>{\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__.Root, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)(toastVariants({\n variant\n }), className),\n ...props\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toast.tsx\",\n lineNumber: 47,\n columnNumber: 5\n }, undefined);\n});\nToast.displayName = _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__.Root.displayName;\nconst ToastTitle = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__.Title, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)('text-sm font-semibold', className),\n ...props\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toast.tsx\",\n lineNumber: 60,\n columnNumber: 3\n }, undefined));\nToastTitle.displayName = _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__.Title.displayName;\nconst ToastDescription = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__.Description, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)('text-sm opacity-90', className),\n ...props\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toast.tsx\",\n lineNumber: 72,\n columnNumber: 3\n }, undefined));\nToastDescription.displayName = _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__.Description.displayName;\nconst ToastClose = /*#__PURE__*/ react__WEBPACK_IMPORTED_MODULE_1__.forwardRef(({ className, ...props }, ref)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__.Close, {\n ref: ref,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_3__.cn)('absolute right-2 top-2 rounded-md p-1 text-foreground/50 opacity-0 transition-opacity hover:text-foreground focus:opacity-100 focus:outline-none group-hover:opacity-100', className),\n ...props,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n width: \"15\",\n height: \"15\",\n viewBox: \"0 0 15 15\",\n fill: \"none\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: \"M11.7816 4.03157C12.0062 3.80702 12.0062 3.44295 11.7816 3.2184C11.5571 2.99385 11.193 2.99385 10.9685 3.2184L7.50005 6.68682L4.03164 3.2184C3.80708 2.99385 3.44301 2.99385 3.21846 3.2184C2.99391 3.44295 2.99391 3.80702 3.21846 4.03157L6.68688 7.49999L3.21846 10.9684C2.99391 11.193 2.99391 11.557 3.21846 11.7816C3.44301 12.0061 3.80708 12.0061 4.03164 11.7816L7.50005 8.31316L10.9685 11.7816C11.193 12.0061 11.5571 12.0061 11.7816 11.7816C12.0062 11.557 12.0062 11.193 11.7816 10.9684L8.31322 7.49999L11.7816 4.03157Z\",\n fill: \"currentColor\",\n fillRule: \"evenodd\",\n clipRule: \"evenodd\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toast.tsx\",\n lineNumber: 99,\n columnNumber: 7\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toast.tsx\",\n lineNumber: 92,\n columnNumber: 5\n }, undefined)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toast.tsx\",\n lineNumber: 84,\n columnNumber: 3\n }, undefined));\nToastClose.displayName = _radix_ui_react_toast__WEBPACK_IMPORTED_MODULE_4__.Close.displayName;\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy91aS90b2FzdC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFOEI7QUFDMEI7QUFDUztBQUVqQztBQUVoQyxNQUFNSSxnQkFBZ0JILDJEQUF3QjtBQUM5QyxNQUFNSyw4QkFBZ0JOLDZDQUFnQixDQUdwQyxDQUFDLEVBQUVRLFNBQVMsRUFBRSxHQUFHQyxPQUFPLEVBQUVDLG9CQUMxQiw4REFBQ1QsMkRBQXdCO1FBQ3ZCUyxLQUFLQTtRQUNMRixXQUFXTCw4Q0FBRUEsQ0FDWCw0R0FDQUs7UUFFRCxHQUFHQyxLQUFLOzs7Ozs7QUFHYkgsY0FBY00sV0FBVyxHQUFHWCwyREFBd0IsQ0FBQ1csV0FBVztBQUVoRSxNQUFNQyxnQkFBZ0JYLDZEQUFHQSxDQUN2QiwrVkFDQTtJQUNFWSxVQUFVO1FBQ1JDLFNBQVM7WUFDUEMsU0FBUztZQUNUQyxhQUNFO1FBQ0o7SUFDRjtJQUNBQyxpQkFBaUI7UUFDZkgsU0FBUztJQUNYO0FBQ0Y7QUFHRixNQUFNSSxzQkFBUW5CLDZDQUFnQixDQUk1QixDQUFDLEVBQUVRLFNBQVMsRUFBRU8sT0FBTyxFQUFFLEdBQUdOLE9BQU8sRUFBRUM7SUFDbkMscUJBQ0UsOERBQUNULHVEQUFvQjtRQUNuQlMsS0FBS0E7UUFDTEYsV0FBV0wsOENBQUVBLENBQUNVLGNBQWM7WUFBRUU7UUFBUSxJQUFJUDtRQUN6QyxHQUFHQyxLQUFLOzs7Ozs7QUFHZjtBQUNBVSxNQUFNUCxXQUFXLEdBQUdYLHVEQUFvQixDQUFDVyxXQUFXO0FBRXBELE1BQU1TLDJCQUFhckIsNkNBQWdCLENBR2pDLENBQUMsRUFBRVEsU0FBUyxFQUFFLEdBQUdDLE9BQU8sRUFBRUMsb0JBQzFCLDhEQUFDVCx3REFBcUI7UUFDcEJTLEtBQUtBO1FBQ0xGLFdBQVdMLDhDQUFFQSxDQUFDLHlCQUF5Qks7UUFDdEMsR0FBR0MsS0FBSzs7Ozs7O0FBR2JZLFdBQVdULFdBQVcsR0FBR1gsd0RBQXFCLENBQUNXLFdBQVc7QUFFMUQsTUFBTVcsaUNBQW1CdkIsNkNBQWdCLENBR3ZDLENBQUMsRUFBRVEsU0FBUyxFQUFFLEdBQUdDLE9BQU8sRUFBRUMsb0JBQzFCLDhEQUFDVCw4REFBMkI7UUFDMUJTLEtBQUtBO1FBQ0xGLFdBQVdMLDhDQUFFQSxDQUFDLHNCQUFzQks7UUFDbkMsR0FBR0MsS0FBSzs7Ozs7O0FBR2JjLGlCQUFpQlgsV0FBVyxHQUFHWCw4REFBMkIsQ0FBQ1csV0FBVztBQUV0RSxNQUFNYSwyQkFBYXpCLDZDQUFnQixDQUdqQyxDQUFDLEVBQUVRLFNBQVMsRUFBRSxHQUFHQyxPQUFPLEVBQUVDLG9CQUMxQiw4REFBQ1Qsd0RBQXFCO1FBQ3BCUyxLQUFLQTtRQUNMRixXQUFXTCw4Q0FBRUEsQ0FDWCw0S0FDQUs7UUFFRCxHQUFHQyxLQUFLO2tCQUVULDRFQUFDa0I7WUFDQ0MsT0FBTTtZQUNOQyxRQUFPO1lBQ1BDLFNBQVE7WUFDUkMsTUFBSztZQUNMQyxPQUFNO3NCQUVOLDRFQUFDQztnQkFDQ0MsR0FBRTtnQkFDRkgsTUFBSztnQkFDTEksVUFBUztnQkFDVEMsVUFBUzs7Ozs7Ozs7Ozs7Ozs7OztBQUtqQlgsV0FBV2IsV0FBVyxHQUFHWCx3REFBcUIsQ0FBQ1csV0FBVztBQVN6RCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2NvbXBvbmVudHMvdWkvdG9hc3QudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCAqIGFzIFRvYXN0UHJpbWl0aXZlcyBmcm9tICdAcmFkaXgtdWkvcmVhY3QtdG9hc3QnXG5pbXBvcnQgeyBjdmEsIHR5cGUgVmFyaWFudFByb3BzIH0gZnJvbSAnY2xhc3MtdmFyaWFuY2UtYXV0aG9yaXR5J1xuXG5pbXBvcnQgeyBjbiB9IGZyb20gJ0AvbGliL3V0aWxzJ1xuXG5jb25zdCBUb2FzdFByb3ZpZGVyID0gVG9hc3RQcmltaXRpdmVzLlByb3ZpZGVyXG5jb25zdCBUb2FzdFZpZXdwb3J0ID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgVG9hc3RQcmltaXRpdmVzLlZpZXdwb3J0PixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBUb2FzdFByaW1pdGl2ZXMuVmlld3BvcnQ+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxUb2FzdFByaW1pdGl2ZXMuVmlld3BvcnRcbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgJ2ZpeGVkIGJvdHRvbS0wIHotWzEwMF0gZmxleCBtYXgtaC1zY3JlZW4gdy1mdWxsIGZsZXgtY29sLXJldmVyc2UgcC00IHNtOmJvdHRvbS00IHNtOnJpZ2h0LTQgc206dy1bMzkwcHhdJyxcbiAgICAgIGNsYXNzTmFtZVxuICAgICl9XG4gICAgey4uLnByb3BzfVxuICAvPlxuKSlcblRvYXN0Vmlld3BvcnQuZGlzcGxheU5hbWUgPSBUb2FzdFByaW1pdGl2ZXMuVmlld3BvcnQuZGlzcGxheU5hbWVcblxuY29uc3QgdG9hc3RWYXJpYW50cyA9IGN2YShcbiAgJ2dyb3VwIHBvaW50ZXItZXZlbnRzLWF1dG8gcmVsYXRpdmUgZmxleCB3LWZ1bGwgaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBzcGFjZS14LTQgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbWQgYm9yZGVyIHAtNiBwci04IHNoYWRvdy1sZyB0cmFuc2l0aW9uLWFsbCBkYXRhLVtzd2lwZT1jYW5jZWxdOnRyYW5zbGF0ZS14LTAgZGF0YS1bc3dpcGU9ZW5kXTp0cmFuc2xhdGUteC1bdmFyKC0tcmFkaXgtdG9hc3Qtc3dpcGUtZW5kLXgpXSBkYXRhLVtzd2lwZT1tb3ZlXTp0cmFuc2xhdGUteC1bdmFyKC0tcmFkaXgtdG9hc3Qtc3dpcGUtbW92ZS14KV0gZGF0YS1bc3dpcGU9bW92ZV06dHJhbnNpdGlvbi1ub25lJyxcbiAge1xuICAgIHZhcmlhbnRzOiB7XG4gICAgICB2YXJpYW50OiB7XG4gICAgICAgIGRlZmF1bHQ6ICdib3JkZXItYmctbGlnaHQgYmctYmcgdGV4dC10ZXh0JyxcbiAgICAgICAgZGVzdHJ1Y3RpdmU6XG4gICAgICAgICAgJ2Rlc3RydWN0aXZlIGdyb3VwIGJvcmRlci1kZXN0cnVjdGl2ZSBiZy1kZXN0cnVjdGl2ZSB0ZXh0LWRlc3RydWN0aXZlLWZvcmVncm91bmQnLFxuICAgICAgfSxcbiAgICB9LFxuICAgIGRlZmF1bHRWYXJpYW50czoge1xuICAgICAgdmFyaWFudDogJ2RlZmF1bHQnLFxuICAgIH0sXG4gIH1cbilcblxuY29uc3QgVG9hc3QgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBUb2FzdFByaW1pdGl2ZXMuUm9vdD4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgVG9hc3RQcmltaXRpdmVzLlJvb3Q+ICZcbiAgICBWYXJpYW50UHJvcHM8dHlwZW9mIHRvYXN0VmFyaWFudHM+XG4+KCh7IGNsYXNzTmFtZSwgdmFyaWFudCwgLi4ucHJvcHMgfSwgcmVmKSA9PiB7XG4gIHJldHVybiAoXG4gICAgPFRvYXN0UHJpbWl0aXZlcy5Sb290XG4gICAgICByZWY9e3JlZn1cbiAgICAgIGNsYXNzTmFtZT17Y24odG9hc3RWYXJpYW50cyh7IHZhcmlhbnQgfSksIGNsYXNzTmFtZSl9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgLz5cbiAgKVxufSlcblRvYXN0LmRpc3BsYXlOYW1lID0gVG9hc3RQcmltaXRpdmVzLlJvb3QuZGlzcGxheU5hbWVcblxuY29uc3QgVG9hc3RUaXRsZSA9IFJlYWN0LmZvcndhcmRSZWY8XG4gIFJlYWN0LkVsZW1lbnRSZWY8dHlwZW9mIFRvYXN0UHJpbWl0aXZlcy5UaXRsZT4sXG4gIFJlYWN0LkNvbXBvbmVudFByb3BzV2l0aG91dFJlZjx0eXBlb2YgVG9hc3RQcmltaXRpdmVzLlRpdGxlPlxuPigoeyBjbGFzc05hbWUsIC4uLnByb3BzIH0sIHJlZikgPT4gKFxuICA8VG9hc3RQcmltaXRpdmVzLlRpdGxlXG4gICAgcmVmPXtyZWZ9XG4gICAgY2xhc3NOYW1lPXtjbigndGV4dC1zbSBmb250LXNlbWlib2xkJywgY2xhc3NOYW1lKX1cbiAgICB7Li4ucHJvcHN9XG4gIC8+XG4pKVxuVG9hc3RUaXRsZS5kaXNwbGF5TmFtZSA9IFRvYXN0UHJpbWl0aXZlcy5UaXRsZS5kaXNwbGF5TmFtZVxuXG5jb25zdCBUb2FzdERlc2NyaXB0aW9uID0gUmVhY3QuZm9yd2FyZFJlZjxcbiAgUmVhY3QuRWxlbWVudFJlZjx0eXBlb2YgVG9hc3RQcmltaXRpdmVzLkRlc2NyaXB0aW9uPixcbiAgUmVhY3QuQ29tcG9uZW50UHJvcHNXaXRob3V0UmVmPHR5cGVvZiBUb2FzdFByaW1pdGl2ZXMuRGVzY3JpcHRpb24+XG4+KCh7IGNsYXNzTmFtZSwgLi4ucHJvcHMgfSwgcmVmKSA9PiAoXG4gIDxUb2FzdFByaW1pdGl2ZXMuRGVzY3JpcHRpb25cbiAgICByZWY9e3JlZn1cbiAgICBjbGFzc05hbWU9e2NuKCd0ZXh0LXNtIG9wYWNpdHktOTAnLCBjbGFzc05hbWUpfVxuICAgIHsuLi5wcm9wc31cbiAgLz5cbikpXG5Ub2FzdERlc2NyaXB0aW9uLmRpc3BsYXlOYW1lID0gVG9hc3RQcmltaXRpdmVzLkRlc2NyaXB0aW9uLmRpc3BsYXlOYW1lXG5cbmNvbnN0IFRvYXN0Q2xvc2UgPSBSZWFjdC5mb3J3YXJkUmVmPFxuICBSZWFjdC5FbGVtZW50UmVmPHR5cGVvZiBUb2FzdFByaW1pdGl2ZXMuQ2xvc2U+LFxuICBSZWFjdC5Db21wb25lbnRQcm9wc1dpdGhvdXRSZWY8dHlwZW9mIFRvYXN0UHJpbWl0aXZlcy5DbG9zZT5cbj4oKHsgY2xhc3NOYW1lLCAuLi5wcm9wcyB9LCByZWYpID0+IChcbiAgPFRvYXN0UHJpbWl0aXZlcy5DbG9zZVxuICAgIHJlZj17cmVmfVxuICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAnYWJzb2x1dGUgcmlnaHQtMiB0b3AtMiByb3VuZGVkLW1kIHAtMSB0ZXh0LWZvcmVncm91bmQvNTAgb3BhY2l0eS0wIHRyYW5zaXRpb24tb3BhY2l0eSBob3Zlcjp0ZXh0LWZvcmVncm91bmQgZm9jdXM6b3BhY2l0eS0xMDAgZm9jdXM6b3V0bGluZS1ub25lIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwJyxcbiAgICAgIGNsYXNzTmFtZVxuICAgICl9XG4gICAgey4uLnByb3BzfVxuICA+XG4gICAgPHN2Z1xuICAgICAgd2lkdGg9XCIxNVwiXG4gICAgICBoZWlnaHQ9XCIxNVwiXG4gICAgICB2aWV3Qm94PVwiMCAwIDE1IDE1XCJcbiAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgID5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTEuNzgxNiA0LjAzMTU3QzEyLjAwNjIgMy44MDcwMiAxMi4wMDYyIDMuNDQyOTUgMTEuNzgxNiAzLjIxODRDMTEuNTU3MSAyLjk5Mzg1IDExLjE5MyAyLjk5Mzg1IDEwLjk2ODUgMy4yMTg0TDcuNTAwMDUgNi42ODY4Mkw0LjAzMTY0IDMuMjE4NEMzLjgwNzA4IDIuOTkzODUgMy40NDMwMSAyLjk5Mzg1IDMuMjE4NDYgMy4yMTg0QzIuOTkzOTEgMy40NDI5NSAyLjk5MzkxIDMuODA3MDIgMy4yMTg0NiA0LjAzMTU3TDYuNjg2ODggNy40OTk5OUwzLjIxODQ2IDEwLjk2ODRDMi45OTM5MSAxMS4xOTMgMi45OTM5MSAxMS41NTcgMy4yMTg0NiAxMS43ODE2QzMuNDQzMDEgMTIuMDA2MSAzLjgwNzA4IDEyLjAwNjEgNC4wMzE2NCAxMS43ODE2TDcuNTAwMDUgOC4zMTMxNkwxMC45Njg1IDExLjc4MTZDMTEuMTkzIDEyLjAwNjEgMTEuNTU3MSAxMi4wMDYxIDExLjc4MTYgMTEuNzgxNkMxMi4wMDYyIDExLjU1NyAxMi4wMDYyIDExLjE5MyAxMS43ODE2IDEwLjk2ODRMOC4zMTMyMiA3LjQ5OTk5TDExLjc4MTYgNC4wMzE1N1pcIlxuICAgICAgICBmaWxsPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgZmlsbFJ1bGU9XCJldmVub2RkXCJcbiAgICAgICAgY2xpcFJ1bGU9XCJldmVub2RkXCJcbiAgICAgID48L3BhdGg+XG4gICAgPC9zdmc+XG4gIDwvVG9hc3RQcmltaXRpdmVzLkNsb3NlPlxuKSlcblRvYXN0Q2xvc2UuZGlzcGxheU5hbWUgPSBUb2FzdFByaW1pdGl2ZXMuQ2xvc2UuZGlzcGxheU5hbWVcblxuZXhwb3J0IHtcbiAgVG9hc3QsXG4gIFRvYXN0Q2xvc2UsXG4gIFRvYXN0RGVzY3JpcHRpb24sXG4gIFRvYXN0UHJvdmlkZXIsXG4gIFRvYXN0VGl0bGUsXG4gIFRvYXN0Vmlld3BvcnQsXG59XG4iXSwibmFtZXMiOlsiUmVhY3QiLCJUb2FzdFByaW1pdGl2ZXMiLCJjdmEiLCJjbiIsIlRvYXN0UHJvdmlkZXIiLCJQcm92aWRlciIsIlRvYXN0Vmlld3BvcnQiLCJmb3J3YXJkUmVmIiwiY2xhc3NOYW1lIiwicHJvcHMiLCJyZWYiLCJWaWV3cG9ydCIsImRpc3BsYXlOYW1lIiwidG9hc3RWYXJpYW50cyIsInZhcmlhbnRzIiwidmFyaWFudCIsImRlZmF1bHQiLCJkZXN0cnVjdGl2ZSIsImRlZmF1bHRWYXJpYW50cyIsIlRvYXN0IiwiUm9vdCIsIlRvYXN0VGl0bGUiLCJUaXRsZSIsIlRvYXN0RGVzY3JpcHRpb24iLCJEZXNjcmlwdGlvbiIsIlRvYXN0Q2xvc2UiLCJDbG9zZSIsInN2ZyIsIndpZHRoIiwiaGVpZ2h0Iiwidmlld0JveCIsImZpbGwiLCJ4bWxucyIsInBhdGgiLCJkIiwiZmlsbFJ1bGUiLCJjbGlwUnVsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/ui/toast.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/components/ui/toaster.tsx":
+/*!***************************************!*\
+ !*** ./src/components/ui/toaster.tsx ***!
+ \***************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ Toaster: () => (/* binding */ Toaster)\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js\");\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var _components_ui_toast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/ui/toast */ \"(ssr)/./src/components/ui/toast.tsx\");\n/* harmony import */ var _hooks_use_toast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/hooks/use-toast */ \"(ssr)/./src/hooks/use-toast.ts\");\n/* __next_internal_client_entry_do_not_use__ Toaster auto */ \n\n\nfunction Toaster() {\n const { toasts } = (0,_hooks_use_toast__WEBPACK_IMPORTED_MODULE_2__.useToast)();\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_toast__WEBPACK_IMPORTED_MODULE_1__.ToastProvider, {\n children: [\n toasts.map(function({ id, title, description, action, ...props }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_toast__WEBPACK_IMPORTED_MODULE_1__.Toast, {\n ...props,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-1\",\n children: [\n title && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_toast__WEBPACK_IMPORTED_MODULE_1__.ToastTitle, {\n children: title\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toaster.tsx\",\n lineNumber: 22,\n columnNumber: 25\n }, this),\n description && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_toast__WEBPACK_IMPORTED_MODULE_1__.ToastDescription, {\n children: description\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toaster.tsx\",\n lineNumber: 24,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toaster.tsx\",\n lineNumber: 21,\n columnNumber: 13\n }, this),\n action,\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_toast__WEBPACK_IMPORTED_MODULE_1__.ToastClose, {}, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toaster.tsx\",\n lineNumber: 28,\n columnNumber: 13\n }, this)\n ]\n }, id, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toaster.tsx\",\n lineNumber: 20,\n columnNumber: 11\n }, this);\n }),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_toast__WEBPACK_IMPORTED_MODULE_1__.ToastViewport, {}, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toaster.tsx\",\n lineNumber: 32,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/toaster.tsx\",\n lineNumber: 17,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy91aS90b2FzdGVyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFTOEI7QUFDYztBQUVyQyxTQUFTTztJQUNkLE1BQU0sRUFBRUMsTUFBTSxFQUFFLEdBQUdGLDBEQUFRQTtJQUUzQixxQkFDRSw4REFBQ0gsK0RBQWFBOztZQUNYSyxPQUFPQyxHQUFHLENBQUMsU0FBVSxFQUFFQyxFQUFFLEVBQUVDLEtBQUssRUFBRUMsV0FBVyxFQUFFQyxNQUFNLEVBQUUsR0FBR0MsT0FBTztnQkFDaEUscUJBQ0UsOERBQUNkLHVEQUFLQTtvQkFBVyxHQUFHYyxLQUFLOztzQ0FDdkIsOERBQUNDOzRCQUFJQyxXQUFVOztnQ0FDWkwsdUJBQVMsOERBQUNQLDREQUFVQTs4Q0FBRU87Ozs7OztnQ0FDdEJDLDZCQUNDLDhEQUFDVixrRUFBZ0JBOzhDQUFFVTs7Ozs7Ozs7Ozs7O3dCQUd0QkM7c0NBQ0QsOERBQUNaLDREQUFVQTs7Ozs7O21CQVJEUzs7Ozs7WUFXaEI7MEJBQ0EsOERBQUNMLCtEQUFhQTs7Ozs7Ozs7Ozs7QUFHcEIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL3VpL3RvYXN0ZXIudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQge1xuICBUb2FzdCxcbiAgVG9hc3RDbG9zZSxcbiAgVG9hc3REZXNjcmlwdGlvbixcbiAgVG9hc3RQcm92aWRlcixcbiAgVG9hc3RUaXRsZSxcbiAgVG9hc3RWaWV3cG9ydCxcbn0gZnJvbSAnQC9jb21wb25lbnRzL3VpL3RvYXN0J1xuaW1wb3J0IHsgdXNlVG9hc3QgfSBmcm9tICdAL2hvb2tzL3VzZS10b2FzdCdcblxuZXhwb3J0IGZ1bmN0aW9uIFRvYXN0ZXIoKSB7XG4gIGNvbnN0IHsgdG9hc3RzIH0gPSB1c2VUb2FzdCgpXG5cbiAgcmV0dXJuIChcbiAgICA8VG9hc3RQcm92aWRlcj5cbiAgICAgIHt0b2FzdHMubWFwKGZ1bmN0aW9uICh7IGlkLCB0aXRsZSwgZGVzY3JpcHRpb24sIGFjdGlvbiwgLi4ucHJvcHMgfSkge1xuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgIDxUb2FzdCBrZXk9e2lkfSB7Li4ucHJvcHN9PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC0xXCI+XG4gICAgICAgICAgICAgIHt0aXRsZSAmJiA8VG9hc3RUaXRsZT57dGl0bGV9PC9Ub2FzdFRpdGxlPn1cbiAgICAgICAgICAgICAge2Rlc2NyaXB0aW9uICYmIChcbiAgICAgICAgICAgICAgICA8VG9hc3REZXNjcmlwdGlvbj57ZGVzY3JpcHRpb259PC9Ub2FzdERlc2NyaXB0aW9uPlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7YWN0aW9ufVxuICAgICAgICAgICAgPFRvYXN0Q2xvc2UgLz5cbiAgICAgICAgICA8L1RvYXN0PlxuICAgICAgICApXG4gICAgICB9KX1cbiAgICAgIDxUb2FzdFZpZXdwb3J0IC8+XG4gICAgPC9Ub2FzdFByb3ZpZGVyPlxuICApXG59XG4iXSwibmFtZXMiOlsiVG9hc3QiLCJUb2FzdENsb3NlIiwiVG9hc3REZXNjcmlwdGlvbiIsIlRvYXN0UHJvdmlkZXIiLCJUb2FzdFRpdGxlIiwiVG9hc3RWaWV3cG9ydCIsInVzZVRvYXN0IiwiVG9hc3RlciIsInRvYXN0cyIsIm1hcCIsImlkIiwidGl0bGUiLCJkZXNjcmlwdGlvbiIsImFjdGlvbiIsInByb3BzIiwiZGl2IiwiY2xhc3NOYW1lIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/ui/toaster.tsx\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/hooks/use-toast.ts":
+/*!********************************!*\
+ !*** ./src/hooks/use-toast.ts ***!
+ \********************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ toast: () => (/* binding */ toast),\n/* harmony export */ useToast: () => (/* binding */ useToast)\n/* harmony export */ });\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_0__);\n/* __next_internal_client_entry_do_not_use__ useToast,toast auto */ \nconst TOAST_LIMIT = 3;\nconst TOAST_REMOVE_DELAY = 1000000;\nconst actionTypes = {\n ADD_TOAST: 'ADD_TOAST',\n UPDATE_TOAST: 'UPDATE_TOAST',\n DISMISS_TOAST: 'DISMISS_TOAST',\n REMOVE_TOAST: 'REMOVE_TOAST'\n};\nlet count = 0;\nfunction genId() {\n count = (count + 1) % Number.MAX_SAFE_INTEGER;\n return count.toString();\n}\nconst reducer = (state, action)=>{\n switch(action.type){\n case actionTypes.ADD_TOAST:\n return {\n ...state,\n toasts: [\n action.toast,\n ...state.toasts\n ].slice(0, TOAST_LIMIT)\n };\n case actionTypes.DISMISS_TOAST:\n {\n const { toastId } = action;\n return {\n ...state,\n toasts: state.toasts.map((toast)=>toast.id === toastId ? {\n ...toast,\n status: 'error'\n } : toast)\n };\n }\n case actionTypes.REMOVE_TOAST:\n return {\n ...state,\n toasts: state.toasts.filter((toast)=>toast.id !== action.toastId)\n };\n }\n};\nconst listeners = [];\nlet memoryState = {\n toasts: []\n};\nfunction dispatch(action) {\n memoryState = reducer(memoryState, action);\n listeners.forEach((listener)=>{\n listener(memoryState);\n });\n}\nfunction toast({ ...props }) {\n const id = genId();\n const update = (props)=>dispatch({\n type: actionTypes.UPDATE_TOAST,\n toast: {\n ...props,\n id\n }\n });\n const dismiss = ()=>dispatch({\n type: actionTypes.DISMISS_TOAST,\n toastId: id\n });\n dispatch({\n type: actionTypes.ADD_TOAST,\n toast: {\n ...props,\n id,\n status: props.status ?? 'info',\n title: props.title,\n description: props.description,\n action: props.action\n }\n });\n return {\n id: id,\n dismiss,\n update\n };\n}\nfunction useToast() {\n const [state, setState] = react__WEBPACK_IMPORTED_MODULE_0__.useState(memoryState);\n react__WEBPACK_IMPORTED_MODULE_0__.useEffect({\n \"useToast.useEffect\": ()=>{\n listeners.push(setState);\n return ({\n \"useToast.useEffect\": ()=>{\n const index = listeners.indexOf(setState);\n if (index > -1) {\n listeners.splice(index, 1);\n }\n }\n })[\"useToast.useEffect\"];\n }\n }[\"useToast.useEffect\"], [\n state\n ]);\n return {\n ...state,\n toast,\n dismiss: (toastId)=>dispatch({\n type: actionTypes.DISMISS_TOAST,\n toastId\n })\n };\n}\n\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvaG9va3MvdXNlLXRvYXN0LnRzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7b0VBRThCO0FBRTlCLE1BQU1DLGNBQWM7QUFDcEIsTUFBTUMscUJBQXFCO0FBVTNCLE1BQU1DLGNBQWM7SUFDbEJDLFdBQVc7SUFDWEMsY0FBYztJQUNkQyxlQUFlO0lBQ2ZDLGNBQWM7QUFDaEI7QUFFQSxJQUFJQyxRQUFRO0FBRVosU0FBU0M7SUFDUEQsUUFBUSxDQUFDQSxRQUFRLEtBQUtFLE9BQU9DLGdCQUFnQjtJQUM3QyxPQUFPSCxNQUFNSSxRQUFRO0FBQ3ZCO0FBb0JBLE1BQU1DLFVBQVUsQ0FBQ0MsT0FBY0M7SUFDN0IsT0FBUUEsT0FBT0MsSUFBSTtRQUNqQixLQUFLYixZQUFZQyxTQUFTO1lBQ3hCLE9BQU87Z0JBQ0wsR0FBR1UsS0FBSztnQkFDUkcsUUFBUTtvQkFBQ0YsT0FBT0csS0FBSzt1QkFBS0osTUFBTUcsTUFBTTtpQkFBQyxDQUFDRSxLQUFLLENBQUMsR0FBR2xCO1lBQ25EO1FBRUYsS0FBS0UsWUFBWUcsYUFBYTtZQUFFO2dCQUM5QixNQUFNLEVBQUVjLE9BQU8sRUFBRSxHQUFHTDtnQkFFcEIsT0FBTztvQkFDTCxHQUFHRCxLQUFLO29CQUNSRyxRQUFRSCxNQUFNRyxNQUFNLENBQUNJLEdBQUcsQ0FBQyxDQUFDSCxRQUN4QkEsTUFBTUksRUFBRSxLQUFLRixVQUFVOzRCQUFFLEdBQUdGLEtBQUs7NEJBQUVLLFFBQVE7d0JBQVEsSUFBSUw7Z0JBRTNEO1lBQ0Y7UUFDQSxLQUFLZixZQUFZSSxZQUFZO1lBQzNCLE9BQU87Z0JBQ0wsR0FBR08sS0FBSztnQkFDUkcsUUFBUUgsTUFBTUcsTUFBTSxDQUFDTyxNQUFNLENBQUMsQ0FBQ04sUUFBVUEsTUFBTUksRUFBRSxLQUFLUCxPQUFPSyxPQUFPO1lBQ3BFO0lBQ0o7QUFDRjtBQUVBLE1BQU1LLFlBQTJDLEVBQUU7QUFFbkQsSUFBSUMsY0FBcUI7SUFBRVQsUUFBUSxFQUFFO0FBQUM7QUFFdEMsU0FBU1UsU0FBU1osTUFBYztJQUM5QlcsY0FBY2IsUUFBUWEsYUFBYVg7SUFDbkNVLFVBQVVHLE9BQU8sQ0FBQyxDQUFDQztRQUNqQkEsU0FBU0g7SUFDWDtBQUNGO0FBRUEsU0FBU1IsTUFBTSxFQUFFLEdBQUdZLE9BQXFCO0lBQ3ZDLE1BQU1SLEtBQUtiO0lBRVgsTUFBTXNCLFNBQVMsQ0FBQ0QsUUFDZEgsU0FBUztZQUNQWCxNQUFNYixZQUFZRSxZQUFZO1lBQzlCYSxPQUFPO2dCQUFFLEdBQUdZLEtBQUs7Z0JBQUVSO1lBQUc7UUFDeEI7SUFFRixNQUFNVSxVQUFVLElBQ2RMLFNBQVM7WUFBRVgsTUFBTWIsWUFBWUcsYUFBYTtZQUFFYyxTQUFTRTtRQUFHO0lBRTFESyxTQUFTO1FBQ1BYLE1BQU1iLFlBQVlDLFNBQVM7UUFDM0JjLE9BQU87WUFDTCxHQUFHWSxLQUFLO1lBQ1JSO1lBQ0FDLFFBQVFPLE1BQU1QLE1BQU0sSUFBSTtZQUN4QlUsT0FBT0gsTUFBTUcsS0FBSztZQUNsQkMsYUFBYUosTUFBTUksV0FBVztZQUM5Qm5CLFFBQVFlLE1BQU1mLE1BQU07UUFDdEI7SUFDRjtJQUVBLE9BQU87UUFDTE8sSUFBSUE7UUFDSlU7UUFDQUQ7SUFDRjtBQUNGO0FBRUEsU0FBU0k7SUFDUCxNQUFNLENBQUNyQixPQUFPc0IsU0FBUyxHQUFHcEMsMkNBQWMsQ0FBUTBCO0lBRWhEMUIsNENBQWU7OEJBQUM7WUFDZHlCLFVBQVVjLElBQUksQ0FBQ0g7WUFDZjtzQ0FBTztvQkFDTCxNQUFNSSxRQUFRZixVQUFVZ0IsT0FBTyxDQUFDTDtvQkFDaEMsSUFBSUksUUFBUSxDQUFDLEdBQUc7d0JBQ2RmLFVBQVVpQixNQUFNLENBQUNGLE9BQU87b0JBQzFCO2dCQUNGOztRQUNGOzZCQUFHO1FBQUMxQjtLQUFNO0lBRVYsT0FBTztRQUNMLEdBQUdBLEtBQUs7UUFDUkk7UUFDQWMsU0FBUyxDQUFDWixVQUNSTyxTQUFTO2dCQUFFWCxNQUFNYixZQUFZRyxhQUFhO2dCQUFFYztZQUFRO0lBQ3hEO0FBQ0Y7QUFFMEIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9ob29rcy91c2UtdG9hc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBUT0FTVF9MSU1JVCA9IDNcbmNvbnN0IFRPQVNUX1JFTU9WRV9ERUxBWSA9IDEwMDAwMDBcblxudHlwZSBUb2FzdGVyVG9hc3QgPSB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU/OiBSZWFjdC5SZWFjdE5vZGVcbiAgZGVzY3JpcHRpb24/OiBSZWFjdC5SZWFjdE5vZGVcbiAgYWN0aW9uPzogUmVhY3QuUmVhY3ROb2RlXG4gIHN0YXR1cz86ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnaW5mbycgfCAnd2FybmluZydcbn1cblxuY29uc3QgYWN0aW9uVHlwZXMgPSB7XG4gIEFERF9UT0FTVDogJ0FERF9UT0FTVCcsXG4gIFVQREFURV9UT0FTVDogJ1VQREFURV9UT0FTVCcsXG4gIERJU01JU1NfVE9BU1Q6ICdESVNNSVNTX1RPQVNUJyxcbiAgUkVNT1ZFX1RPQVNUOiAnUkVNT1ZFX1RPQVNUJyxcbn0gYXMgY29uc3RcblxubGV0IGNvdW50ID0gMFxuXG5mdW5jdGlvbiBnZW5JZCgpIHtcbiAgY291bnQgPSAoY291bnQgKyAxKSAlIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXG4gIHJldHVybiBjb3VudC50b1N0cmluZygpXG59XG5cbnR5cGUgU3RhdGUgPSB7XG4gIHRvYXN0czogVG9hc3RlclRvYXN0W11cbn1cblxudHlwZSBBY3Rpb24gPVxuICB8IHtcbiAgICAgIHR5cGU6IHR5cGVvZiBhY3Rpb25UeXBlcy5BRERfVE9BU1RcbiAgICAgIHRvYXN0OiBUb2FzdGVyVG9hc3RcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogdHlwZW9mIGFjdGlvblR5cGVzLkRJU01JU1NfVE9BU1RcbiAgICAgIHRvYXN0SWQ/OiBUb2FzdGVyVG9hc3RbJ2lkJ11cbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogdHlwZW9mIGFjdGlvblR5cGVzLlJFTU9WRV9UT0FTVFxuICAgICAgdG9hc3RJZD86IFRvYXN0ZXJUb2FzdFsnaWQnXVxuICAgIH1cblxuY29uc3QgcmVkdWNlciA9IChzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUgPT4ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBhY3Rpb25UeXBlcy5BRERfVE9BU1Q6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdG9hc3RzOiBbYWN0aW9uLnRvYXN0LCAuLi5zdGF0ZS50b2FzdHNdLnNsaWNlKDAsIFRPQVNUX0xJTUlUKSxcbiAgICAgIH1cblxuICAgIGNhc2UgYWN0aW9uVHlwZXMuRElTTUlTU19UT0FTVDoge1xuICAgICAgY29uc3QgeyB0b2FzdElkIH0gPSBhY3Rpb25cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRvYXN0czogc3RhdGUudG9hc3RzLm1hcCgodG9hc3QpID0+XG4gICAgICAgICAgdG9hc3QuaWQgPT09IHRvYXN0SWQgPyB7IC4uLnRvYXN0LCBzdGF0dXM6ICdlcnJvcicgfSA6IHRvYXN0XG4gICAgICAgICksXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgYWN0aW9uVHlwZXMuUkVNT1ZFX1RPQVNUOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRvYXN0czogc3RhdGUudG9hc3RzLmZpbHRlcigodG9hc3QpID0+IHRvYXN0LmlkICE9PSBhY3Rpb24udG9hc3RJZCksXG4gICAgICB9XG4gIH1cbn1cblxuY29uc3QgbGlzdGVuZXJzOiBBcnJheTwoc3RhdGU6IFN0YXRlKSA9PiB2b2lkPiA9IFtdXG5cbmxldCBtZW1vcnlTdGF0ZTogU3RhdGUgPSB7IHRvYXN0czogW10gfVxuXG5mdW5jdGlvbiBkaXNwYXRjaChhY3Rpb246IEFjdGlvbikge1xuICBtZW1vcnlTdGF0ZSA9IHJlZHVjZXIobWVtb3J5U3RhdGUsIGFjdGlvbilcbiAgbGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiB7XG4gICAgbGlzdGVuZXIobWVtb3J5U3RhdGUpXG4gIH0pXG59XG5cbmZ1bmN0aW9uIHRvYXN0KHsgLi4ucHJvcHMgfTogVG9hc3RlclRvYXN0KSB7XG4gIGNvbnN0IGlkID0gZ2VuSWQoKVxuXG4gIGNvbnN0IHVwZGF0ZSA9IChwcm9wcz86IFRvYXN0ZXJUb2FzdCkgPT5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBhY3Rpb25UeXBlcy5VUERBVEVfVE9BU1QsXG4gICAgICB0b2FzdDogeyAuLi5wcm9wcywgaWQgfSxcbiAgICB9KVxuXG4gIGNvbnN0IGRpc21pc3MgPSAoKSA9PlxuICAgIGRpc3BhdGNoKHsgdHlwZTogYWN0aW9uVHlwZXMuRElTTUlTU19UT0FTVCwgdG9hc3RJZDogaWQgfSlcblxuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogYWN0aW9uVHlwZXMuQUREX1RPQVNULFxuICAgIHRvYXN0OiB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGlkLFxuICAgICAgc3RhdHVzOiBwcm9wcy5zdGF0dXMgPz8gJ2luZm8nLFxuICAgICAgdGl0bGU6IHByb3BzLnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgYWN0aW9uOiBwcm9wcy5hY3Rpb24sXG4gICAgfSxcbiAgfSlcblxuICByZXR1cm4ge1xuICAgIGlkOiBpZCxcbiAgICBkaXNtaXNzLFxuICAgIHVwZGF0ZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VUb2FzdCgpIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSBSZWFjdC51c2VTdGF0ZTxTdGF0ZT4obWVtb3J5U3RhdGUpXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBsaXN0ZW5lcnMucHVzaChzZXRTdGF0ZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBsaXN0ZW5lcnMuaW5kZXhPZihzZXRTdGF0ZSlcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIGxpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpXG4gICAgICB9XG4gICAgfVxuICB9LCBbc3RhdGVdKVxuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgdG9hc3QsXG4gICAgZGlzbWlzczogKHRvYXN0SWQ/OiBzdHJpbmcpID0+XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6IGFjdGlvblR5cGVzLkRJU01JU1NfVE9BU1QsIHRvYXN0SWQgfSksXG4gIH1cbn1cblxuZXhwb3J0IHsgdXNlVG9hc3QsIHRvYXN0IH1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlRPQVNUX0xJTUlUIiwiVE9BU1RfUkVNT1ZFX0RFTEFZIiwiYWN0aW9uVHlwZXMiLCJBRERfVE9BU1QiLCJVUERBVEVfVE9BU1QiLCJESVNNSVNTX1RPQVNUIiwiUkVNT1ZFX1RPQVNUIiwiY291bnQiLCJnZW5JZCIsIk51bWJlciIsIk1BWF9TQUZFX0lOVEVHRVIiLCJ0b1N0cmluZyIsInJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsInR5cGUiLCJ0b2FzdHMiLCJ0b2FzdCIsInNsaWNlIiwidG9hc3RJZCIsIm1hcCIsImlkIiwic3RhdHVzIiwiZmlsdGVyIiwibGlzdGVuZXJzIiwibWVtb3J5U3RhdGUiLCJkaXNwYXRjaCIsImZvckVhY2giLCJsaXN0ZW5lciIsInByb3BzIiwidXBkYXRlIiwiZGlzbWlzcyIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJ1c2VUb2FzdCIsInNldFN0YXRlIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJwdXNoIiwiaW5kZXgiLCJpbmRleE9mIiwic3BsaWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/hooks/use-toast.ts\n");
+
+/***/ }),
+
+/***/ "(ssr)/./src/lib/utils.ts":
+/*!**************************!*\
+ !*** ./src/lib/utils.ts ***!
+ \**************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ cn: () => (/* binding */ cn)\n/* harmony export */ });\n/* harmony import */ var clsx__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! clsx */ \"(ssr)/./node_modules/clsx/dist/clsx.mjs\");\n/* harmony import */ var tailwind_merge__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! tailwind-merge */ \"(ssr)/./node_modules/tailwind-merge/dist/bundle-mjs.mjs\");\n\n\nfunction cn(...inputs) {\n return (0,tailwind_merge__WEBPACK_IMPORTED_MODULE_1__.twMerge)((0,clsx__WEBPACK_IMPORTED_MODULE_0__.clsx)(inputs));\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvbGliL3V0aWxzLnRzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE0QztBQUNKO0FBRWpDLFNBQVNFLEdBQUcsR0FBR0MsTUFBb0I7SUFDeEMsT0FBT0YsdURBQU9BLENBQUNELDBDQUFJQSxDQUFDRztBQUN0QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2xpYi91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBjbHN4LCB0eXBlIENsYXNzVmFsdWUgfSBmcm9tIFwiY2xzeFwiXG5pbXBvcnQgeyB0d01lcmdlIH0gZnJvbSBcInRhaWx3aW5kLW1lcmdlXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGNuKC4uLmlucHV0czogQ2xhc3NWYWx1ZVtdKSB7XG4gIHJldHVybiB0d01lcmdlKGNsc3goaW5wdXRzKSlcbn1cbiJdLCJuYW1lcyI6WyJjbHN4IiwidHdNZXJnZSIsImNuIiwiaW5wdXRzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/lib/utils.ts\n");
+
+/***/ }),
+
+/***/ "../app-render/action-async-storage.external":
+/*!*******************************************************************************!*\
+ !*** external "next/dist/server/app-render/action-async-storage.external.js" ***!
+ \*******************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/server/app-render/action-async-storage.external.js");
+
+/***/ }),
+
+/***/ "../app-render/after-task-async-storage.external":
+/*!***********************************************************************************!*\
+ !*** external "next/dist/server/app-render/after-task-async-storage.external.js" ***!
+ \***********************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/server/app-render/after-task-async-storage.external.js");
+
+/***/ }),
+
+/***/ "../app-render/dynamic-access-async-storage.external":
+/*!***************************************************************************************!*\
+ !*** external "next/dist/server/app-render/dynamic-access-async-storage.external.js" ***!
+ \***************************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/server/app-render/dynamic-access-async-storage.external.js");
+
+/***/ }),
+
+/***/ "./work-async-storage.external":
+/*!*****************************************************************************!*\
+ !*** external "next/dist/server/app-render/work-async-storage.external.js" ***!
+ \*****************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/server/app-render/work-async-storage.external.js");
+
+/***/ }),
+
+/***/ "./work-unit-async-storage.external":
+/*!**********************************************************************************!*\
+ !*** external "next/dist/server/app-render/work-unit-async-storage.external.js" ***!
+ \**********************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/server/app-render/work-unit-async-storage.external.js");
+
+/***/ }),
+
+/***/ "async_hooks":
+/*!******************************!*\
+ !*** external "async_hooks" ***!
+ \******************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("async_hooks");
+
+/***/ }),
+
+/***/ "child_process":
+/*!********************************!*\
+ !*** external "child_process" ***!
+ \********************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("child_process");
+
+/***/ }),
+
+/***/ "crypto":
+/*!*************************!*\
+ !*** external "crypto" ***!
+ \*************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("crypto");
+
+/***/ }),
+
+/***/ "diagnostics_channel":
+/*!**************************************!*\
+ !*** external "diagnostics_channel" ***!
+ \**************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("diagnostics_channel");
+
+/***/ }),
+
+/***/ "events":
+/*!*************************!*\
+ !*** external "events" ***!
+ \*************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("events");
+
+/***/ }),
+
+/***/ "fs":
+/*!*********************!*\
+ !*** external "fs" ***!
+ \*********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("fs");
+
+/***/ }),
+
+/***/ "import-in-the-middle":
+/*!***************************************!*\
+ !*** external "import-in-the-middle" ***!
+ \***************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("import-in-the-middle");
+
+/***/ }),
+
+/***/ "module":
+/*!*************************!*\
+ !*** external "module" ***!
+ \*************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("module");
+
+/***/ }),
+
+/***/ "next/dist/compiled/next-server/app-page.runtime.dev.js":
+/*!*************************************************************************!*\
+ !*** external "next/dist/compiled/next-server/app-page.runtime.dev.js" ***!
+ \*************************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/compiled/next-server/app-page.runtime.dev.js");
+
+/***/ }),
+
+/***/ "next/dist/shared/lib/no-fallback-error.external":
+/*!******************************************************************!*\
+ !*** external "next/dist/shared/lib/no-fallback-error.external" ***!
+ \******************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/shared/lib/no-fallback-error.external");
+
+/***/ }),
+
+/***/ "next/dist/shared/lib/router/utils/app-paths":
+/*!**************************************************************!*\
+ !*** external "next/dist/shared/lib/router/utils/app-paths" ***!
+ \**************************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/shared/lib/router/utils/app-paths");
+
+/***/ }),
+
+/***/ "next/dist/shared/lib/router/utils/is-bot":
+/*!***********************************************************!*\
+ !*** external "next/dist/shared/lib/router/utils/is-bot" ***!
+ \***********************************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("next/dist/shared/lib/router/utils/is-bot");
+
+/***/ }),
+
+/***/ "node:child_process":
+/*!*************************************!*\
+ !*** external "node:child_process" ***!
+ \*************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:child_process");
+
+/***/ }),
+
+/***/ "node:diagnostics_channel":
+/*!*******************************************!*\
+ !*** external "node:diagnostics_channel" ***!
+ \*******************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:diagnostics_channel");
+
+/***/ }),
+
+/***/ "node:fs":
+/*!**************************!*\
+ !*** external "node:fs" ***!
+ \**************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:fs");
+
+/***/ }),
+
+/***/ "node:http":
+/*!****************************!*\
+ !*** external "node:http" ***!
+ \****************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:http");
+
+/***/ }),
+
+/***/ "node:https":
+/*!*****************************!*\
+ !*** external "node:https" ***!
+ \*****************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:https");
+
+/***/ }),
+
+/***/ "node:inspector":
+/*!*********************************!*\
+ !*** external "node:inspector" ***!
+ \*********************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:inspector");
+
+/***/ }),
+
+/***/ "node:net":
+/*!***************************!*\
+ !*** external "node:net" ***!
+ \***************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:net");
+
+/***/ }),
+
+/***/ "node:os":
+/*!**************************!*\
+ !*** external "node:os" ***!
+ \**************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:os");
+
+/***/ }),
+
+/***/ "node:path":
+/*!****************************!*\
+ !*** external "node:path" ***!
+ \****************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:path");
+
+/***/ }),
+
+/***/ "node:readline":
+/*!********************************!*\
+ !*** external "node:readline" ***!
+ \********************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:readline");
+
+/***/ }),
+
+/***/ "node:stream":
+/*!******************************!*\
+ !*** external "node:stream" ***!
+ \******************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:stream");
+
+/***/ }),
+
+/***/ "node:tls":
+/*!***************************!*\
+ !*** external "node:tls" ***!
+ \***************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:tls");
+
+/***/ }),
+
+/***/ "node:util":
+/*!****************************!*\
+ !*** external "node:util" ***!
+ \****************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:util");
+
+/***/ }),
+
+/***/ "node:worker_threads":
+/*!**************************************!*\
+ !*** external "node:worker_threads" ***!
+ \**************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:worker_threads");
+
+/***/ }),
+
+/***/ "node:zlib":
+/*!****************************!*\
+ !*** external "node:zlib" ***!
+ \****************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("node:zlib");
+
+/***/ }),
+
+/***/ "os":
+/*!*********************!*\
+ !*** external "os" ***!
+ \*********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("os");
+
+/***/ }),
+
+/***/ "path":
+/*!***********************!*\
+ !*** external "path" ***!
+ \***********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("path");
+
+/***/ }),
+
+/***/ "perf_hooks":
+/*!*****************************!*\
+ !*** external "perf_hooks" ***!
+ \*****************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("perf_hooks");
+
+/***/ }),
+
+/***/ "process":
+/*!**************************!*\
+ !*** external "process" ***!
+ \**************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("process");
+
+/***/ }),
+
+/***/ "require-in-the-middle":
+/*!****************************************!*\
+ !*** external "require-in-the-middle" ***!
+ \****************************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("require-in-the-middle");
+
+/***/ }),
+
+/***/ "tty":
+/*!**********************!*\
+ !*** external "tty" ***!
+ \**********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("tty");
+
+/***/ }),
+
+/***/ "url":
+/*!**********************!*\
+ !*** external "url" ***!
+ \**********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("url");
+
+/***/ }),
+
+/***/ "util":
+/*!***********************!*\
+ !*** external "util" ***!
+ \***********************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("util");
+
+/***/ }),
+
+/***/ "worker_threads":
+/*!*********************************!*\
+ !*** external "worker_threads" ***!
+ \*********************************/
+/***/ ((module) => {
+
+"use strict";
+module.exports = require("worker_threads");
+
+/***/ })
+
+};
+;
+
+// load runtime
+var __webpack_require__ = require("../../webpack-runtime.js");
+__webpack_require__.C(exports);
+var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
+var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/@opentelemetry","vendor-chunks/next","vendor-chunks/@sentry","vendor-chunks/@prisma","vendor-chunks/semver","vendor-chunks/color-convert","vendor-chunks/is-core-module","vendor-chunks/forwarded-parse","vendor-chunks/color-name","vendor-chunks/ansi-styles","vendor-chunks/stacktrace-parser","vendor-chunks/shimmer","vendor-chunks/supports-color","vendor-chunks/function-bind","vendor-chunks/path-parse","vendor-chunks/balanced-match","vendor-chunks/@swc","vendor-chunks/has-flag","vendor-chunks/hasown","vendor-chunks/next-auth","vendor-chunks/@babel","vendor-chunks/framer-motion","vendor-chunks/motion-dom","vendor-chunks/@radix-ui","vendor-chunks/tailwind-merge","vendor-chunks/motion-utils","vendor-chunks/next-themes","vendor-chunks/class-variance-authority","vendor-chunks/clsx"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-not-found.js&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!")));
+module.exports = __webpack_exports__;
+
+})();
\ No newline at end of file
diff --git a/.next/server/app/_not-found/page_client-reference-manifest.js b/.next/server/app/_not-found/page_client-reference-manifest.js
new file mode 100644
index 0000000..81c3b12
--- /dev/null
+++ b/.next/server/app/_not-found/page_client-reference-manifest.js
@@ -0,0 +1 @@
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_not-found/page"]={"moduleLoading":{"prefix":"/_next/"},"ssrModuleMapping":{"(app-pages-browser)/./src/app/global-error.tsx":{"*":{"id":"(ssr)/./src/app/global-error.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/components/Footer.tsx":{"*":{"id":"(ssr)/./src/components/Footer.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/components/Navigation.tsx":{"*":{"id":"(ssr)/./src/components/Navigation.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/components/Providers.tsx":{"*":{"id":"(ssr)/./src/components/Providers.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/components/TrackingOptOutBanner.tsx":{"*":{"id":"(ssr)/./src/components/TrackingOptOutBanner.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/page.tsx":{"*":{"id":"(ssr)/./src/app/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/metadata/async-metadata.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/metadata/async-metadata.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/metadata/metadata-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"*":{"id":"(ssr)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js":{"*":{"id":"(ssr)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/app-dir/link.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/app-dir/link.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/projects/ProjectsPageClient.tsx":{"*":{"id":"(ssr)/./src/app/projects/ProjectsPageClient.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/components/ui/ImageWithFallback.tsx":{"*":{"id":"(ssr)/./src/components/ui/ImageWithFallback.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/global-error.tsx":{"id":"(app-pages-browser)/./src/app/global-error.tsx","name":"*","chunks":["app/global-error","static/chunks/app/global-error.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/globals.css":{"id":"(app-pages-browser)/./src/app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/DMSerifText-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/DMSerifText-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"}],\"variable\":\"--font-dmserif\",\"display\":\"swap\"}],\"variableName\":\"dmserif\"}":{"id":"(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/DMSerifText-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/DMSerifText-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"}],\"variable\":\"--font-dmserif\",\"display\":\"swap\"}],\"variableName\":\"dmserif\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Bentham-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"}],\"variable\":\"--font-bentham\",\"display\":\"swap\"}],\"variableName\":\"bentham\"}":{"id":"(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Bentham-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"}],\"variable\":\"--font-bentham\",\"display\":\"swap\"}],\"variableName\":\"bentham\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Rajdhani/Rajdhani-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-rajdhani\",\"display\":\"swap\"}],\"variableName\":\"rajdhani\"}":{"id":"(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Rajdhani/Rajdhani-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-rajdhani\",\"display\":\"swap\"}],\"variableName\":\"rajdhani\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Share/Share-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Share/Share-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-share\",\"display\":\"swap\"}],\"variableName\":\"share\"}":{"id":"(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Share/Share-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Share/Share-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-share\",\"display\":\"swap\"}],\"variableName\":\"share\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Kanit/Kanit-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-MediumItalic.ttf\",\"weight\":\"500\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBoldItalic.ttf\",\"weight\":\"600\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-BoldItalic.ttf\",\"weight\":\"700\",\"style\":\"italic\"}],\"variable\":\"--font-kanit\",\"display\":\"swap\"}],\"variableName\":\"kanit\"}":{"id":"(app-pages-browser)/./node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Kanit/Kanit-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-MediumItalic.ttf\",\"weight\":\"500\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBoldItalic.ttf\",\"weight\":\"600\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-BoldItalic.ttf\",\"weight\":\"700\",\"style\":\"italic\"}],\"variable\":\"--font-kanit\",\"display\":\"swap\"}],\"variableName\":\"kanit\"}","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Footer.tsx":{"id":"(app-pages-browser)/./src/components/Footer.tsx","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Navigation.tsx":{"id":"(app-pages-browser)/./src/components/Navigation.tsx","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Providers.tsx":{"id":"(app-pages-browser)/./src/components/Providers.tsx","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/TrackingOptOutBanner.tsx":{"id":"(app-pages-browser)/./src/components/TrackingOptOutBanner.tsx","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/page.tsx":{"id":"(app-pages-browser)/./src/app/page.tsx","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/client-segment.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/esm/client/components/client-segment.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/esm/client/components/http-access-fallback/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/metadata/async-metadata.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/metadata/async-metadata.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/esm/client/components/metadata/async-metadata.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/metadata/async-metadata.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/metadata/metadata-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/esm/client/components/metadata/metadata-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/metadata/metadata-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"id":"(app-pages-browser)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/esm/lib/metadata/generate/icon-mark.js":{"id":"(app-pages-browser)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js":{"id":"(app-pages-browser)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/esm/next-devtools/userspace/app/segment-explorer-node.js":{"id":"(app-pages-browser)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/app-dir/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/app-dir/link.js","name":"*","chunks":[],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/esm/client/app-dir/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/app-dir/link.js","name":"*","chunks":[],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx":{"id":"(app-pages-browser)/./src/app/projects/ProjectsPageClient.tsx","name":"*","chunks":[],"async":false},"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/ImageWithFallback.tsx":{"id":"(app-pages-browser)/./src/components/ui/ImageWithFallback.tsx","name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/":[],"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/global-error":[],"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/layout":[{"inlined":false,"path":"static/css/app/layout.css"}],"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/page":[],"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/_not-found/page":[]},"rscModuleMapping":{"(app-pages-browser)/./src/app/global-error.tsx":{"*":{"id":"(rsc)/./src/app/global-error.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/globals.css":{"*":{"id":"(rsc)/./src/app/globals.css","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/components/Footer.tsx":{"*":{"id":"(rsc)/./src/components/Footer.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/components/Navigation.tsx":{"*":{"id":"(rsc)/./src/components/Navigation.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/components/Providers.tsx":{"*":{"id":"(rsc)/./src/components/Providers.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/components/TrackingOptOutBanner.tsx":{"*":{"id":"(rsc)/./src/components/TrackingOptOutBanner.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/page.tsx":{"*":{"id":"(rsc)/./src/app/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/client-segment.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/metadata/async-metadata.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/metadata/async-metadata.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/metadata/metadata-boundary.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/metadata/metadata-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js":{"*":{"id":"(rsc)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js":{"*":{"id":"(rsc)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/app-dir/link.js":{"*":{"id":"(rsc)/./node_modules/next/dist/client/app-dir/link.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/app/projects/ProjectsPageClient.tsx":{"*":{"id":"(rsc)/./src/app/projects/ProjectsPageClient.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./src/components/ui/ImageWithFallback.tsx":{"*":{"id":"(rsc)/./src/components/ui/ImageWithFallback.tsx","name":"*","chunks":[],"async":false}}},"edgeRscModuleMapping":{}}
\ No newline at end of file
diff --git a/.next/server/app/page.js b/.next/server/app/page.js
index dd85b71..e98bf97 100644
--- a/.next/server/app/page.js
+++ b/.next/server/app/page.js
@@ -1076,7 +1076,7 @@ module.exports = require("worker_threads");
var __webpack_require__ = require("../webpack-runtime.js");
__webpack_require__.C(exports);
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
-var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/@opentelemetry","vendor-chunks/@sentry","vendor-chunks/next","vendor-chunks/@prisma","vendor-chunks/semver","vendor-chunks/color-convert","vendor-chunks/is-core-module","vendor-chunks/forwarded-parse","vendor-chunks/color-name","vendor-chunks/ansi-styles","vendor-chunks/stacktrace-parser","vendor-chunks/shimmer","vendor-chunks/supports-color","vendor-chunks/function-bind","vendor-chunks/path-parse","vendor-chunks/balanced-match","vendor-chunks/@swc","vendor-chunks/has-flag","vendor-chunks/hasown","vendor-chunks/@tsparticles","vendor-chunks/framer-motion","vendor-chunks/motion-dom","vendor-chunks/@babel","vendor-chunks/motion-utils","vendor-chunks/@radix-ui","vendor-chunks/next-auth","vendor-chunks/@tabler","vendor-chunks/tailwind-merge","vendor-chunks/next-themes","vendor-chunks/lenis","vendor-chunks/clsx","vendor-chunks/class-variance-authority"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!")));
+var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/@opentelemetry","vendor-chunks/next","vendor-chunks/@sentry","vendor-chunks/@prisma","vendor-chunks/semver","vendor-chunks/color-convert","vendor-chunks/is-core-module","vendor-chunks/forwarded-parse","vendor-chunks/color-name","vendor-chunks/ansi-styles","vendor-chunks/stacktrace-parser","vendor-chunks/shimmer","vendor-chunks/supports-color","vendor-chunks/function-bind","vendor-chunks/path-parse","vendor-chunks/balanced-match","vendor-chunks/@swc","vendor-chunks/has-flag","vendor-chunks/hasown","vendor-chunks/next-auth","vendor-chunks/@babel","vendor-chunks/framer-motion","vendor-chunks/motion-dom","vendor-chunks/@radix-ui","vendor-chunks/tailwind-merge","vendor-chunks/motion-utils","vendor-chunks/next-themes","vendor-chunks/class-variance-authority","vendor-chunks/clsx","vendor-chunks/@tsparticles","vendor-chunks/@tabler","vendor-chunks/lenis"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!")));
module.exports = __webpack_exports__;
})();
\ No newline at end of file
diff --git a/.next/server/instrumentation.js b/.next/server/instrumentation.js
index 0fc9a23..e217d18 100644
--- a/.next/server/instrumentation.js
+++ b/.next/server/instrumentation.js
@@ -418,7 +418,7 @@ module.exports = require("worker_threads");
var __webpack_require__ = require("./webpack-runtime.js");
__webpack_require__.C(exports);
var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
-var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/@opentelemetry","vendor-chunks/@sentry","vendor-chunks/next","vendor-chunks/@prisma","vendor-chunks/semver","vendor-chunks/color-convert","vendor-chunks/is-core-module","vendor-chunks/forwarded-parse","vendor-chunks/color-name","vendor-chunks/ansi-styles","vendor-chunks/stacktrace-parser","vendor-chunks/shimmer","vendor-chunks/supports-color","vendor-chunks/function-bind","vendor-chunks/path-parse","vendor-chunks/balanced-match","vendor-chunks/@swc","vendor-chunks/has-flag","vendor-chunks/hasown"], () => (__webpack_exec__("(instrument)/./src/instrumentation.ts")));
+var __webpack_exports__ = __webpack_require__.X(0, ["vendor-chunks/@opentelemetry","vendor-chunks/next","vendor-chunks/@sentry","vendor-chunks/@prisma","vendor-chunks/semver","vendor-chunks/color-convert","vendor-chunks/is-core-module","vendor-chunks/forwarded-parse","vendor-chunks/color-name","vendor-chunks/ansi-styles","vendor-chunks/stacktrace-parser","vendor-chunks/shimmer","vendor-chunks/supports-color","vendor-chunks/function-bind","vendor-chunks/path-parse","vendor-chunks/balanced-match","vendor-chunks/@swc","vendor-chunks/has-flag","vendor-chunks/hasown"], () => (__webpack_exec__("(instrument)/./src/instrumentation.ts")));
module.exports = __webpack_exports__;
})();
\ No newline at end of file
diff --git a/.next/server/vendor-chunks/@babel.js b/.next/server/vendor-chunks/@babel.js
index 4b516e4..c5d712b 100644
--- a/.next/server/vendor-chunks/@babel.js
+++ b/.next/server/vendor-chunks/@babel.js
@@ -10,6 +10,286 @@ exports.id = "vendor-chunks/@babel";
exports.ids = ["vendor-chunks/@babel"];
exports.modules = {
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/OverloadYield.js":
+/*!**************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/OverloadYield.js ***!
+ \**************************************************************/
+/***/ ((module) => {
+
+eval("function _OverloadYield(e, d) {\n this.v = e, this.k = d;\n}\nmodule.exports = _OverloadYield, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9PdmVybG9hZFlpZWxkLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL092ZXJsb2FkWWllbGQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX092ZXJsb2FkWWllbGQoZSwgZCkge1xuICB0aGlzLnYgPSBlLCB0aGlzLmsgPSBkO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfT3ZlcmxvYWRZaWVsZCwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/OverloadYield.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/assertThisInitialized.js":
+/*!**********************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/assertThisInitialized.js ***!
+ \**********************************************************************/
+/***/ ((module) => {
+
+eval("function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nmodule.exports = _assertThisInitialized, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5Q0FBeUMseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2Fzc2VydFRoaXNJbml0aWFsaXplZChlKSB7XG4gIGlmICh2b2lkIDAgPT09IGUpIHRocm93IG5ldyBSZWZlcmVuY2VFcnJvcihcInRoaXMgaGFzbid0IGJlZW4gaW5pdGlhbGlzZWQgLSBzdXBlcigpIGhhc24ndCBiZWVuIGNhbGxlZFwiKTtcbiAgcmV0dXJuIGU7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9hc3NlcnRUaGlzSW5pdGlhbGl6ZWQsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/assertThisInitialized.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js":
+/*!*****************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/asyncToGenerator.js ***!
+ \*****************************************************************/
+/***/ ((module) => {
+
+eval("function asyncGeneratorStep(n, t, e, r, o, a, c) {\n try {\n var i = n[a](c),\n u = i.value;\n } catch (n) {\n return void e(n);\n }\n i.done ? t(u) : Promise.resolve(u).then(r, o);\n}\nfunction _asyncToGenerator(n) {\n return function () {\n var t = this,\n e = arguments;\n return new Promise(function (r, o) {\n var a = n.apply(t, e);\n function _next(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"next\", n);\n }\n function _throw(n) {\n asyncGeneratorStep(a, r, o, _next, _throw, \"throw\", n);\n }\n _next(void 0);\n });\n };\n}\nmodule.exports = _asyncToGenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLG9DQUFvQyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2FzeW5jVG9HZW5lcmF0b3IuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gYXN5bmNHZW5lcmF0b3JTdGVwKG4sIHQsIGUsIHIsIG8sIGEsIGMpIHtcbiAgdHJ5IHtcbiAgICB2YXIgaSA9IG5bYV0oYyksXG4gICAgICB1ID0gaS52YWx1ZTtcbiAgfSBjYXRjaCAobikge1xuICAgIHJldHVybiB2b2lkIGUobik7XG4gIH1cbiAgaS5kb25lID8gdCh1KSA6IFByb21pc2UucmVzb2x2ZSh1KS50aGVuKHIsIG8pO1xufVxuZnVuY3Rpb24gX2FzeW5jVG9HZW5lcmF0b3Iobikge1xuICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgIHZhciB0ID0gdGhpcyxcbiAgICAgIGUgPSBhcmd1bWVudHM7XG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyLCBvKSB7XG4gICAgICB2YXIgYSA9IG4uYXBwbHkodCwgZSk7XG4gICAgICBmdW5jdGlvbiBfbmV4dChuKSB7XG4gICAgICAgIGFzeW5jR2VuZXJhdG9yU3RlcChhLCByLCBvLCBfbmV4dCwgX3Rocm93LCBcIm5leHRcIiwgbik7XG4gICAgICB9XG4gICAgICBmdW5jdGlvbiBfdGhyb3cobikge1xuICAgICAgICBhc3luY0dlbmVyYXRvclN0ZXAoYSwgciwgbywgX25leHQsIF90aHJvdywgXCJ0aHJvd1wiLCBuKTtcbiAgICAgIH1cbiAgICAgIF9uZXh0KHZvaWQgMCk7XG4gICAgfSk7XG4gIH07XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9hc3luY1RvR2VuZXJhdG9yLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/classCallCheck.js":
+/*!***************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/classCallCheck.js ***!
+ \***************************************************************/
+/***/ ((module) => {
+
+eval("function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n}\nmodule.exports = _classCallCheck, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQSxrQ0FBa0MseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVjay5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfY2xhc3NDYWxsQ2hlY2soYSwgbikge1xuICBpZiAoIShhIGluc3RhbmNlb2YgbikpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJDYW5ub3QgY2FsbCBhIGNsYXNzIGFzIGEgZnVuY3Rpb25cIik7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9jbGFzc0NhbGxDaGVjaywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/classCallCheck.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/construct.js":
+/*!**********************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/construct.js ***!
+ \**********************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var isNativeReflectConstruct = __webpack_require__(/*! ./isNativeReflectConstruct.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\");\nvar setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\nfunction _construct(t, e, r) {\n if (isNativeReflectConstruct()) return Reflect.construct.apply(null, arguments);\n var o = [null];\n o.push.apply(o, e);\n var p = new (t.bind.apply(t, o))();\n return r && setPrototypeOf(p, r.prototype), p;\n}\nmodule.exports = _construct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jb25zdHJ1Y3QuanMiLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCLG1CQUFPLENBQUMsOEdBQStCO0FBQ3RFLHFCQUFxQixtQkFBTyxDQUFDLDBGQUFxQjtBQUNsRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2Qix5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NvbnN0cnVjdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gcmVxdWlyZShcIi4vaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0LmpzXCIpO1xudmFyIHNldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4vc2V0UHJvdG90eXBlT2YuanNcIik7XG5mdW5jdGlvbiBfY29uc3RydWN0KHQsIGUsIHIpIHtcbiAgaWYgKGlzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpKSByZXR1cm4gUmVmbGVjdC5jb25zdHJ1Y3QuYXBwbHkobnVsbCwgYXJndW1lbnRzKTtcbiAgdmFyIG8gPSBbbnVsbF07XG4gIG8ucHVzaC5hcHBseShvLCBlKTtcbiAgdmFyIHAgPSBuZXcgKHQuYmluZC5hcHBseSh0LCBvKSkoKTtcbiAgcmV0dXJuIHIgJiYgc2V0UHJvdG90eXBlT2YocCwgci5wcm90b3R5cGUpLCBwO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfY29uc3RydWN0LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/construct.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/createClass.js":
+/*!************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/createClass.js ***!
+ \************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/toPropertyKey.js\");\nfunction _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, toPropertyKey(o.key), o);\n }\n}\nfunction _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n}\nmodule.exports = _createClass, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jcmVhdGVDbGFzcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0IsbUJBQU8sQ0FBQyx3RkFBb0I7QUFDaEQ7QUFDQSxrQkFBa0IsY0FBYztBQUNoQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLCtCQUErQix5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2NyZWF0ZUNsYXNzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciB0b1Byb3BlcnR5S2V5ID0gcmVxdWlyZShcIi4vdG9Qcm9wZXJ0eUtleS5qc1wiKTtcbmZ1bmN0aW9uIF9kZWZpbmVQcm9wZXJ0aWVzKGUsIHIpIHtcbiAgZm9yICh2YXIgdCA9IDA7IHQgPCByLmxlbmd0aDsgdCsrKSB7XG4gICAgdmFyIG8gPSByW3RdO1xuICAgIG8uZW51bWVyYWJsZSA9IG8uZW51bWVyYWJsZSB8fCAhMSwgby5jb25maWd1cmFibGUgPSAhMCwgXCJ2YWx1ZVwiIGluIG8gJiYgKG8ud3JpdGFibGUgPSAhMCksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCB0b1Byb3BlcnR5S2V5KG8ua2V5KSwgbyk7XG4gIH1cbn1cbmZ1bmN0aW9uIF9jcmVhdGVDbGFzcyhlLCByLCB0KSB7XG4gIHJldHVybiByICYmIF9kZWZpbmVQcm9wZXJ0aWVzKGUucHJvdG90eXBlLCByKSwgdCAmJiBfZGVmaW5lUHJvcGVydGllcyhlLCB0KSwgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIFwicHJvdG90eXBlXCIsIHtcbiAgICB3cml0YWJsZTogITFcbiAgfSksIGU7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9jcmVhdGVDbGFzcywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/createClass.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/defineProperty.js":
+/*!***************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/defineProperty.js ***!
+ \***************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var toPropertyKey = __webpack_require__(/*! ./toPropertyKey.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eS5qcyIsIm1hcHBpbmdzIjoiQUFBQSxvQkFBb0IsbUJBQU8sQ0FBQyx3RkFBb0I7QUFDaEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0Esa0NBQWtDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZGVmaW5lUHJvcGVydHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHRvUHJvcGVydHlLZXkgPSByZXF1aXJlKFwiLi90b1Byb3BlcnR5S2V5LmpzXCIpO1xuZnVuY3Rpb24gX2RlZmluZVByb3BlcnR5KGUsIHIsIHQpIHtcbiAgcmV0dXJuIChyID0gdG9Qcm9wZXJ0eUtleShyKSkgaW4gZSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCByLCB7XG4gICAgdmFsdWU6IHQsXG4gICAgZW51bWVyYWJsZTogITAsXG4gICAgY29uZmlndXJhYmxlOiAhMCxcbiAgICB3cml0YWJsZTogITBcbiAgfSkgOiBlW3JdID0gdCwgZTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX2RlZmluZVByb3BlcnR5LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/defineProperty.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/extends.js":
+/*!********************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/extends.js ***!
+ \********************************************************/
+/***/ ((module) => {
+
+eval("function _extends() {\n return module.exports = _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _extends.apply(null, arguments);\n}\nmodule.exports = _extends, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9leHRlbmRzLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQSxvQkFBb0Isc0JBQXNCO0FBQzFDO0FBQ0EsMEJBQTBCO0FBQzFCO0FBQ0E7QUFDQSxHQUFHLEVBQUUseUJBQXlCLFNBQVMseUJBQXlCO0FBQ2hFO0FBQ0EsMkJBQTJCLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZXh0ZW5kcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfZXh0ZW5kcygpIHtcbiAgcmV0dXJuIG1vZHVsZS5leHBvcnRzID0gX2V4dGVuZHMgPSBPYmplY3QuYXNzaWduID8gT2JqZWN0LmFzc2lnbi5iaW5kKCkgOiBmdW5jdGlvbiAobikge1xuICAgIGZvciAodmFyIGUgPSAxOyBlIDwgYXJndW1lbnRzLmxlbmd0aDsgZSsrKSB7XG4gICAgICB2YXIgdCA9IGFyZ3VtZW50c1tlXTtcbiAgICAgIGZvciAodmFyIHIgaW4gdCkgKHt9KS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsIHIpICYmIChuW3JdID0gdFtyXSk7XG4gICAgfVxuICAgIHJldHVybiBuO1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIF9leHRlbmRzLmFwcGx5KG51bGwsIGFyZ3VtZW50cyk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9leHRlbmRzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/extends.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/getPrototypeOf.js":
+/*!***************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/getPrototypeOf.js ***!
+ \***************************************************************/
+/***/ ((module) => {
+
+eval("function _getPrototypeOf(t) {\n return module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf.bind() : function (t) {\n return t.__proto__ || Object.getPrototypeOf(t);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _getPrototypeOf(t);\n}\nmodule.exports = _getPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9nZXRQcm90b3R5cGVPZi5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUUseUJBQXlCLFNBQVMseUJBQXlCO0FBQ2hFO0FBQ0Esa0NBQWtDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvZ2V0UHJvdG90eXBlT2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2dldFByb3RvdHlwZU9mKHQpIHtcbiAgcmV0dXJuIG1vZHVsZS5leHBvcnRzID0gX2dldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LmdldFByb3RvdHlwZU9mLmJpbmQoKSA6IGZ1bmN0aW9uICh0KSB7XG4gICAgcmV0dXJuIHQuX19wcm90b19fIHx8IE9iamVjdC5nZXRQcm90b3R5cGVPZih0KTtcbiAgfSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBfZ2V0UHJvdG90eXBlT2YodCk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9nZXRQcm90b3R5cGVPZiwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/getPrototypeOf.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/inherits.js":
+/*!*********************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/inherits.js ***!
+ \*********************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\nfunction _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && setPrototypeOf(t, e);\n}\nmodule.exports = _inherits, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbmhlcml0cy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxxQkFBcUIsbUJBQU8sQ0FBQywwRkFBcUI7QUFDbEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBLDRCQUE0Qix5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2luaGVyaXRzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBzZXRQcm90b3R5cGVPZiA9IHJlcXVpcmUoXCIuL3NldFByb3RvdHlwZU9mLmpzXCIpO1xuZnVuY3Rpb24gX2luaGVyaXRzKHQsIGUpIHtcbiAgaWYgKFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgZSAmJiBudWxsICE9PSBlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gIHQucHJvdG90eXBlID0gT2JqZWN0LmNyZWF0ZShlICYmIGUucHJvdG90eXBlLCB7XG4gICAgY29uc3RydWN0b3I6IHtcbiAgICAgIHZhbHVlOiB0LFxuICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgY29uZmlndXJhYmxlOiAhMFxuICAgIH1cbiAgfSksIE9iamVjdC5kZWZpbmVQcm9wZXJ0eSh0LCBcInByb3RvdHlwZVwiLCB7XG4gICAgd3JpdGFibGU6ICExXG4gIH0pLCBlICYmIHNldFByb3RvdHlwZU9mKHQsIGUpO1xufVxubW9kdWxlLmV4cG9ydHMgPSBfaW5oZXJpdHMsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/inherits.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js":
+/*!**********************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/interopRequireDefault.js ***!
+ \**********************************************************************/
+/***/ ((module) => {
+
+eval("function _interopRequireDefault(e) {\n return e && e.__esModule ? e : {\n \"default\": e\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHQuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlDQUF5Qyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KGUpIHtcbiAgcmV0dXJuIGUgJiYgZS5fX2VzTW9kdWxlID8gZSA6IHtcbiAgICBcImRlZmF1bHRcIjogZVxuICB9O1xufVxubW9kdWxlLmV4cG9ydHMgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/isNativeFunction.js":
+/*!*****************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/isNativeFunction.js ***!
+ \*****************************************************************/
+/***/ ((module) => {
+
+eval("function _isNativeFunction(t) {\n try {\n return -1 !== Function.toString.call(t).indexOf(\"[native code]\");\n } catch (n) {\n return \"function\" == typeof t;\n }\n}\nmodule.exports = _isNativeFunction, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pc05hdGl2ZUZ1bmN0aW9uLmpzIiwibWFwcGluZ3MiOiJBQUFBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxvQ0FBb0MseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pc05hdGl2ZUZ1bmN0aW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9pc05hdGl2ZUZ1bmN0aW9uKHQpIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gLTEgIT09IEZ1bmN0aW9uLnRvU3RyaW5nLmNhbGwodCkuaW5kZXhPZihcIltuYXRpdmUgY29kZV1cIik7XG4gIH0gY2F0Y2ggKG4pIHtcbiAgICByZXR1cm4gXCJmdW5jdGlvblwiID09IHR5cGVvZiB0O1xuICB9XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9pc05hdGl2ZUZ1bmN0aW9uLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/isNativeFunction.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js":
+/*!*************************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js ***!
+ \*************************************************************************/
+/***/ ((module) => {
+
+eval("function _isNativeReflectConstruct() {\n try {\n var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n } catch (t) {}\n return (module.exports = _isNativeReflectConstruct = function _isNativeReflectConstruct() {\n return !!t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _isNativeReflectConstruct, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBLHlGQUF5RjtBQUN6RixJQUFJO0FBQ0o7QUFDQTtBQUNBLEdBQUcsRUFBRSx5QkFBeUIsU0FBUyx5QkFBeUI7QUFDaEU7QUFDQSw0Q0FBNEMseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHtcbiAgdHJ5IHtcbiAgICB2YXIgdCA9ICFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbiwgW10sIGZ1bmN0aW9uICgpIHt9KSk7XG4gIH0gY2F0Y2ggKHQpIHt9XG4gIHJldHVybiAobW9kdWxlLmV4cG9ydHMgPSBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0ID0gZnVuY3Rpb24gX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCgpIHtcbiAgICByZXR1cm4gISF0O1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMpKCk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js":
+/*!**************************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js ***!
+ \**************************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var _typeof = (__webpack_require__(/*! ./typeof.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\nvar assertThisInitialized = __webpack_require__(/*! ./assertThisInitialized.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/assertThisInitialized.js\");\nfunction _possibleConstructorReturn(t, e) {\n if (e && (\"object\" == _typeof(e) || \"function\" == typeof e)) return e;\n if (void 0 !== e) throw new TypeError(\"Derived constructors may only return object or undefined\");\n return assertThisInitialized(t);\n}\nmodule.exports = _possibleConstructorReturn, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLmpzIiwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEdBQWlDO0FBQy9DLDRCQUE0QixtQkFBTyxDQUFDLHdHQUE0QjtBQUNoRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVybi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCIuL3R5cGVvZi5qc1wiKVtcImRlZmF1bHRcIl07XG52YXIgYXNzZXJ0VGhpc0luaXRpYWxpemVkID0gcmVxdWlyZShcIi4vYXNzZXJ0VGhpc0luaXRpYWxpemVkLmpzXCIpO1xuZnVuY3Rpb24gX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4odCwgZSkge1xuICBpZiAoZSAmJiAoXCJvYmplY3RcIiA9PSBfdHlwZW9mKGUpIHx8IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgZSkpIHJldHVybiBlO1xuICBpZiAodm9pZCAwICE9PSBlKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiRGVyaXZlZCBjb25zdHJ1Y3RvcnMgbWF5IG9ubHkgcmV0dXJuIG9iamVjdCBvciB1bmRlZmluZWRcIik7XG4gIHJldHVybiBhc3NlcnRUaGlzSW5pdGlhbGl6ZWQodCk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/regenerator.js":
+/*!************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/regenerator.js ***!
+ \************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/regeneratorDefine.js\");\nfunction _regenerator() {\n /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */\n var e,\n t,\n r = \"function\" == typeof Symbol ? Symbol : {},\n n = r.iterator || \"@@iterator\",\n o = r.toStringTag || \"@@toStringTag\";\n function i(r, n, o, i) {\n var c = n && n.prototype instanceof Generator ? n : Generator,\n u = Object.create(c.prototype);\n return regeneratorDefine(u, \"_invoke\", function (r, n, o) {\n var i,\n c,\n u,\n f = 0,\n p = o || [],\n y = !1,\n G = {\n p: 0,\n n: 0,\n v: e,\n a: d,\n f: d.bind(e, 4),\n d: function d(t, r) {\n return i = t, c = 0, u = e, G.n = r, a;\n }\n };\n function d(r, n) {\n for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) {\n var o,\n i = p[t],\n d = G.p,\n l = i[2];\n r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0));\n }\n if (o || r > 1) return a;\n throw y = !0, n;\n }\n return function (o, p, l) {\n if (f > 1) throw TypeError(\"Generator is already running\");\n for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) {\n i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u);\n try {\n if (f = 2, i) {\n if (c || (o = \"next\"), t = i[o]) {\n if (!(t = t.call(i, u))) throw TypeError(\"iterator result is not an object\");\n if (!t.done) return t;\n u = t.value, c < 2 && (c = 0);\n } else 1 === c && (t = i[\"return\"]) && t.call(i), c < 2 && (u = TypeError(\"The iterator does not provide a '\" + o + \"' method\"), c = 1);\n i = e;\n } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break;\n } catch (t) {\n i = e, c = 1, u = t;\n } finally {\n f = 1;\n }\n }\n return {\n value: t,\n done: y\n };\n };\n }(r, o, i), !0), u;\n }\n var a = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n t = Object.getPrototypeOf;\n var c = [][n] ? t(t([][n]())) : (regeneratorDefine(t = {}, n, function () {\n return this;\n }), t),\n u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c);\n function f(e) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, regeneratorDefine(e, o, \"GeneratorFunction\")), e.prototype = Object.create(u), e;\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, regeneratorDefine(u, \"constructor\", GeneratorFunctionPrototype), regeneratorDefine(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction), GeneratorFunction.displayName = \"GeneratorFunction\", regeneratorDefine(GeneratorFunctionPrototype, o, \"GeneratorFunction\"), regeneratorDefine(u), regeneratorDefine(u, o, \"Generator\"), regeneratorDefine(u, n, function () {\n return this;\n }), regeneratorDefine(u, \"toString\", function () {\n return \"[object Generator]\";\n }), (module.exports = _regenerator = function _regenerator() {\n return {\n w: i,\n m: f\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regenerator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvci5qcyIsIm1hcHBpbmdzIjoiQUFBQSx3QkFBd0IsbUJBQU8sQ0FBQyxnR0FBd0I7QUFDeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpREFBaUQ7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQywrQkFBK0I7QUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9EQUFvRCwwQkFBMEI7QUFDOUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0I7QUFDaEI7QUFDQSxjQUFjO0FBQ2QsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkRBQTJEO0FBQzNEO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUcsRUFBRSx5QkFBeUIsU0FBUyx5QkFBeUI7QUFDaEU7QUFDQSwrQkFBK0IseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcmVnZW5lcmF0b3JEZWZpbmUgPSByZXF1aXJlKFwiLi9yZWdlbmVyYXRvckRlZmluZS5qc1wiKTtcbmZ1bmN0aW9uIF9yZWdlbmVyYXRvcigpIHtcbiAgLyohIHJlZ2VuZXJhdG9yLXJ1bnRpbWUgLS0gQ29weXJpZ2h0IChjKSAyMDE0LXByZXNlbnQsIEZhY2Vib29rLCBJbmMuIC0tIGxpY2Vuc2UgKE1JVCk6IGh0dHBzOi8vZ2l0aHViLmNvbS9iYWJlbC9iYWJlbC9ibG9iL21haW4vcGFja2FnZXMvYmFiZWwtaGVscGVycy9MSUNFTlNFICovXG4gIHZhciBlLFxuICAgIHQsXG4gICAgciA9IFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgU3ltYm9sID8gU3ltYm9sIDoge30sXG4gICAgbiA9IHIuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCIsXG4gICAgbyA9IHIudG9TdHJpbmdUYWcgfHwgXCJAQHRvU3RyaW5nVGFnXCI7XG4gIGZ1bmN0aW9uIGkociwgbiwgbywgaSkge1xuICAgIHZhciBjID0gbiAmJiBuLnByb3RvdHlwZSBpbnN0YW5jZW9mIEdlbmVyYXRvciA/IG4gOiBHZW5lcmF0b3IsXG4gICAgICB1ID0gT2JqZWN0LmNyZWF0ZShjLnByb3RvdHlwZSk7XG4gICAgcmV0dXJuIHJlZ2VuZXJhdG9yRGVmaW5lKHUsIFwiX2ludm9rZVwiLCBmdW5jdGlvbiAociwgbiwgbykge1xuICAgICAgdmFyIGksXG4gICAgICAgIGMsXG4gICAgICAgIHUsXG4gICAgICAgIGYgPSAwLFxuICAgICAgICBwID0gbyB8fCBbXSxcbiAgICAgICAgeSA9ICExLFxuICAgICAgICBHID0ge1xuICAgICAgICAgIHA6IDAsXG4gICAgICAgICAgbjogMCxcbiAgICAgICAgICB2OiBlLFxuICAgICAgICAgIGE6IGQsXG4gICAgICAgICAgZjogZC5iaW5kKGUsIDQpLFxuICAgICAgICAgIGQ6IGZ1bmN0aW9uIGQodCwgcikge1xuICAgICAgICAgICAgcmV0dXJuIGkgPSB0LCBjID0gMCwgdSA9IGUsIEcubiA9IHIsIGE7XG4gICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgZnVuY3Rpb24gZChyLCBuKSB7XG4gICAgICAgIGZvciAoYyA9IHIsIHUgPSBuLCB0ID0gMDsgIXkgJiYgZiAmJiAhbyAmJiB0IDwgcC5sZW5ndGg7IHQrKykge1xuICAgICAgICAgIHZhciBvLFxuICAgICAgICAgICAgaSA9IHBbdF0sXG4gICAgICAgICAgICBkID0gRy5wLFxuICAgICAgICAgICAgbCA9IGlbMl07XG4gICAgICAgICAgciA+IDMgPyAobyA9IGwgPT09IG4pICYmICh1ID0gaVsoYyA9IGlbNF0pID8gNSA6IChjID0gMywgMyldLCBpWzRdID0gaVs1XSA9IGUpIDogaVswXSA8PSBkICYmICgobyA9IHIgPCAyICYmIGQgPCBpWzFdKSA/IChjID0gMCwgRy52ID0gbiwgRy5uID0gaVsxXSkgOiBkIDwgbCAmJiAobyA9IHIgPCAzIHx8IGlbMF0gPiBuIHx8IG4gPiBsKSAmJiAoaVs0XSA9IHIsIGlbNV0gPSBuLCBHLm4gPSBsLCBjID0gMCkpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvIHx8IHIgPiAxKSByZXR1cm4gYTtcbiAgICAgICAgdGhyb3cgeSA9ICEwLCBuO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZ1bmN0aW9uIChvLCBwLCBsKSB7XG4gICAgICAgIGlmIChmID4gMSkgdGhyb3cgVHlwZUVycm9yKFwiR2VuZXJhdG9yIGlzIGFscmVhZHkgcnVubmluZ1wiKTtcbiAgICAgICAgZm9yICh5ICYmIDEgPT09IHAgJiYgZChwLCBsKSwgYyA9IHAsIHUgPSBsOyAodCA9IGMgPCAyID8gZSA6IHUpIHx8ICF5Oykge1xuICAgICAgICAgIGkgfHwgKGMgPyBjIDwgMyA/IChjID4gMSAmJiAoRy5uID0gLTEpLCBkKGMsIHUpKSA6IEcubiA9IHUgOiBHLnYgPSB1KTtcbiAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgaWYgKGYgPSAyLCBpKSB7XG4gICAgICAgICAgICAgIGlmIChjIHx8IChvID0gXCJuZXh0XCIpLCB0ID0gaVtvXSkge1xuICAgICAgICAgICAgICAgIGlmICghKHQgPSB0LmNhbGwoaSwgdSkpKSB0aHJvdyBUeXBlRXJyb3IoXCJpdGVyYXRvciByZXN1bHQgaXMgbm90IGFuIG9iamVjdFwiKTtcbiAgICAgICAgICAgICAgICBpZiAoIXQuZG9uZSkgcmV0dXJuIHQ7XG4gICAgICAgICAgICAgICAgdSA9IHQudmFsdWUsIGMgPCAyICYmIChjID0gMCk7XG4gICAgICAgICAgICAgIH0gZWxzZSAxID09PSBjICYmICh0ID0gaVtcInJldHVyblwiXSkgJiYgdC5jYWxsKGkpLCBjIDwgMiAmJiAodSA9IFR5cGVFcnJvcihcIlRoZSBpdGVyYXRvciBkb2VzIG5vdCBwcm92aWRlIGEgJ1wiICsgbyArIFwiJyBtZXRob2RcIiksIGMgPSAxKTtcbiAgICAgICAgICAgICAgaSA9IGU7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCh0ID0gKHkgPSBHLm4gPCAwKSA/IHUgOiByLmNhbGwobiwgRykpICE9PSBhKSBicmVhaztcbiAgICAgICAgICB9IGNhdGNoICh0KSB7XG4gICAgICAgICAgICBpID0gZSwgYyA9IDEsIHUgPSB0O1xuICAgICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgICBmID0gMTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICB2YWx1ZTogdCxcbiAgICAgICAgICBkb25lOiB5XG4gICAgICAgIH07XG4gICAgICB9O1xuICAgIH0ociwgbywgaSksICEwKSwgdTtcbiAgfVxuICB2YXIgYSA9IHt9O1xuICBmdW5jdGlvbiBHZW5lcmF0b3IoKSB7fVxuICBmdW5jdGlvbiBHZW5lcmF0b3JGdW5jdGlvbigpIHt9XG4gIGZ1bmN0aW9uIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKCkge31cbiAgdCA9IE9iamVjdC5nZXRQcm90b3R5cGVPZjtcbiAgdmFyIGMgPSBbXVtuXSA/IHQodChbXVtuXSgpKSkgOiAocmVnZW5lcmF0b3JEZWZpbmUodCA9IHt9LCBuLCBmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gdGhpcztcbiAgICB9KSwgdCksXG4gICAgdSA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLnByb3RvdHlwZSA9IEdlbmVyYXRvci5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKGMpO1xuICBmdW5jdGlvbiBmKGUpIHtcbiAgICByZXR1cm4gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mKGUsIEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlKSA6IChlLl9fcHJvdG9fXyA9IEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCByZWdlbmVyYXRvckRlZmluZShlLCBvLCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIpKSwgZS5wcm90b3R5cGUgPSBPYmplY3QuY3JlYXRlKHUpLCBlO1xuICB9XG4gIHJldHVybiBHZW5lcmF0b3JGdW5jdGlvbi5wcm90b3R5cGUgPSBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSwgcmVnZW5lcmF0b3JEZWZpbmUodSwgXCJjb25zdHJ1Y3RvclwiLCBHZW5lcmF0b3JGdW5jdGlvblByb3RvdHlwZSksIHJlZ2VuZXJhdG9yRGVmaW5lKEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBcImNvbnN0cnVjdG9yXCIsIEdlbmVyYXRvckZ1bmN0aW9uKSwgR2VuZXJhdG9yRnVuY3Rpb24uZGlzcGxheU5hbWUgPSBcIkdlbmVyYXRvckZ1bmN0aW9uXCIsIHJlZ2VuZXJhdG9yRGVmaW5lKEdlbmVyYXRvckZ1bmN0aW9uUHJvdG90eXBlLCBvLCBcIkdlbmVyYXRvckZ1bmN0aW9uXCIpLCByZWdlbmVyYXRvckRlZmluZSh1KSwgcmVnZW5lcmF0b3JEZWZpbmUodSwgbywgXCJHZW5lcmF0b3JcIiksIHJlZ2VuZXJhdG9yRGVmaW5lKHUsIG4sIGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gdGhpcztcbiAgfSksIHJlZ2VuZXJhdG9yRGVmaW5lKHUsIFwidG9TdHJpbmdcIiwgZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBcIltvYmplY3QgR2VuZXJhdG9yXVwiO1xuICB9KSwgKG1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yID0gZnVuY3Rpb24gX3JlZ2VuZXJhdG9yKCkge1xuICAgIHJldHVybiB7XG4gICAgICB3OiBpLFxuICAgICAgbTogZlxuICAgIH07XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cykoKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/regenerator.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/regeneratorAsync.js":
+/*!*****************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/regeneratorAsync.js ***!
+ \*****************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js\");\nfunction _regeneratorAsync(n, e, r, t, o) {\n var a = regeneratorAsyncGen(n, e, r, t, o);\n return a.next().then(function (n) {\n return n.done ? n.value : a.next();\n });\n}\nmodule.exports = _regeneratorAsync, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvckFzeW5jLmpzIiwibWFwcGluZ3MiOiJBQUFBLDBCQUEwQixtQkFBTyxDQUFDLG9HQUEwQjtBQUM1RDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBLG9DQUFvQyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3JlZ2VuZXJhdG9yQXN5bmMuanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIHJlZ2VuZXJhdG9yQXN5bmNHZW4gPSByZXF1aXJlKFwiLi9yZWdlbmVyYXRvckFzeW5jR2VuLmpzXCIpO1xuZnVuY3Rpb24gX3JlZ2VuZXJhdG9yQXN5bmMobiwgZSwgciwgdCwgbykge1xuICB2YXIgYSA9IHJlZ2VuZXJhdG9yQXN5bmNHZW4obiwgZSwgciwgdCwgbyk7XG4gIHJldHVybiBhLm5leHQoKS50aGVuKGZ1bmN0aW9uIChuKSB7XG4gICAgcmV0dXJuIG4uZG9uZSA/IG4udmFsdWUgOiBhLm5leHQoKTtcbiAgfSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9yZWdlbmVyYXRvckFzeW5jLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/regeneratorAsync.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js":
+/*!********************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js ***!
+ \********************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var regenerator = __webpack_require__(/*! ./regenerator.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/regenerator.js\");\nvar regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js\");\nfunction _regeneratorAsyncGen(r, e, t, o, n) {\n return new regeneratorAsyncIterator(regenerator().w(r, e, t, o), n || Promise);\n}\nmodule.exports = _regeneratorAsyncGen, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvckFzeW5jR2VuLmpzIiwibWFwcGluZ3MiOiJBQUFBLGtCQUFrQixtQkFBTyxDQUFDLG9GQUFrQjtBQUM1QywrQkFBK0IsbUJBQU8sQ0FBQyw4R0FBK0I7QUFDdEU7QUFDQTtBQUNBO0FBQ0EsdUNBQXVDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvcmVnZW5lcmF0b3JBc3luY0dlbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgcmVnZW5lcmF0b3IgPSByZXF1aXJlKFwiLi9yZWdlbmVyYXRvci5qc1wiKTtcbnZhciByZWdlbmVyYXRvckFzeW5jSXRlcmF0b3IgPSByZXF1aXJlKFwiLi9yZWdlbmVyYXRvckFzeW5jSXRlcmF0b3IuanNcIik7XG5mdW5jdGlvbiBfcmVnZW5lcmF0b3JBc3luY0dlbihyLCBlLCB0LCBvLCBuKSB7XG4gIHJldHVybiBuZXcgcmVnZW5lcmF0b3JBc3luY0l0ZXJhdG9yKHJlZ2VuZXJhdG9yKCkudyhyLCBlLCB0LCBvKSwgbiB8fCBQcm9taXNlKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yQXN5bmNHZW4sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js":
+/*!*************************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js ***!
+ \*************************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/OverloadYield.js\");\nvar regeneratorDefine = __webpack_require__(/*! ./regeneratorDefine.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/regeneratorDefine.js\");\nfunction AsyncIterator(t, e) {\n function n(r, o, i, f) {\n try {\n var c = t[r](o),\n u = c.value;\n return u instanceof OverloadYield ? e.resolve(u.v).then(function (t) {\n n(\"next\", t, i, f);\n }, function (t) {\n n(\"throw\", t, i, f);\n }) : e.resolve(u).then(function (t) {\n c.value = t, i(c);\n }, function (t) {\n return n(\"throw\", t, i, f);\n });\n } catch (t) {\n f(t);\n }\n }\n var r;\n this.next || (regeneratorDefine(AsyncIterator.prototype), regeneratorDefine(AsyncIterator.prototype, \"function\" == typeof Symbol && Symbol.asyncIterator || \"@asyncIterator\", function () {\n return this;\n })), regeneratorDefine(this, \"_invoke\", function (t, o, i) {\n function f() {\n return new e(function (e, r) {\n n(t, i, e, r);\n });\n }\n return r = r ? r.then(f, f) : f();\n }, !0);\n}\nmodule.exports = AsyncIterator, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvckFzeW5jSXRlcmF0b3IuanMiLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CLG1CQUFPLENBQUMsd0ZBQW9CO0FBQ2hELHdCQUF3QixtQkFBTyxDQUFDLGdHQUF3QjtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLE9BQU87QUFDUDtBQUNBLE9BQU87QUFDUDtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsZ0NBQWdDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvcmVnZW5lcmF0b3JBc3luY0l0ZXJhdG9yLmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBPdmVybG9hZFlpZWxkID0gcmVxdWlyZShcIi4vT3ZlcmxvYWRZaWVsZC5qc1wiKTtcbnZhciByZWdlbmVyYXRvckRlZmluZSA9IHJlcXVpcmUoXCIuL3JlZ2VuZXJhdG9yRGVmaW5lLmpzXCIpO1xuZnVuY3Rpb24gQXN5bmNJdGVyYXRvcih0LCBlKSB7XG4gIGZ1bmN0aW9uIG4ociwgbywgaSwgZikge1xuICAgIHRyeSB7XG4gICAgICB2YXIgYyA9IHRbcl0obyksXG4gICAgICAgIHUgPSBjLnZhbHVlO1xuICAgICAgcmV0dXJuIHUgaW5zdGFuY2VvZiBPdmVybG9hZFlpZWxkID8gZS5yZXNvbHZlKHUudikudGhlbihmdW5jdGlvbiAodCkge1xuICAgICAgICBuKFwibmV4dFwiLCB0LCBpLCBmKTtcbiAgICAgIH0sIGZ1bmN0aW9uICh0KSB7XG4gICAgICAgIG4oXCJ0aHJvd1wiLCB0LCBpLCBmKTtcbiAgICAgIH0pIDogZS5yZXNvbHZlKHUpLnRoZW4oZnVuY3Rpb24gKHQpIHtcbiAgICAgICAgYy52YWx1ZSA9IHQsIGkoYyk7XG4gICAgICB9LCBmdW5jdGlvbiAodCkge1xuICAgICAgICByZXR1cm4gbihcInRocm93XCIsIHQsIGksIGYpO1xuICAgICAgfSk7XG4gICAgfSBjYXRjaCAodCkge1xuICAgICAgZih0KTtcbiAgICB9XG4gIH1cbiAgdmFyIHI7XG4gIHRoaXMubmV4dCB8fCAocmVnZW5lcmF0b3JEZWZpbmUoQXN5bmNJdGVyYXRvci5wcm90b3R5cGUpLCByZWdlbmVyYXRvckRlZmluZShBc3luY0l0ZXJhdG9yLnByb3RvdHlwZSwgXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgU3ltYm9sLmFzeW5jSXRlcmF0b3IgfHwgXCJAYXN5bmNJdGVyYXRvclwiLCBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHRoaXM7XG4gIH0pKSwgcmVnZW5lcmF0b3JEZWZpbmUodGhpcywgXCJfaW52b2tlXCIsIGZ1bmN0aW9uICh0LCBvLCBpKSB7XG4gICAgZnVuY3Rpb24gZigpIHtcbiAgICAgIHJldHVybiBuZXcgZShmdW5jdGlvbiAoZSwgcikge1xuICAgICAgICBuKHQsIGksIGUsIHIpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiByID0gciA/IHIudGhlbihmLCBmKSA6IGYoKTtcbiAgfSwgITApO1xufVxubW9kdWxlLmV4cG9ydHMgPSBBc3luY0l0ZXJhdG9yLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/regeneratorDefine.js":
+/*!******************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/regeneratorDefine.js ***!
+ \******************************************************************/
+/***/ ((module) => {
+
+eval("function _regeneratorDefine(e, r, n, t) {\n var i = Object.defineProperty;\n try {\n i({}, \"\", {});\n } catch (e) {\n i = 0;\n }\n module.exports = _regeneratorDefine = function regeneratorDefine(e, r, n, t) {\n function o(r, n) {\n _regeneratorDefine(e, r, function (e) {\n return this._invoke(r, n, e);\n });\n }\n r ? i ? i(e, r, {\n value: n,\n enumerable: !t,\n configurable: !t,\n writable: !t\n }) : e[r] = n : (o(\"next\", 0), o(\"throw\", 1), o(\"return\", 2));\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _regeneratorDefine(e, r, n, t);\n}\nmodule.exports = _regeneratorDefine, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvckRlZmluZS5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLFFBQVE7QUFDaEIsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLHFDQUFxQyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3JlZ2VuZXJhdG9yRGVmaW5lLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImZ1bmN0aW9uIF9yZWdlbmVyYXRvckRlZmluZShlLCByLCBuLCB0KSB7XG4gIHZhciBpID0gT2JqZWN0LmRlZmluZVByb3BlcnR5O1xuICB0cnkge1xuICAgIGkoe30sIFwiXCIsIHt9KTtcbiAgfSBjYXRjaCAoZSkge1xuICAgIGkgPSAwO1xuICB9XG4gIG1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yRGVmaW5lID0gZnVuY3Rpb24gcmVnZW5lcmF0b3JEZWZpbmUoZSwgciwgbiwgdCkge1xuICAgIGZ1bmN0aW9uIG8ociwgbikge1xuICAgICAgX3JlZ2VuZXJhdG9yRGVmaW5lKGUsIHIsIGZ1bmN0aW9uIChlKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnZva2UociwgbiwgZSk7XG4gICAgICB9KTtcbiAgICB9XG4gICAgciA/IGkgPyBpKGUsIHIsIHtcbiAgICAgIHZhbHVlOiBuLFxuICAgICAgZW51bWVyYWJsZTogIXQsXG4gICAgICBjb25maWd1cmFibGU6ICF0LFxuICAgICAgd3JpdGFibGU6ICF0XG4gICAgfSkgOiBlW3JdID0gbiA6IChvKFwibmV4dFwiLCAwKSwgbyhcInRocm93XCIsIDEpLCBvKFwicmV0dXJuXCIsIDIpKTtcbiAgfSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBfcmVnZW5lcmF0b3JEZWZpbmUoZSwgciwgbiwgdCk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9yZWdlbmVyYXRvckRlZmluZSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/regeneratorDefine.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/regeneratorKeys.js":
+/*!****************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/regeneratorKeys.js ***!
+ \****************************************************************/
+/***/ ((module) => {
+
+eval("function _regeneratorKeys(e) {\n var n = Object(e),\n r = [];\n for (var t in n) r.unshift(t);\n return function e() {\n for (; r.length;) if ((t = r.pop()) in n) return e.value = t, e.done = !1, e;\n return e.done = !0, e;\n };\n}\nmodule.exports = _regeneratorKeys, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvcktleXMuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsU0FBUztBQUNwQjtBQUNBO0FBQ0E7QUFDQSxtQ0FBbUMseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvcktleXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3JlZ2VuZXJhdG9yS2V5cyhlKSB7XG4gIHZhciBuID0gT2JqZWN0KGUpLFxuICAgIHIgPSBbXTtcbiAgZm9yICh2YXIgdCBpbiBuKSByLnVuc2hpZnQodCk7XG4gIHJldHVybiBmdW5jdGlvbiBlKCkge1xuICAgIGZvciAoOyByLmxlbmd0aDspIGlmICgodCA9IHIucG9wKCkpIGluIG4pIHJldHVybiBlLnZhbHVlID0gdCwgZS5kb25lID0gITEsIGU7XG4gICAgcmV0dXJuIGUuZG9uZSA9ICEwLCBlO1xuICB9O1xufVxubW9kdWxlLmV4cG9ydHMgPSBfcmVnZW5lcmF0b3JLZXlzLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/regeneratorKeys.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js":
+/*!*******************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/regeneratorRuntime.js ***!
+ \*******************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var OverloadYield = __webpack_require__(/*! ./OverloadYield.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/OverloadYield.js\");\nvar regenerator = __webpack_require__(/*! ./regenerator.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/regenerator.js\");\nvar regeneratorAsync = __webpack_require__(/*! ./regeneratorAsync.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/regeneratorAsync.js\");\nvar regeneratorAsyncGen = __webpack_require__(/*! ./regeneratorAsyncGen.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/regeneratorAsyncGen.js\");\nvar regeneratorAsyncIterator = __webpack_require__(/*! ./regeneratorAsyncIterator.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/regeneratorAsyncIterator.js\");\nvar regeneratorKeys = __webpack_require__(/*! ./regeneratorKeys.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/regeneratorKeys.js\");\nvar regeneratorValues = __webpack_require__(/*! ./regeneratorValues.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/regeneratorValues.js\");\nfunction _regeneratorRuntime() {\n \"use strict\";\n\n var r = regenerator(),\n e = r.m(_regeneratorRuntime),\n t = (Object.getPrototypeOf ? Object.getPrototypeOf(e) : e.__proto__).constructor;\n function n(r) {\n var e = \"function\" == typeof r && r.constructor;\n return !!e && (e === t || \"GeneratorFunction\" === (e.displayName || e.name));\n }\n var o = {\n \"throw\": 1,\n \"return\": 2,\n \"break\": 3,\n \"continue\": 3\n };\n function a(r) {\n var e, t;\n return function (n) {\n e || (e = {\n stop: function stop() {\n return t(n.a, 2);\n },\n \"catch\": function _catch() {\n return n.v;\n },\n abrupt: function abrupt(r, e) {\n return t(n.a, o[r], e);\n },\n delegateYield: function delegateYield(r, o, a) {\n return e.resultName = o, t(n.d, regeneratorValues(r), a);\n },\n finish: function finish(r) {\n return t(n.f, r);\n }\n }, t = function t(r, _t, o) {\n n.p = e.prev, n.n = e.next;\n try {\n return r(_t, o);\n } finally {\n e.next = n.n;\n }\n }), e.resultName && (e[e.resultName] = n.v, e.resultName = void 0), e.sent = n.v, e.next = n.n;\n try {\n return r.call(this, e);\n } finally {\n n.p = e.prev, n.n = e.next;\n }\n };\n }\n return (module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return {\n wrap: function wrap(e, t, n, o) {\n return r.w(a(e), t, n, o && o.reverse());\n },\n isGeneratorFunction: n,\n mark: r.m,\n awrap: function awrap(r, e) {\n return new OverloadYield(r, e);\n },\n AsyncIterator: regeneratorAsyncIterator,\n async: function async(r, e, t, o, u) {\n return (n(e) ? regeneratorAsyncGen : regeneratorAsync)(a(r), e, t, o, u);\n },\n keys: regeneratorKeys,\n values: regeneratorValues\n };\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports)();\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvclJ1bnRpbWUuanMiLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CLG1CQUFPLENBQUMsd0ZBQW9CO0FBQ2hELGtCQUFrQixtQkFBTyxDQUFDLG9GQUFrQjtBQUM1Qyx1QkFBdUIsbUJBQU8sQ0FBQyw4RkFBdUI7QUFDdEQsMEJBQTBCLG1CQUFPLENBQUMsb0dBQTBCO0FBQzVELCtCQUErQixtQkFBTyxDQUFDLDhHQUErQjtBQUN0RSxzQkFBc0IsbUJBQU8sQ0FBQyw0RkFBc0I7QUFDcEQsd0JBQXdCLG1CQUFPLENBQUMsZ0dBQXdCO0FBQ3hEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLHNDQUFzQyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgT3ZlcmxvYWRZaWVsZCA9IHJlcXVpcmUoXCIuL092ZXJsb2FkWWllbGQuanNcIik7XG52YXIgcmVnZW5lcmF0b3IgPSByZXF1aXJlKFwiLi9yZWdlbmVyYXRvci5qc1wiKTtcbnZhciByZWdlbmVyYXRvckFzeW5jID0gcmVxdWlyZShcIi4vcmVnZW5lcmF0b3JBc3luYy5qc1wiKTtcbnZhciByZWdlbmVyYXRvckFzeW5jR2VuID0gcmVxdWlyZShcIi4vcmVnZW5lcmF0b3JBc3luY0dlbi5qc1wiKTtcbnZhciByZWdlbmVyYXRvckFzeW5jSXRlcmF0b3IgPSByZXF1aXJlKFwiLi9yZWdlbmVyYXRvckFzeW5jSXRlcmF0b3IuanNcIik7XG52YXIgcmVnZW5lcmF0b3JLZXlzID0gcmVxdWlyZShcIi4vcmVnZW5lcmF0b3JLZXlzLmpzXCIpO1xudmFyIHJlZ2VuZXJhdG9yVmFsdWVzID0gcmVxdWlyZShcIi4vcmVnZW5lcmF0b3JWYWx1ZXMuanNcIik7XG5mdW5jdGlvbiBfcmVnZW5lcmF0b3JSdW50aW1lKCkge1xuICBcInVzZSBzdHJpY3RcIjtcblxuICB2YXIgciA9IHJlZ2VuZXJhdG9yKCksXG4gICAgZSA9IHIubShfcmVnZW5lcmF0b3JSdW50aW1lKSxcbiAgICB0ID0gKE9iamVjdC5nZXRQcm90b3R5cGVPZiA/IE9iamVjdC5nZXRQcm90b3R5cGVPZihlKSA6IGUuX19wcm90b19fKS5jb25zdHJ1Y3RvcjtcbiAgZnVuY3Rpb24gbihyKSB7XG4gICAgdmFyIGUgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIHIgJiYgci5jb25zdHJ1Y3RvcjtcbiAgICByZXR1cm4gISFlICYmIChlID09PSB0IHx8IFwiR2VuZXJhdG9yRnVuY3Rpb25cIiA9PT0gKGUuZGlzcGxheU5hbWUgfHwgZS5uYW1lKSk7XG4gIH1cbiAgdmFyIG8gPSB7XG4gICAgXCJ0aHJvd1wiOiAxLFxuICAgIFwicmV0dXJuXCI6IDIsXG4gICAgXCJicmVha1wiOiAzLFxuICAgIFwiY29udGludWVcIjogM1xuICB9O1xuICBmdW5jdGlvbiBhKHIpIHtcbiAgICB2YXIgZSwgdDtcbiAgICByZXR1cm4gZnVuY3Rpb24gKG4pIHtcbiAgICAgIGUgfHwgKGUgPSB7XG4gICAgICAgIHN0b3A6IGZ1bmN0aW9uIHN0b3AoKSB7XG4gICAgICAgICAgcmV0dXJuIHQobi5hLCAyKTtcbiAgICAgICAgfSxcbiAgICAgICAgXCJjYXRjaFwiOiBmdW5jdGlvbiBfY2F0Y2goKSB7XG4gICAgICAgICAgcmV0dXJuIG4udjtcbiAgICAgICAgfSxcbiAgICAgICAgYWJydXB0OiBmdW5jdGlvbiBhYnJ1cHQociwgZSkge1xuICAgICAgICAgIHJldHVybiB0KG4uYSwgb1tyXSwgZSk7XG4gICAgICAgIH0sXG4gICAgICAgIGRlbGVnYXRlWWllbGQ6IGZ1bmN0aW9uIGRlbGVnYXRlWWllbGQociwgbywgYSkge1xuICAgICAgICAgIHJldHVybiBlLnJlc3VsdE5hbWUgPSBvLCB0KG4uZCwgcmVnZW5lcmF0b3JWYWx1ZXMociksIGEpO1xuICAgICAgICB9LFxuICAgICAgICBmaW5pc2g6IGZ1bmN0aW9uIGZpbmlzaChyKSB7XG4gICAgICAgICAgcmV0dXJuIHQobi5mLCByKTtcbiAgICAgICAgfVxuICAgICAgfSwgdCA9IGZ1bmN0aW9uIHQociwgX3QsIG8pIHtcbiAgICAgICAgbi5wID0gZS5wcmV2LCBuLm4gPSBlLm5leHQ7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgcmV0dXJuIHIoX3QsIG8pO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIGUubmV4dCA9IG4ubjtcbiAgICAgICAgfVxuICAgICAgfSksIGUucmVzdWx0TmFtZSAmJiAoZVtlLnJlc3VsdE5hbWVdID0gbi52LCBlLnJlc3VsdE5hbWUgPSB2b2lkIDApLCBlLnNlbnQgPSBuLnYsIGUubmV4dCA9IG4ubjtcbiAgICAgIHRyeSB7XG4gICAgICAgIHJldHVybiByLmNhbGwodGhpcywgZSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBuLnAgPSBlLnByZXYsIG4ubiA9IGUubmV4dDtcbiAgICAgIH1cbiAgICB9O1xuICB9XG4gIHJldHVybiAobW9kdWxlLmV4cG9ydHMgPSBfcmVnZW5lcmF0b3JSdW50aW1lID0gZnVuY3Rpb24gX3JlZ2VuZXJhdG9yUnVudGltZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgd3JhcDogZnVuY3Rpb24gd3JhcChlLCB0LCBuLCBvKSB7XG4gICAgICAgIHJldHVybiByLncoYShlKSwgdCwgbiwgbyAmJiBvLnJldmVyc2UoKSk7XG4gICAgICB9LFxuICAgICAgaXNHZW5lcmF0b3JGdW5jdGlvbjogbixcbiAgICAgIG1hcms6IHIubSxcbiAgICAgIGF3cmFwOiBmdW5jdGlvbiBhd3JhcChyLCBlKSB7XG4gICAgICAgIHJldHVybiBuZXcgT3ZlcmxvYWRZaWVsZChyLCBlKTtcbiAgICAgIH0sXG4gICAgICBBc3luY0l0ZXJhdG9yOiByZWdlbmVyYXRvckFzeW5jSXRlcmF0b3IsXG4gICAgICBhc3luYzogZnVuY3Rpb24gYXN5bmMociwgZSwgdCwgbywgdSkge1xuICAgICAgICByZXR1cm4gKG4oZSkgPyByZWdlbmVyYXRvckFzeW5jR2VuIDogcmVnZW5lcmF0b3JBc3luYykoYShyKSwgZSwgdCwgbywgdSk7XG4gICAgICB9LFxuICAgICAga2V5czogcmVnZW5lcmF0b3JLZXlzLFxuICAgICAgdmFsdWVzOiByZWdlbmVyYXRvclZhbHVlc1xuICAgIH07XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cykoKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX3JlZ2VuZXJhdG9yUnVudGltZSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/regeneratorValues.js":
+/*!******************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/regeneratorValues.js ***!
+ \******************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var _typeof = (__webpack_require__(/*! ./typeof.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\nfunction _regeneratorValues(e) {\n if (null != e) {\n var t = e[\"function\" == typeof Symbol && Symbol.iterator || \"@@iterator\"],\n r = 0;\n if (t) return t.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) return {\n next: function next() {\n return e && r >= e.length && (e = void 0), {\n value: e && e[r++],\n done: !e\n };\n }\n };\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n}\nmodule.exports = _regeneratorValues, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9yZWdlbmVyYXRvclZhbHVlcy5qcyIsIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRHQUFpQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvcmVnZW5lcmF0b3JWYWx1ZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF90eXBlb2YgPSByZXF1aXJlKFwiLi90eXBlb2YuanNcIilbXCJkZWZhdWx0XCJdO1xuZnVuY3Rpb24gX3JlZ2VuZXJhdG9yVmFsdWVzKGUpIHtcbiAgaWYgKG51bGwgIT0gZSkge1xuICAgIHZhciB0ID0gZVtcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBTeW1ib2wuaXRlcmF0b3IgfHwgXCJAQGl0ZXJhdG9yXCJdLFxuICAgICAgciA9IDA7XG4gICAgaWYgKHQpIHJldHVybiB0LmNhbGwoZSk7XG4gICAgaWYgKFwiZnVuY3Rpb25cIiA9PSB0eXBlb2YgZS5uZXh0KSByZXR1cm4gZTtcbiAgICBpZiAoIWlzTmFOKGUubGVuZ3RoKSkgcmV0dXJuIHtcbiAgICAgIG5leHQ6IGZ1bmN0aW9uIG5leHQoKSB7XG4gICAgICAgIHJldHVybiBlICYmIHIgPj0gZS5sZW5ndGggJiYgKGUgPSB2b2lkIDApLCB7XG4gICAgICAgICAgdmFsdWU6IGUgJiYgZVtyKytdLFxuICAgICAgICAgIGRvbmU6ICFlXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfTtcbiAgfVxuICB0aHJvdyBuZXcgVHlwZUVycm9yKF90eXBlb2YoZSkgKyBcIiBpcyBub3QgaXRlcmFibGVcIik7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9yZWdlbmVyYXRvclZhbHVlcywgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/regeneratorValues.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/setPrototypeOf.js":
+/*!***************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/setPrototypeOf.js ***!
+ \***************************************************************/
+/***/ ((module) => {
+
+eval("function _setPrototypeOf(t, e) {\n return module.exports = _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _setPrototypeOf(t, e);\n}\nmodule.exports = _setPrototypeOf, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy9zZXRQcm90b3R5cGVPZi5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQSxHQUFHLEVBQUUseUJBQXlCLFNBQVMseUJBQXlCO0FBQ2hFO0FBQ0Esa0NBQWtDLHlCQUF5QixTQUFTLHlCQUF5QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL0BiYWJlbC9ydW50aW1lL2hlbHBlcnMvc2V0UHJvdG90eXBlT2YuanMiXSwic291cmNlc0NvbnRlbnQiOlsiZnVuY3Rpb24gX3NldFByb3RvdHlwZU9mKHQsIGUpIHtcbiAgcmV0dXJuIG1vZHVsZS5leHBvcnRzID0gX3NldFByb3RvdHlwZU9mID0gT2JqZWN0LnNldFByb3RvdHlwZU9mID8gT2JqZWN0LnNldFByb3RvdHlwZU9mLmJpbmQoKSA6IGZ1bmN0aW9uICh0LCBlKSB7XG4gICAgcmV0dXJuIHQuX19wcm90b19fID0gZSwgdDtcbiAgfSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzLCBfc2V0UHJvdG90eXBlT2YodCwgZSk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF9zZXRQcm90b3R5cGVPZiwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/setPrototypeOf.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/toPrimitive.js":
+/*!************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/toPrimitive.js ***!
+ \************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var _typeof = (__webpack_require__(/*! ./typeof.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nmodule.exports = toPrimitive, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b1ByaW1pdGl2ZS5qcyIsIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDRHQUFpQztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4Qix5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvUHJpbWl0aXZlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbInZhciBfdHlwZW9mID0gcmVxdWlyZShcIi4vdHlwZW9mLmpzXCIpW1wiZGVmYXVsdFwiXTtcbmZ1bmN0aW9uIHRvUHJpbWl0aXZlKHQsIHIpIHtcbiAgaWYgKFwib2JqZWN0XCIgIT0gX3R5cGVvZih0KSB8fCAhdCkgcmV0dXJuIHQ7XG4gIHZhciBlID0gdFtTeW1ib2wudG9QcmltaXRpdmVdO1xuICBpZiAodm9pZCAwICE9PSBlKSB7XG4gICAgdmFyIGkgPSBlLmNhbGwodCwgciB8fCBcImRlZmF1bHRcIik7XG4gICAgaWYgKFwib2JqZWN0XCIgIT0gX3R5cGVvZihpKSkgcmV0dXJuIGk7XG4gICAgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkBAdG9QcmltaXRpdmUgbXVzdCByZXR1cm4gYSBwcmltaXRpdmUgdmFsdWUuXCIpO1xuICB9XG4gIHJldHVybiAoXCJzdHJpbmdcIiA9PT0gciA/IFN0cmluZyA6IE51bWJlcikodCk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IHRvUHJpbWl0aXZlLCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHM7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/toPrimitive.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/toPropertyKey.js":
+/*!**************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/toPropertyKey.js ***!
+ \**************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var _typeof = (__webpack_require__(/*! ./typeof.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/typeof.js\")[\"default\"]);\nvar toPrimitive = __webpack_require__(/*! ./toPrimitive.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/toPrimitive.js\");\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nmodule.exports = toPropertyKey, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90b1Byb3BlcnR5S2V5LmpzIiwibWFwcGluZ3MiOiJBQUFBLGNBQWMsNEdBQWlDO0FBQy9DLGtCQUFrQixtQkFBTyxDQUFDLG9GQUFrQjtBQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBLGdDQUFnQyx5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3RvUHJvcGVydHlLZXkuanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIF90eXBlb2YgPSByZXF1aXJlKFwiLi90eXBlb2YuanNcIilbXCJkZWZhdWx0XCJdO1xudmFyIHRvUHJpbWl0aXZlID0gcmVxdWlyZShcIi4vdG9QcmltaXRpdmUuanNcIik7XG5mdW5jdGlvbiB0b1Byb3BlcnR5S2V5KHQpIHtcbiAgdmFyIGkgPSB0b1ByaW1pdGl2ZSh0LCBcInN0cmluZ1wiKTtcbiAgcmV0dXJuIFwic3ltYm9sXCIgPT0gX3R5cGVvZihpKSA/IGkgOiBpICsgXCJcIjtcbn1cbm1vZHVsZS5leHBvcnRzID0gdG9Qcm9wZXJ0eUtleSwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/toPropertyKey.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/typeof.js":
+/*!*******************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/typeof.js ***!
+ \*******************************************************/
+/***/ ((module) => {
+
+eval("function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy90eXBlb2YuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRyxFQUFFLHlCQUF5QixTQUFTLHlCQUF5QjtBQUNoRTtBQUNBLDBCQUEwQix5QkFBeUIsU0FBUyx5QkFBeUIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJmdW5jdGlvbiBfdHlwZW9mKG8pIHtcbiAgXCJAYmFiZWwvaGVscGVycyAtIHR5cGVvZlwiO1xuXG4gIHJldHVybiBtb2R1bGUuZXhwb3J0cyA9IF90eXBlb2YgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIFN5bWJvbCAmJiBcInN5bWJvbFwiID09IHR5cGVvZiBTeW1ib2wuaXRlcmF0b3IgPyBmdW5jdGlvbiAobykge1xuICAgIHJldHVybiB0eXBlb2YgbztcbiAgfSA6IGZ1bmN0aW9uIChvKSB7XG4gICAgcmV0dXJuIG8gJiYgXCJmdW5jdGlvblwiID09IHR5cGVvZiBTeW1ib2wgJiYgby5jb25zdHJ1Y3RvciA9PT0gU3ltYm9sICYmIG8gIT09IFN5bWJvbC5wcm90b3R5cGUgPyBcInN5bWJvbFwiIDogdHlwZW9mIG87XG4gIH0sIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0cywgX3R5cGVvZihvKTtcbn1cbm1vZHVsZS5leHBvcnRzID0gX3R5cGVvZiwgbW9kdWxlLmV4cG9ydHMuX19lc01vZHVsZSA9IHRydWUsIG1vZHVsZS5leHBvcnRzW1wiZGVmYXVsdFwiXSA9IG1vZHVsZS5leHBvcnRzOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/typeof.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js":
+/*!****************************************************************!*\
+ !*** ./node_modules/@babel/runtime/helpers/wrapNativeSuper.js ***!
+ \****************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("var getPrototypeOf = __webpack_require__(/*! ./getPrototypeOf.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/getPrototypeOf.js\");\nvar setPrototypeOf = __webpack_require__(/*! ./setPrototypeOf.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/setPrototypeOf.js\");\nvar isNativeFunction = __webpack_require__(/*! ./isNativeFunction.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/isNativeFunction.js\");\nvar construct = __webpack_require__(/*! ./construct.js */ \"(rsc)/./node_modules/@babel/runtime/helpers/construct.js\");\nfunction _wrapNativeSuper(t) {\n var r = \"function\" == typeof Map ? new Map() : void 0;\n return module.exports = _wrapNativeSuper = function _wrapNativeSuper(t) {\n if (null === t || !isNativeFunction(t)) return t;\n if (\"function\" != typeof t) throw new TypeError(\"Super expression must either be null or a function\");\n if (void 0 !== r) {\n if (r.has(t)) return r.get(t);\n r.set(t, Wrapper);\n }\n function Wrapper() {\n return construct(t, arguments, getPrototypeOf(this).constructor);\n }\n return Wrapper.prototype = Object.create(t.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: !1,\n writable: !0,\n configurable: !0\n }\n }), setPrototypeOf(Wrapper, t);\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports, _wrapNativeSuper(t);\n}\nmodule.exports = _wrapNativeSuper, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy93cmFwTmF0aXZlU3VwZXIuanMiLCJtYXBwaW5ncyI6IkFBQUEscUJBQXFCLG1CQUFPLENBQUMsMEZBQXFCO0FBQ2xELHFCQUFxQixtQkFBTyxDQUFDLDBGQUFxQjtBQUNsRCx1QkFBdUIsbUJBQU8sQ0FBQyw4RkFBdUI7QUFDdEQsZ0JBQWdCLG1CQUFPLENBQUMsZ0ZBQWdCO0FBQ3hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUcsRUFBRSx5QkFBeUIsU0FBUyx5QkFBeUI7QUFDaEU7QUFDQSxtQ0FBbUMseUJBQXlCLFNBQVMseUJBQXlCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvaGVscGVycy93cmFwTmF0aXZlU3VwZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsidmFyIGdldFByb3RvdHlwZU9mID0gcmVxdWlyZShcIi4vZ2V0UHJvdG90eXBlT2YuanNcIik7XG52YXIgc2V0UHJvdG90eXBlT2YgPSByZXF1aXJlKFwiLi9zZXRQcm90b3R5cGVPZi5qc1wiKTtcbnZhciBpc05hdGl2ZUZ1bmN0aW9uID0gcmVxdWlyZShcIi4vaXNOYXRpdmVGdW5jdGlvbi5qc1wiKTtcbnZhciBjb25zdHJ1Y3QgPSByZXF1aXJlKFwiLi9jb25zdHJ1Y3QuanNcIik7XG5mdW5jdGlvbiBfd3JhcE5hdGl2ZVN1cGVyKHQpIHtcbiAgdmFyIHIgPSBcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIE1hcCA/IG5ldyBNYXAoKSA6IHZvaWQgMDtcbiAgcmV0dXJuIG1vZHVsZS5leHBvcnRzID0gX3dyYXBOYXRpdmVTdXBlciA9IGZ1bmN0aW9uIF93cmFwTmF0aXZlU3VwZXIodCkge1xuICAgIGlmIChudWxsID09PSB0IHx8ICFpc05hdGl2ZUZ1bmN0aW9uKHQpKSByZXR1cm4gdDtcbiAgICBpZiAoXCJmdW5jdGlvblwiICE9IHR5cGVvZiB0KSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3VwZXIgZXhwcmVzc2lvbiBtdXN0IGVpdGhlciBiZSBudWxsIG9yIGEgZnVuY3Rpb25cIik7XG4gICAgaWYgKHZvaWQgMCAhPT0gcikge1xuICAgICAgaWYgKHIuaGFzKHQpKSByZXR1cm4gci5nZXQodCk7XG4gICAgICByLnNldCh0LCBXcmFwcGVyKTtcbiAgICB9XG4gICAgZnVuY3Rpb24gV3JhcHBlcigpIHtcbiAgICAgIHJldHVybiBjb25zdHJ1Y3QodCwgYXJndW1lbnRzLCBnZXRQcm90b3R5cGVPZih0aGlzKS5jb25zdHJ1Y3Rvcik7XG4gICAgfVxuICAgIHJldHVybiBXcmFwcGVyLnByb3RvdHlwZSA9IE9iamVjdC5jcmVhdGUodC5wcm90b3R5cGUsIHtcbiAgICAgIGNvbnN0cnVjdG9yOiB7XG4gICAgICAgIHZhbHVlOiBXcmFwcGVyLFxuICAgICAgICBlbnVtZXJhYmxlOiAhMSxcbiAgICAgICAgd3JpdGFibGU6ICEwLFxuICAgICAgICBjb25maWd1cmFibGU6ICEwXG4gICAgICB9XG4gICAgfSksIHNldFByb3RvdHlwZU9mKFdyYXBwZXIsIHQpO1xuICB9LCBtb2R1bGUuZXhwb3J0cy5fX2VzTW9kdWxlID0gdHJ1ZSwgbW9kdWxlLmV4cG9ydHNbXCJkZWZhdWx0XCJdID0gbW9kdWxlLmV4cG9ydHMsIF93cmFwTmF0aXZlU3VwZXIodCk7XG59XG5tb2R1bGUuZXhwb3J0cyA9IF93cmFwTmF0aXZlU3VwZXIsIG1vZHVsZS5leHBvcnRzLl9fZXNNb2R1bGUgPSB0cnVlLCBtb2R1bGUuZXhwb3J0c1tcImRlZmF1bHRcIl0gPSBtb2R1bGUuZXhwb3J0czsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/@babel/runtime/regenerator/index.js":
+/*!**********************************************************!*\
+ !*** ./node_modules/@babel/runtime/regenerator/index.js ***!
+ \**********************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval("// TODO(Babel 8): Remove this file.\n\nvar runtime = __webpack_require__(/*! ../helpers/regeneratorRuntime */ \"(rsc)/./node_modules/@babel/runtime/helpers/regeneratorRuntime.js\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3IvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQUE7O0FBRUEsY0FBYyxtQkFBTyxDQUFDLHdHQUErQjtBQUNyRDs7QUFFQTtBQUNBO0FBQ0E7QUFDQSxFQUFFO0FBQ0Y7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9AYmFiZWwvcnVudGltZS9yZWdlbmVyYXRvci9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPKEJhYmVsIDgpOiBSZW1vdmUgdGhpcyBmaWxlLlxuXG52YXIgcnVudGltZSA9IHJlcXVpcmUoXCIuLi9oZWxwZXJzL3JlZ2VuZXJhdG9yUnVudGltZVwiKSgpO1xubW9kdWxlLmV4cG9ydHMgPSBydW50aW1lO1xuXG4vLyBDb3BpZWQgZnJvbSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVnZW5lcmF0b3IvYmxvYi9tYWluL3BhY2thZ2VzL3J1bnRpbWUvcnVudGltZS5qcyNMNzM2PVxudHJ5IHtcbiAgcmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbn0gY2F0Y2ggKGFjY2lkZW50YWxTdHJpY3RNb2RlKSB7XG4gIGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gXCJvYmplY3RcIikge1xuICAgIGdsb2JhbFRoaXMucmVnZW5lcmF0b3JSdW50aW1lID0gcnVudGltZTtcbiAgfSBlbHNlIHtcbiAgICBGdW5jdGlvbihcInJcIiwgXCJyZWdlbmVyYXRvclJ1bnRpbWUgPSByXCIpKHJ1bnRpbWUpO1xuICB9XG59XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/@babel/runtime/regenerator/index.js\n");
+
+/***/ }),
+
/***/ "(ssr)/./node_modules/@babel/runtime/helpers/OverloadYield.js":
/*!**************************************************************!*\
!*** ./node_modules/@babel/runtime/helpers/OverloadYield.js ***!
diff --git a/.next/server/vendor-chunks/next-auth.js b/.next/server/vendor-chunks/next-auth.js
index 124049b..31fc75e 100644
--- a/.next/server/vendor-chunks/next-auth.js
+++ b/.next/server/vendor-chunks/next-auth.js
@@ -1,4 +1,3 @@
-"use strict";
/*
* ATTENTION: An "eval-source-map" devtool has been used.
* This devtool is neither made for production nor for readable output files.
@@ -11,12 +10,463 @@ exports.id = "vendor-chunks/next-auth";
exports.ids = ["vendor-chunks/next-auth"];
exports.modules = {
+/***/ "(rsc)/./node_modules/next-auth/core/errors.js":
+/*!***********************************************!*\
+ !*** ./node_modules/next-auth/core/errors.js ***!
+ \***********************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(rsc)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.UnsupportedStrategy = exports.UnknownError = exports.OAuthCallbackError = exports.MissingSecret = exports.MissingAuthorize = exports.MissingAdapterMethods = exports.MissingAdapter = exports.MissingAPIRoute = exports.InvalidCallbackUrl = exports.AccountNotLinkedError = void 0;\nexports.adapterErrorHandler = adapterErrorHandler;\nexports.capitalize = capitalize;\nexports.eventsErrorHandler = eventsErrorHandler;\nexports.upperSnake = upperSnake;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(rsc)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(rsc)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(rsc)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"(rsc)/./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"(rsc)/./node_modules/@babel/runtime/helpers/createClass.js\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"(rsc)/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\"));\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"(rsc)/./node_modules/@babel/runtime/helpers/getPrototypeOf.js\"));\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"(rsc)/./node_modules/@babel/runtime/helpers/inherits.js\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ \"(rsc)/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\"));\nfunction _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nvar UnknownError = exports.UnknownError = function (_Error) {\n function UnknownError(error) {\n var _message;\n var _this;\n (0, _classCallCheck2.default)(this, UnknownError);\n _this = _callSuper(this, UnknownError, [(_message = error === null || error === void 0 ? void 0 : error.message) !== null && _message !== void 0 ? _message : error]);\n _this.name = \"UnknownError\";\n _this.code = error.code;\n if (error instanceof Error) {\n _this.stack = error.stack;\n }\n return _this;\n }\n (0, _inherits2.default)(UnknownError, _Error);\n return (0, _createClass2.default)(UnknownError, [{\n key: \"toJSON\",\n value: function toJSON() {\n return {\n name: this.name,\n message: this.message,\n stack: this.stack\n };\n }\n }]);\n}((0, _wrapNativeSuper2.default)(Error));\nvar OAuthCallbackError = exports.OAuthCallbackError = function (_UnknownError) {\n function OAuthCallbackError() {\n var _this2;\n (0, _classCallCheck2.default)(this, OAuthCallbackError);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _callSuper(this, OAuthCallbackError, [].concat(args));\n (0, _defineProperty2.default)(_this2, \"name\", \"OAuthCallbackError\");\n return _this2;\n }\n (0, _inherits2.default)(OAuthCallbackError, _UnknownError);\n return (0, _createClass2.default)(OAuthCallbackError);\n}(UnknownError);\nvar AccountNotLinkedError = exports.AccountNotLinkedError = function (_UnknownError2) {\n function AccountNotLinkedError() {\n var _this3;\n (0, _classCallCheck2.default)(this, AccountNotLinkedError);\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _this3 = _callSuper(this, AccountNotLinkedError, [].concat(args));\n (0, _defineProperty2.default)(_this3, \"name\", \"AccountNotLinkedError\");\n return _this3;\n }\n (0, _inherits2.default)(AccountNotLinkedError, _UnknownError2);\n return (0, _createClass2.default)(AccountNotLinkedError);\n}(UnknownError);\nvar MissingAPIRoute = exports.MissingAPIRoute = function (_UnknownError3) {\n function MissingAPIRoute() {\n var _this4;\n (0, _classCallCheck2.default)(this, MissingAPIRoute);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n _this4 = _callSuper(this, MissingAPIRoute, [].concat(args));\n (0, _defineProperty2.default)(_this4, \"name\", \"MissingAPIRouteError\");\n (0, _defineProperty2.default)(_this4, \"code\", \"MISSING_NEXTAUTH_API_ROUTE_ERROR\");\n return _this4;\n }\n (0, _inherits2.default)(MissingAPIRoute, _UnknownError3);\n return (0, _createClass2.default)(MissingAPIRoute);\n}(UnknownError);\nvar MissingSecret = exports.MissingSecret = function (_UnknownError4) {\n function MissingSecret() {\n var _this5;\n (0, _classCallCheck2.default)(this, MissingSecret);\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n _this5 = _callSuper(this, MissingSecret, [].concat(args));\n (0, _defineProperty2.default)(_this5, \"name\", \"MissingSecretError\");\n (0, _defineProperty2.default)(_this5, \"code\", \"NO_SECRET\");\n return _this5;\n }\n (0, _inherits2.default)(MissingSecret, _UnknownError4);\n return (0, _createClass2.default)(MissingSecret);\n}(UnknownError);\nvar MissingAuthorize = exports.MissingAuthorize = function (_UnknownError5) {\n function MissingAuthorize() {\n var _this6;\n (0, _classCallCheck2.default)(this, MissingAuthorize);\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n _this6 = _callSuper(this, MissingAuthorize, [].concat(args));\n (0, _defineProperty2.default)(_this6, \"name\", \"MissingAuthorizeError\");\n (0, _defineProperty2.default)(_this6, \"code\", \"CALLBACK_CREDENTIALS_HANDLER_ERROR\");\n return _this6;\n }\n (0, _inherits2.default)(MissingAuthorize, _UnknownError5);\n return (0, _createClass2.default)(MissingAuthorize);\n}(UnknownError);\nvar MissingAdapter = exports.MissingAdapter = function (_UnknownError6) {\n function MissingAdapter() {\n var _this7;\n (0, _classCallCheck2.default)(this, MissingAdapter);\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n _this7 = _callSuper(this, MissingAdapter, [].concat(args));\n (0, _defineProperty2.default)(_this7, \"name\", \"MissingAdapterError\");\n (0, _defineProperty2.default)(_this7, \"code\", \"EMAIL_REQUIRES_ADAPTER_ERROR\");\n return _this7;\n }\n (0, _inherits2.default)(MissingAdapter, _UnknownError6);\n return (0, _createClass2.default)(MissingAdapter);\n}(UnknownError);\nvar MissingAdapterMethods = exports.MissingAdapterMethods = function (_UnknownError7) {\n function MissingAdapterMethods() {\n var _this8;\n (0, _classCallCheck2.default)(this, MissingAdapterMethods);\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n _this8 = _callSuper(this, MissingAdapterMethods, [].concat(args));\n (0, _defineProperty2.default)(_this8, \"name\", \"MissingAdapterMethodsError\");\n (0, _defineProperty2.default)(_this8, \"code\", \"MISSING_ADAPTER_METHODS_ERROR\");\n return _this8;\n }\n (0, _inherits2.default)(MissingAdapterMethods, _UnknownError7);\n return (0, _createClass2.default)(MissingAdapterMethods);\n}(UnknownError);\nvar UnsupportedStrategy = exports.UnsupportedStrategy = function (_UnknownError8) {\n function UnsupportedStrategy() {\n var _this9;\n (0, _classCallCheck2.default)(this, UnsupportedStrategy);\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n _this9 = _callSuper(this, UnsupportedStrategy, [].concat(args));\n (0, _defineProperty2.default)(_this9, \"name\", \"UnsupportedStrategyError\");\n (0, _defineProperty2.default)(_this9, \"code\", \"CALLBACK_CREDENTIALS_JWT_ERROR\");\n return _this9;\n }\n (0, _inherits2.default)(UnsupportedStrategy, _UnknownError8);\n return (0, _createClass2.default)(UnsupportedStrategy);\n}(UnknownError);\nvar InvalidCallbackUrl = exports.InvalidCallbackUrl = function (_UnknownError9) {\n function InvalidCallbackUrl() {\n var _this10;\n (0, _classCallCheck2.default)(this, InvalidCallbackUrl);\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n _this10 = _callSuper(this, InvalidCallbackUrl, [].concat(args));\n (0, _defineProperty2.default)(_this10, \"name\", \"InvalidCallbackUrl\");\n (0, _defineProperty2.default)(_this10, \"code\", \"INVALID_CALLBACK_URL_ERROR\");\n return _this10;\n }\n (0, _inherits2.default)(InvalidCallbackUrl, _UnknownError9);\n return (0, _createClass2.default)(InvalidCallbackUrl);\n}(UnknownError);\nfunction upperSnake(s) {\n return s.replace(/([A-Z])/g, \"_$1\").toUpperCase();\n}\nfunction capitalize(s) {\n return \"\".concat(s[0].toUpperCase()).concat(s.slice(1));\n}\nfunction eventsErrorHandler(methods, logger) {\n return Object.keys(methods).reduce(function (acc, name) {\n acc[name] = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {\n var method,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n method = methods[name];\n _context.next = 4;\n return method.apply(void 0, _args);\n case 4:\n return _context.abrupt(\"return\", _context.sent);\n case 7:\n _context.prev = 7;\n _context.t0 = _context[\"catch\"](0);\n logger.error(\"\".concat(upperSnake(name), \"_EVENT_ERROR\"), _context.t0);\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 7]]);\n }));\n return acc;\n }, {});\n}\nfunction adapterErrorHandler(adapter, logger) {\n if (!adapter) return;\n return Object.keys(adapter).reduce(function (acc, name) {\n acc[name] = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {\n var _len10,\n args,\n _key10,\n method,\n e,\n _args2 = arguments;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n for (_len10 = _args2.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = _args2[_key10];\n }\n logger.debug(\"adapter_\".concat(name), {\n args: args\n });\n method = adapter[name];\n _context2.next = 6;\n return method.apply(void 0, args);\n case 6:\n return _context2.abrupt(\"return\", _context2.sent);\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](0);\n logger.error(\"adapter_error_\".concat(name), _context2.t0);\n e = new UnknownError(_context2.t0);\n e.name = \"\".concat(capitalize(name), \"Error\");\n throw e;\n case 15:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 9]]);\n }));\n return acc;\n }, {});\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvZXJyb3JzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLDBIQUE4QztBQUNuRiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQkFBMkIsR0FBRyxvQkFBb0IsR0FBRywwQkFBMEIsR0FBRyxxQkFBcUIsR0FBRyx3QkFBd0IsR0FBRyw2QkFBNkIsR0FBRyxzQkFBc0IsR0FBRyx1QkFBdUIsR0FBRywwQkFBMEIsR0FBRyw2QkFBNkI7QUFDbFIsMkJBQTJCO0FBQzNCLGtCQUFrQjtBQUNsQiwwQkFBMEI7QUFDMUIsa0JBQWtCO0FBQ2xCLDBDQUEwQyxtQkFBTyxDQUFDLDRGQUE0QjtBQUM5RSxnREFBZ0QsbUJBQU8sQ0FBQyxnSEFBeUM7QUFDakcsOENBQThDLG1CQUFPLENBQUMsNEdBQXVDO0FBQzdGLDhDQUE4QyxtQkFBTyxDQUFDLDRHQUF1QztBQUM3RiwyQ0FBMkMsbUJBQU8sQ0FBQyxzR0FBb0M7QUFDdkYseURBQXlELG1CQUFPLENBQUMsa0lBQWtEO0FBQ25ILDhDQUE4QyxtQkFBTyxDQUFDLDRHQUF1QztBQUM3Rix3Q0FBd0MsbUJBQU8sQ0FBQyxnR0FBaUM7QUFDakYsK0NBQStDLG1CQUFPLENBQUMsOEdBQXdDO0FBQy9GLCtCQUErQjtBQUMvQix1Q0FBdUMsTUFBTSxxRkFBcUYsTUFBTSxhQUFhLDJFQUEyRSxhQUFhO0FBQzdPLG1CQUFtQixvQkFBb0I7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsQ0FBQztBQUNELHlCQUF5QiwwQkFBMEI7QUFDbkQ7QUFDQTtBQUNBO0FBQ0Esd0VBQXdFLGFBQWE7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCw0QkFBNEIsNkJBQTZCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsc0JBQXNCLHVCQUF1QjtBQUM3QztBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsb0JBQW9CLHFCQUFxQjtBQUN6QztBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsdUJBQXVCLHdCQUF3QjtBQUMvQztBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QscUJBQXFCLHNCQUFzQjtBQUMzQztBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsNEJBQTRCLDZCQUE2QjtBQUN6RDtBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsMEJBQTBCLDJCQUEyQjtBQUNyRDtBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QseUJBQXlCLDBCQUEwQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0EsR0FBRyxJQUFJO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0VBQStFLGlCQUFpQjtBQUNoRztBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQSxHQUFHLElBQUk7QUFDUCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9jb3JlL2Vycm9ycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5VbnN1cHBvcnRlZFN0cmF0ZWd5ID0gZXhwb3J0cy5Vbmtub3duRXJyb3IgPSBleHBvcnRzLk9BdXRoQ2FsbGJhY2tFcnJvciA9IGV4cG9ydHMuTWlzc2luZ1NlY3JldCA9IGV4cG9ydHMuTWlzc2luZ0F1dGhvcml6ZSA9IGV4cG9ydHMuTWlzc2luZ0FkYXB0ZXJNZXRob2RzID0gZXhwb3J0cy5NaXNzaW5nQWRhcHRlciA9IGV4cG9ydHMuTWlzc2luZ0FQSVJvdXRlID0gZXhwb3J0cy5JbnZhbGlkQ2FsbGJhY2tVcmwgPSBleHBvcnRzLkFjY291bnROb3RMaW5rZWRFcnJvciA9IHZvaWQgMDtcbmV4cG9ydHMuYWRhcHRlckVycm9ySGFuZGxlciA9IGFkYXB0ZXJFcnJvckhhbmRsZXI7XG5leHBvcnRzLmNhcGl0YWxpemUgPSBjYXBpdGFsaXplO1xuZXhwb3J0cy5ldmVudHNFcnJvckhhbmRsZXIgPSBldmVudHNFcnJvckhhbmRsZXI7XG5leHBvcnRzLnVwcGVyU25ha2UgPSB1cHBlclNuYWtlO1xudmFyIF9yZWdlbmVyYXRvciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yXCIpKTtcbnZhciBfYXN5bmNUb0dlbmVyYXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2FzeW5jVG9HZW5lcmF0b3JcIikpO1xudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5XCIpKTtcbnZhciBfY2xhc3NDYWxsQ2hlY2syID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVja1wiKSk7XG52YXIgX2NyZWF0ZUNsYXNzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3NcIikpO1xudmFyIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVyblwiKSk7XG52YXIgX2dldFByb3RvdHlwZU9mMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZ2V0UHJvdG90eXBlT2ZcIikpO1xudmFyIF9pbmhlcml0czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2luaGVyaXRzXCIpKTtcbnZhciBfd3JhcE5hdGl2ZVN1cGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvd3JhcE5hdGl2ZVN1cGVyXCIpKTtcbmZ1bmN0aW9uIF9jYWxsU3VwZXIodCwgbywgZSkgeyByZXR1cm4gbyA9ICgwLCBfZ2V0UHJvdG90eXBlT2YyLmRlZmF1bHQpKG8pLCAoMCwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yLmRlZmF1bHQpKHQsIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSA/IFJlZmxlY3QuY29uc3RydWN0KG8sIGUgfHwgW10sICgwLCBfZ2V0UHJvdG90eXBlT2YyLmRlZmF1bHQpKHQpLmNvbnN0cnVjdG9yKSA6IG8uYXBwbHkodCwgZSkpOyB9XG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyB0cnkgeyB2YXIgdCA9ICFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbiwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IH0gY2F0Y2ggKHQpIHt9IHJldHVybiAoX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IGZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IHJldHVybiAhIXQ7IH0pKCk7IH1cbnZhciBVbmtub3duRXJyb3IgPSBleHBvcnRzLlVua25vd25FcnJvciA9IGZ1bmN0aW9uIChfRXJyb3IpIHtcbiAgZnVuY3Rpb24gVW5rbm93bkVycm9yKGVycm9yKSB7XG4gICAgdmFyIF9tZXNzYWdlO1xuICAgIHZhciBfdGhpcztcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBVbmtub3duRXJyb3IpO1xuICAgIF90aGlzID0gX2NhbGxTdXBlcih0aGlzLCBVbmtub3duRXJyb3IsIFsoX21lc3NhZ2UgPSBlcnJvciA9PT0gbnVsbCB8fCBlcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXJyb3IubWVzc2FnZSkgIT09IG51bGwgJiYgX21lc3NhZ2UgIT09IHZvaWQgMCA/IF9tZXNzYWdlIDogZXJyb3JdKTtcbiAgICBfdGhpcy5uYW1lID0gXCJVbmtub3duRXJyb3JcIjtcbiAgICBfdGhpcy5jb2RlID0gZXJyb3IuY29kZTtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgX3RoaXMuc3RhY2sgPSBlcnJvci5zdGFjaztcbiAgICB9XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKFVua25vd25FcnJvciwgX0Vycm9yKTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKFVua25vd25FcnJvciwgW3tcbiAgICBrZXk6IFwidG9KU09OXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHRvSlNPTigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgbWVzc2FnZTogdGhpcy5tZXNzYWdlLFxuICAgICAgICBzdGFjazogdGhpcy5zdGFja1xuICAgICAgfTtcbiAgICB9XG4gIH1dKTtcbn0oKDAsIF93cmFwTmF0aXZlU3VwZXIyLmRlZmF1bHQpKEVycm9yKSk7XG52YXIgT0F1dGhDYWxsYmFja0Vycm9yID0gZXhwb3J0cy5PQXV0aENhbGxiYWNrRXJyb3IgPSBmdW5jdGlvbiAoX1Vua25vd25FcnJvcikge1xuICBmdW5jdGlvbiBPQXV0aENhbGxiYWNrRXJyb3IoKSB7XG4gICAgdmFyIF90aGlzMjtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBPQXV0aENhbGxiYWNrRXJyb3IpO1xuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG4gICAgX3RoaXMyID0gX2NhbGxTdXBlcih0aGlzLCBPQXV0aENhbGxiYWNrRXJyb3IsIFtdLmNvbmNhdChhcmdzKSk7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXMyLCBcIm5hbWVcIiwgXCJPQXV0aENhbGxiYWNrRXJyb3JcIik7XG4gICAgcmV0dXJuIF90aGlzMjtcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShPQXV0aENhbGxiYWNrRXJyb3IsIF9Vbmtub3duRXJyb3IpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoT0F1dGhDYWxsYmFja0Vycm9yKTtcbn0oVW5rbm93bkVycm9yKTtcbnZhciBBY2NvdW50Tm90TGlua2VkRXJyb3IgPSBleHBvcnRzLkFjY291bnROb3RMaW5rZWRFcnJvciA9IGZ1bmN0aW9uIChfVW5rbm93bkVycm9yMikge1xuICBmdW5jdGlvbiBBY2NvdW50Tm90TGlua2VkRXJyb3IoKSB7XG4gICAgdmFyIF90aGlzMztcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBBY2NvdW50Tm90TGlua2VkRXJyb3IpO1xuICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgIH1cbiAgICBfdGhpczMgPSBfY2FsbFN1cGVyKHRoaXMsIEFjY291bnROb3RMaW5rZWRFcnJvciwgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczMsIFwibmFtZVwiLCBcIkFjY291bnROb3RMaW5rZWRFcnJvclwiKTtcbiAgICByZXR1cm4gX3RoaXMzO1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKEFjY291bnROb3RMaW5rZWRFcnJvciwgX1Vua25vd25FcnJvcjIpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoQWNjb3VudE5vdExpbmtlZEVycm9yKTtcbn0oVW5rbm93bkVycm9yKTtcbnZhciBNaXNzaW5nQVBJUm91dGUgPSBleHBvcnRzLk1pc3NpbmdBUElSb3V0ZSA9IGZ1bmN0aW9uIChfVW5rbm93bkVycm9yMykge1xuICBmdW5jdGlvbiBNaXNzaW5nQVBJUm91dGUoKSB7XG4gICAgdmFyIF90aGlzNDtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBNaXNzaW5nQVBJUm91dGUpO1xuICAgIGZvciAodmFyIF9sZW4zID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMyksIF9rZXkzID0gMDsgX2tleTMgPCBfbGVuMzsgX2tleTMrKykge1xuICAgICAgYXJnc1tfa2V5M10gPSBhcmd1bWVudHNbX2tleTNdO1xuICAgIH1cbiAgICBfdGhpczQgPSBfY2FsbFN1cGVyKHRoaXMsIE1pc3NpbmdBUElSb3V0ZSwgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczQsIFwibmFtZVwiLCBcIk1pc3NpbmdBUElSb3V0ZUVycm9yXCIpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzNCwgXCJjb2RlXCIsIFwiTUlTU0lOR19ORVhUQVVUSF9BUElfUk9VVEVfRVJST1JcIik7XG4gICAgcmV0dXJuIF90aGlzNDtcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShNaXNzaW5nQVBJUm91dGUsIF9Vbmtub3duRXJyb3IzKTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKE1pc3NpbmdBUElSb3V0ZSk7XG59KFVua25vd25FcnJvcik7XG52YXIgTWlzc2luZ1NlY3JldCA9IGV4cG9ydHMuTWlzc2luZ1NlY3JldCA9IGZ1bmN0aW9uIChfVW5rbm93bkVycm9yNCkge1xuICBmdW5jdGlvbiBNaXNzaW5nU2VjcmV0KCkge1xuICAgIHZhciBfdGhpczU7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgTWlzc2luZ1NlY3JldCk7XG4gICAgZm9yICh2YXIgX2xlbjQgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW40KSwgX2tleTQgPSAwOyBfa2V5NCA8IF9sZW40OyBfa2V5NCsrKSB7XG4gICAgICBhcmdzW19rZXk0XSA9IGFyZ3VtZW50c1tfa2V5NF07XG4gICAgfVxuICAgIF90aGlzNSA9IF9jYWxsU3VwZXIodGhpcywgTWlzc2luZ1NlY3JldCwgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczUsIFwibmFtZVwiLCBcIk1pc3NpbmdTZWNyZXRFcnJvclwiKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczUsIFwiY29kZVwiLCBcIk5PX1NFQ1JFVFwiKTtcbiAgICByZXR1cm4gX3RoaXM1O1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKE1pc3NpbmdTZWNyZXQsIF9Vbmtub3duRXJyb3I0KTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKE1pc3NpbmdTZWNyZXQpO1xufShVbmtub3duRXJyb3IpO1xudmFyIE1pc3NpbmdBdXRob3JpemUgPSBleHBvcnRzLk1pc3NpbmdBdXRob3JpemUgPSBmdW5jdGlvbiAoX1Vua25vd25FcnJvcjUpIHtcbiAgZnVuY3Rpb24gTWlzc2luZ0F1dGhvcml6ZSgpIHtcbiAgICB2YXIgX3RoaXM2O1xuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2syLmRlZmF1bHQpKHRoaXMsIE1pc3NpbmdBdXRob3JpemUpO1xuICAgIGZvciAodmFyIF9sZW41ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNSksIF9rZXk1ID0gMDsgX2tleTUgPCBfbGVuNTsgX2tleTUrKykge1xuICAgICAgYXJnc1tfa2V5NV0gPSBhcmd1bWVudHNbX2tleTVdO1xuICAgIH1cbiAgICBfdGhpczYgPSBfY2FsbFN1cGVyKHRoaXMsIE1pc3NpbmdBdXRob3JpemUsIFtdLmNvbmNhdChhcmdzKSk7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM2LCBcIm5hbWVcIiwgXCJNaXNzaW5nQXV0aG9yaXplRXJyb3JcIik7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM2LCBcImNvZGVcIiwgXCJDQUxMQkFDS19DUkVERU5USUFMU19IQU5ETEVSX0VSUk9SXCIpO1xuICAgIHJldHVybiBfdGhpczY7XG4gIH1cbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoTWlzc2luZ0F1dGhvcml6ZSwgX1Vua25vd25FcnJvcjUpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoTWlzc2luZ0F1dGhvcml6ZSk7XG59KFVua25vd25FcnJvcik7XG52YXIgTWlzc2luZ0FkYXB0ZXIgPSBleHBvcnRzLk1pc3NpbmdBZGFwdGVyID0gZnVuY3Rpb24gKF9Vbmtub3duRXJyb3I2KSB7XG4gIGZ1bmN0aW9uIE1pc3NpbmdBZGFwdGVyKCkge1xuICAgIHZhciBfdGhpczc7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgTWlzc2luZ0FkYXB0ZXIpO1xuICAgIGZvciAodmFyIF9sZW42ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNiksIF9rZXk2ID0gMDsgX2tleTYgPCBfbGVuNjsgX2tleTYrKykge1xuICAgICAgYXJnc1tfa2V5Nl0gPSBhcmd1bWVudHNbX2tleTZdO1xuICAgIH1cbiAgICBfdGhpczcgPSBfY2FsbFN1cGVyKHRoaXMsIE1pc3NpbmdBZGFwdGVyLCBbXS5jb25jYXQoYXJncykpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzNywgXCJuYW1lXCIsIFwiTWlzc2luZ0FkYXB0ZXJFcnJvclwiKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczcsIFwiY29kZVwiLCBcIkVNQUlMX1JFUVVJUkVTX0FEQVBURVJfRVJST1JcIik7XG4gICAgcmV0dXJuIF90aGlzNztcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShNaXNzaW5nQWRhcHRlciwgX1Vua25vd25FcnJvcjYpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoTWlzc2luZ0FkYXB0ZXIpO1xufShVbmtub3duRXJyb3IpO1xudmFyIE1pc3NpbmdBZGFwdGVyTWV0aG9kcyA9IGV4cG9ydHMuTWlzc2luZ0FkYXB0ZXJNZXRob2RzID0gZnVuY3Rpb24gKF9Vbmtub3duRXJyb3I3KSB7XG4gIGZ1bmN0aW9uIE1pc3NpbmdBZGFwdGVyTWV0aG9kcygpIHtcbiAgICB2YXIgX3RoaXM4O1xuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2syLmRlZmF1bHQpKHRoaXMsIE1pc3NpbmdBZGFwdGVyTWV0aG9kcyk7XG4gICAgZm9yICh2YXIgX2xlbjcgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW43KSwgX2tleTcgPSAwOyBfa2V5NyA8IF9sZW43OyBfa2V5NysrKSB7XG4gICAgICBhcmdzW19rZXk3XSA9IGFyZ3VtZW50c1tfa2V5N107XG4gICAgfVxuICAgIF90aGlzOCA9IF9jYWxsU3VwZXIodGhpcywgTWlzc2luZ0FkYXB0ZXJNZXRob2RzLCBbXS5jb25jYXQoYXJncykpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzOCwgXCJuYW1lXCIsIFwiTWlzc2luZ0FkYXB0ZXJNZXRob2RzRXJyb3JcIik7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM4LCBcImNvZGVcIiwgXCJNSVNTSU5HX0FEQVBURVJfTUVUSE9EU19FUlJPUlwiKTtcbiAgICByZXR1cm4gX3RoaXM4O1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKE1pc3NpbmdBZGFwdGVyTWV0aG9kcywgX1Vua25vd25FcnJvcjcpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoTWlzc2luZ0FkYXB0ZXJNZXRob2RzKTtcbn0oVW5rbm93bkVycm9yKTtcbnZhciBVbnN1cHBvcnRlZFN0cmF0ZWd5ID0gZXhwb3J0cy5VbnN1cHBvcnRlZFN0cmF0ZWd5ID0gZnVuY3Rpb24gKF9Vbmtub3duRXJyb3I4KSB7XG4gIGZ1bmN0aW9uIFVuc3VwcG9ydGVkU3RyYXRlZ3koKSB7XG4gICAgdmFyIF90aGlzOTtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBVbnN1cHBvcnRlZFN0cmF0ZWd5KTtcbiAgICBmb3IgKHZhciBfbGVuOCA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjgpLCBfa2V5OCA9IDA7IF9rZXk4IDwgX2xlbjg7IF9rZXk4KyspIHtcbiAgICAgIGFyZ3NbX2tleThdID0gYXJndW1lbnRzW19rZXk4XTtcbiAgICB9XG4gICAgX3RoaXM5ID0gX2NhbGxTdXBlcih0aGlzLCBVbnN1cHBvcnRlZFN0cmF0ZWd5LCBbXS5jb25jYXQoYXJncykpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzOSwgXCJuYW1lXCIsIFwiVW5zdXBwb3J0ZWRTdHJhdGVneUVycm9yXCIpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzOSwgXCJjb2RlXCIsIFwiQ0FMTEJBQ0tfQ1JFREVOVElBTFNfSldUX0VSUk9SXCIpO1xuICAgIHJldHVybiBfdGhpczk7XG4gIH1cbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoVW5zdXBwb3J0ZWRTdHJhdGVneSwgX1Vua25vd25FcnJvcjgpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoVW5zdXBwb3J0ZWRTdHJhdGVneSk7XG59KFVua25vd25FcnJvcik7XG52YXIgSW52YWxpZENhbGxiYWNrVXJsID0gZXhwb3J0cy5JbnZhbGlkQ2FsbGJhY2tVcmwgPSBmdW5jdGlvbiAoX1Vua25vd25FcnJvcjkpIHtcbiAgZnVuY3Rpb24gSW52YWxpZENhbGxiYWNrVXJsKCkge1xuICAgIHZhciBfdGhpczEwO1xuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2syLmRlZmF1bHQpKHRoaXMsIEludmFsaWRDYWxsYmFja1VybCk7XG4gICAgZm9yICh2YXIgX2xlbjkgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW45KSwgX2tleTkgPSAwOyBfa2V5OSA8IF9sZW45OyBfa2V5OSsrKSB7XG4gICAgICBhcmdzW19rZXk5XSA9IGFyZ3VtZW50c1tfa2V5OV07XG4gICAgfVxuICAgIF90aGlzMTAgPSBfY2FsbFN1cGVyKHRoaXMsIEludmFsaWRDYWxsYmFja1VybCwgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczEwLCBcIm5hbWVcIiwgXCJJbnZhbGlkQ2FsbGJhY2tVcmxcIik7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXMxMCwgXCJjb2RlXCIsIFwiSU5WQUxJRF9DQUxMQkFDS19VUkxfRVJST1JcIik7XG4gICAgcmV0dXJuIF90aGlzMTA7XG4gIH1cbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoSW52YWxpZENhbGxiYWNrVXJsLCBfVW5rbm93bkVycm9yOSk7XG4gIHJldHVybiAoMCwgX2NyZWF0ZUNsYXNzMi5kZWZhdWx0KShJbnZhbGlkQ2FsbGJhY2tVcmwpO1xufShVbmtub3duRXJyb3IpO1xuZnVuY3Rpb24gdXBwZXJTbmFrZShzKSB7XG4gIHJldHVybiBzLnJlcGxhY2UoLyhbQS1aXSkvZywgXCJfJDFcIikudG9VcHBlckNhc2UoKTtcbn1cbmZ1bmN0aW9uIGNhcGl0YWxpemUocykge1xuICByZXR1cm4gXCJcIi5jb25jYXQoc1swXS50b1VwcGVyQ2FzZSgpKS5jb25jYXQocy5zbGljZSgxKSk7XG59XG5mdW5jdGlvbiBldmVudHNFcnJvckhhbmRsZXIobWV0aG9kcywgbG9nZ2VyKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhtZXRob2RzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgbmFtZSkge1xuICAgIGFjY1tuYW1lXSA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjIuZGVmYXVsdCkoX3JlZ2VuZXJhdG9yLmRlZmF1bHQubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkge1xuICAgICAgdmFyIG1ldGhvZCxcbiAgICAgICAgX2FyZ3MgPSBhcmd1bWVudHM7XG4gICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yLmRlZmF1bHQud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkge1xuICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAwO1xuICAgICAgICAgICAgbWV0aG9kID0gbWV0aG9kc1tuYW1lXTtcbiAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA0O1xuICAgICAgICAgICAgcmV0dXJuIG1ldGhvZC5hcHBseSh2b2lkIDAsIF9hcmdzKTtcbiAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0LnNlbnQpO1xuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSA3O1xuICAgICAgICAgICAgX2NvbnRleHQudDAgPSBfY29udGV4dFtcImNhdGNoXCJdKDApO1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFwiXCIuY29uY2F0KHVwcGVyU25ha2UobmFtZSksIFwiX0VWRU5UX0VSUk9SXCIpLCBfY29udGV4dC50MCk7XG4gICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzAsIDddXSk7XG4gICAgfSkpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cbmZ1bmN0aW9uIGFkYXB0ZXJFcnJvckhhbmRsZXIoYWRhcHRlciwgbG9nZ2VyKSB7XG4gIGlmICghYWRhcHRlcikgcmV0dXJuO1xuICByZXR1cm4gT2JqZWN0LmtleXMoYWRhcHRlcikucmVkdWNlKGZ1bmN0aW9uIChhY2MsIG5hbWUpIHtcbiAgICBhY2NbbmFtZV0gPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7XG4gICAgICB2YXIgX2xlbjEwLFxuICAgICAgICBhcmdzLFxuICAgICAgICBfa2V5MTAsXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgZSxcbiAgICAgICAgX2FyZ3MyID0gYXJndW1lbnRzO1xuICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0Mikge1xuICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQyLnByZXYgPSAwO1xuICAgICAgICAgICAgZm9yIChfbGVuMTAgPSBfYXJnczIubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4xMCksIF9rZXkxMCA9IDA7IF9rZXkxMCA8IF9sZW4xMDsgX2tleTEwKyspIHtcbiAgICAgICAgICAgICAgYXJnc1tfa2V5MTBdID0gX2FyZ3MyW19rZXkxMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2dnZXIuZGVidWcoXCJhZGFwdGVyX1wiLmNvbmNhdChuYW1lKSwge1xuICAgICAgICAgICAgICBhcmdzOiBhcmdzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG1ldGhvZCA9IGFkYXB0ZXJbbmFtZV07XG4gICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDY7XG4gICAgICAgICAgICByZXR1cm4gbWV0aG9kLmFwcGx5KHZvaWQgMCwgYXJncyk7XG4gICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQyLnNlbnQpO1xuICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgIF9jb250ZXh0Mi5wcmV2ID0gOTtcbiAgICAgICAgICAgIF9jb250ZXh0Mi50MCA9IF9jb250ZXh0MltcImNhdGNoXCJdKDApO1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFwiYWRhcHRlcl9lcnJvcl9cIi5jb25jYXQobmFtZSksIF9jb250ZXh0Mi50MCk7XG4gICAgICAgICAgICBlID0gbmV3IFVua25vd25FcnJvcihfY29udGV4dDIudDApO1xuICAgICAgICAgICAgZS5uYW1lID0gXCJcIi5jb25jYXQoY2FwaXRhbGl6ZShuYW1lKSwgXCJFcnJvclwiKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfSwgX2NhbGxlZTIsIG51bGwsIFtbMCwgOV1dKTtcbiAgICB9KSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/errors.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/index.js":
+/*!**********************************************!*\
+ !*** ./node_modules/next-auth/core/index.js ***!
+ \**********************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(rsc)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.AuthHandler = AuthHandler;\nvar _logger = _interopRequireWildcard(__webpack_require__(/*! ../utils/logger */ \"(rsc)/./node_modules/next-auth/utils/logger.js\"));\nvar _detectOrigin = __webpack_require__(/*! ../utils/detect-origin */ \"(rsc)/./node_modules/next-auth/utils/detect-origin.js\");\nvar routes = _interopRequireWildcard(__webpack_require__(/*! ./routes */ \"(rsc)/./node_modules/next-auth/core/routes/index.js\"));\nvar _pages = _interopRequireDefault(__webpack_require__(/*! ./pages */ \"(rsc)/./node_modules/next-auth/core/pages/index.js\"));\nvar _init = __webpack_require__(/*! ./init */ \"(rsc)/./node_modules/next-auth/core/init.js\");\nvar _assert = __webpack_require__(/*! ./lib/assert */ \"(rsc)/./node_modules/next-auth/core/lib/assert.js\");\nvar _cookie = __webpack_require__(/*! ./lib/cookie */ \"(rsc)/./node_modules/next-auth/core/lib/cookie.js\");\nvar _cookie2 = __webpack_require__(/*! cookie */ \"(rsc)/./node_modules/cookie/index.js\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nasync function getBody(req) {\n try {\n return await req.json();\n } catch (_unused) {}\n}\nasync function toInternalRequest(req) {\n var _headers$xForwarded2;\n if (req instanceof Request) {\n var _req$headers$get, _url$searchParams$get, _headers$xForwarded;\n const url = new URL(req.url);\n const nextauth = url.pathname.split(\"/\").slice(3);\n const headers = Object.fromEntries(req.headers);\n const query = Object.fromEntries(url.searchParams);\n query.nextauth = nextauth;\n return {\n action: nextauth[0],\n method: req.method,\n headers,\n body: await getBody(req),\n cookies: (0, _cookie2.parse)((_req$headers$get = req.headers.get(\"cookie\")) !== null && _req$headers$get !== void 0 ? _req$headers$get : \"\"),\n providerId: nextauth[1],\n error: (_url$searchParams$get = url.searchParams.get(\"error\")) !== null && _url$searchParams$get !== void 0 ? _url$searchParams$get : nextauth[1],\n origin: (0, _detectOrigin.detectOrigin)((_headers$xForwarded = headers[\"x-forwarded-host\"]) !== null && _headers$xForwarded !== void 0 ? _headers$xForwarded : headers.host, headers[\"x-forwarded-proto\"]),\n query\n };\n }\n const {\n headers\n } = req;\n const host = (_headers$xForwarded2 = headers === null || headers === void 0 ? void 0 : headers[\"x-forwarded-host\"]) !== null && _headers$xForwarded2 !== void 0 ? _headers$xForwarded2 : headers === null || headers === void 0 ? void 0 : headers.host;\n req.origin = (0, _detectOrigin.detectOrigin)(host, headers === null || headers === void 0 ? void 0 : headers[\"x-forwarded-proto\"]);\n return req;\n}\nasync function AuthHandler(params) {\n var _req$body$callbackUrl, _req$body, _req$query2, _req$body2;\n const {\n options: authOptions,\n req: incomingRequest\n } = params;\n const req = await toInternalRequest(incomingRequest);\n (0, _logger.setLogger)(authOptions.logger, authOptions.debug);\n const assertionResult = (0, _assert.assertConfig)({\n options: authOptions,\n req\n });\n if (Array.isArray(assertionResult)) {\n assertionResult.forEach(_logger.default.warn);\n } else if (assertionResult instanceof Error) {\n var _req$query;\n _logger.default.error(assertionResult.code, assertionResult);\n const htmlPages = [\"signin\", \"signout\", \"error\", \"verify-request\"];\n if (!htmlPages.includes(req.action) || req.method !== \"GET\") {\n const message = `There is a problem with the server configuration. Check the server logs for more information.`;\n return {\n status: 500,\n headers: [{\n key: \"Content-Type\",\n value: \"application/json\"\n }],\n body: {\n message\n }\n };\n }\n const {\n pages,\n theme\n } = authOptions;\n const authOnErrorPage = (pages === null || pages === void 0 ? void 0 : pages.error) && ((_req$query = req.query) === null || _req$query === void 0 || (_req$query = _req$query.callbackUrl) === null || _req$query === void 0 ? void 0 : _req$query.startsWith(pages.error));\n if (!(pages !== null && pages !== void 0 && pages.error) || authOnErrorPage) {\n if (authOnErrorPage) {\n _logger.default.error(\"AUTH_ON_ERROR_PAGE_ERROR\", new Error(`The error page ${pages === null || pages === void 0 ? void 0 : pages.error} should not require authentication`));\n }\n const render = (0, _pages.default)({\n theme\n });\n return render.error({\n error: \"configuration\"\n });\n }\n return {\n redirect: `${pages.error}?error=Configuration`\n };\n }\n const {\n action,\n providerId,\n error,\n method = \"GET\"\n } = req;\n const {\n options,\n cookies\n } = await (0, _init.init)({\n authOptions,\n action,\n providerId,\n origin: req.origin,\n callbackUrl: (_req$body$callbackUrl = (_req$body = req.body) === null || _req$body === void 0 ? void 0 : _req$body.callbackUrl) !== null && _req$body$callbackUrl !== void 0 ? _req$body$callbackUrl : (_req$query2 = req.query) === null || _req$query2 === void 0 ? void 0 : _req$query2.callbackUrl,\n csrfToken: (_req$body2 = req.body) === null || _req$body2 === void 0 ? void 0 : _req$body2.csrfToken,\n cookies: req.cookies,\n isPost: method === \"POST\"\n });\n const sessionStore = new _cookie.SessionStore(options.cookies.sessionToken, req, options.logger);\n if (method === \"GET\") {\n const render = (0, _pages.default)({\n ...options,\n query: req.query,\n cookies\n });\n const {\n pages\n } = options;\n switch (action) {\n case \"providers\":\n return await routes.providers(options.providers);\n case \"session\":\n {\n const session = await routes.session({\n options,\n sessionStore\n });\n if (session.cookies) cookies.push(...session.cookies);\n return {\n ...session,\n cookies\n };\n }\n case \"csrf\":\n return {\n headers: [{\n key: \"Content-Type\",\n value: \"application/json\"\n }],\n body: {\n csrfToken: options.csrfToken\n },\n cookies\n };\n case \"signin\":\n if (pages.signIn) {\n let signinUrl = `${pages.signIn}${pages.signIn.includes(\"?\") ? \"&\" : \"?\"}callbackUrl=${encodeURIComponent(options.callbackUrl)}`;\n if (error) signinUrl = `${signinUrl}&error=${encodeURIComponent(error)}`;\n return {\n redirect: signinUrl,\n cookies\n };\n }\n return render.signin();\n case \"signout\":\n if (pages.signOut) return {\n redirect: pages.signOut,\n cookies\n };\n return render.signout();\n case \"callback\":\n if (options.provider) {\n const callback = await routes.callback({\n body: req.body,\n query: req.query,\n headers: req.headers,\n cookies: req.cookies,\n method,\n options,\n sessionStore\n });\n if (callback.cookies) cookies.push(...callback.cookies);\n return {\n ...callback,\n cookies\n };\n }\n break;\n case \"verify-request\":\n if (pages.verifyRequest) {\n return {\n redirect: pages.verifyRequest,\n cookies\n };\n }\n return render.verifyRequest();\n case \"error\":\n if ([\"Signin\", \"OAuthSignin\", \"OAuthCallback\", \"OAuthCreateAccount\", \"EmailCreateAccount\", \"Callback\", \"OAuthAccountNotLinked\", \"EmailSignin\", \"CredentialsSignin\", \"SessionRequired\"].includes(error)) {\n return {\n redirect: `${options.url}/signin?error=${error}`,\n cookies\n };\n }\n if (pages.error) {\n return {\n redirect: `${pages.error}${pages.error.includes(\"?\") ? \"&\" : \"?\"}error=${error}`,\n cookies\n };\n }\n return render.error({\n error: error\n });\n default:\n }\n } else if (method === \"POST\") {\n switch (action) {\n case \"signin\":\n if (options.csrfTokenVerified && options.provider) {\n const signin = await routes.signin({\n query: req.query,\n body: req.body,\n options\n });\n if (signin.cookies) cookies.push(...signin.cookies);\n return {\n ...signin,\n cookies\n };\n }\n return {\n redirect: `${options.url}/signin?csrf=true`,\n cookies\n };\n case \"signout\":\n if (options.csrfTokenVerified) {\n const signout = await routes.signout({\n options,\n sessionStore\n });\n if (signout.cookies) cookies.push(...signout.cookies);\n return {\n ...signout,\n cookies\n };\n }\n return {\n redirect: `${options.url}/signout?csrf=true`,\n cookies\n };\n case \"callback\":\n if (options.provider) {\n if (options.provider.type === \"credentials\" && !options.csrfTokenVerified) {\n return {\n redirect: `${options.url}/signin?csrf=true`,\n cookies\n };\n }\n const callback = await routes.callback({\n body: req.body,\n query: req.query,\n headers: req.headers,\n cookies: req.cookies,\n method,\n options,\n sessionStore\n });\n if (callback.cookies) cookies.push(...callback.cookies);\n return {\n ...callback,\n cookies\n };\n }\n break;\n case \"_log\":\n {\n if (authOptions.logger) {\n try {\n var _req$body3;\n const {\n code,\n level,\n ...metadata\n } = (_req$body3 = req.body) !== null && _req$body3 !== void 0 ? _req$body3 : {};\n _logger.default[level](code, metadata);\n } catch (error) {\n _logger.default.error(\"LOGGER_ERROR\", error);\n }\n }\n return {};\n }\n case \"session\":\n {\n if (options.csrfTokenVerified) {\n var _req$body4;\n const session = await routes.session({\n options,\n sessionStore,\n newSession: (_req$body4 = req.body) === null || _req$body4 === void 0 ? void 0 : _req$body4.data,\n isUpdate: true\n });\n if (session.cookies) cookies.push(...session.cookies);\n return {\n ...session,\n cookies\n };\n }\n return {\n status: 400,\n body: {},\n cookies\n };\n }\n default:\n }\n }\n return {\n status: 400,\n body: `Error: This action with HTTP ${method} is not supported by NextAuth.js`\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsNkJBQTZCLG1CQUFPLENBQUMsMEhBQThDO0FBQ25GLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLG1CQUFtQjtBQUNuQixzQ0FBc0MsbUJBQU8sQ0FBQyx1RUFBaUI7QUFDL0Qsb0JBQW9CLG1CQUFPLENBQUMscUZBQXdCO0FBQ3BELHFDQUFxQyxtQkFBTyxDQUFDLHFFQUFVO0FBQ3ZELG9DQUFvQyxtQkFBTyxDQUFDLG1FQUFTO0FBQ3JELFlBQVksbUJBQU8sQ0FBQywyREFBUTtBQUM1QixjQUFjLG1CQUFPLENBQUMsdUVBQWM7QUFDcEMsY0FBYyxtQkFBTyxDQUFDLHVFQUFjO0FBQ3BDLGVBQWUsbUJBQU8sQ0FBQyxvREFBUTtBQUMvQix1Q0FBdUMsK0NBQStDLDBDQUEwQyxrREFBa0QsbUJBQW1CO0FBQ3JNLHlDQUF5Qyx1Q0FBdUMsMkVBQTJFLGNBQWMscUNBQXFDLG9DQUFvQyxVQUFVLGlCQUFpQixnRUFBZ0UsMENBQTBDLDhCQUE4QiwwREFBMEQsd0VBQXdFO0FBQ3ZoQjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxzRkFBc0YsMkRBQTJEO0FBQ2pKO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSxtQkFBbUIsWUFBWTtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZCQUE2QixhQUFhLEVBQUUsdUNBQXVDLGNBQWMsd0NBQXdDO0FBQ3pJLG9DQUFvQyxVQUFVLFNBQVMsMEJBQTBCO0FBQ2pGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHlCQUF5QixZQUFZLGdCQUFnQixNQUFNO0FBQzNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsWUFBWSxFQUFFLHNDQUFzQyxRQUFRLE1BQU07QUFDM0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLFlBQVk7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsWUFBWTtBQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSwyQkFBMkIsWUFBWTtBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCO0FBQ2hCO0FBQ0EsY0FBYztBQUNkO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMENBQTBDLFFBQVE7QUFDbEQ7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9jb3JlL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkF1dGhIYW5kbGVyID0gQXV0aEhhbmRsZXI7XG52YXIgX2xvZ2dlciA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuLi91dGlscy9sb2dnZXJcIikpO1xudmFyIF9kZXRlY3RPcmlnaW4gPSByZXF1aXJlKFwiLi4vdXRpbHMvZGV0ZWN0LW9yaWdpblwiKTtcbnZhciByb3V0ZXMgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi9yb3V0ZXNcIikpO1xudmFyIF9wYWdlcyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vcGFnZXNcIikpO1xudmFyIF9pbml0ID0gcmVxdWlyZShcIi4vaW5pdFwiKTtcbnZhciBfYXNzZXJ0ID0gcmVxdWlyZShcIi4vbGliL2Fzc2VydFwiKTtcbnZhciBfY29va2llID0gcmVxdWlyZShcIi4vbGliL2Nvb2tpZVwiKTtcbnZhciBfY29va2llMiA9IHJlcXVpcmUoXCJjb29raWVcIik7XG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoZSkgeyBpZiAoXCJmdW5jdGlvblwiICE9IHR5cGVvZiBXZWFrTWFwKSByZXR1cm4gbnVsbDsgdmFyIHIgPSBuZXcgV2Vha01hcCgpLCB0ID0gbmV3IFdlYWtNYXAoKTsgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiAoZSkgeyByZXR1cm4gZSA/IHQgOiByOyB9KShlKTsgfVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQoZSwgcikgeyBpZiAoIXIgJiYgZSAmJiBlLl9fZXNNb2R1bGUpIHJldHVybiBlOyBpZiAobnVsbCA9PT0gZSB8fCBcIm9iamVjdFwiICE9IHR5cGVvZiBlICYmIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgZSkgcmV0dXJuIHsgZGVmYXVsdDogZSB9OyB2YXIgdCA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShyKTsgaWYgKHQgJiYgdC5oYXMoZSkpIHJldHVybiB0LmdldChlKTsgdmFyIG4gPSB7IF9fcHJvdG9fXzogbnVsbCB9LCBhID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIHUgaW4gZSkgaWYgKFwiZGVmYXVsdFwiICE9PSB1ICYmIHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSwgdSkpIHsgdmFyIGkgPSBhID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCB1KSA6IG51bGw7IGkgJiYgKGkuZ2V0IHx8IGkuc2V0KSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCB1LCBpKSA6IG5bdV0gPSBlW3VdOyB9IHJldHVybiBuLmRlZmF1bHQgPSBlLCB0ICYmIHQuc2V0KGUsIG4pLCBuOyB9XG5hc3luYyBmdW5jdGlvbiBnZXRCb2R5KHJlcSkge1xuICB0cnkge1xuICAgIHJldHVybiBhd2FpdCByZXEuanNvbigpO1xuICB9IGNhdGNoIChfdW51c2VkKSB7fVxufVxuYXN5bmMgZnVuY3Rpb24gdG9JbnRlcm5hbFJlcXVlc3QocmVxKSB7XG4gIHZhciBfaGVhZGVycyR4Rm9yd2FyZGVkMjtcbiAgaWYgKHJlcSBpbnN0YW5jZW9mIFJlcXVlc3QpIHtcbiAgICB2YXIgX3JlcSRoZWFkZXJzJGdldCwgX3VybCRzZWFyY2hQYXJhbXMkZ2V0LCBfaGVhZGVycyR4Rm9yd2FyZGVkO1xuICAgIGNvbnN0IHVybCA9IG5ldyBVUkwocmVxLnVybCk7XG4gICAgY29uc3QgbmV4dGF1dGggPSB1cmwucGF0aG5hbWUuc3BsaXQoXCIvXCIpLnNsaWNlKDMpO1xuICAgIGNvbnN0IGhlYWRlcnMgPSBPYmplY3QuZnJvbUVudHJpZXMocmVxLmhlYWRlcnMpO1xuICAgIGNvbnN0IHF1ZXJ5ID0gT2JqZWN0LmZyb21FbnRyaWVzKHVybC5zZWFyY2hQYXJhbXMpO1xuICAgIHF1ZXJ5Lm5leHRhdXRoID0gbmV4dGF1dGg7XG4gICAgcmV0dXJuIHtcbiAgICAgIGFjdGlvbjogbmV4dGF1dGhbMF0sXG4gICAgICBtZXRob2Q6IHJlcS5tZXRob2QsXG4gICAgICBoZWFkZXJzLFxuICAgICAgYm9keTogYXdhaXQgZ2V0Qm9keShyZXEpLFxuICAgICAgY29va2llczogKDAsIF9jb29raWUyLnBhcnNlKSgoX3JlcSRoZWFkZXJzJGdldCA9IHJlcS5oZWFkZXJzLmdldChcImNvb2tpZVwiKSkgIT09IG51bGwgJiYgX3JlcSRoZWFkZXJzJGdldCAhPT0gdm9pZCAwID8gX3JlcSRoZWFkZXJzJGdldCA6IFwiXCIpLFxuICAgICAgcHJvdmlkZXJJZDogbmV4dGF1dGhbMV0sXG4gICAgICBlcnJvcjogKF91cmwkc2VhcmNoUGFyYW1zJGdldCA9IHVybC5zZWFyY2hQYXJhbXMuZ2V0KFwiZXJyb3JcIikpICE9PSBudWxsICYmIF91cmwkc2VhcmNoUGFyYW1zJGdldCAhPT0gdm9pZCAwID8gX3VybCRzZWFyY2hQYXJhbXMkZ2V0IDogbmV4dGF1dGhbMV0sXG4gICAgICBvcmlnaW46ICgwLCBfZGV0ZWN0T3JpZ2luLmRldGVjdE9yaWdpbikoKF9oZWFkZXJzJHhGb3J3YXJkZWQgPSBoZWFkZXJzW1wieC1mb3J3YXJkZWQtaG9zdFwiXSkgIT09IG51bGwgJiYgX2hlYWRlcnMkeEZvcndhcmRlZCAhPT0gdm9pZCAwID8gX2hlYWRlcnMkeEZvcndhcmRlZCA6IGhlYWRlcnMuaG9zdCwgaGVhZGVyc1tcIngtZm9yd2FyZGVkLXByb3RvXCJdKSxcbiAgICAgIHF1ZXJ5XG4gICAgfTtcbiAgfVxuICBjb25zdCB7XG4gICAgaGVhZGVyc1xuICB9ID0gcmVxO1xuICBjb25zdCBob3N0ID0gKF9oZWFkZXJzJHhGb3J3YXJkZWQyID0gaGVhZGVycyA9PT0gbnVsbCB8fCBoZWFkZXJzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBoZWFkZXJzW1wieC1mb3J3YXJkZWQtaG9zdFwiXSkgIT09IG51bGwgJiYgX2hlYWRlcnMkeEZvcndhcmRlZDIgIT09IHZvaWQgMCA/IF9oZWFkZXJzJHhGb3J3YXJkZWQyIDogaGVhZGVycyA9PT0gbnVsbCB8fCBoZWFkZXJzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBoZWFkZXJzLmhvc3Q7XG4gIHJlcS5vcmlnaW4gPSAoMCwgX2RldGVjdE9yaWdpbi5kZXRlY3RPcmlnaW4pKGhvc3QsIGhlYWRlcnMgPT09IG51bGwgfHwgaGVhZGVycyA9PT0gdm9pZCAwID8gdm9pZCAwIDogaGVhZGVyc1tcIngtZm9yd2FyZGVkLXByb3RvXCJdKTtcbiAgcmV0dXJuIHJlcTtcbn1cbmFzeW5jIGZ1bmN0aW9uIEF1dGhIYW5kbGVyKHBhcmFtcykge1xuICB2YXIgX3JlcSRib2R5JGNhbGxiYWNrVXJsLCBfcmVxJGJvZHksIF9yZXEkcXVlcnkyLCBfcmVxJGJvZHkyO1xuICBjb25zdCB7XG4gICAgb3B0aW9uczogYXV0aE9wdGlvbnMsXG4gICAgcmVxOiBpbmNvbWluZ1JlcXVlc3RcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgcmVxID0gYXdhaXQgdG9JbnRlcm5hbFJlcXVlc3QoaW5jb21pbmdSZXF1ZXN0KTtcbiAgKDAsIF9sb2dnZXIuc2V0TG9nZ2VyKShhdXRoT3B0aW9ucy5sb2dnZXIsIGF1dGhPcHRpb25zLmRlYnVnKTtcbiAgY29uc3QgYXNzZXJ0aW9uUmVzdWx0ID0gKDAsIF9hc3NlcnQuYXNzZXJ0Q29uZmlnKSh7XG4gICAgb3B0aW9uczogYXV0aE9wdGlvbnMsXG4gICAgcmVxXG4gIH0pO1xuICBpZiAoQXJyYXkuaXNBcnJheShhc3NlcnRpb25SZXN1bHQpKSB7XG4gICAgYXNzZXJ0aW9uUmVzdWx0LmZvckVhY2goX2xvZ2dlci5kZWZhdWx0Lndhcm4pO1xuICB9IGVsc2UgaWYgKGFzc2VydGlvblJlc3VsdCBpbnN0YW5jZW9mIEVycm9yKSB7XG4gICAgdmFyIF9yZXEkcXVlcnk7XG4gICAgX2xvZ2dlci5kZWZhdWx0LmVycm9yKGFzc2VydGlvblJlc3VsdC5jb2RlLCBhc3NlcnRpb25SZXN1bHQpO1xuICAgIGNvbnN0IGh0bWxQYWdlcyA9IFtcInNpZ25pblwiLCBcInNpZ25vdXRcIiwgXCJlcnJvclwiLCBcInZlcmlmeS1yZXF1ZXN0XCJdO1xuICAgIGlmICghaHRtbFBhZ2VzLmluY2x1ZGVzKHJlcS5hY3Rpb24pIHx8IHJlcS5tZXRob2QgIT09IFwiR0VUXCIpIHtcbiAgICAgIGNvbnN0IG1lc3NhZ2UgPSBgVGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggdGhlIHNlcnZlciBjb25maWd1cmF0aW9uLiBDaGVjayB0aGUgc2VydmVyIGxvZ3MgZm9yIG1vcmUgaW5mb3JtYXRpb24uYDtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogNTAwLFxuICAgICAgICBoZWFkZXJzOiBbe1xuICAgICAgICAgIGtleTogXCJDb250ZW50LVR5cGVcIixcbiAgICAgICAgICB2YWx1ZTogXCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgfV0sXG4gICAgICAgIGJvZHk6IHtcbiAgICAgICAgICBtZXNzYWdlXG4gICAgICAgIH1cbiAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IHtcbiAgICAgIHBhZ2VzLFxuICAgICAgdGhlbWVcbiAgICB9ID0gYXV0aE9wdGlvbnM7XG4gICAgY29uc3QgYXV0aE9uRXJyb3JQYWdlID0gKHBhZ2VzID09PSBudWxsIHx8IHBhZ2VzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYWdlcy5lcnJvcikgJiYgKChfcmVxJHF1ZXJ5ID0gcmVxLnF1ZXJ5KSA9PT0gbnVsbCB8fCBfcmVxJHF1ZXJ5ID09PSB2b2lkIDAgfHwgKF9yZXEkcXVlcnkgPSBfcmVxJHF1ZXJ5LmNhbGxiYWNrVXJsKSA9PT0gbnVsbCB8fCBfcmVxJHF1ZXJ5ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcmVxJHF1ZXJ5LnN0YXJ0c1dpdGgocGFnZXMuZXJyb3IpKTtcbiAgICBpZiAoIShwYWdlcyAhPT0gbnVsbCAmJiBwYWdlcyAhPT0gdm9pZCAwICYmIHBhZ2VzLmVycm9yKSB8fCBhdXRoT25FcnJvclBhZ2UpIHtcbiAgICAgIGlmIChhdXRoT25FcnJvclBhZ2UpIHtcbiAgICAgICAgX2xvZ2dlci5kZWZhdWx0LmVycm9yKFwiQVVUSF9PTl9FUlJPUl9QQUdFX0VSUk9SXCIsIG5ldyBFcnJvcihgVGhlIGVycm9yIHBhZ2UgJHtwYWdlcyA9PT0gbnVsbCB8fCBwYWdlcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcGFnZXMuZXJyb3J9IHNob3VsZCBub3QgcmVxdWlyZSBhdXRoZW50aWNhdGlvbmApKTtcbiAgICAgIH1cbiAgICAgIGNvbnN0IHJlbmRlciA9ICgwLCBfcGFnZXMuZGVmYXVsdCkoe1xuICAgICAgICB0aGVtZVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVuZGVyLmVycm9yKHtcbiAgICAgICAgZXJyb3I6IFwiY29uZmlndXJhdGlvblwiXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlZGlyZWN0OiBgJHtwYWdlcy5lcnJvcn0/ZXJyb3I9Q29uZmlndXJhdGlvbmBcbiAgICB9O1xuICB9XG4gIGNvbnN0IHtcbiAgICBhY3Rpb24sXG4gICAgcHJvdmlkZXJJZCxcbiAgICBlcnJvcixcbiAgICBtZXRob2QgPSBcIkdFVFwiXG4gIH0gPSByZXE7XG4gIGNvbnN0IHtcbiAgICBvcHRpb25zLFxuICAgIGNvb2tpZXNcbiAgfSA9IGF3YWl0ICgwLCBfaW5pdC5pbml0KSh7XG4gICAgYXV0aE9wdGlvbnMsXG4gICAgYWN0aW9uLFxuICAgIHByb3ZpZGVySWQsXG4gICAgb3JpZ2luOiByZXEub3JpZ2luLFxuICAgIGNhbGxiYWNrVXJsOiAoX3JlcSRib2R5JGNhbGxiYWNrVXJsID0gKF9yZXEkYm9keSA9IHJlcS5ib2R5KSA9PT0gbnVsbCB8fCBfcmVxJGJvZHkgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9yZXEkYm9keS5jYWxsYmFja1VybCkgIT09IG51bGwgJiYgX3JlcSRib2R5JGNhbGxiYWNrVXJsICE9PSB2b2lkIDAgPyBfcmVxJGJvZHkkY2FsbGJhY2tVcmwgOiAoX3JlcSRxdWVyeTIgPSByZXEucXVlcnkpID09PSBudWxsIHx8IF9yZXEkcXVlcnkyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcmVxJHF1ZXJ5Mi5jYWxsYmFja1VybCxcbiAgICBjc3JmVG9rZW46IChfcmVxJGJvZHkyID0gcmVxLmJvZHkpID09PSBudWxsIHx8IF9yZXEkYm9keTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9yZXEkYm9keTIuY3NyZlRva2VuLFxuICAgIGNvb2tpZXM6IHJlcS5jb29raWVzLFxuICAgIGlzUG9zdDogbWV0aG9kID09PSBcIlBPU1RcIlxuICB9KTtcbiAgY29uc3Qgc2Vzc2lvblN0b3JlID0gbmV3IF9jb29raWUuU2Vzc2lvblN0b3JlKG9wdGlvbnMuY29va2llcy5zZXNzaW9uVG9rZW4sIHJlcSwgb3B0aW9ucy5sb2dnZXIpO1xuICBpZiAobWV0aG9kID09PSBcIkdFVFwiKSB7XG4gICAgY29uc3QgcmVuZGVyID0gKDAsIF9wYWdlcy5kZWZhdWx0KSh7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgcXVlcnk6IHJlcS5xdWVyeSxcbiAgICAgIGNvb2tpZXNcbiAgICB9KTtcbiAgICBjb25zdCB7XG4gICAgICBwYWdlc1xuICAgIH0gPSBvcHRpb25zO1xuICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICBjYXNlIFwicHJvdmlkZXJzXCI6XG4gICAgICAgIHJldHVybiBhd2FpdCByb3V0ZXMucHJvdmlkZXJzKG9wdGlvbnMucHJvdmlkZXJzKTtcbiAgICAgIGNhc2UgXCJzZXNzaW9uXCI6XG4gICAgICAgIHtcbiAgICAgICAgICBjb25zdCBzZXNzaW9uID0gYXdhaXQgcm91dGVzLnNlc3Npb24oe1xuICAgICAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgICAgIHNlc3Npb25TdG9yZVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmIChzZXNzaW9uLmNvb2tpZXMpIGNvb2tpZXMucHVzaCguLi5zZXNzaW9uLmNvb2tpZXMpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5zZXNzaW9uLFxuICAgICAgICAgICAgY29va2llc1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIGNhc2UgXCJjc3JmXCI6XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgaGVhZGVyczogW3tcbiAgICAgICAgICAgIGtleTogXCJDb250ZW50LVR5cGVcIixcbiAgICAgICAgICAgIHZhbHVlOiBcImFwcGxpY2F0aW9uL2pzb25cIlxuICAgICAgICAgIH1dLFxuICAgICAgICAgIGJvZHk6IHtcbiAgICAgICAgICAgIGNzcmZUb2tlbjogb3B0aW9ucy5jc3JmVG9rZW5cbiAgICAgICAgICB9LFxuICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgXCJzaWduaW5cIjpcbiAgICAgICAgaWYgKHBhZ2VzLnNpZ25Jbikge1xuICAgICAgICAgIGxldCBzaWduaW5VcmwgPSBgJHtwYWdlcy5zaWduSW59JHtwYWdlcy5zaWduSW4uaW5jbHVkZXMoXCI/XCIpID8gXCImXCIgOiBcIj9cIn1jYWxsYmFja1VybD0ke2VuY29kZVVSSUNvbXBvbmVudChvcHRpb25zLmNhbGxiYWNrVXJsKX1gO1xuICAgICAgICAgIGlmIChlcnJvcikgc2lnbmluVXJsID0gYCR7c2lnbmluVXJsfSZlcnJvcj0ke2VuY29kZVVSSUNvbXBvbmVudChlcnJvcil9YDtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVkaXJlY3Q6IHNpZ25pblVybCxcbiAgICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZW5kZXIuc2lnbmluKCk7XG4gICAgICBjYXNlIFwic2lnbm91dFwiOlxuICAgICAgICBpZiAocGFnZXMuc2lnbk91dCkgcmV0dXJuIHtcbiAgICAgICAgICByZWRpcmVjdDogcGFnZXMuc2lnbk91dCxcbiAgICAgICAgICBjb29raWVzXG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiByZW5kZXIuc2lnbm91dCgpO1xuICAgICAgY2FzZSBcImNhbGxiYWNrXCI6XG4gICAgICAgIGlmIChvcHRpb25zLnByb3ZpZGVyKSB7XG4gICAgICAgICAgY29uc3QgY2FsbGJhY2sgPSBhd2FpdCByb3V0ZXMuY2FsbGJhY2soe1xuICAgICAgICAgICAgYm9keTogcmVxLmJvZHksXG4gICAgICAgICAgICBxdWVyeTogcmVxLnF1ZXJ5LFxuICAgICAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMsXG4gICAgICAgICAgICBjb29raWVzOiByZXEuY29va2llcyxcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmVcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoY2FsbGJhY2suY29va2llcykgY29va2llcy5wdXNoKC4uLmNhbGxiYWNrLmNvb2tpZXMpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5jYWxsYmFjayxcbiAgICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcInZlcmlmeS1yZXF1ZXN0XCI6XG4gICAgICAgIGlmIChwYWdlcy52ZXJpZnlSZXF1ZXN0KSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlZGlyZWN0OiBwYWdlcy52ZXJpZnlSZXF1ZXN0LFxuICAgICAgICAgICAgY29va2llc1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlbmRlci52ZXJpZnlSZXF1ZXN0KCk7XG4gICAgICBjYXNlIFwiZXJyb3JcIjpcbiAgICAgICAgaWYgKFtcIlNpZ25pblwiLCBcIk9BdXRoU2lnbmluXCIsIFwiT0F1dGhDYWxsYmFja1wiLCBcIk9BdXRoQ3JlYXRlQWNjb3VudFwiLCBcIkVtYWlsQ3JlYXRlQWNjb3VudFwiLCBcIkNhbGxiYWNrXCIsIFwiT0F1dGhBY2NvdW50Tm90TGlua2VkXCIsIFwiRW1haWxTaWduaW5cIiwgXCJDcmVkZW50aWFsc1NpZ25pblwiLCBcIlNlc3Npb25SZXF1aXJlZFwiXS5pbmNsdWRlcyhlcnJvcikpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVkaXJlY3Q6IGAke29wdGlvbnMudXJsfS9zaWduaW4/ZXJyb3I9JHtlcnJvcn1gLFxuICAgICAgICAgICAgY29va2llc1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHBhZ2VzLmVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlZGlyZWN0OiBgJHtwYWdlcy5lcnJvcn0ke3BhZ2VzLmVycm9yLmluY2x1ZGVzKFwiP1wiKSA/IFwiJlwiIDogXCI/XCJ9ZXJyb3I9JHtlcnJvcn1gLFxuICAgICAgICAgICAgY29va2llc1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlbmRlci5lcnJvcih7XG4gICAgICAgICAgZXJyb3I6IGVycm9yXG4gICAgICAgIH0pO1xuICAgICAgZGVmYXVsdDpcbiAgICB9XG4gIH0gZWxzZSBpZiAobWV0aG9kID09PSBcIlBPU1RcIikge1xuICAgIHN3aXRjaCAoYWN0aW9uKSB7XG4gICAgICBjYXNlIFwic2lnbmluXCI6XG4gICAgICAgIGlmIChvcHRpb25zLmNzcmZUb2tlblZlcmlmaWVkICYmIG9wdGlvbnMucHJvdmlkZXIpIHtcbiAgICAgICAgICBjb25zdCBzaWduaW4gPSBhd2FpdCByb3V0ZXMuc2lnbmluKHtcbiAgICAgICAgICAgIHF1ZXJ5OiByZXEucXVlcnksXG4gICAgICAgICAgICBib2R5OiByZXEuYm9keSxcbiAgICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoc2lnbmluLmNvb2tpZXMpIGNvb2tpZXMucHVzaCguLi5zaWduaW4uY29va2llcyk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnNpZ25pbixcbiAgICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVkaXJlY3Q6IGAke29wdGlvbnMudXJsfS9zaWduaW4/Y3NyZj10cnVlYCxcbiAgICAgICAgICBjb29raWVzXG4gICAgICAgIH07XG4gICAgICBjYXNlIFwic2lnbm91dFwiOlxuICAgICAgICBpZiAob3B0aW9ucy5jc3JmVG9rZW5WZXJpZmllZCkge1xuICAgICAgICAgIGNvbnN0IHNpZ25vdXQgPSBhd2FpdCByb3V0ZXMuc2lnbm91dCh7XG4gICAgICAgICAgICBvcHRpb25zLFxuICAgICAgICAgICAgc2Vzc2lvblN0b3JlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKHNpZ25vdXQuY29va2llcykgY29va2llcy5wdXNoKC4uLnNpZ25vdXQuY29va2llcyk7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnNpZ25vdXQsXG4gICAgICAgICAgICBjb29raWVzXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlZGlyZWN0OiBgJHtvcHRpb25zLnVybH0vc2lnbm91dD9jc3JmPXRydWVgLFxuICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgfTtcbiAgICAgIGNhc2UgXCJjYWxsYmFja1wiOlxuICAgICAgICBpZiAob3B0aW9ucy5wcm92aWRlcikge1xuICAgICAgICAgIGlmIChvcHRpb25zLnByb3ZpZGVyLnR5cGUgPT09IFwiY3JlZGVudGlhbHNcIiAmJiAhb3B0aW9ucy5jc3JmVG9rZW5WZXJpZmllZCkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgcmVkaXJlY3Q6IGAke29wdGlvbnMudXJsfS9zaWduaW4/Y3NyZj10cnVlYCxcbiAgICAgICAgICAgICAgY29va2llc1xuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgY2FsbGJhY2sgPSBhd2FpdCByb3V0ZXMuY2FsbGJhY2soe1xuICAgICAgICAgICAgYm9keTogcmVxLmJvZHksXG4gICAgICAgICAgICBxdWVyeTogcmVxLnF1ZXJ5LFxuICAgICAgICAgICAgaGVhZGVyczogcmVxLmhlYWRlcnMsXG4gICAgICAgICAgICBjb29raWVzOiByZXEuY29va2llcyxcbiAgICAgICAgICAgIG1ldGhvZCxcbiAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICBzZXNzaW9uU3RvcmVcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAoY2FsbGJhY2suY29va2llcykgY29va2llcy5wdXNoKC4uLmNhbGxiYWNrLmNvb2tpZXMpO1xuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5jYWxsYmFjayxcbiAgICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIl9sb2dcIjpcbiAgICAgICAge1xuICAgICAgICAgIGlmIChhdXRoT3B0aW9ucy5sb2dnZXIpIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIHZhciBfcmVxJGJvZHkzO1xuICAgICAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICAgICAgY29kZSxcbiAgICAgICAgICAgICAgICBsZXZlbCxcbiAgICAgICAgICAgICAgICAuLi5tZXRhZGF0YVxuICAgICAgICAgICAgICB9ID0gKF9yZXEkYm9keTMgPSByZXEuYm9keSkgIT09IG51bGwgJiYgX3JlcSRib2R5MyAhPT0gdm9pZCAwID8gX3JlcSRib2R5MyA6IHt9O1xuICAgICAgICAgICAgICBfbG9nZ2VyLmRlZmF1bHRbbGV2ZWxdKGNvZGUsIG1ldGFkYXRhKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICAgIF9sb2dnZXIuZGVmYXVsdC5lcnJvcihcIkxPR0dFUl9FUlJPUlwiLCBlcnJvcik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuICAgICAgY2FzZSBcInNlc3Npb25cIjpcbiAgICAgICAge1xuICAgICAgICAgIGlmIChvcHRpb25zLmNzcmZUb2tlblZlcmlmaWVkKSB7XG4gICAgICAgICAgICB2YXIgX3JlcSRib2R5NDtcbiAgICAgICAgICAgIGNvbnN0IHNlc3Npb24gPSBhd2FpdCByb3V0ZXMuc2Vzc2lvbih7XG4gICAgICAgICAgICAgIG9wdGlvbnMsXG4gICAgICAgICAgICAgIHNlc3Npb25TdG9yZSxcbiAgICAgICAgICAgICAgbmV3U2Vzc2lvbjogKF9yZXEkYm9keTQgPSByZXEuYm9keSkgPT09IG51bGwgfHwgX3JlcSRib2R5NCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3JlcSRib2R5NC5kYXRhLFxuICAgICAgICAgICAgICBpc1VwZGF0ZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoc2Vzc2lvbi5jb29raWVzKSBjb29raWVzLnB1c2goLi4uc2Vzc2lvbi5jb29raWVzKTtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLnNlc3Npb24sXG4gICAgICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBzdGF0dXM6IDQwMCxcbiAgICAgICAgICAgIGJvZHk6IHt9LFxuICAgICAgICAgICAgY29va2llc1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIGRlZmF1bHQ6XG4gICAgfVxuICB9XG4gIHJldHVybiB7XG4gICAgc3RhdHVzOiA0MDAsXG4gICAgYm9keTogYEVycm9yOiBUaGlzIGFjdGlvbiB3aXRoIEhUVFAgJHttZXRob2R9IGlzIG5vdCBzdXBwb3J0ZWQgYnkgTmV4dEF1dGguanNgXG4gIH07XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/index.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/init.js":
+/*!*********************************************!*\
+ !*** ./node_modules/next-auth/core/init.js ***!
+ \*********************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(rsc)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.init = init;\nvar _crypto = __webpack_require__(/*! crypto */ \"crypto\");\nvar _logger = _interopRequireDefault(__webpack_require__(/*! ../utils/logger */ \"(rsc)/./node_modules/next-auth/utils/logger.js\"));\nvar _errors = __webpack_require__(/*! ./errors */ \"(rsc)/./node_modules/next-auth/core/errors.js\");\nvar _providers = _interopRequireDefault(__webpack_require__(/*! ./lib/providers */ \"(rsc)/./node_modules/next-auth/core/lib/providers.js\"));\nvar _utils = __webpack_require__(/*! ./lib/utils */ \"(rsc)/./node_modules/next-auth/core/lib/utils.js\");\nvar cookie = _interopRequireWildcard(__webpack_require__(/*! ./lib/cookie */ \"(rsc)/./node_modules/next-auth/core/lib/cookie.js\"));\nvar jwt = _interopRequireWildcard(__webpack_require__(/*! ../jwt */ \"(rsc)/./node_modules/next-auth/jwt/index.js\"));\nvar _defaultCallbacks = __webpack_require__(/*! ./lib/default-callbacks */ \"(rsc)/./node_modules/next-auth/core/lib/default-callbacks.js\");\nvar _csrfToken = __webpack_require__(/*! ./lib/csrf-token */ \"(rsc)/./node_modules/next-auth/core/lib/csrf-token.js\");\nvar _callbackUrl = __webpack_require__(/*! ./lib/callback-url */ \"(rsc)/./node_modules/next-auth/core/lib/callback-url.js\");\nvar _parseUrl = _interopRequireDefault(__webpack_require__(/*! ../utils/parse-url */ \"(rsc)/./node_modules/next-auth/utils/parse-url.js\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nasync function init({\n authOptions,\n providerId,\n action,\n origin,\n cookies: reqCookies,\n callbackUrl: reqCallbackUrl,\n csrfToken: reqCsrfToken,\n isPost\n}) {\n var _authOptions$useSecur, _authOptions$events;\n const url = (0, _parseUrl.default)(origin);\n const secret = (0, _utils.createSecret)({\n authOptions,\n url\n });\n const {\n providers,\n provider\n } = (0, _providers.default)({\n providers: authOptions.providers,\n url,\n providerId\n });\n const maxAge = 30 * 24 * 60 * 60;\n const options = {\n debug: false,\n pages: {},\n theme: {\n colorScheme: \"auto\",\n logo: \"\",\n brandColor: \"\",\n buttonText: \"\"\n },\n ...authOptions,\n url,\n action,\n provider,\n cookies: {\n ...cookie.defaultCookies((_authOptions$useSecur = authOptions.useSecureCookies) !== null && _authOptions$useSecur !== void 0 ? _authOptions$useSecur : url.base.startsWith(\"https://\")),\n ...authOptions.cookies\n },\n secret,\n providers,\n session: {\n strategy: authOptions.adapter ? \"database\" : \"jwt\",\n maxAge,\n updateAge: 24 * 60 * 60,\n generateSessionToken: () => {\n var _randomUUID;\n return (_randomUUID = _crypto.randomUUID === null || _crypto.randomUUID === void 0 ? void 0 : (0, _crypto.randomUUID)()) !== null && _randomUUID !== void 0 ? _randomUUID : (0, _crypto.randomBytes)(32).toString(\"hex\");\n },\n ...authOptions.session\n },\n jwt: {\n secret,\n maxAge,\n encode: jwt.encode,\n decode: jwt.decode,\n ...authOptions.jwt\n },\n events: (0, _errors.eventsErrorHandler)((_authOptions$events = authOptions.events) !== null && _authOptions$events !== void 0 ? _authOptions$events : {}, _logger.default),\n adapter: (0, _errors.adapterErrorHandler)(authOptions.adapter, _logger.default),\n callbacks: {\n ..._defaultCallbacks.defaultCallbacks,\n ...authOptions.callbacks\n },\n logger: _logger.default,\n callbackUrl: url.origin\n };\n const cookies = [];\n const {\n csrfToken,\n cookie: csrfCookie,\n csrfTokenVerified\n } = (0, _csrfToken.createCSRFToken)({\n options,\n cookieValue: reqCookies === null || reqCookies === void 0 ? void 0 : reqCookies[options.cookies.csrfToken.name],\n isPost,\n bodyValue: reqCsrfToken\n });\n options.csrfToken = csrfToken;\n options.csrfTokenVerified = csrfTokenVerified;\n if (csrfCookie) {\n cookies.push({\n name: options.cookies.csrfToken.name,\n value: csrfCookie,\n options: options.cookies.csrfToken.options\n });\n }\n const {\n callbackUrl,\n callbackUrlCookie\n } = await (0, _callbackUrl.createCallbackUrl)({\n options,\n cookieValue: reqCookies === null || reqCookies === void 0 ? void 0 : reqCookies[options.cookies.callbackUrl.name],\n paramValue: reqCallbackUrl\n });\n options.callbackUrl = callbackUrl;\n if (callbackUrlCookie) {\n cookies.push({\n name: options.cookies.callbackUrl.name,\n value: callbackUrlCookie,\n options: options.cookies.callbackUrl.options\n });\n }\n return {\n options,\n cookies\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvaW5pdC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw2QkFBNkIsbUJBQU8sQ0FBQywwSEFBOEM7QUFDbkYsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsWUFBWTtBQUNaLGNBQWMsbUJBQU8sQ0FBQyxzQkFBUTtBQUM5QixxQ0FBcUMsbUJBQU8sQ0FBQyx1RUFBaUI7QUFDOUQsY0FBYyxtQkFBTyxDQUFDLCtEQUFVO0FBQ2hDLHdDQUF3QyxtQkFBTyxDQUFDLDZFQUFpQjtBQUNqRSxhQUFhLG1CQUFPLENBQUMscUVBQWE7QUFDbEMscUNBQXFDLG1CQUFPLENBQUMsdUVBQWM7QUFDM0Qsa0NBQWtDLG1CQUFPLENBQUMsMkRBQVE7QUFDbEQsd0JBQXdCLG1CQUFPLENBQUMsNkZBQXlCO0FBQ3pELGlCQUFpQixtQkFBTyxDQUFDLCtFQUFrQjtBQUMzQyxtQkFBbUIsbUJBQU8sQ0FBQyxtRkFBb0I7QUFDL0MsdUNBQXVDLG1CQUFPLENBQUMsNkVBQW9CO0FBQ25FLHVDQUF1QywrQ0FBK0MsMENBQTBDLGtEQUFrRCxtQkFBbUI7QUFDck0seUNBQXlDLHVDQUF1QywyRUFBMkUsY0FBYyxxQ0FBcUMsb0NBQW9DLFVBQVUsaUJBQWlCLGdFQUFnRSwwQ0FBMEMsOEJBQThCLDBEQUEwRCx3RUFBd0U7QUFDdmhCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCw0SkFBNEo7QUFDNUo7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9jb3JlL2luaXQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbnZhciBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0ID0gcmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvaW50ZXJvcFJlcXVpcmVEZWZhdWx0XCIpO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuaW5pdCA9IGluaXQ7XG52YXIgX2NyeXB0byA9IHJlcXVpcmUoXCJjcnlwdG9cIik7XG52YXIgX2xvZ2dlciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL3V0aWxzL2xvZ2dlclwiKSk7XG52YXIgX2Vycm9ycyA9IHJlcXVpcmUoXCIuL2Vycm9yc1wiKTtcbnZhciBfcHJvdmlkZXJzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9saWIvcHJvdmlkZXJzXCIpKTtcbnZhciBfdXRpbHMgPSByZXF1aXJlKFwiLi9saWIvdXRpbHNcIik7XG52YXIgY29va2llID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4vbGliL2Nvb2tpZVwiKSk7XG52YXIgand0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4uL2p3dFwiKSk7XG52YXIgX2RlZmF1bHRDYWxsYmFja3MgPSByZXF1aXJlKFwiLi9saWIvZGVmYXVsdC1jYWxsYmFja3NcIik7XG52YXIgX2NzcmZUb2tlbiA9IHJlcXVpcmUoXCIuL2xpYi9jc3JmLXRva2VuXCIpO1xudmFyIF9jYWxsYmFja1VybCA9IHJlcXVpcmUoXCIuL2xpYi9jYWxsYmFjay11cmxcIik7XG52YXIgX3BhcnNlVXJsID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vdXRpbHMvcGFyc2UtdXJsXCIpKTtcbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShlKSB7IGlmIChcImZ1bmN0aW9uXCIgIT0gdHlwZW9mIFdlYWtNYXApIHJldHVybiBudWxsOyB2YXIgciA9IG5ldyBXZWFrTWFwKCksIHQgPSBuZXcgV2Vha01hcCgpOyByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIChlKSB7IHJldHVybiBlID8gdCA6IHI7IH0pKGUpOyB9XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChlLCByKSB7IGlmICghciAmJiBlICYmIGUuX19lc01vZHVsZSkgcmV0dXJuIGU7IGlmIChudWxsID09PSBlIHx8IFwib2JqZWN0XCIgIT0gdHlwZW9mIGUgJiYgXCJmdW5jdGlvblwiICE9IHR5cGVvZiBlKSByZXR1cm4geyBkZWZhdWx0OiBlIH07IHZhciB0ID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKHIpOyBpZiAodCAmJiB0LmhhcyhlKSkgcmV0dXJuIHQuZ2V0KGUpOyB2YXIgbiA9IHsgX19wcm90b19fOiBudWxsIH0sIGEgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIgdSBpbiBlKSBpZiAoXCJkZWZhdWx0XCIgIT09IHUgJiYge30uaGFzT3duUHJvcGVydHkuY2FsbChlLCB1KSkgeyB2YXIgaSA9IGEgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsIHUpIDogbnVsbDsgaSAmJiAoaS5nZXQgfHwgaS5zZXQpID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIHUsIGkpIDogblt1XSA9IGVbdV07IH0gcmV0dXJuIG4uZGVmYXVsdCA9IGUsIHQgJiYgdC5zZXQoZSwgbiksIG47IH1cbmFzeW5jIGZ1bmN0aW9uIGluaXQoe1xuICBhdXRoT3B0aW9ucyxcbiAgcHJvdmlkZXJJZCxcbiAgYWN0aW9uLFxuICBvcmlnaW4sXG4gIGNvb2tpZXM6IHJlcUNvb2tpZXMsXG4gIGNhbGxiYWNrVXJsOiByZXFDYWxsYmFja1VybCxcbiAgY3NyZlRva2VuOiByZXFDc3JmVG9rZW4sXG4gIGlzUG9zdFxufSkge1xuICB2YXIgX2F1dGhPcHRpb25zJHVzZVNlY3VyLCBfYXV0aE9wdGlvbnMkZXZlbnRzO1xuICBjb25zdCB1cmwgPSAoMCwgX3BhcnNlVXJsLmRlZmF1bHQpKG9yaWdpbik7XG4gIGNvbnN0IHNlY3JldCA9ICgwLCBfdXRpbHMuY3JlYXRlU2VjcmV0KSh7XG4gICAgYXV0aE9wdGlvbnMsXG4gICAgdXJsXG4gIH0pO1xuICBjb25zdCB7XG4gICAgcHJvdmlkZXJzLFxuICAgIHByb3ZpZGVyXG4gIH0gPSAoMCwgX3Byb3ZpZGVycy5kZWZhdWx0KSh7XG4gICAgcHJvdmlkZXJzOiBhdXRoT3B0aW9ucy5wcm92aWRlcnMsXG4gICAgdXJsLFxuICAgIHByb3ZpZGVySWRcbiAgfSk7XG4gIGNvbnN0IG1heEFnZSA9IDMwICogMjQgKiA2MCAqIDYwO1xuICBjb25zdCBvcHRpb25zID0ge1xuICAgIGRlYnVnOiBmYWxzZSxcbiAgICBwYWdlczoge30sXG4gICAgdGhlbWU6IHtcbiAgICAgIGNvbG9yU2NoZW1lOiBcImF1dG9cIixcbiAgICAgIGxvZ286IFwiXCIsXG4gICAgICBicmFuZENvbG9yOiBcIlwiLFxuICAgICAgYnV0dG9uVGV4dDogXCJcIlxuICAgIH0sXG4gICAgLi4uYXV0aE9wdGlvbnMsXG4gICAgdXJsLFxuICAgIGFjdGlvbixcbiAgICBwcm92aWRlcixcbiAgICBjb29raWVzOiB7XG4gICAgICAuLi5jb29raWUuZGVmYXVsdENvb2tpZXMoKF9hdXRoT3B0aW9ucyR1c2VTZWN1ciA9IGF1dGhPcHRpb25zLnVzZVNlY3VyZUNvb2tpZXMpICE9PSBudWxsICYmIF9hdXRoT3B0aW9ucyR1c2VTZWN1ciAhPT0gdm9pZCAwID8gX2F1dGhPcHRpb25zJHVzZVNlY3VyIDogdXJsLmJhc2Uuc3RhcnRzV2l0aChcImh0dHBzOi8vXCIpKSxcbiAgICAgIC4uLmF1dGhPcHRpb25zLmNvb2tpZXNcbiAgICB9LFxuICAgIHNlY3JldCxcbiAgICBwcm92aWRlcnMsXG4gICAgc2Vzc2lvbjoge1xuICAgICAgc3RyYXRlZ3k6IGF1dGhPcHRpb25zLmFkYXB0ZXIgPyBcImRhdGFiYXNlXCIgOiBcImp3dFwiLFxuICAgICAgbWF4QWdlLFxuICAgICAgdXBkYXRlQWdlOiAyNCAqIDYwICogNjAsXG4gICAgICBnZW5lcmF0ZVNlc3Npb25Ub2tlbjogKCkgPT4ge1xuICAgICAgICB2YXIgX3JhbmRvbVVVSUQ7XG4gICAgICAgIHJldHVybiAoX3JhbmRvbVVVSUQgPSBfY3J5cHRvLnJhbmRvbVVVSUQgPT09IG51bGwgfHwgX2NyeXB0by5yYW5kb21VVUlEID09PSB2b2lkIDAgPyB2b2lkIDAgOiAoMCwgX2NyeXB0by5yYW5kb21VVUlEKSgpKSAhPT0gbnVsbCAmJiBfcmFuZG9tVVVJRCAhPT0gdm9pZCAwID8gX3JhbmRvbVVVSUQgOiAoMCwgX2NyeXB0by5yYW5kb21CeXRlcykoMzIpLnRvU3RyaW5nKFwiaGV4XCIpO1xuICAgICAgfSxcbiAgICAgIC4uLmF1dGhPcHRpb25zLnNlc3Npb25cbiAgICB9LFxuICAgIGp3dDoge1xuICAgICAgc2VjcmV0LFxuICAgICAgbWF4QWdlLFxuICAgICAgZW5jb2RlOiBqd3QuZW5jb2RlLFxuICAgICAgZGVjb2RlOiBqd3QuZGVjb2RlLFxuICAgICAgLi4uYXV0aE9wdGlvbnMuand0XG4gICAgfSxcbiAgICBldmVudHM6ICgwLCBfZXJyb3JzLmV2ZW50c0Vycm9ySGFuZGxlcikoKF9hdXRoT3B0aW9ucyRldmVudHMgPSBhdXRoT3B0aW9ucy5ldmVudHMpICE9PSBudWxsICYmIF9hdXRoT3B0aW9ucyRldmVudHMgIT09IHZvaWQgMCA/IF9hdXRoT3B0aW9ucyRldmVudHMgOiB7fSwgX2xvZ2dlci5kZWZhdWx0KSxcbiAgICBhZGFwdGVyOiAoMCwgX2Vycm9ycy5hZGFwdGVyRXJyb3JIYW5kbGVyKShhdXRoT3B0aW9ucy5hZGFwdGVyLCBfbG9nZ2VyLmRlZmF1bHQpLFxuICAgIGNhbGxiYWNrczoge1xuICAgICAgLi4uX2RlZmF1bHRDYWxsYmFja3MuZGVmYXVsdENhbGxiYWNrcyxcbiAgICAgIC4uLmF1dGhPcHRpb25zLmNhbGxiYWNrc1xuICAgIH0sXG4gICAgbG9nZ2VyOiBfbG9nZ2VyLmRlZmF1bHQsXG4gICAgY2FsbGJhY2tVcmw6IHVybC5vcmlnaW5cbiAgfTtcbiAgY29uc3QgY29va2llcyA9IFtdO1xuICBjb25zdCB7XG4gICAgY3NyZlRva2VuLFxuICAgIGNvb2tpZTogY3NyZkNvb2tpZSxcbiAgICBjc3JmVG9rZW5WZXJpZmllZFxuICB9ID0gKDAsIF9jc3JmVG9rZW4uY3JlYXRlQ1NSRlRva2VuKSh7XG4gICAgb3B0aW9ucyxcbiAgICBjb29raWVWYWx1ZTogcmVxQ29va2llcyA9PT0gbnVsbCB8fCByZXFDb29raWVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXFDb29raWVzW29wdGlvbnMuY29va2llcy5jc3JmVG9rZW4ubmFtZV0sXG4gICAgaXNQb3N0LFxuICAgIGJvZHlWYWx1ZTogcmVxQ3NyZlRva2VuXG4gIH0pO1xuICBvcHRpb25zLmNzcmZUb2tlbiA9IGNzcmZUb2tlbjtcbiAgb3B0aW9ucy5jc3JmVG9rZW5WZXJpZmllZCA9IGNzcmZUb2tlblZlcmlmaWVkO1xuICBpZiAoY3NyZkNvb2tpZSkge1xuICAgIGNvb2tpZXMucHVzaCh7XG4gICAgICBuYW1lOiBvcHRpb25zLmNvb2tpZXMuY3NyZlRva2VuLm5hbWUsXG4gICAgICB2YWx1ZTogY3NyZkNvb2tpZSxcbiAgICAgIG9wdGlvbnM6IG9wdGlvbnMuY29va2llcy5jc3JmVG9rZW4ub3B0aW9uc1xuICAgIH0pO1xuICB9XG4gIGNvbnN0IHtcbiAgICBjYWxsYmFja1VybCxcbiAgICBjYWxsYmFja1VybENvb2tpZVxuICB9ID0gYXdhaXQgKDAsIF9jYWxsYmFja1VybC5jcmVhdGVDYWxsYmFja1VybCkoe1xuICAgIG9wdGlvbnMsXG4gICAgY29va2llVmFsdWU6IHJlcUNvb2tpZXMgPT09IG51bGwgfHwgcmVxQ29va2llcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogcmVxQ29va2llc1tvcHRpb25zLmNvb2tpZXMuY2FsbGJhY2tVcmwubmFtZV0sXG4gICAgcGFyYW1WYWx1ZTogcmVxQ2FsbGJhY2tVcmxcbiAgfSk7XG4gIG9wdGlvbnMuY2FsbGJhY2tVcmwgPSBjYWxsYmFja1VybDtcbiAgaWYgKGNhbGxiYWNrVXJsQ29va2llKSB7XG4gICAgY29va2llcy5wdXNoKHtcbiAgICAgIG5hbWU6IG9wdGlvbnMuY29va2llcy5jYWxsYmFja1VybC5uYW1lLFxuICAgICAgdmFsdWU6IGNhbGxiYWNrVXJsQ29va2llLFxuICAgICAgb3B0aW9uczogb3B0aW9ucy5jb29raWVzLmNhbGxiYWNrVXJsLm9wdGlvbnNcbiAgICB9KTtcbiAgfVxuICByZXR1cm4ge1xuICAgIG9wdGlvbnMsXG4gICAgY29va2llc1xuICB9O1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/init.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/assert.js":
+/*!***************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/assert.js ***!
+ \***************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(rsc)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.assertConfig = assertConfig;\nvar _errors = __webpack_require__(/*! ../errors */ \"(rsc)/./node_modules/next-auth/core/errors.js\");\nvar _parseUrl = _interopRequireDefault(__webpack_require__(/*! ../../utils/parse-url */ \"(rsc)/./node_modules/next-auth/utils/parse-url.js\"));\nvar _cookie = __webpack_require__(/*! ./cookie */ \"(rsc)/./node_modules/next-auth/core/lib/cookie.js\");\nlet warned = false;\nfunction isValidHttpUrl(url, baseUrl) {\n try {\n return /^https?:/.test(new URL(url, url.startsWith(\"/\") ? baseUrl : undefined).protocol);\n } catch (_unused) {\n return false;\n }\n}\nfunction assertConfig(params) {\n var _req$query, _req$query2, _options$useSecureCoo, _req$cookies, _options$cookies$call, _options$cookies;\n const {\n options,\n req\n } = params;\n const warnings = [];\n if (!warned) {\n if (!req.origin) warnings.push(\"NEXTAUTH_URL\");\n if (!options.secret && \"development\" !== \"production\") warnings.push(\"NO_SECRET\");\n if (options.debug) warnings.push(\"DEBUG_ENABLED\");\n }\n if (!options.secret && \"development\" === \"production\") {}\n if (!((_req$query = req.query) !== null && _req$query !== void 0 && _req$query.nextauth) && !req.action) {\n return new _errors.MissingAPIRoute(\"Cannot find [...nextauth].{js,ts} in `/pages/api/auth`. Make sure the filename is written correctly.\");\n }\n const callbackUrlParam = (_req$query2 = req.query) === null || _req$query2 === void 0 ? void 0 : _req$query2.callbackUrl;\n const url = (0, _parseUrl.default)(req.origin);\n if (callbackUrlParam && !isValidHttpUrl(callbackUrlParam, url.base)) {\n return new _errors.InvalidCallbackUrl(`Invalid callback URL. Received: ${callbackUrlParam}`);\n }\n const {\n callbackUrl: defaultCallbackUrl\n } = (0, _cookie.defaultCookies)((_options$useSecureCoo = options.useSecureCookies) !== null && _options$useSecureCoo !== void 0 ? _options$useSecureCoo : url.base.startsWith(\"https://\"));\n const callbackUrlCookie = (_req$cookies = req.cookies) === null || _req$cookies === void 0 ? void 0 : _req$cookies[(_options$cookies$call = (_options$cookies = options.cookies) === null || _options$cookies === void 0 || (_options$cookies = _options$cookies.callbackUrl) === null || _options$cookies === void 0 ? void 0 : _options$cookies.name) !== null && _options$cookies$call !== void 0 ? _options$cookies$call : defaultCallbackUrl.name];\n if (callbackUrlCookie && !isValidHttpUrl(callbackUrlCookie, url.base)) {\n return new _errors.InvalidCallbackUrl(`Invalid callback URL. Received: ${callbackUrlCookie}`);\n }\n let hasCredentials, hasEmail;\n let hasTwitterOAuth2;\n for (const provider of options.providers) {\n if (provider.type === \"credentials\") hasCredentials = true;else if (provider.type === \"email\") hasEmail = true;else if (provider.id === \"twitter\" && provider.version === \"2.0\") hasTwitterOAuth2 = true;\n }\n if (hasCredentials) {\n var _options$session;\n const dbStrategy = ((_options$session = options.session) === null || _options$session === void 0 ? void 0 : _options$session.strategy) === \"database\";\n const onlyCredentials = !options.providers.some(p => p.type !== \"credentials\");\n if (dbStrategy && onlyCredentials) {\n return new _errors.UnsupportedStrategy(\"Signin in with credentials only supported if JWT strategy is enabled\");\n }\n const credentialsNoAuthorize = options.providers.some(p => p.type === \"credentials\" && !p.authorize);\n if (credentialsNoAuthorize) {\n return new _errors.MissingAuthorize(\"Must define an authorize() handler to use credentials authentication provider\");\n }\n }\n if (hasEmail) {\n const {\n adapter\n } = options;\n if (!adapter) {\n return new _errors.MissingAdapter(\"E-mail login requires an adapter.\");\n }\n const missingMethods = [\"createVerificationToken\", \"useVerificationToken\", \"getUserByEmail\"].filter(method => !adapter[method]);\n if (missingMethods.length) {\n return new _errors.MissingAdapterMethods(`Required adapter methods were missing: ${missingMethods.join(\", \")}`);\n }\n }\n if (!warned) {\n if (hasTwitterOAuth2) warnings.push(\"TWITTER_OAUTH_2_BETA\");\n warned = true;\n }\n return warnings;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL2Fzc2VydC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw2QkFBNkIsbUJBQU8sQ0FBQywwSEFBOEM7QUFDbkYsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysb0JBQW9CO0FBQ3BCLGNBQWMsbUJBQU8sQ0FBQyxnRUFBVztBQUNqQyx1Q0FBdUMsbUJBQU8sQ0FBQyxnRkFBdUI7QUFDdEUsY0FBYyxtQkFBTyxDQUFDLG1FQUFVO0FBQ2hDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCLGFBQW9CO0FBQy9DO0FBQ0E7QUFDQSx5QkFBeUIsYUFBb0IsbUJBQW1CLEVBRTdEO0FBQ0g7QUFDQSxtRUFBbUUsT0FBTztBQUMxRTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDZFQUE2RSxpQkFBaUI7QUFDOUY7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSw2RUFBNkUsa0JBQWtCO0FBQy9GO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0RBQStELG9EQUFvRDtBQUNuSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUZBQXlGLDBCQUEwQjtBQUNuSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL2Fzc2VydC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5hc3NlcnRDb25maWcgPSBhc3NlcnRDb25maWc7XG52YXIgX2Vycm9ycyA9IHJlcXVpcmUoXCIuLi9lcnJvcnNcIik7XG52YXIgX3BhcnNlVXJsID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vLi4vdXRpbHMvcGFyc2UtdXJsXCIpKTtcbnZhciBfY29va2llID0gcmVxdWlyZShcIi4vY29va2llXCIpO1xubGV0IHdhcm5lZCA9IGZhbHNlO1xuZnVuY3Rpb24gaXNWYWxpZEh0dHBVcmwodXJsLCBiYXNlVXJsKSB7XG4gIHRyeSB7XG4gICAgcmV0dXJuIC9eaHR0cHM/Oi8udGVzdChuZXcgVVJMKHVybCwgdXJsLnN0YXJ0c1dpdGgoXCIvXCIpID8gYmFzZVVybCA6IHVuZGVmaW5lZCkucHJvdG9jb2wpO1xuICB9IGNhdGNoIChfdW51c2VkKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG59XG5mdW5jdGlvbiBhc3NlcnRDb25maWcocGFyYW1zKSB7XG4gIHZhciBfcmVxJHF1ZXJ5LCBfcmVxJHF1ZXJ5MiwgX29wdGlvbnMkdXNlU2VjdXJlQ29vLCBfcmVxJGNvb2tpZXMsIF9vcHRpb25zJGNvb2tpZXMkY2FsbCwgX29wdGlvbnMkY29va2llcztcbiAgY29uc3Qge1xuICAgIG9wdGlvbnMsXG4gICAgcmVxXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IHdhcm5pbmdzID0gW107XG4gIGlmICghd2FybmVkKSB7XG4gICAgaWYgKCFyZXEub3JpZ2luKSB3YXJuaW5ncy5wdXNoKFwiTkVYVEFVVEhfVVJMXCIpO1xuICAgIGlmICghb3B0aW9ucy5zZWNyZXQgJiYgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB3YXJuaW5ncy5wdXNoKFwiTk9fU0VDUkVUXCIpO1xuICAgIGlmIChvcHRpb25zLmRlYnVnKSB3YXJuaW5ncy5wdXNoKFwiREVCVUdfRU5BQkxFRFwiKTtcbiAgfVxuICBpZiAoIW9wdGlvbnMuc2VjcmV0ICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHJldHVybiBuZXcgX2Vycm9ycy5NaXNzaW5nU2VjcmV0KFwiUGxlYXNlIGRlZmluZSBhIGBzZWNyZXRgIGluIHByb2R1Y3Rpb24uXCIpO1xuICB9XG4gIGlmICghKChfcmVxJHF1ZXJ5ID0gcmVxLnF1ZXJ5KSAhPT0gbnVsbCAmJiBfcmVxJHF1ZXJ5ICE9PSB2b2lkIDAgJiYgX3JlcSRxdWVyeS5uZXh0YXV0aCkgJiYgIXJlcS5hY3Rpb24pIHtcbiAgICByZXR1cm4gbmV3IF9lcnJvcnMuTWlzc2luZ0FQSVJvdXRlKFwiQ2Fubm90IGZpbmQgWy4uLm5leHRhdXRoXS57anMsdHN9IGluIGAvcGFnZXMvYXBpL2F1dGhgLiBNYWtlIHN1cmUgdGhlIGZpbGVuYW1lIGlzIHdyaXR0ZW4gY29ycmVjdGx5LlwiKTtcbiAgfVxuICBjb25zdCBjYWxsYmFja1VybFBhcmFtID0gKF9yZXEkcXVlcnkyID0gcmVxLnF1ZXJ5KSA9PT0gbnVsbCB8fCBfcmVxJHF1ZXJ5MiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3JlcSRxdWVyeTIuY2FsbGJhY2tVcmw7XG4gIGNvbnN0IHVybCA9ICgwLCBfcGFyc2VVcmwuZGVmYXVsdCkocmVxLm9yaWdpbik7XG4gIGlmIChjYWxsYmFja1VybFBhcmFtICYmICFpc1ZhbGlkSHR0cFVybChjYWxsYmFja1VybFBhcmFtLCB1cmwuYmFzZSkpIHtcbiAgICByZXR1cm4gbmV3IF9lcnJvcnMuSW52YWxpZENhbGxiYWNrVXJsKGBJbnZhbGlkIGNhbGxiYWNrIFVSTC4gUmVjZWl2ZWQ6ICR7Y2FsbGJhY2tVcmxQYXJhbX1gKTtcbiAgfVxuICBjb25zdCB7XG4gICAgY2FsbGJhY2tVcmw6IGRlZmF1bHRDYWxsYmFja1VybFxuICB9ID0gKDAsIF9jb29raWUuZGVmYXVsdENvb2tpZXMpKChfb3B0aW9ucyR1c2VTZWN1cmVDb28gPSBvcHRpb25zLnVzZVNlY3VyZUNvb2tpZXMpICE9PSBudWxsICYmIF9vcHRpb25zJHVzZVNlY3VyZUNvbyAhPT0gdm9pZCAwID8gX29wdGlvbnMkdXNlU2VjdXJlQ29vIDogdXJsLmJhc2Uuc3RhcnRzV2l0aChcImh0dHBzOi8vXCIpKTtcbiAgY29uc3QgY2FsbGJhY2tVcmxDb29raWUgPSAoX3JlcSRjb29raWVzID0gcmVxLmNvb2tpZXMpID09PSBudWxsIHx8IF9yZXEkY29va2llcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3JlcSRjb29raWVzWyhfb3B0aW9ucyRjb29raWVzJGNhbGwgPSAoX29wdGlvbnMkY29va2llcyA9IG9wdGlvbnMuY29va2llcykgPT09IG51bGwgfHwgX29wdGlvbnMkY29va2llcyA9PT0gdm9pZCAwIHx8IChfb3B0aW9ucyRjb29raWVzID0gX29wdGlvbnMkY29va2llcy5jYWxsYmFja1VybCkgPT09IG51bGwgfHwgX29wdGlvbnMkY29va2llcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX29wdGlvbnMkY29va2llcy5uYW1lKSAhPT0gbnVsbCAmJiBfb3B0aW9ucyRjb29raWVzJGNhbGwgIT09IHZvaWQgMCA/IF9vcHRpb25zJGNvb2tpZXMkY2FsbCA6IGRlZmF1bHRDYWxsYmFja1VybC5uYW1lXTtcbiAgaWYgKGNhbGxiYWNrVXJsQ29va2llICYmICFpc1ZhbGlkSHR0cFVybChjYWxsYmFja1VybENvb2tpZSwgdXJsLmJhc2UpKSB7XG4gICAgcmV0dXJuIG5ldyBfZXJyb3JzLkludmFsaWRDYWxsYmFja1VybChgSW52YWxpZCBjYWxsYmFjayBVUkwuIFJlY2VpdmVkOiAke2NhbGxiYWNrVXJsQ29va2llfWApO1xuICB9XG4gIGxldCBoYXNDcmVkZW50aWFscywgaGFzRW1haWw7XG4gIGxldCBoYXNUd2l0dGVyT0F1dGgyO1xuICBmb3IgKGNvbnN0IHByb3ZpZGVyIG9mIG9wdGlvbnMucHJvdmlkZXJzKSB7XG4gICAgaWYgKHByb3ZpZGVyLnR5cGUgPT09IFwiY3JlZGVudGlhbHNcIikgaGFzQ3JlZGVudGlhbHMgPSB0cnVlO2Vsc2UgaWYgKHByb3ZpZGVyLnR5cGUgPT09IFwiZW1haWxcIikgaGFzRW1haWwgPSB0cnVlO2Vsc2UgaWYgKHByb3ZpZGVyLmlkID09PSBcInR3aXR0ZXJcIiAmJiBwcm92aWRlci52ZXJzaW9uID09PSBcIjIuMFwiKSBoYXNUd2l0dGVyT0F1dGgyID0gdHJ1ZTtcbiAgfVxuICBpZiAoaGFzQ3JlZGVudGlhbHMpIHtcbiAgICB2YXIgX29wdGlvbnMkc2Vzc2lvbjtcbiAgICBjb25zdCBkYlN0cmF0ZWd5ID0gKChfb3B0aW9ucyRzZXNzaW9uID0gb3B0aW9ucy5zZXNzaW9uKSA9PT0gbnVsbCB8fCBfb3B0aW9ucyRzZXNzaW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfb3B0aW9ucyRzZXNzaW9uLnN0cmF0ZWd5KSA9PT0gXCJkYXRhYmFzZVwiO1xuICAgIGNvbnN0IG9ubHlDcmVkZW50aWFscyA9ICFvcHRpb25zLnByb3ZpZGVycy5zb21lKHAgPT4gcC50eXBlICE9PSBcImNyZWRlbnRpYWxzXCIpO1xuICAgIGlmIChkYlN0cmF0ZWd5ICYmIG9ubHlDcmVkZW50aWFscykge1xuICAgICAgcmV0dXJuIG5ldyBfZXJyb3JzLlVuc3VwcG9ydGVkU3RyYXRlZ3koXCJTaWduaW4gaW4gd2l0aCBjcmVkZW50aWFscyBvbmx5IHN1cHBvcnRlZCBpZiBKV1Qgc3RyYXRlZ3kgaXMgZW5hYmxlZFwiKTtcbiAgICB9XG4gICAgY29uc3QgY3JlZGVudGlhbHNOb0F1dGhvcml6ZSA9IG9wdGlvbnMucHJvdmlkZXJzLnNvbWUocCA9PiBwLnR5cGUgPT09IFwiY3JlZGVudGlhbHNcIiAmJiAhcC5hdXRob3JpemUpO1xuICAgIGlmIChjcmVkZW50aWFsc05vQXV0aG9yaXplKSB7XG4gICAgICByZXR1cm4gbmV3IF9lcnJvcnMuTWlzc2luZ0F1dGhvcml6ZShcIk11c3QgZGVmaW5lIGFuIGF1dGhvcml6ZSgpIGhhbmRsZXIgdG8gdXNlIGNyZWRlbnRpYWxzIGF1dGhlbnRpY2F0aW9uIHByb3ZpZGVyXCIpO1xuICAgIH1cbiAgfVxuICBpZiAoaGFzRW1haWwpIHtcbiAgICBjb25zdCB7XG4gICAgICBhZGFwdGVyXG4gICAgfSA9IG9wdGlvbnM7XG4gICAgaWYgKCFhZGFwdGVyKSB7XG4gICAgICByZXR1cm4gbmV3IF9lcnJvcnMuTWlzc2luZ0FkYXB0ZXIoXCJFLW1haWwgbG9naW4gcmVxdWlyZXMgYW4gYWRhcHRlci5cIik7XG4gICAgfVxuICAgIGNvbnN0IG1pc3NpbmdNZXRob2RzID0gW1wiY3JlYXRlVmVyaWZpY2F0aW9uVG9rZW5cIiwgXCJ1c2VWZXJpZmljYXRpb25Ub2tlblwiLCBcImdldFVzZXJCeUVtYWlsXCJdLmZpbHRlcihtZXRob2QgPT4gIWFkYXB0ZXJbbWV0aG9kXSk7XG4gICAgaWYgKG1pc3NpbmdNZXRob2RzLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG5ldyBfZXJyb3JzLk1pc3NpbmdBZGFwdGVyTWV0aG9kcyhgUmVxdWlyZWQgYWRhcHRlciBtZXRob2RzIHdlcmUgbWlzc2luZzogJHttaXNzaW5nTWV0aG9kcy5qb2luKFwiLCBcIil9YCk7XG4gICAgfVxuICB9XG4gIGlmICghd2FybmVkKSB7XG4gICAgaWYgKGhhc1R3aXR0ZXJPQXV0aDIpIHdhcm5pbmdzLnB1c2goXCJUV0lUVEVSX09BVVRIXzJfQkVUQVwiKTtcbiAgICB3YXJuZWQgPSB0cnVlO1xuICB9XG4gIHJldHVybiB3YXJuaW5ncztcbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/assert.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/callback-handler.js":
+/*!*************************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/callback-handler.js ***!
+ \*************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = callbackHandler;\nvar _errors = __webpack_require__(/*! ../errors */ \"(rsc)/./node_modules/next-auth/core/errors.js\");\nvar _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next-auth/core/lib/utils.js\");\nasync function callbackHandler(params) {\n const {\n sessionToken,\n profile: _profile,\n account,\n options\n } = params;\n if (!(account !== null && account !== void 0 && account.providerAccountId) || !account.type) throw new Error(\"Missing or invalid provider account\");\n if (![\"email\", \"oauth\"].includes(account.type)) throw new Error(\"Provider not supported\");\n const {\n adapter,\n jwt,\n events,\n session: {\n strategy: sessionStrategy,\n generateSessionToken\n }\n } = options;\n if (!adapter) {\n return {\n user: _profile,\n account\n };\n }\n const profile = _profile;\n const {\n createUser,\n updateUser,\n getUser,\n getUserByAccount,\n getUserByEmail,\n linkAccount,\n createSession,\n getSessionAndUser,\n deleteSession\n } = adapter;\n let session = null;\n let user = null;\n let isNewUser = false;\n const useJwtSession = sessionStrategy === \"jwt\";\n if (sessionToken) {\n if (useJwtSession) {\n try {\n session = await jwt.decode({\n ...jwt,\n token: sessionToken\n });\n if (session && \"sub\" in session && session.sub) {\n user = await getUser(session.sub);\n }\n } catch (_unused) {}\n } else {\n const userAndSession = await getSessionAndUser(sessionToken);\n if (userAndSession) {\n session = userAndSession.session;\n user = userAndSession.user;\n }\n }\n }\n if (account.type === \"email\") {\n const userByEmail = await getUserByEmail(profile.email);\n if (userByEmail) {\n var _user, _events$updateUser;\n if (((_user = user) === null || _user === void 0 ? void 0 : _user.id) !== userByEmail.id && !useJwtSession && sessionToken) {\n await deleteSession(sessionToken);\n }\n user = await updateUser({\n id: userByEmail.id,\n emailVerified: new Date()\n });\n await ((_events$updateUser = events.updateUser) === null || _events$updateUser === void 0 ? void 0 : _events$updateUser.call(events, {\n user\n }));\n } else {\n var _events$createUser;\n const {\n id: _,\n ...newUser\n } = {\n ...profile,\n emailVerified: new Date()\n };\n user = await createUser(newUser);\n await ((_events$createUser = events.createUser) === null || _events$createUser === void 0 ? void 0 : _events$createUser.call(events, {\n user\n }));\n isNewUser = true;\n }\n session = useJwtSession ? {} : await createSession({\n sessionToken: await generateSessionToken(),\n userId: user.id,\n expires: (0, _utils.fromDate)(options.session.maxAge)\n });\n return {\n session,\n user,\n isNewUser\n };\n } else if (account.type === \"oauth\") {\n const userByAccount = await getUserByAccount({\n providerAccountId: account.providerAccountId,\n provider: account.provider\n });\n if (userByAccount) {\n if (user) {\n if (userByAccount.id === user.id) {\n return {\n session,\n user,\n isNewUser\n };\n }\n throw new _errors.AccountNotLinkedError(\"The account is already associated with another user\");\n }\n session = useJwtSession ? {} : await createSession({\n sessionToken: await generateSessionToken(),\n userId: userByAccount.id,\n expires: (0, _utils.fromDate)(options.session.maxAge)\n });\n return {\n session,\n user: userByAccount,\n isNewUser\n };\n } else {\n var _events$createUser2, _events$linkAccount2;\n if (user) {\n var _events$linkAccount;\n await linkAccount({\n ...account,\n userId: user.id\n });\n await ((_events$linkAccount = events.linkAccount) === null || _events$linkAccount === void 0 ? void 0 : _events$linkAccount.call(events, {\n user,\n account,\n profile\n }));\n return {\n session,\n user,\n isNewUser\n };\n }\n const userByEmail = profile.email ? await getUserByEmail(profile.email) : null;\n if (userByEmail) {\n const provider = options.provider;\n if (provider !== null && provider !== void 0 && provider.allowDangerousEmailAccountLinking) {\n user = userByEmail;\n } else {\n throw new _errors.AccountNotLinkedError(\"Another account already exists with the same e-mail address\");\n }\n } else {\n const {\n id: _,\n ...newUser\n } = {\n ...profile,\n emailVerified: null\n };\n user = await createUser(newUser);\n }\n await ((_events$createUser2 = events.createUser) === null || _events$createUser2 === void 0 ? void 0 : _events$createUser2.call(events, {\n user\n }));\n await linkAccount({\n ...account,\n userId: user.id\n });\n await ((_events$linkAccount2 = events.linkAccount) === null || _events$linkAccount2 === void 0 ? void 0 : _events$linkAccount2.call(events, {\n user,\n account,\n profile\n }));\n session = useJwtSession ? {} : await createSession({\n sessionToken: await generateSessionToken(),\n userId: user.id,\n expires: (0, _utils.fromDate)(options.session.maxAge)\n });\n return {\n session,\n user,\n isNewUser: true\n };\n }\n }\n throw new Error(\"Unsupported account type\");\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL2NhbGxiYWNrLWhhbmRsZXIuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWU7QUFDZixjQUFjLG1CQUFPLENBQUMsZ0VBQVc7QUFDakMsYUFBYSxtQkFBTyxDQUFDLGlFQUFTO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUixNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsT0FBTztBQUNQLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsbUNBQW1DO0FBQ25DO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9saWIvY2FsbGJhY2staGFuZGxlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IGNhbGxiYWNrSGFuZGxlcjtcbnZhciBfZXJyb3JzID0gcmVxdWlyZShcIi4uL2Vycm9yc1wiKTtcbnZhciBfdXRpbHMgPSByZXF1aXJlKFwiLi91dGlsc1wiKTtcbmFzeW5jIGZ1bmN0aW9uIGNhbGxiYWNrSGFuZGxlcihwYXJhbXMpIHtcbiAgY29uc3Qge1xuICAgIHNlc3Npb25Ub2tlbixcbiAgICBwcm9maWxlOiBfcHJvZmlsZSxcbiAgICBhY2NvdW50LFxuICAgIG9wdGlvbnNcbiAgfSA9IHBhcmFtcztcbiAgaWYgKCEoYWNjb3VudCAhPT0gbnVsbCAmJiBhY2NvdW50ICE9PSB2b2lkIDAgJiYgYWNjb3VudC5wcm92aWRlckFjY291bnRJZCkgfHwgIWFjY291bnQudHlwZSkgdGhyb3cgbmV3IEVycm9yKFwiTWlzc2luZyBvciBpbnZhbGlkIHByb3ZpZGVyIGFjY291bnRcIik7XG4gIGlmICghW1wiZW1haWxcIiwgXCJvYXV0aFwiXS5pbmNsdWRlcyhhY2NvdW50LnR5cGUpKSB0aHJvdyBuZXcgRXJyb3IoXCJQcm92aWRlciBub3Qgc3VwcG9ydGVkXCIpO1xuICBjb25zdCB7XG4gICAgYWRhcHRlcixcbiAgICBqd3QsXG4gICAgZXZlbnRzLFxuICAgIHNlc3Npb246IHtcbiAgICAgIHN0cmF0ZWd5OiBzZXNzaW9uU3RyYXRlZ3ksXG4gICAgICBnZW5lcmF0ZVNlc3Npb25Ub2tlblxuICAgIH1cbiAgfSA9IG9wdGlvbnM7XG4gIGlmICghYWRhcHRlcikge1xuICAgIHJldHVybiB7XG4gICAgICB1c2VyOiBfcHJvZmlsZSxcbiAgICAgIGFjY291bnRcbiAgICB9O1xuICB9XG4gIGNvbnN0IHByb2ZpbGUgPSBfcHJvZmlsZTtcbiAgY29uc3Qge1xuICAgIGNyZWF0ZVVzZXIsXG4gICAgdXBkYXRlVXNlcixcbiAgICBnZXRVc2VyLFxuICAgIGdldFVzZXJCeUFjY291bnQsXG4gICAgZ2V0VXNlckJ5RW1haWwsXG4gICAgbGlua0FjY291bnQsXG4gICAgY3JlYXRlU2Vzc2lvbixcbiAgICBnZXRTZXNzaW9uQW5kVXNlcixcbiAgICBkZWxldGVTZXNzaW9uXG4gIH0gPSBhZGFwdGVyO1xuICBsZXQgc2Vzc2lvbiA9IG51bGw7XG4gIGxldCB1c2VyID0gbnVsbDtcbiAgbGV0IGlzTmV3VXNlciA9IGZhbHNlO1xuICBjb25zdCB1c2VKd3RTZXNzaW9uID0gc2Vzc2lvblN0cmF0ZWd5ID09PSBcImp3dFwiO1xuICBpZiAoc2Vzc2lvblRva2VuKSB7XG4gICAgaWYgKHVzZUp3dFNlc3Npb24pIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIHNlc3Npb24gPSBhd2FpdCBqd3QuZGVjb2RlKHtcbiAgICAgICAgICAuLi5qd3QsXG4gICAgICAgICAgdG9rZW46IHNlc3Npb25Ub2tlblxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHNlc3Npb24gJiYgXCJzdWJcIiBpbiBzZXNzaW9uICYmIHNlc3Npb24uc3ViKSB7XG4gICAgICAgICAgdXNlciA9IGF3YWl0IGdldFVzZXIoc2Vzc2lvbi5zdWIpO1xuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChfdW51c2VkKSB7fVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB1c2VyQW5kU2Vzc2lvbiA9IGF3YWl0IGdldFNlc3Npb25BbmRVc2VyKHNlc3Npb25Ub2tlbik7XG4gICAgICBpZiAodXNlckFuZFNlc3Npb24pIHtcbiAgICAgICAgc2Vzc2lvbiA9IHVzZXJBbmRTZXNzaW9uLnNlc3Npb247XG4gICAgICAgIHVzZXIgPSB1c2VyQW5kU2Vzc2lvbi51c2VyO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICBpZiAoYWNjb3VudC50eXBlID09PSBcImVtYWlsXCIpIHtcbiAgICBjb25zdCB1c2VyQnlFbWFpbCA9IGF3YWl0IGdldFVzZXJCeUVtYWlsKHByb2ZpbGUuZW1haWwpO1xuICAgIGlmICh1c2VyQnlFbWFpbCkge1xuICAgICAgdmFyIF91c2VyLCBfZXZlbnRzJHVwZGF0ZVVzZXI7XG4gICAgICBpZiAoKChfdXNlciA9IHVzZXIpID09PSBudWxsIHx8IF91c2VyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfdXNlci5pZCkgIT09IHVzZXJCeUVtYWlsLmlkICYmICF1c2VKd3RTZXNzaW9uICYmIHNlc3Npb25Ub2tlbikge1xuICAgICAgICBhd2FpdCBkZWxldGVTZXNzaW9uKHNlc3Npb25Ub2tlbik7XG4gICAgICB9XG4gICAgICB1c2VyID0gYXdhaXQgdXBkYXRlVXNlcih7XG4gICAgICAgIGlkOiB1c2VyQnlFbWFpbC5pZCxcbiAgICAgICAgZW1haWxWZXJpZmllZDogbmV3IERhdGUoKVxuICAgICAgfSk7XG4gICAgICBhd2FpdCAoKF9ldmVudHMkdXBkYXRlVXNlciA9IGV2ZW50cy51cGRhdGVVc2VyKSA9PT0gbnVsbCB8fCBfZXZlbnRzJHVwZGF0ZVVzZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9ldmVudHMkdXBkYXRlVXNlci5jYWxsKGV2ZW50cywge1xuICAgICAgICB1c2VyXG4gICAgICB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBfZXZlbnRzJGNyZWF0ZVVzZXI7XG4gICAgICBjb25zdCB7XG4gICAgICAgIGlkOiBfLFxuICAgICAgICAuLi5uZXdVc2VyXG4gICAgICB9ID0ge1xuICAgICAgICAuLi5wcm9maWxlLFxuICAgICAgICBlbWFpbFZlcmlmaWVkOiBuZXcgRGF0ZSgpXG4gICAgICB9O1xuICAgICAgdXNlciA9IGF3YWl0IGNyZWF0ZVVzZXIobmV3VXNlcik7XG4gICAgICBhd2FpdCAoKF9ldmVudHMkY3JlYXRlVXNlciA9IGV2ZW50cy5jcmVhdGVVc2VyKSA9PT0gbnVsbCB8fCBfZXZlbnRzJGNyZWF0ZVVzZXIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9ldmVudHMkY3JlYXRlVXNlci5jYWxsKGV2ZW50cywge1xuICAgICAgICB1c2VyXG4gICAgICB9KSk7XG4gICAgICBpc05ld1VzZXIgPSB0cnVlO1xuICAgIH1cbiAgICBzZXNzaW9uID0gdXNlSnd0U2Vzc2lvbiA/IHt9IDogYXdhaXQgY3JlYXRlU2Vzc2lvbih7XG4gICAgICBzZXNzaW9uVG9rZW46IGF3YWl0IGdlbmVyYXRlU2Vzc2lvblRva2VuKCksXG4gICAgICB1c2VySWQ6IHVzZXIuaWQsXG4gICAgICBleHBpcmVzOiAoMCwgX3V0aWxzLmZyb21EYXRlKShvcHRpb25zLnNlc3Npb24ubWF4QWdlKVxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICBzZXNzaW9uLFxuICAgICAgdXNlcixcbiAgICAgIGlzTmV3VXNlclxuICAgIH07XG4gIH0gZWxzZSBpZiAoYWNjb3VudC50eXBlID09PSBcIm9hdXRoXCIpIHtcbiAgICBjb25zdCB1c2VyQnlBY2NvdW50ID0gYXdhaXQgZ2V0VXNlckJ5QWNjb3VudCh7XG4gICAgICBwcm92aWRlckFjY291bnRJZDogYWNjb3VudC5wcm92aWRlckFjY291bnRJZCxcbiAgICAgIHByb3ZpZGVyOiBhY2NvdW50LnByb3ZpZGVyXG4gICAgfSk7XG4gICAgaWYgKHVzZXJCeUFjY291bnQpIHtcbiAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgIGlmICh1c2VyQnlBY2NvdW50LmlkID09PSB1c2VyLmlkKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHNlc3Npb24sXG4gICAgICAgICAgICB1c2VyLFxuICAgICAgICAgICAgaXNOZXdVc2VyXG4gICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICB0aHJvdyBuZXcgX2Vycm9ycy5BY2NvdW50Tm90TGlua2VkRXJyb3IoXCJUaGUgYWNjb3VudCBpcyBhbHJlYWR5IGFzc29jaWF0ZWQgd2l0aCBhbm90aGVyIHVzZXJcIik7XG4gICAgICB9XG4gICAgICBzZXNzaW9uID0gdXNlSnd0U2Vzc2lvbiA/IHt9IDogYXdhaXQgY3JlYXRlU2Vzc2lvbih7XG4gICAgICAgIHNlc3Npb25Ub2tlbjogYXdhaXQgZ2VuZXJhdGVTZXNzaW9uVG9rZW4oKSxcbiAgICAgICAgdXNlcklkOiB1c2VyQnlBY2NvdW50LmlkLFxuICAgICAgICBleHBpcmVzOiAoMCwgX3V0aWxzLmZyb21EYXRlKShvcHRpb25zLnNlc3Npb24ubWF4QWdlKVxuICAgICAgfSk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzZXNzaW9uLFxuICAgICAgICB1c2VyOiB1c2VyQnlBY2NvdW50LFxuICAgICAgICBpc05ld1VzZXJcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBfZXZlbnRzJGNyZWF0ZVVzZXIyLCBfZXZlbnRzJGxpbmtBY2NvdW50MjtcbiAgICAgIGlmICh1c2VyKSB7XG4gICAgICAgIHZhciBfZXZlbnRzJGxpbmtBY2NvdW50O1xuICAgICAgICBhd2FpdCBsaW5rQWNjb3VudCh7XG4gICAgICAgICAgLi4uYWNjb3VudCxcbiAgICAgICAgICB1c2VySWQ6IHVzZXIuaWRcbiAgICAgICAgfSk7XG4gICAgICAgIGF3YWl0ICgoX2V2ZW50cyRsaW5rQWNjb3VudCA9IGV2ZW50cy5saW5rQWNjb3VudCkgPT09IG51bGwgfHwgX2V2ZW50cyRsaW5rQWNjb3VudCA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2V2ZW50cyRsaW5rQWNjb3VudC5jYWxsKGV2ZW50cywge1xuICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgYWNjb3VudCxcbiAgICAgICAgICBwcm9maWxlXG4gICAgICAgIH0pKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzZXNzaW9uLFxuICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgaXNOZXdVc2VyXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBjb25zdCB1c2VyQnlFbWFpbCA9IHByb2ZpbGUuZW1haWwgPyBhd2FpdCBnZXRVc2VyQnlFbWFpbChwcm9maWxlLmVtYWlsKSA6IG51bGw7XG4gICAgICBpZiAodXNlckJ5RW1haWwpIHtcbiAgICAgICAgY29uc3QgcHJvdmlkZXIgPSBvcHRpb25zLnByb3ZpZGVyO1xuICAgICAgICBpZiAocHJvdmlkZXIgIT09IG51bGwgJiYgcHJvdmlkZXIgIT09IHZvaWQgMCAmJiBwcm92aWRlci5hbGxvd0Rhbmdlcm91c0VtYWlsQWNjb3VudExpbmtpbmcpIHtcbiAgICAgICAgICB1c2VyID0gdXNlckJ5RW1haWw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhyb3cgbmV3IF9lcnJvcnMuQWNjb3VudE5vdExpbmtlZEVycm9yKFwiQW5vdGhlciBhY2NvdW50IGFscmVhZHkgZXhpc3RzIHdpdGggdGhlIHNhbWUgZS1tYWlsIGFkZHJlc3NcIik7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICBpZDogXyxcbiAgICAgICAgICAuLi5uZXdVc2VyXG4gICAgICAgIH0gPSB7XG4gICAgICAgICAgLi4ucHJvZmlsZSxcbiAgICAgICAgICBlbWFpbFZlcmlmaWVkOiBudWxsXG4gICAgICAgIH07XG4gICAgICAgIHVzZXIgPSBhd2FpdCBjcmVhdGVVc2VyKG5ld1VzZXIpO1xuICAgICAgfVxuICAgICAgYXdhaXQgKChfZXZlbnRzJGNyZWF0ZVVzZXIyID0gZXZlbnRzLmNyZWF0ZVVzZXIpID09PSBudWxsIHx8IF9ldmVudHMkY3JlYXRlVXNlcjIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9ldmVudHMkY3JlYXRlVXNlcjIuY2FsbChldmVudHMsIHtcbiAgICAgICAgdXNlclxuICAgICAgfSkpO1xuICAgICAgYXdhaXQgbGlua0FjY291bnQoe1xuICAgICAgICAuLi5hY2NvdW50LFxuICAgICAgICB1c2VySWQ6IHVzZXIuaWRcbiAgICAgIH0pO1xuICAgICAgYXdhaXQgKChfZXZlbnRzJGxpbmtBY2NvdW50MiA9IGV2ZW50cy5saW5rQWNjb3VudCkgPT09IG51bGwgfHwgX2V2ZW50cyRsaW5rQWNjb3VudDIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9ldmVudHMkbGlua0FjY291bnQyLmNhbGwoZXZlbnRzLCB7XG4gICAgICAgIHVzZXIsXG4gICAgICAgIGFjY291bnQsXG4gICAgICAgIHByb2ZpbGVcbiAgICAgIH0pKTtcbiAgICAgIHNlc3Npb24gPSB1c2VKd3RTZXNzaW9uID8ge30gOiBhd2FpdCBjcmVhdGVTZXNzaW9uKHtcbiAgICAgICAgc2Vzc2lvblRva2VuOiBhd2FpdCBnZW5lcmF0ZVNlc3Npb25Ub2tlbigpLFxuICAgICAgICB1c2VySWQ6IHVzZXIuaWQsXG4gICAgICAgIGV4cGlyZXM6ICgwLCBfdXRpbHMuZnJvbURhdGUpKG9wdGlvbnMuc2Vzc2lvbi5tYXhBZ2UpXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHNlc3Npb24sXG4gICAgICAgIHVzZXIsXG4gICAgICAgIGlzTmV3VXNlcjogdHJ1ZVxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgdGhyb3cgbmV3IEVycm9yKFwiVW5zdXBwb3J0ZWQgYWNjb3VudCB0eXBlXCIpO1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/callback-handler.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/callback-url.js":
+/*!*********************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/callback-url.js ***!
+ \*********************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createCallbackUrl = createCallbackUrl;\nasync function createCallbackUrl({\n options,\n paramValue,\n cookieValue\n}) {\n const {\n url,\n callbacks\n } = options;\n let callbackUrl = url.origin;\n if (paramValue) {\n callbackUrl = await callbacks.redirect({\n url: paramValue,\n baseUrl: url.origin\n });\n } else if (cookieValue) {\n callbackUrl = await callbacks.redirect({\n url: cookieValue,\n baseUrl: url.origin\n });\n }\n return {\n callbackUrl,\n callbackUrlCookie: callbackUrl !== cookieValue ? callbackUrl : undefined\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL2NhbGxiYWNrLXVybC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRix5QkFBeUI7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9saWIvY2FsbGJhY2stdXJsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5jcmVhdGVDYWxsYmFja1VybCA9IGNyZWF0ZUNhbGxiYWNrVXJsO1xuYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2FsbGJhY2tVcmwoe1xuICBvcHRpb25zLFxuICBwYXJhbVZhbHVlLFxuICBjb29raWVWYWx1ZVxufSkge1xuICBjb25zdCB7XG4gICAgdXJsLFxuICAgIGNhbGxiYWNrc1xuICB9ID0gb3B0aW9ucztcbiAgbGV0IGNhbGxiYWNrVXJsID0gdXJsLm9yaWdpbjtcbiAgaWYgKHBhcmFtVmFsdWUpIHtcbiAgICBjYWxsYmFja1VybCA9IGF3YWl0IGNhbGxiYWNrcy5yZWRpcmVjdCh7XG4gICAgICB1cmw6IHBhcmFtVmFsdWUsXG4gICAgICBiYXNlVXJsOiB1cmwub3JpZ2luXG4gICAgfSk7XG4gIH0gZWxzZSBpZiAoY29va2llVmFsdWUpIHtcbiAgICBjYWxsYmFja1VybCA9IGF3YWl0IGNhbGxiYWNrcy5yZWRpcmVjdCh7XG4gICAgICB1cmw6IGNvb2tpZVZhbHVlLFxuICAgICAgYmFzZVVybDogdXJsLm9yaWdpblxuICAgIH0pO1xuICB9XG4gIHJldHVybiB7XG4gICAgY2FsbGJhY2tVcmwsXG4gICAgY2FsbGJhY2tVcmxDb29raWU6IGNhbGxiYWNrVXJsICE9PSBjb29raWVWYWx1ZSA/IGNhbGxiYWNrVXJsIDogdW5kZWZpbmVkXG4gIH07XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/callback-url.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/cookie.js":
+/*!***************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/cookie.js ***!
+ \***************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.SessionStore = void 0;\nexports.defaultCookies = defaultCookies;\nfunction _classPrivateMethodInitSpec(e, a) { _checkPrivateRedeclaration(e, a), a.add(e); }\nfunction _classPrivateFieldInitSpec(e, t, a) { _checkPrivateRedeclaration(e, t), t.set(e, a); }\nfunction _checkPrivateRedeclaration(e, t) { if (t.has(e)) throw new TypeError(\"Cannot initialize the same private elements twice on an object\"); }\nfunction _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }\nfunction _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }\nfunction _assertClassBrand(e, t, n) { if (\"function\" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError(\"Private element is not present on this object\"); }\nconst ALLOWED_COOKIE_SIZE = 4096;\nconst ESTIMATED_EMPTY_COOKIE_SIZE = 163;\nconst CHUNK_SIZE = ALLOWED_COOKIE_SIZE - ESTIMATED_EMPTY_COOKIE_SIZE;\nfunction defaultCookies(useSecureCookies) {\n const cookiePrefix = useSecureCookies ? \"__Secure-\" : \"\";\n return {\n sessionToken: {\n name: `${cookiePrefix}next-auth.session-token`,\n options: {\n httpOnly: true,\n sameSite: \"lax\",\n path: \"/\",\n secure: useSecureCookies\n }\n },\n callbackUrl: {\n name: `${cookiePrefix}next-auth.callback-url`,\n options: {\n httpOnly: true,\n sameSite: \"lax\",\n path: \"/\",\n secure: useSecureCookies\n }\n },\n csrfToken: {\n name: `${useSecureCookies ? \"__Host-\" : \"\"}next-auth.csrf-token`,\n options: {\n httpOnly: true,\n sameSite: \"lax\",\n path: \"/\",\n secure: useSecureCookies\n }\n },\n pkceCodeVerifier: {\n name: `${cookiePrefix}next-auth.pkce.code_verifier`,\n options: {\n httpOnly: true,\n sameSite: \"lax\",\n path: \"/\",\n secure: useSecureCookies,\n maxAge: 60 * 15\n }\n },\n state: {\n name: `${cookiePrefix}next-auth.state`,\n options: {\n httpOnly: true,\n sameSite: \"lax\",\n path: \"/\",\n secure: useSecureCookies,\n maxAge: 60 * 15\n }\n },\n nonce: {\n name: `${cookiePrefix}next-auth.nonce`,\n options: {\n httpOnly: true,\n sameSite: \"lax\",\n path: \"/\",\n secure: useSecureCookies\n }\n }\n };\n}\nvar _chunks = new WeakMap();\nvar _option = new WeakMap();\nvar _logger = new WeakMap();\nvar _SessionStore_brand = new WeakSet();\nclass SessionStore {\n constructor(option, req, logger) {\n _classPrivateMethodInitSpec(this, _SessionStore_brand);\n _classPrivateFieldInitSpec(this, _chunks, {});\n _classPrivateFieldInitSpec(this, _option, void 0);\n _classPrivateFieldInitSpec(this, _logger, void 0);\n _classPrivateFieldSet(_logger, this, logger);\n _classPrivateFieldSet(_option, this, option);\n const {\n cookies: _cookies\n } = req;\n const {\n name: cookieName\n } = option;\n if (typeof (_cookies === null || _cookies === void 0 ? void 0 : _cookies.getAll) === \"function\") {\n for (const {\n name,\n value\n } of _cookies.getAll()) {\n if (name.startsWith(cookieName)) {\n _classPrivateFieldGet(_chunks, this)[name] = value;\n }\n }\n } else if (_cookies instanceof Map) {\n for (const name of _cookies.keys()) {\n if (name.startsWith(cookieName)) _classPrivateFieldGet(_chunks, this)[name] = _cookies.get(name);\n }\n } else {\n for (const name in _cookies) {\n if (name.startsWith(cookieName)) _classPrivateFieldGet(_chunks, this)[name] = _cookies[name];\n }\n }\n }\n get value() {\n const sortedKeys = Object.keys(_classPrivateFieldGet(_chunks, this)).sort((a, b) => {\n var _a$split$pop, _b$split$pop;\n const aSuffix = parseInt((_a$split$pop = a.split(\".\").pop()) !== null && _a$split$pop !== void 0 ? _a$split$pop : \"0\");\n const bSuffix = parseInt((_b$split$pop = b.split(\".\").pop()) !== null && _b$split$pop !== void 0 ? _b$split$pop : \"0\");\n return aSuffix - bSuffix;\n });\n return sortedKeys.map(key => _classPrivateFieldGet(_chunks, this)[key]).join(\"\");\n }\n chunk(value, options) {\n const cookies = _assertClassBrand(_SessionStore_brand, this, _clean).call(this);\n const chunked = _assertClassBrand(_SessionStore_brand, this, _chunk).call(this, {\n name: _classPrivateFieldGet(_option, this).name,\n value,\n options: {\n ..._classPrivateFieldGet(_option, this).options,\n ...options\n }\n });\n for (const chunk of chunked) {\n cookies[chunk.name] = chunk;\n }\n return Object.values(cookies);\n }\n clean() {\n return Object.values(_assertClassBrand(_SessionStore_brand, this, _clean).call(this));\n }\n}\nexports.SessionStore = SessionStore;\nfunction _chunk(cookie) {\n const chunkCount = Math.ceil(cookie.value.length / CHUNK_SIZE);\n if (chunkCount === 1) {\n _classPrivateFieldGet(_chunks, this)[cookie.name] = cookie.value;\n return [cookie];\n }\n const cookies = [];\n for (let i = 0; i < chunkCount; i++) {\n const name = `${cookie.name}.${i}`;\n const value = cookie.value.substr(i * CHUNK_SIZE, CHUNK_SIZE);\n cookies.push({\n ...cookie,\n name,\n value\n });\n _classPrivateFieldGet(_chunks, this)[name] = value;\n }\n _classPrivateFieldGet(_logger, this).debug(\"CHUNKING_SESSION_COOKIE\", {\n message: `Session cookie exceeds allowed ${ALLOWED_COOKIE_SIZE} bytes.`,\n emptyCookieSize: ESTIMATED_EMPTY_COOKIE_SIZE,\n valueSize: cookie.value.length,\n chunks: cookies.map(c => c.value.length + ESTIMATED_EMPTY_COOKIE_SIZE)\n });\n return cookies;\n}\nfunction _clean() {\n const cleanedChunks = {};\n for (const name in _classPrivateFieldGet(_chunks, this)) {\n var _classPrivateFieldGet2;\n (_classPrivateFieldGet2 = _classPrivateFieldGet(_chunks, this)) === null || _classPrivateFieldGet2 === void 0 || delete _classPrivateFieldGet2[name];\n cleanedChunks[name] = {\n name,\n value: \"\",\n options: {\n ..._classPrivateFieldGet(_option, this).options,\n maxAge: 0\n }\n };\n }\n return cleanedChunks;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL2Nvb2tpZS5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixvQkFBb0I7QUFDcEIsc0JBQXNCO0FBQ3RCLDZDQUE2QztBQUM3QywrQ0FBK0M7QUFDL0MsNENBQTRDO0FBQzVDLHVDQUF1QztBQUN2QywwQ0FBMEM7QUFDMUMsc0NBQXNDLHNGQUFzRjtBQUM1SDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsYUFBYTtBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxlQUFlLGFBQWE7QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsZUFBZSxrQ0FBa0M7QUFDakQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsZUFBZSxhQUFhO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsZUFBZSxhQUFhO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsZUFBZSxhQUFhO0FBQzVCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0RBQWdEO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLGdCQUFnQjtBQUNsQyxvQkFBb0IsWUFBWSxHQUFHLEVBQUU7QUFDckM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSwrQ0FBK0MscUJBQXFCO0FBQ3BFO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9saWIvY29va2llLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5TZXNzaW9uU3RvcmUgPSB2b2lkIDA7XG5leHBvcnRzLmRlZmF1bHRDb29raWVzID0gZGVmYXVsdENvb2tpZXM7XG5mdW5jdGlvbiBfY2xhc3NQcml2YXRlTWV0aG9kSW5pdFNwZWMoZSwgYSkgeyBfY2hlY2tQcml2YXRlUmVkZWNsYXJhdGlvbihlLCBhKSwgYS5hZGQoZSk7IH1cbmZ1bmN0aW9uIF9jbGFzc1ByaXZhdGVGaWVsZEluaXRTcGVjKGUsIHQsIGEpIHsgX2NoZWNrUHJpdmF0ZVJlZGVjbGFyYXRpb24oZSwgdCksIHQuc2V0KGUsIGEpOyB9XG5mdW5jdGlvbiBfY2hlY2tQcml2YXRlUmVkZWNsYXJhdGlvbihlLCB0KSB7IGlmICh0LmhhcyhlKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIkNhbm5vdCBpbml0aWFsaXplIHRoZSBzYW1lIHByaXZhdGUgZWxlbWVudHMgdHdpY2Ugb24gYW4gb2JqZWN0XCIpOyB9XG5mdW5jdGlvbiBfY2xhc3NQcml2YXRlRmllbGRHZXQocywgYSkgeyByZXR1cm4gcy5nZXQoX2Fzc2VydENsYXNzQnJhbmQocywgYSkpOyB9XG5mdW5jdGlvbiBfY2xhc3NQcml2YXRlRmllbGRTZXQocywgYSwgcikgeyByZXR1cm4gcy5zZXQoX2Fzc2VydENsYXNzQnJhbmQocywgYSksIHIpLCByOyB9XG5mdW5jdGlvbiBfYXNzZXJ0Q2xhc3NCcmFuZChlLCB0LCBuKSB7IGlmIChcImZ1bmN0aW9uXCIgPT0gdHlwZW9mIGUgPyBlID09PSB0IDogZS5oYXModCkpIHJldHVybiBhcmd1bWVudHMubGVuZ3RoIDwgMyA/IHQgOiBuOyB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUHJpdmF0ZSBlbGVtZW50IGlzIG5vdCBwcmVzZW50IG9uIHRoaXMgb2JqZWN0XCIpOyB9XG5jb25zdCBBTExPV0VEX0NPT0tJRV9TSVpFID0gNDA5NjtcbmNvbnN0IEVTVElNQVRFRF9FTVBUWV9DT09LSUVfU0laRSA9IDE2MztcbmNvbnN0IENIVU5LX1NJWkUgPSBBTExPV0VEX0NPT0tJRV9TSVpFIC0gRVNUSU1BVEVEX0VNUFRZX0NPT0tJRV9TSVpFO1xuZnVuY3Rpb24gZGVmYXVsdENvb2tpZXModXNlU2VjdXJlQ29va2llcykge1xuICBjb25zdCBjb29raWVQcmVmaXggPSB1c2VTZWN1cmVDb29raWVzID8gXCJfX1NlY3VyZS1cIiA6IFwiXCI7XG4gIHJldHVybiB7XG4gICAgc2Vzc2lvblRva2VuOiB7XG4gICAgICBuYW1lOiBgJHtjb29raWVQcmVmaXh9bmV4dC1hdXRoLnNlc3Npb24tdG9rZW5gLFxuICAgICAgb3B0aW9uczoge1xuICAgICAgICBodHRwT25seTogdHJ1ZSxcbiAgICAgICAgc2FtZVNpdGU6IFwibGF4XCIsXG4gICAgICAgIHBhdGg6IFwiL1wiLFxuICAgICAgICBzZWN1cmU6IHVzZVNlY3VyZUNvb2tpZXNcbiAgICAgIH1cbiAgICB9LFxuICAgIGNhbGxiYWNrVXJsOiB7XG4gICAgICBuYW1lOiBgJHtjb29raWVQcmVmaXh9bmV4dC1hdXRoLmNhbGxiYWNrLXVybGAsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGh0dHBPbmx5OiB0cnVlLFxuICAgICAgICBzYW1lU2l0ZTogXCJsYXhcIixcbiAgICAgICAgcGF0aDogXCIvXCIsXG4gICAgICAgIHNlY3VyZTogdXNlU2VjdXJlQ29va2llc1xuICAgICAgfVxuICAgIH0sXG4gICAgY3NyZlRva2VuOiB7XG4gICAgICBuYW1lOiBgJHt1c2VTZWN1cmVDb29raWVzID8gXCJfX0hvc3QtXCIgOiBcIlwifW5leHQtYXV0aC5jc3JmLXRva2VuYCxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgaHR0cE9ubHk6IHRydWUsXG4gICAgICAgIHNhbWVTaXRlOiBcImxheFwiLFxuICAgICAgICBwYXRoOiBcIi9cIixcbiAgICAgICAgc2VjdXJlOiB1c2VTZWN1cmVDb29raWVzXG4gICAgICB9XG4gICAgfSxcbiAgICBwa2NlQ29kZVZlcmlmaWVyOiB7XG4gICAgICBuYW1lOiBgJHtjb29raWVQcmVmaXh9bmV4dC1hdXRoLnBrY2UuY29kZV92ZXJpZmllcmAsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGh0dHBPbmx5OiB0cnVlLFxuICAgICAgICBzYW1lU2l0ZTogXCJsYXhcIixcbiAgICAgICAgcGF0aDogXCIvXCIsXG4gICAgICAgIHNlY3VyZTogdXNlU2VjdXJlQ29va2llcyxcbiAgICAgICAgbWF4QWdlOiA2MCAqIDE1XG4gICAgICB9XG4gICAgfSxcbiAgICBzdGF0ZToge1xuICAgICAgbmFtZTogYCR7Y29va2llUHJlZml4fW5leHQtYXV0aC5zdGF0ZWAsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGh0dHBPbmx5OiB0cnVlLFxuICAgICAgICBzYW1lU2l0ZTogXCJsYXhcIixcbiAgICAgICAgcGF0aDogXCIvXCIsXG4gICAgICAgIHNlY3VyZTogdXNlU2VjdXJlQ29va2llcyxcbiAgICAgICAgbWF4QWdlOiA2MCAqIDE1XG4gICAgICB9XG4gICAgfSxcbiAgICBub25jZToge1xuICAgICAgbmFtZTogYCR7Y29va2llUHJlZml4fW5leHQtYXV0aC5ub25jZWAsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIGh0dHBPbmx5OiB0cnVlLFxuICAgICAgICBzYW1lU2l0ZTogXCJsYXhcIixcbiAgICAgICAgcGF0aDogXCIvXCIsXG4gICAgICAgIHNlY3VyZTogdXNlU2VjdXJlQ29va2llc1xuICAgICAgfVxuICAgIH1cbiAgfTtcbn1cbnZhciBfY2h1bmtzID0gbmV3IFdlYWtNYXAoKTtcbnZhciBfb3B0aW9uID0gbmV3IFdlYWtNYXAoKTtcbnZhciBfbG9nZ2VyID0gbmV3IFdlYWtNYXAoKTtcbnZhciBfU2Vzc2lvblN0b3JlX2JyYW5kID0gbmV3IFdlYWtTZXQoKTtcbmNsYXNzIFNlc3Npb25TdG9yZSB7XG4gIGNvbnN0cnVjdG9yKG9wdGlvbiwgcmVxLCBsb2dnZXIpIHtcbiAgICBfY2xhc3NQcml2YXRlTWV0aG9kSW5pdFNwZWModGhpcywgX1Nlc3Npb25TdG9yZV9icmFuZCk7XG4gICAgX2NsYXNzUHJpdmF0ZUZpZWxkSW5pdFNwZWModGhpcywgX2NodW5rcywge30pO1xuICAgIF9jbGFzc1ByaXZhdGVGaWVsZEluaXRTcGVjKHRoaXMsIF9vcHRpb24sIHZvaWQgMCk7XG4gICAgX2NsYXNzUHJpdmF0ZUZpZWxkSW5pdFNwZWModGhpcywgX2xvZ2dlciwgdm9pZCAwKTtcbiAgICBfY2xhc3NQcml2YXRlRmllbGRTZXQoX2xvZ2dlciwgdGhpcywgbG9nZ2VyKTtcbiAgICBfY2xhc3NQcml2YXRlRmllbGRTZXQoX29wdGlvbiwgdGhpcywgb3B0aW9uKTtcbiAgICBjb25zdCB7XG4gICAgICBjb29raWVzOiBfY29va2llc1xuICAgIH0gPSByZXE7XG4gICAgY29uc3Qge1xuICAgICAgbmFtZTogY29va2llTmFtZVxuICAgIH0gPSBvcHRpb247XG4gICAgaWYgKHR5cGVvZiAoX2Nvb2tpZXMgPT09IG51bGwgfHwgX2Nvb2tpZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9jb29raWVzLmdldEFsbCkgPT09IFwiZnVuY3Rpb25cIikge1xuICAgICAgZm9yIChjb25zdCB7XG4gICAgICAgIG5hbWUsXG4gICAgICAgIHZhbHVlXG4gICAgICB9IG9mIF9jb29raWVzLmdldEFsbCgpKSB7XG4gICAgICAgIGlmIChuYW1lLnN0YXJ0c1dpdGgoY29va2llTmFtZSkpIHtcbiAgICAgICAgICBfY2xhc3NQcml2YXRlRmllbGRHZXQoX2NodW5rcywgdGhpcylbbmFtZV0gPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSBpZiAoX2Nvb2tpZXMgaW5zdGFuY2VvZiBNYXApIHtcbiAgICAgIGZvciAoY29uc3QgbmFtZSBvZiBfY29va2llcy5rZXlzKCkpIHtcbiAgICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aChjb29raWVOYW1lKSkgX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9jaHVua3MsIHRoaXMpW25hbWVdID0gX2Nvb2tpZXMuZ2V0KG5hbWUpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBmb3IgKGNvbnN0IG5hbWUgaW4gX2Nvb2tpZXMpIHtcbiAgICAgICAgaWYgKG5hbWUuc3RhcnRzV2l0aChjb29raWVOYW1lKSkgX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9jaHVua3MsIHRoaXMpW25hbWVdID0gX2Nvb2tpZXNbbmFtZV07XG4gICAgICB9XG4gICAgfVxuICB9XG4gIGdldCB2YWx1ZSgpIHtcbiAgICBjb25zdCBzb3J0ZWRLZXlzID0gT2JqZWN0LmtleXMoX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9jaHVua3MsIHRoaXMpKS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICB2YXIgX2Ekc3BsaXQkcG9wLCBfYiRzcGxpdCRwb3A7XG4gICAgICBjb25zdCBhU3VmZml4ID0gcGFyc2VJbnQoKF9hJHNwbGl0JHBvcCA9IGEuc3BsaXQoXCIuXCIpLnBvcCgpKSAhPT0gbnVsbCAmJiBfYSRzcGxpdCRwb3AgIT09IHZvaWQgMCA/IF9hJHNwbGl0JHBvcCA6IFwiMFwiKTtcbiAgICAgIGNvbnN0IGJTdWZmaXggPSBwYXJzZUludCgoX2Ikc3BsaXQkcG9wID0gYi5zcGxpdChcIi5cIikucG9wKCkpICE9PSBudWxsICYmIF9iJHNwbGl0JHBvcCAhPT0gdm9pZCAwID8gX2Ikc3BsaXQkcG9wIDogXCIwXCIpO1xuICAgICAgcmV0dXJuIGFTdWZmaXggLSBiU3VmZml4O1xuICAgIH0pO1xuICAgIHJldHVybiBzb3J0ZWRLZXlzLm1hcChrZXkgPT4gX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9jaHVua3MsIHRoaXMpW2tleV0pLmpvaW4oXCJcIik7XG4gIH1cbiAgY2h1bmsodmFsdWUsIG9wdGlvbnMpIHtcbiAgICBjb25zdCBjb29raWVzID0gX2Fzc2VydENsYXNzQnJhbmQoX1Nlc3Npb25TdG9yZV9icmFuZCwgdGhpcywgX2NsZWFuKS5jYWxsKHRoaXMpO1xuICAgIGNvbnN0IGNodW5rZWQgPSBfYXNzZXJ0Q2xhc3NCcmFuZChfU2Vzc2lvblN0b3JlX2JyYW5kLCB0aGlzLCBfY2h1bmspLmNhbGwodGhpcywge1xuICAgICAgbmFtZTogX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9vcHRpb24sIHRoaXMpLm5hbWUsXG4gICAgICB2YWx1ZSxcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgLi4uX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9vcHRpb24sIHRoaXMpLm9wdGlvbnMsXG4gICAgICAgIC4uLm9wdGlvbnNcbiAgICAgIH1cbiAgICB9KTtcbiAgICBmb3IgKGNvbnN0IGNodW5rIG9mIGNodW5rZWQpIHtcbiAgICAgIGNvb2tpZXNbY2h1bmsubmFtZV0gPSBjaHVuaztcbiAgICB9XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoY29va2llcyk7XG4gIH1cbiAgY2xlYW4oKSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXMoX2Fzc2VydENsYXNzQnJhbmQoX1Nlc3Npb25TdG9yZV9icmFuZCwgdGhpcywgX2NsZWFuKS5jYWxsKHRoaXMpKTtcbiAgfVxufVxuZXhwb3J0cy5TZXNzaW9uU3RvcmUgPSBTZXNzaW9uU3RvcmU7XG5mdW5jdGlvbiBfY2h1bmsoY29va2llKSB7XG4gIGNvbnN0IGNodW5rQ291bnQgPSBNYXRoLmNlaWwoY29va2llLnZhbHVlLmxlbmd0aCAvIENIVU5LX1NJWkUpO1xuICBpZiAoY2h1bmtDb3VudCA9PT0gMSkge1xuICAgIF9jbGFzc1ByaXZhdGVGaWVsZEdldChfY2h1bmtzLCB0aGlzKVtjb29raWUubmFtZV0gPSBjb29raWUudmFsdWU7XG4gICAgcmV0dXJuIFtjb29raWVdO1xuICB9XG4gIGNvbnN0IGNvb2tpZXMgPSBbXTtcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCBjaHVua0NvdW50OyBpKyspIHtcbiAgICBjb25zdCBuYW1lID0gYCR7Y29va2llLm5hbWV9LiR7aX1gO1xuICAgIGNvbnN0IHZhbHVlID0gY29va2llLnZhbHVlLnN1YnN0cihpICogQ0hVTktfU0laRSwgQ0hVTktfU0laRSk7XG4gICAgY29va2llcy5wdXNoKHtcbiAgICAgIC4uLmNvb2tpZSxcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZVxuICAgIH0pO1xuICAgIF9jbGFzc1ByaXZhdGVGaWVsZEdldChfY2h1bmtzLCB0aGlzKVtuYW1lXSA9IHZhbHVlO1xuICB9XG4gIF9jbGFzc1ByaXZhdGVGaWVsZEdldChfbG9nZ2VyLCB0aGlzKS5kZWJ1ZyhcIkNIVU5LSU5HX1NFU1NJT05fQ09PS0lFXCIsIHtcbiAgICBtZXNzYWdlOiBgU2Vzc2lvbiBjb29raWUgZXhjZWVkcyBhbGxvd2VkICR7QUxMT1dFRF9DT09LSUVfU0laRX0gYnl0ZXMuYCxcbiAgICBlbXB0eUNvb2tpZVNpemU6IEVTVElNQVRFRF9FTVBUWV9DT09LSUVfU0laRSxcbiAgICB2YWx1ZVNpemU6IGNvb2tpZS52YWx1ZS5sZW5ndGgsXG4gICAgY2h1bmtzOiBjb29raWVzLm1hcChjID0+IGMudmFsdWUubGVuZ3RoICsgRVNUSU1BVEVEX0VNUFRZX0NPT0tJRV9TSVpFKVxuICB9KTtcbiAgcmV0dXJuIGNvb2tpZXM7XG59XG5mdW5jdGlvbiBfY2xlYW4oKSB7XG4gIGNvbnN0IGNsZWFuZWRDaHVua3MgPSB7fTtcbiAgZm9yIChjb25zdCBuYW1lIGluIF9jbGFzc1ByaXZhdGVGaWVsZEdldChfY2h1bmtzLCB0aGlzKSkge1xuICAgIHZhciBfY2xhc3NQcml2YXRlRmllbGRHZXQyO1xuICAgIChfY2xhc3NQcml2YXRlRmllbGRHZXQyID0gX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9jaHVua3MsIHRoaXMpKSA9PT0gbnVsbCB8fCBfY2xhc3NQcml2YXRlRmllbGRHZXQyID09PSB2b2lkIDAgfHwgZGVsZXRlIF9jbGFzc1ByaXZhdGVGaWVsZEdldDJbbmFtZV07XG4gICAgY2xlYW5lZENodW5rc1tuYW1lXSA9IHtcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZTogXCJcIixcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgLi4uX2NsYXNzUHJpdmF0ZUZpZWxkR2V0KF9vcHRpb24sIHRoaXMpLm9wdGlvbnMsXG4gICAgICAgIG1heEFnZTogMFxuICAgICAgfVxuICAgIH07XG4gIH1cbiAgcmV0dXJuIGNsZWFuZWRDaHVua3M7XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/cookie.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/csrf-token.js":
+/*!*******************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/csrf-token.js ***!
+ \*******************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createCSRFToken = createCSRFToken;\nvar _crypto = __webpack_require__(/*! crypto */ \"crypto\");\nfunction createCSRFToken({\n options,\n cookieValue,\n isPost,\n bodyValue\n}) {\n if (cookieValue) {\n const [csrfToken, csrfTokenHash] = cookieValue.split(\"|\");\n const expectedCsrfTokenHash = (0, _crypto.createHash)(\"sha256\").update(`${csrfToken}${options.secret}`).digest(\"hex\");\n if (csrfTokenHash === expectedCsrfTokenHash) {\n const csrfTokenVerified = isPost && csrfToken === bodyValue;\n return {\n csrfTokenVerified,\n csrfToken\n };\n }\n }\n const csrfToken = (0, _crypto.randomBytes)(32).toString(\"hex\");\n const csrfTokenHash = (0, _crypto.createHash)(\"sha256\").update(`${csrfToken}${options.secret}`).digest(\"hex\");\n const cookie = `${csrfToken}|${csrfTokenHash}`;\n return {\n cookie,\n csrfToken\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL2NzcmYtdG9rZW4uanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsdUJBQXVCO0FBQ3ZCLGNBQWMsbUJBQU8sQ0FBQyxzQkFBUTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQSw4RUFBOEUsVUFBVSxFQUFFLGVBQWU7QUFDekc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0VBQW9FLFVBQVUsRUFBRSxlQUFlO0FBQy9GLG9CQUFvQixVQUFVLEdBQUcsY0FBYztBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL2NzcmYtdG9rZW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNyZWF0ZUNTUkZUb2tlbiA9IGNyZWF0ZUNTUkZUb2tlbjtcbnZhciBfY3J5cHRvID0gcmVxdWlyZShcImNyeXB0b1wiKTtcbmZ1bmN0aW9uIGNyZWF0ZUNTUkZUb2tlbih7XG4gIG9wdGlvbnMsXG4gIGNvb2tpZVZhbHVlLFxuICBpc1Bvc3QsXG4gIGJvZHlWYWx1ZVxufSkge1xuICBpZiAoY29va2llVmFsdWUpIHtcbiAgICBjb25zdCBbY3NyZlRva2VuLCBjc3JmVG9rZW5IYXNoXSA9IGNvb2tpZVZhbHVlLnNwbGl0KFwifFwiKTtcbiAgICBjb25zdCBleHBlY3RlZENzcmZUb2tlbkhhc2ggPSAoMCwgX2NyeXB0by5jcmVhdGVIYXNoKShcInNoYTI1NlwiKS51cGRhdGUoYCR7Y3NyZlRva2VufSR7b3B0aW9ucy5zZWNyZXR9YCkuZGlnZXN0KFwiaGV4XCIpO1xuICAgIGlmIChjc3JmVG9rZW5IYXNoID09PSBleHBlY3RlZENzcmZUb2tlbkhhc2gpIHtcbiAgICAgIGNvbnN0IGNzcmZUb2tlblZlcmlmaWVkID0gaXNQb3N0ICYmIGNzcmZUb2tlbiA9PT0gYm9keVZhbHVlO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgY3NyZlRva2VuVmVyaWZpZWQsXG4gICAgICAgIGNzcmZUb2tlblxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgY29uc3QgY3NyZlRva2VuID0gKDAsIF9jcnlwdG8ucmFuZG9tQnl0ZXMpKDMyKS50b1N0cmluZyhcImhleFwiKTtcbiAgY29uc3QgY3NyZlRva2VuSGFzaCA9ICgwLCBfY3J5cHRvLmNyZWF0ZUhhc2gpKFwic2hhMjU2XCIpLnVwZGF0ZShgJHtjc3JmVG9rZW59JHtvcHRpb25zLnNlY3JldH1gKS5kaWdlc3QoXCJoZXhcIik7XG4gIGNvbnN0IGNvb2tpZSA9IGAke2NzcmZUb2tlbn18JHtjc3JmVG9rZW5IYXNofWA7XG4gIHJldHVybiB7XG4gICAgY29va2llLFxuICAgIGNzcmZUb2tlblxuICB9O1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/csrf-token.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/default-callbacks.js":
+/*!**************************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/default-callbacks.js ***!
+ \**************************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.defaultCallbacks = void 0;\nconst defaultCallbacks = exports.defaultCallbacks = {\n signIn() {\n return true;\n },\n redirect({\n url,\n baseUrl\n }) {\n if (url.startsWith(\"/\")) return `${baseUrl}${url}`;else if (new URL(url).origin === baseUrl) return url;\n return baseUrl;\n },\n session({\n session\n }) {\n return session;\n },\n jwt({\n token\n }) {\n return token;\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL2RlZmF1bHQtY2FsbGJhY2tzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHdCQUF3QjtBQUN4Qix5QkFBeUIsd0JBQXdCO0FBQ2pEO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILHVDQUF1QyxRQUFRLEVBQUUsSUFBSSxFQUFFO0FBQ3ZEO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9saWIvZGVmYXVsdC1jYWxsYmFja3MuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHRDYWxsYmFja3MgPSB2b2lkIDA7XG5jb25zdCBkZWZhdWx0Q2FsbGJhY2tzID0gZXhwb3J0cy5kZWZhdWx0Q2FsbGJhY2tzID0ge1xuICBzaWduSW4oKSB7XG4gICAgcmV0dXJuIHRydWU7XG4gIH0sXG4gIHJlZGlyZWN0KHtcbiAgICB1cmwsXG4gICAgYmFzZVVybFxuICB9KSB7XG4gICAgaWYgKHVybC5zdGFydHNXaXRoKFwiL1wiKSkgcmV0dXJuIGAke2Jhc2VVcmx9JHt1cmx9YDtlbHNlIGlmIChuZXcgVVJMKHVybCkub3JpZ2luID09PSBiYXNlVXJsKSByZXR1cm4gdXJsO1xuICAgIHJldHVybiBiYXNlVXJsO1xuICB9LFxuICBzZXNzaW9uKHtcbiAgICBzZXNzaW9uXG4gIH0pIHtcbiAgICByZXR1cm4gc2Vzc2lvbjtcbiAgfSxcbiAgand0KHtcbiAgICB0b2tlblxuICB9KSB7XG4gICAgcmV0dXJuIHRva2VuO1xuICB9XG59OyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/default-callbacks.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/email/getUserFromEmail.js":
+/*!*******************************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/email/getUserFromEmail.js ***!
+ \*******************************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = getAdapterUserFromEmail;\nasync function getAdapterUserFromEmail({\n email,\n adapter\n}) {\n const {\n getUserByEmail\n } = adapter;\n const adapterUser = email ? await getUserByEmail(email) : null;\n if (adapterUser) return adapterUser;\n return {\n id: email,\n email,\n emailVerified: null\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL2VtYWlsL2dldFVzZXJGcm9tRW1haWwuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL2VtYWlsL2dldFVzZXJGcm9tRW1haWwuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBnZXRBZGFwdGVyVXNlckZyb21FbWFpbDtcbmFzeW5jIGZ1bmN0aW9uIGdldEFkYXB0ZXJVc2VyRnJvbUVtYWlsKHtcbiAgZW1haWwsXG4gIGFkYXB0ZXJcbn0pIHtcbiAgY29uc3Qge1xuICAgIGdldFVzZXJCeUVtYWlsXG4gIH0gPSBhZGFwdGVyO1xuICBjb25zdCBhZGFwdGVyVXNlciA9IGVtYWlsID8gYXdhaXQgZ2V0VXNlckJ5RW1haWwoZW1haWwpIDogbnVsbDtcbiAgaWYgKGFkYXB0ZXJVc2VyKSByZXR1cm4gYWRhcHRlclVzZXI7XG4gIHJldHVybiB7XG4gICAgaWQ6IGVtYWlsLFxuICAgIGVtYWlsLFxuICAgIGVtYWlsVmVyaWZpZWQ6IG51bGxcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/email/getUserFromEmail.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/email/signin.js":
+/*!*********************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/email/signin.js ***!
+ \*********************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = email;\nvar _crypto = __webpack_require__(/*! crypto */ \"crypto\");\nvar _utils = __webpack_require__(/*! ../utils */ \"(rsc)/./node_modules/next-auth/core/lib/utils.js\");\nasync function email(identifier, options) {\n var _await$provider$gener, _provider$generateVer, _provider$maxAge, _adapter$createVerifi;\n const {\n url,\n adapter,\n provider,\n callbackUrl,\n theme\n } = options;\n const token = (_await$provider$gener = await ((_provider$generateVer = provider.generateVerificationToken) === null || _provider$generateVer === void 0 ? void 0 : _provider$generateVer.call(provider))) !== null && _await$provider$gener !== void 0 ? _await$provider$gener : (0, _crypto.randomBytes)(32).toString(\"hex\");\n const ONE_DAY_IN_SECONDS = 86400;\n const expires = new Date(Date.now() + ((_provider$maxAge = provider.maxAge) !== null && _provider$maxAge !== void 0 ? _provider$maxAge : ONE_DAY_IN_SECONDS) * 1000);\n const params = new URLSearchParams({\n callbackUrl,\n token,\n email: identifier\n });\n const _url = `${url}/callback/${provider.id}?${params}`;\n await Promise.all([provider.sendVerificationRequest({\n identifier,\n token,\n expires,\n url: _url,\n provider,\n theme\n }), (_adapter$createVerifi = adapter.createVerificationToken) === null || _adapter$createVerifi === void 0 ? void 0 : _adapter$createVerifi.call(adapter, {\n identifier,\n token: (0, _utils.hashToken)(token, options),\n expires\n })]);\n return `${url}/verify-request?${new URLSearchParams({\n provider: provider.id,\n type: provider.type\n })}`;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL2VtYWlsL3NpZ25pbi5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmLGNBQWMsbUJBQU8sQ0FBQyxzQkFBUTtBQUM5QixhQUFhLG1CQUFPLENBQUMsa0VBQVU7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxrQkFBa0IsSUFBSSxZQUFZLFlBQVksR0FBRyxPQUFPO0FBQ3hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxZQUFZLElBQUksa0JBQWtCO0FBQ2xDO0FBQ0E7QUFDQSxHQUFHLEVBQUU7QUFDTCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9jb3JlL2xpYi9lbWFpbC9zaWduaW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBlbWFpbDtcbnZhciBfY3J5cHRvID0gcmVxdWlyZShcImNyeXB0b1wiKTtcbnZhciBfdXRpbHMgPSByZXF1aXJlKFwiLi4vdXRpbHNcIik7XG5hc3luYyBmdW5jdGlvbiBlbWFpbChpZGVudGlmaWVyLCBvcHRpb25zKSB7XG4gIHZhciBfYXdhaXQkcHJvdmlkZXIkZ2VuZXIsIF9wcm92aWRlciRnZW5lcmF0ZVZlciwgX3Byb3ZpZGVyJG1heEFnZSwgX2FkYXB0ZXIkY3JlYXRlVmVyaWZpO1xuICBjb25zdCB7XG4gICAgdXJsLFxuICAgIGFkYXB0ZXIsXG4gICAgcHJvdmlkZXIsXG4gICAgY2FsbGJhY2tVcmwsXG4gICAgdGhlbWVcbiAgfSA9IG9wdGlvbnM7XG4gIGNvbnN0IHRva2VuID0gKF9hd2FpdCRwcm92aWRlciRnZW5lciA9IGF3YWl0ICgoX3Byb3ZpZGVyJGdlbmVyYXRlVmVyID0gcHJvdmlkZXIuZ2VuZXJhdGVWZXJpZmljYXRpb25Ub2tlbikgPT09IG51bGwgfHwgX3Byb3ZpZGVyJGdlbmVyYXRlVmVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvdmlkZXIkZ2VuZXJhdGVWZXIuY2FsbChwcm92aWRlcikpKSAhPT0gbnVsbCAmJiBfYXdhaXQkcHJvdmlkZXIkZ2VuZXIgIT09IHZvaWQgMCA/IF9hd2FpdCRwcm92aWRlciRnZW5lciA6ICgwLCBfY3J5cHRvLnJhbmRvbUJ5dGVzKSgzMikudG9TdHJpbmcoXCJoZXhcIik7XG4gIGNvbnN0IE9ORV9EQVlfSU5fU0VDT05EUyA9IDg2NDAwO1xuICBjb25zdCBleHBpcmVzID0gbmV3IERhdGUoRGF0ZS5ub3coKSArICgoX3Byb3ZpZGVyJG1heEFnZSA9IHByb3ZpZGVyLm1heEFnZSkgIT09IG51bGwgJiYgX3Byb3ZpZGVyJG1heEFnZSAhPT0gdm9pZCAwID8gX3Byb3ZpZGVyJG1heEFnZSA6IE9ORV9EQVlfSU5fU0VDT05EUykgKiAxMDAwKTtcbiAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgY2FsbGJhY2tVcmwsXG4gICAgdG9rZW4sXG4gICAgZW1haWw6IGlkZW50aWZpZXJcbiAgfSk7XG4gIGNvbnN0IF91cmwgPSBgJHt1cmx9L2NhbGxiYWNrLyR7cHJvdmlkZXIuaWR9PyR7cGFyYW1zfWA7XG4gIGF3YWl0IFByb21pc2UuYWxsKFtwcm92aWRlci5zZW5kVmVyaWZpY2F0aW9uUmVxdWVzdCh7XG4gICAgaWRlbnRpZmllcixcbiAgICB0b2tlbixcbiAgICBleHBpcmVzLFxuICAgIHVybDogX3VybCxcbiAgICBwcm92aWRlcixcbiAgICB0aGVtZVxuICB9KSwgKF9hZGFwdGVyJGNyZWF0ZVZlcmlmaSA9IGFkYXB0ZXIuY3JlYXRlVmVyaWZpY2F0aW9uVG9rZW4pID09PSBudWxsIHx8IF9hZGFwdGVyJGNyZWF0ZVZlcmlmaSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2FkYXB0ZXIkY3JlYXRlVmVyaWZpLmNhbGwoYWRhcHRlciwge1xuICAgIGlkZW50aWZpZXIsXG4gICAgdG9rZW46ICgwLCBfdXRpbHMuaGFzaFRva2VuKSh0b2tlbiwgb3B0aW9ucyksXG4gICAgZXhwaXJlc1xuICB9KV0pO1xuICByZXR1cm4gYCR7dXJsfS92ZXJpZnktcmVxdWVzdD8ke25ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgIHByb3ZpZGVyOiBwcm92aWRlci5pZCxcbiAgICB0eXBlOiBwcm92aWRlci50eXBlXG4gIH0pfWA7XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/email/signin.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/oauth/authorization-url.js":
+/*!********************************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/oauth/authorization-url.js ***!
+ \********************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = getAuthorizationUrl;\nvar _client = __webpack_require__(/*! ./client */ \"(rsc)/./node_modules/next-auth/core/lib/oauth/client.js\");\nvar _clientLegacy = __webpack_require__(/*! ./client-legacy */ \"(rsc)/./node_modules/next-auth/core/lib/oauth/client-legacy.js\");\nvar checks = _interopRequireWildcard(__webpack_require__(/*! ./checks */ \"(rsc)/./node_modules/next-auth/core/lib/oauth/checks.js\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nasync function getAuthorizationUrl({\n options,\n query\n}) {\n var _provider$version;\n const {\n logger,\n provider\n } = options;\n let params = {};\n if (typeof provider.authorization === \"string\") {\n const parsedUrl = new URL(provider.authorization);\n const parsedParams = Object.fromEntries(parsedUrl.searchParams);\n params = {\n ...params,\n ...parsedParams\n };\n } else {\n var _provider$authorizati;\n params = {\n ...params,\n ...((_provider$authorizati = provider.authorization) === null || _provider$authorizati === void 0 ? void 0 : _provider$authorizati.params)\n };\n }\n params = {\n ...params,\n ...query\n };\n if ((_provider$version = provider.version) !== null && _provider$version !== void 0 && _provider$version.startsWith(\"1.\")) {\n var _provider$authorizati2;\n const client = (0, _clientLegacy.oAuth1Client)(options);\n const tokens = await client.getOAuthRequestToken(params);\n const url = `${(_provider$authorizati2 = provider.authorization) === null || _provider$authorizati2 === void 0 ? void 0 : _provider$authorizati2.url}?${new URLSearchParams({\n oauth_token: tokens.oauth_token,\n oauth_token_secret: tokens.oauth_token_secret,\n ...tokens.params\n })}`;\n _clientLegacy.oAuth1TokenStore.set(tokens.oauth_token, tokens.oauth_token_secret);\n logger.debug(\"GET_AUTHORIZATION_URL\", {\n url,\n provider\n });\n return {\n redirect: url\n };\n }\n const client = await (0, _client.openidClient)(options);\n const authorizationParams = params;\n const cookies = [];\n await checks.state.create(options, cookies, authorizationParams);\n await checks.pkce.create(options, cookies, authorizationParams);\n await checks.nonce.create(options, cookies, authorizationParams);\n const url = client.authorizationUrl(authorizationParams);\n logger.debug(\"GET_AUTHORIZATION_URL\", {\n url,\n cookies,\n provider\n });\n return {\n redirect: url,\n cookies\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL29hdXRoL2F1dGhvcml6YXRpb24tdXJsLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2YsY0FBYyxtQkFBTyxDQUFDLHlFQUFVO0FBQ2hDLG9CQUFvQixtQkFBTyxDQUFDLHVGQUFpQjtBQUM3QyxxQ0FBcUMsbUJBQU8sQ0FBQyx5RUFBVTtBQUN2RCx1Q0FBdUMsK0NBQStDLDBDQUEwQyxrREFBa0QsbUJBQW1CO0FBQ3JNLHlDQUF5Qyx1Q0FBdUMsMkVBQTJFLGNBQWMscUNBQXFDLG9DQUFvQyxVQUFVLGlCQUFpQixnRUFBZ0UsMENBQTBDLDhCQUE4QiwwREFBMEQsd0VBQXdFO0FBQ3ZoQjtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsbUJBQW1CLHNJQUFzSSxHQUFHO0FBQzVKO0FBQ0E7QUFDQTtBQUNBLEtBQUssRUFBRTtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL29hdXRoL2F1dGhvcml6YXRpb24tdXJsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gZ2V0QXV0aG9yaXphdGlvblVybDtcbnZhciBfY2xpZW50ID0gcmVxdWlyZShcIi4vY2xpZW50XCIpO1xudmFyIF9jbGllbnRMZWdhY3kgPSByZXF1aXJlKFwiLi9jbGllbnQtbGVnYWN5XCIpO1xudmFyIGNoZWNrcyA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuL2NoZWNrc1wiKSk7XG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoZSkgeyBpZiAoXCJmdW5jdGlvblwiICE9IHR5cGVvZiBXZWFrTWFwKSByZXR1cm4gbnVsbDsgdmFyIHIgPSBuZXcgV2Vha01hcCgpLCB0ID0gbmV3IFdlYWtNYXAoKTsgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiAoZSkgeyByZXR1cm4gZSA/IHQgOiByOyB9KShlKTsgfVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQoZSwgcikgeyBpZiAoIXIgJiYgZSAmJiBlLl9fZXNNb2R1bGUpIHJldHVybiBlOyBpZiAobnVsbCA9PT0gZSB8fCBcIm9iamVjdFwiICE9IHR5cGVvZiBlICYmIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgZSkgcmV0dXJuIHsgZGVmYXVsdDogZSB9OyB2YXIgdCA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShyKTsgaWYgKHQgJiYgdC5oYXMoZSkpIHJldHVybiB0LmdldChlKTsgdmFyIG4gPSB7IF9fcHJvdG9fXzogbnVsbCB9LCBhID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIHUgaW4gZSkgaWYgKFwiZGVmYXVsdFwiICE9PSB1ICYmIHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSwgdSkpIHsgdmFyIGkgPSBhID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCB1KSA6IG51bGw7IGkgJiYgKGkuZ2V0IHx8IGkuc2V0KSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCB1LCBpKSA6IG5bdV0gPSBlW3VdOyB9IHJldHVybiBuLmRlZmF1bHQgPSBlLCB0ICYmIHQuc2V0KGUsIG4pLCBuOyB9XG5hc3luYyBmdW5jdGlvbiBnZXRBdXRob3JpemF0aW9uVXJsKHtcbiAgb3B0aW9ucyxcbiAgcXVlcnlcbn0pIHtcbiAgdmFyIF9wcm92aWRlciR2ZXJzaW9uO1xuICBjb25zdCB7XG4gICAgbG9nZ2VyLFxuICAgIHByb3ZpZGVyXG4gIH0gPSBvcHRpb25zO1xuICBsZXQgcGFyYW1zID0ge307XG4gIGlmICh0eXBlb2YgcHJvdmlkZXIuYXV0aG9yaXphdGlvbiA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IHBhcnNlZFVybCA9IG5ldyBVUkwocHJvdmlkZXIuYXV0aG9yaXphdGlvbik7XG4gICAgY29uc3QgcGFyc2VkUGFyYW1zID0gT2JqZWN0LmZyb21FbnRyaWVzKHBhcnNlZFVybC5zZWFyY2hQYXJhbXMpO1xuICAgIHBhcmFtcyA9IHtcbiAgICAgIC4uLnBhcmFtcyxcbiAgICAgIC4uLnBhcnNlZFBhcmFtc1xuICAgIH07XG4gIH0gZWxzZSB7XG4gICAgdmFyIF9wcm92aWRlciRhdXRob3JpemF0aTtcbiAgICBwYXJhbXMgPSB7XG4gICAgICAuLi5wYXJhbXMsXG4gICAgICAuLi4oKF9wcm92aWRlciRhdXRob3JpemF0aSA9IHByb3ZpZGVyLmF1dGhvcml6YXRpb24pID09PSBudWxsIHx8IF9wcm92aWRlciRhdXRob3JpemF0aSA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3Byb3ZpZGVyJGF1dGhvcml6YXRpLnBhcmFtcylcbiAgICB9O1xuICB9XG4gIHBhcmFtcyA9IHtcbiAgICAuLi5wYXJhbXMsXG4gICAgLi4ucXVlcnlcbiAgfTtcbiAgaWYgKChfcHJvdmlkZXIkdmVyc2lvbiA9IHByb3ZpZGVyLnZlcnNpb24pICE9PSBudWxsICYmIF9wcm92aWRlciR2ZXJzaW9uICE9PSB2b2lkIDAgJiYgX3Byb3ZpZGVyJHZlcnNpb24uc3RhcnRzV2l0aChcIjEuXCIpKSB7XG4gICAgdmFyIF9wcm92aWRlciRhdXRob3JpemF0aTI7XG4gICAgY29uc3QgY2xpZW50ID0gKDAsIF9jbGllbnRMZWdhY3kub0F1dGgxQ2xpZW50KShvcHRpb25zKTtcbiAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCBjbGllbnQuZ2V0T0F1dGhSZXF1ZXN0VG9rZW4ocGFyYW1zKTtcbiAgICBjb25zdCB1cmwgPSBgJHsoX3Byb3ZpZGVyJGF1dGhvcml6YXRpMiA9IHByb3ZpZGVyLmF1dGhvcml6YXRpb24pID09PSBudWxsIHx8IF9wcm92aWRlciRhdXRob3JpemF0aTIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9wcm92aWRlciRhdXRob3JpemF0aTIudXJsfT8ke25ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgb2F1dGhfdG9rZW46IHRva2Vucy5vYXV0aF90b2tlbixcbiAgICAgIG9hdXRoX3Rva2VuX3NlY3JldDogdG9rZW5zLm9hdXRoX3Rva2VuX3NlY3JldCxcbiAgICAgIC4uLnRva2Vucy5wYXJhbXNcbiAgICB9KX1gO1xuICAgIF9jbGllbnRMZWdhY3kub0F1dGgxVG9rZW5TdG9yZS5zZXQodG9rZW5zLm9hdXRoX3Rva2VuLCB0b2tlbnMub2F1dGhfdG9rZW5fc2VjcmV0KTtcbiAgICBsb2dnZXIuZGVidWcoXCJHRVRfQVVUSE9SSVpBVElPTl9VUkxcIiwge1xuICAgICAgdXJsLFxuICAgICAgcHJvdmlkZXJcbiAgICB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgcmVkaXJlY3Q6IHVybFxuICAgIH07XG4gIH1cbiAgY29uc3QgY2xpZW50ID0gYXdhaXQgKDAsIF9jbGllbnQub3BlbmlkQ2xpZW50KShvcHRpb25zKTtcbiAgY29uc3QgYXV0aG9yaXphdGlvblBhcmFtcyA9IHBhcmFtcztcbiAgY29uc3QgY29va2llcyA9IFtdO1xuICBhd2FpdCBjaGVja3Muc3RhdGUuY3JlYXRlKG9wdGlvbnMsIGNvb2tpZXMsIGF1dGhvcml6YXRpb25QYXJhbXMpO1xuICBhd2FpdCBjaGVja3MucGtjZS5jcmVhdGUob3B0aW9ucywgY29va2llcywgYXV0aG9yaXphdGlvblBhcmFtcyk7XG4gIGF3YWl0IGNoZWNrcy5ub25jZS5jcmVhdGUob3B0aW9ucywgY29va2llcywgYXV0aG9yaXphdGlvblBhcmFtcyk7XG4gIGNvbnN0IHVybCA9IGNsaWVudC5hdXRob3JpemF0aW9uVXJsKGF1dGhvcml6YXRpb25QYXJhbXMpO1xuICBsb2dnZXIuZGVidWcoXCJHRVRfQVVUSE9SSVpBVElPTl9VUkxcIiwge1xuICAgIHVybCxcbiAgICBjb29raWVzLFxuICAgIHByb3ZpZGVyXG4gIH0pO1xuICByZXR1cm4ge1xuICAgIHJlZGlyZWN0OiB1cmwsXG4gICAgY29va2llc1xuICB9O1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/oauth/authorization-url.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/oauth/callback.js":
+/*!***********************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/oauth/callback.js ***!
+ \***********************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = oAuthCallback;\nvar _openidClient = __webpack_require__(/*! openid-client */ \"(rsc)/./node_modules/openid-client/lib/index.js\");\nvar _client = __webpack_require__(/*! ./client */ \"(rsc)/./node_modules/next-auth/core/lib/oauth/client.js\");\nvar _clientLegacy = __webpack_require__(/*! ./client-legacy */ \"(rsc)/./node_modules/next-auth/core/lib/oauth/client-legacy.js\");\nvar _checks = _interopRequireWildcard(__webpack_require__(/*! ./checks */ \"(rsc)/./node_modules/next-auth/core/lib/oauth/checks.js\"));\nvar _errors = __webpack_require__(/*! ../../errors */ \"(rsc)/./node_modules/next-auth/core/errors.js\");\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nasync function oAuthCallback(params) {\n var _body$error, _provider$version;\n const {\n options,\n query,\n body,\n method,\n cookies\n } = params;\n const {\n logger,\n provider\n } = options;\n const errorMessage = (_body$error = body === null || body === void 0 ? void 0 : body.error) !== null && _body$error !== void 0 ? _body$error : query === null || query === void 0 ? void 0 : query.error;\n if (errorMessage) {\n const error = new Error(errorMessage);\n logger.error(\"OAUTH_CALLBACK_HANDLER_ERROR\", {\n error,\n error_description: query === null || query === void 0 ? void 0 : query.error_description,\n providerId: provider.id\n });\n logger.debug(\"OAUTH_CALLBACK_HANDLER_ERROR\", {\n body\n });\n throw error;\n }\n if ((_provider$version = provider.version) !== null && _provider$version !== void 0 && _provider$version.startsWith(\"1.\")) {\n try {\n const client = await (0, _clientLegacy.oAuth1Client)(options);\n const {\n oauth_token,\n oauth_verifier\n } = query !== null && query !== void 0 ? query : {};\n const tokens = await client.getOAuthAccessToken(oauth_token, _clientLegacy.oAuth1TokenStore.get(oauth_token), oauth_verifier);\n let profile = await client.get(provider.profileUrl, tokens.oauth_token, tokens.oauth_token_secret);\n if (typeof profile === \"string\") {\n profile = JSON.parse(profile);\n }\n const newProfile = await getProfile({\n profile,\n tokens,\n provider,\n logger\n });\n return {\n ...newProfile,\n cookies: []\n };\n } catch (error) {\n logger.error(\"OAUTH_V1_GET_ACCESS_TOKEN_ERROR\", error);\n throw error;\n }\n }\n if (query !== null && query !== void 0 && query.oauth_token) _clientLegacy.oAuth1TokenStore.delete(query.oauth_token);\n try {\n var _provider$token, _provider$token2, _provider$userinfo;\n const client = await (0, _client.openidClient)(options);\n let tokens;\n const checks = {};\n const resCookies = [];\n await _checks.state.use(cookies, resCookies, options, checks);\n await _checks.pkce.use(cookies, resCookies, options, checks);\n await _checks.nonce.use(cookies, resCookies, options, checks);\n const params = {\n ...client.callbackParams({\n url: `http://n?${new URLSearchParams(query)}`,\n body,\n method\n }),\n ...((_provider$token = provider.token) === null || _provider$token === void 0 ? void 0 : _provider$token.params)\n };\n if ((_provider$token2 = provider.token) !== null && _provider$token2 !== void 0 && _provider$token2.request) {\n const response = await provider.token.request({\n provider,\n params,\n checks,\n client\n });\n tokens = new _openidClient.TokenSet(response.tokens);\n } else if (provider.idToken) {\n tokens = await client.callback(provider.callbackUrl, params, checks);\n } else {\n tokens = await client.oauthCallback(provider.callbackUrl, params, checks);\n }\n if (Array.isArray(tokens.scope)) {\n tokens.scope = tokens.scope.join(\" \");\n }\n let profile;\n if ((_provider$userinfo = provider.userinfo) !== null && _provider$userinfo !== void 0 && _provider$userinfo.request) {\n profile = await provider.userinfo.request({\n provider,\n tokens,\n client\n });\n } else if (provider.idToken) {\n profile = tokens.claims();\n } else {\n var _provider$userinfo2;\n profile = await client.userinfo(tokens, {\n params: (_provider$userinfo2 = provider.userinfo) === null || _provider$userinfo2 === void 0 ? void 0 : _provider$userinfo2.params\n });\n }\n const profileResult = await getProfile({\n profile,\n provider,\n tokens,\n logger\n });\n return {\n ...profileResult,\n cookies: resCookies\n };\n } catch (error) {\n throw new _errors.OAuthCallbackError(error);\n }\n}\nasync function getProfile({\n profile: OAuthProfile,\n tokens,\n provider,\n logger\n}) {\n try {\n var _profile$email;\n logger.debug(\"PROFILE_DATA\", {\n OAuthProfile\n });\n const profile = await provider.profile(OAuthProfile, tokens);\n profile.email = (_profile$email = profile.email) === null || _profile$email === void 0 ? void 0 : _profile$email.toLowerCase();\n if (!profile.id) throw new TypeError(`Profile id is missing in ${provider.name} OAuth profile response`);\n return {\n profile,\n account: {\n provider: provider.id,\n type: provider.type,\n providerAccountId: profile.id.toString(),\n ...tokens\n },\n OAuthProfile\n };\n } catch (error) {\n logger.error(\"OAUTH_PARSE_PROFILE_ERROR\", {\n error: error,\n OAuthProfile\n });\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL29hdXRoL2NhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2Ysb0JBQW9CLG1CQUFPLENBQUMsc0VBQWU7QUFDM0MsY0FBYyxtQkFBTyxDQUFDLHlFQUFVO0FBQ2hDLG9CQUFvQixtQkFBTyxDQUFDLHVGQUFpQjtBQUM3QyxzQ0FBc0MsbUJBQU8sQ0FBQyx5RUFBVTtBQUN4RCxjQUFjLG1CQUFPLENBQUMsbUVBQWM7QUFDcEMsdUNBQXVDLCtDQUErQywwQ0FBMEMsa0RBQWtELG1CQUFtQjtBQUNyTSx5Q0FBeUMsdUNBQXVDLDJFQUEyRSxjQUFjLHFDQUFxQyxvQ0FBb0MsVUFBVSxpQkFBaUIsZ0VBQWdFLDBDQUEwQyw4QkFBOEIsMERBQTBELHdFQUF3RTtBQUN2aEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCLDJCQUEyQjtBQUNwRDtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxxRUFBcUUsZUFBZTtBQUNwRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL29hdXRoL2NhbGxiYWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gb0F1dGhDYWxsYmFjaztcbnZhciBfb3BlbmlkQ2xpZW50ID0gcmVxdWlyZShcIm9wZW5pZC1jbGllbnRcIik7XG52YXIgX2NsaWVudCA9IHJlcXVpcmUoXCIuL2NsaWVudFwiKTtcbnZhciBfY2xpZW50TGVnYWN5ID0gcmVxdWlyZShcIi4vY2xpZW50LWxlZ2FjeVwiKTtcbnZhciBfY2hlY2tzID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4vY2hlY2tzXCIpKTtcbnZhciBfZXJyb3JzID0gcmVxdWlyZShcIi4uLy4uL2Vycm9yc1wiKTtcbmZ1bmN0aW9uIF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShlKSB7IGlmIChcImZ1bmN0aW9uXCIgIT0gdHlwZW9mIFdlYWtNYXApIHJldHVybiBudWxsOyB2YXIgciA9IG5ldyBXZWFrTWFwKCksIHQgPSBuZXcgV2Vha01hcCgpOyByZXR1cm4gKF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZSA9IGZ1bmN0aW9uIChlKSB7IHJldHVybiBlID8gdCA6IHI7IH0pKGUpOyB9XG5mdW5jdGlvbiBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChlLCByKSB7IGlmICghciAmJiBlICYmIGUuX19lc01vZHVsZSkgcmV0dXJuIGU7IGlmIChudWxsID09PSBlIHx8IFwib2JqZWN0XCIgIT0gdHlwZW9mIGUgJiYgXCJmdW5jdGlvblwiICE9IHR5cGVvZiBlKSByZXR1cm4geyBkZWZhdWx0OiBlIH07IHZhciB0ID0gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKHIpOyBpZiAodCAmJiB0LmhhcyhlKSkgcmV0dXJuIHQuZ2V0KGUpOyB2YXIgbiA9IHsgX19wcm90b19fOiBudWxsIH0sIGEgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkgJiYgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjsgZm9yICh2YXIgdSBpbiBlKSBpZiAoXCJkZWZhdWx0XCIgIT09IHUgJiYge30uaGFzT3duUHJvcGVydHkuY2FsbChlLCB1KSkgeyB2YXIgaSA9IGEgPyBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsIHUpIDogbnVsbDsgaSAmJiAoaS5nZXQgfHwgaS5zZXQpID8gT2JqZWN0LmRlZmluZVByb3BlcnR5KG4sIHUsIGkpIDogblt1XSA9IGVbdV07IH0gcmV0dXJuIG4uZGVmYXVsdCA9IGUsIHQgJiYgdC5zZXQoZSwgbiksIG47IH1cbmFzeW5jIGZ1bmN0aW9uIG9BdXRoQ2FsbGJhY2socGFyYW1zKSB7XG4gIHZhciBfYm9keSRlcnJvciwgX3Byb3ZpZGVyJHZlcnNpb247XG4gIGNvbnN0IHtcbiAgICBvcHRpb25zLFxuICAgIHF1ZXJ5LFxuICAgIGJvZHksXG4gICAgbWV0aG9kLFxuICAgIGNvb2tpZXNcbiAgfSA9IHBhcmFtcztcbiAgY29uc3Qge1xuICAgIGxvZ2dlcixcbiAgICBwcm92aWRlclxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgZXJyb3JNZXNzYWdlID0gKF9ib2R5JGVycm9yID0gYm9keSA9PT0gbnVsbCB8fCBib2R5ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBib2R5LmVycm9yKSAhPT0gbnVsbCAmJiBfYm9keSRlcnJvciAhPT0gdm9pZCAwID8gX2JvZHkkZXJyb3IgOiBxdWVyeSA9PT0gbnVsbCB8fCBxdWVyeSA9PT0gdm9pZCAwID8gdm9pZCAwIDogcXVlcnkuZXJyb3I7XG4gIGlmIChlcnJvck1lc3NhZ2UpIHtcbiAgICBjb25zdCBlcnJvciA9IG5ldyBFcnJvcihlcnJvck1lc3NhZ2UpO1xuICAgIGxvZ2dlci5lcnJvcihcIk9BVVRIX0NBTExCQUNLX0hBTkRMRVJfRVJST1JcIiwge1xuICAgICAgZXJyb3IsXG4gICAgICBlcnJvcl9kZXNjcmlwdGlvbjogcXVlcnkgPT09IG51bGwgfHwgcXVlcnkgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHF1ZXJ5LmVycm9yX2Rlc2NyaXB0aW9uLFxuICAgICAgcHJvdmlkZXJJZDogcHJvdmlkZXIuaWRcbiAgICB9KTtcbiAgICBsb2dnZXIuZGVidWcoXCJPQVVUSF9DQUxMQkFDS19IQU5ETEVSX0VSUk9SXCIsIHtcbiAgICAgIGJvZHlcbiAgICB9KTtcbiAgICB0aHJvdyBlcnJvcjtcbiAgfVxuICBpZiAoKF9wcm92aWRlciR2ZXJzaW9uID0gcHJvdmlkZXIudmVyc2lvbikgIT09IG51bGwgJiYgX3Byb3ZpZGVyJHZlcnNpb24gIT09IHZvaWQgMCAmJiBfcHJvdmlkZXIkdmVyc2lvbi5zdGFydHNXaXRoKFwiMS5cIikpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgY2xpZW50ID0gYXdhaXQgKDAsIF9jbGllbnRMZWdhY3kub0F1dGgxQ2xpZW50KShvcHRpb25zKTtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgb2F1dGhfdG9rZW4sXG4gICAgICAgIG9hdXRoX3ZlcmlmaWVyXG4gICAgICB9ID0gcXVlcnkgIT09IG51bGwgJiYgcXVlcnkgIT09IHZvaWQgMCA/IHF1ZXJ5IDoge307XG4gICAgICBjb25zdCB0b2tlbnMgPSBhd2FpdCBjbGllbnQuZ2V0T0F1dGhBY2Nlc3NUb2tlbihvYXV0aF90b2tlbiwgX2NsaWVudExlZ2FjeS5vQXV0aDFUb2tlblN0b3JlLmdldChvYXV0aF90b2tlbiksIG9hdXRoX3ZlcmlmaWVyKTtcbiAgICAgIGxldCBwcm9maWxlID0gYXdhaXQgY2xpZW50LmdldChwcm92aWRlci5wcm9maWxlVXJsLCB0b2tlbnMub2F1dGhfdG9rZW4sIHRva2Vucy5vYXV0aF90b2tlbl9zZWNyZXQpO1xuICAgICAgaWYgKHR5cGVvZiBwcm9maWxlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgIHByb2ZpbGUgPSBKU09OLnBhcnNlKHByb2ZpbGUpO1xuICAgICAgfVxuICAgICAgY29uc3QgbmV3UHJvZmlsZSA9IGF3YWl0IGdldFByb2ZpbGUoe1xuICAgICAgICBwcm9maWxlLFxuICAgICAgICB0b2tlbnMsXG4gICAgICAgIHByb3ZpZGVyLFxuICAgICAgICBsb2dnZXJcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4ubmV3UHJvZmlsZSxcbiAgICAgICAgY29va2llczogW11cbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihcIk9BVVRIX1YxX0dFVF9BQ0NFU1NfVE9LRU5fRVJST1JcIiwgZXJyb3IpO1xuICAgICAgdGhyb3cgZXJyb3I7XG4gICAgfVxuICB9XG4gIGlmIChxdWVyeSAhPT0gbnVsbCAmJiBxdWVyeSAhPT0gdm9pZCAwICYmIHF1ZXJ5Lm9hdXRoX3Rva2VuKSBfY2xpZW50TGVnYWN5Lm9BdXRoMVRva2VuU3RvcmUuZGVsZXRlKHF1ZXJ5Lm9hdXRoX3Rva2VuKTtcbiAgdHJ5IHtcbiAgICB2YXIgX3Byb3ZpZGVyJHRva2VuLCBfcHJvdmlkZXIkdG9rZW4yLCBfcHJvdmlkZXIkdXNlcmluZm87XG4gICAgY29uc3QgY2xpZW50ID0gYXdhaXQgKDAsIF9jbGllbnQub3BlbmlkQ2xpZW50KShvcHRpb25zKTtcbiAgICBsZXQgdG9rZW5zO1xuICAgIGNvbnN0IGNoZWNrcyA9IHt9O1xuICAgIGNvbnN0IHJlc0Nvb2tpZXMgPSBbXTtcbiAgICBhd2FpdCBfY2hlY2tzLnN0YXRlLnVzZShjb29raWVzLCByZXNDb29raWVzLCBvcHRpb25zLCBjaGVja3MpO1xuICAgIGF3YWl0IF9jaGVja3MucGtjZS51c2UoY29va2llcywgcmVzQ29va2llcywgb3B0aW9ucywgY2hlY2tzKTtcbiAgICBhd2FpdCBfY2hlY2tzLm5vbmNlLnVzZShjb29raWVzLCByZXNDb29raWVzLCBvcHRpb25zLCBjaGVja3MpO1xuICAgIGNvbnN0IHBhcmFtcyA9IHtcbiAgICAgIC4uLmNsaWVudC5jYWxsYmFja1BhcmFtcyh7XG4gICAgICAgIHVybDogYGh0dHA6Ly9uPyR7bmV3IFVSTFNlYXJjaFBhcmFtcyhxdWVyeSl9YCxcbiAgICAgICAgYm9keSxcbiAgICAgICAgbWV0aG9kXG4gICAgICB9KSxcbiAgICAgIC4uLigoX3Byb3ZpZGVyJHRva2VuID0gcHJvdmlkZXIudG9rZW4pID09PSBudWxsIHx8IF9wcm92aWRlciR0b2tlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3Byb3ZpZGVyJHRva2VuLnBhcmFtcylcbiAgICB9O1xuICAgIGlmICgoX3Byb3ZpZGVyJHRva2VuMiA9IHByb3ZpZGVyLnRva2VuKSAhPT0gbnVsbCAmJiBfcHJvdmlkZXIkdG9rZW4yICE9PSB2b2lkIDAgJiYgX3Byb3ZpZGVyJHRva2VuMi5yZXF1ZXN0KSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IHByb3ZpZGVyLnRva2VuLnJlcXVlc3Qoe1xuICAgICAgICBwcm92aWRlcixcbiAgICAgICAgcGFyYW1zLFxuICAgICAgICBjaGVja3MsXG4gICAgICAgIGNsaWVudFxuICAgICAgfSk7XG4gICAgICB0b2tlbnMgPSBuZXcgX29wZW5pZENsaWVudC5Ub2tlblNldChyZXNwb25zZS50b2tlbnMpO1xuICAgIH0gZWxzZSBpZiAocHJvdmlkZXIuaWRUb2tlbikge1xuICAgICAgdG9rZW5zID0gYXdhaXQgY2xpZW50LmNhbGxiYWNrKHByb3ZpZGVyLmNhbGxiYWNrVXJsLCBwYXJhbXMsIGNoZWNrcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRva2VucyA9IGF3YWl0IGNsaWVudC5vYXV0aENhbGxiYWNrKHByb3ZpZGVyLmNhbGxiYWNrVXJsLCBwYXJhbXMsIGNoZWNrcyk7XG4gICAgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KHRva2Vucy5zY29wZSkpIHtcbiAgICAgIHRva2Vucy5zY29wZSA9IHRva2Vucy5zY29wZS5qb2luKFwiIFwiKTtcbiAgICB9XG4gICAgbGV0IHByb2ZpbGU7XG4gICAgaWYgKChfcHJvdmlkZXIkdXNlcmluZm8gPSBwcm92aWRlci51c2VyaW5mbykgIT09IG51bGwgJiYgX3Byb3ZpZGVyJHVzZXJpbmZvICE9PSB2b2lkIDAgJiYgX3Byb3ZpZGVyJHVzZXJpbmZvLnJlcXVlc3QpIHtcbiAgICAgIHByb2ZpbGUgPSBhd2FpdCBwcm92aWRlci51c2VyaW5mby5yZXF1ZXN0KHtcbiAgICAgICAgcHJvdmlkZXIsXG4gICAgICAgIHRva2VucyxcbiAgICAgICAgY2xpZW50XG4gICAgICB9KTtcbiAgICB9IGVsc2UgaWYgKHByb3ZpZGVyLmlkVG9rZW4pIHtcbiAgICAgIHByb2ZpbGUgPSB0b2tlbnMuY2xhaW1zKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhciBfcHJvdmlkZXIkdXNlcmluZm8yO1xuICAgICAgcHJvZmlsZSA9IGF3YWl0IGNsaWVudC51c2VyaW5mbyh0b2tlbnMsIHtcbiAgICAgICAgcGFyYW1zOiAoX3Byb3ZpZGVyJHVzZXJpbmZvMiA9IHByb3ZpZGVyLnVzZXJpbmZvKSA9PT0gbnVsbCB8fCBfcHJvdmlkZXIkdXNlcmluZm8yID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvdmlkZXIkdXNlcmluZm8yLnBhcmFtc1xuICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHByb2ZpbGVSZXN1bHQgPSBhd2FpdCBnZXRQcm9maWxlKHtcbiAgICAgIHByb2ZpbGUsXG4gICAgICBwcm92aWRlcixcbiAgICAgIHRva2VucyxcbiAgICAgIGxvZ2dlclxuICAgIH0pO1xuICAgIHJldHVybiB7XG4gICAgICAuLi5wcm9maWxlUmVzdWx0LFxuICAgICAgY29va2llczogcmVzQ29va2llc1xuICAgIH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgdGhyb3cgbmV3IF9lcnJvcnMuT0F1dGhDYWxsYmFja0Vycm9yKGVycm9yKTtcbiAgfVxufVxuYXN5bmMgZnVuY3Rpb24gZ2V0UHJvZmlsZSh7XG4gIHByb2ZpbGU6IE9BdXRoUHJvZmlsZSxcbiAgdG9rZW5zLFxuICBwcm92aWRlcixcbiAgbG9nZ2VyXG59KSB7XG4gIHRyeSB7XG4gICAgdmFyIF9wcm9maWxlJGVtYWlsO1xuICAgIGxvZ2dlci5kZWJ1ZyhcIlBST0ZJTEVfREFUQVwiLCB7XG4gICAgICBPQXV0aFByb2ZpbGVcbiAgICB9KTtcbiAgICBjb25zdCBwcm9maWxlID0gYXdhaXQgcHJvdmlkZXIucHJvZmlsZShPQXV0aFByb2ZpbGUsIHRva2Vucyk7XG4gICAgcHJvZmlsZS5lbWFpbCA9IChfcHJvZmlsZSRlbWFpbCA9IHByb2ZpbGUuZW1haWwpID09PSBudWxsIHx8IF9wcm9maWxlJGVtYWlsID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvZmlsZSRlbWFpbC50b0xvd2VyQ2FzZSgpO1xuICAgIGlmICghcHJvZmlsZS5pZCkgdGhyb3cgbmV3IFR5cGVFcnJvcihgUHJvZmlsZSBpZCBpcyBtaXNzaW5nIGluICR7cHJvdmlkZXIubmFtZX0gT0F1dGggcHJvZmlsZSByZXNwb25zZWApO1xuICAgIHJldHVybiB7XG4gICAgICBwcm9maWxlLFxuICAgICAgYWNjb3VudDoge1xuICAgICAgICBwcm92aWRlcjogcHJvdmlkZXIuaWQsXG4gICAgICAgIHR5cGU6IHByb3ZpZGVyLnR5cGUsXG4gICAgICAgIHByb3ZpZGVyQWNjb3VudElkOiBwcm9maWxlLmlkLnRvU3RyaW5nKCksXG4gICAgICAgIC4uLnRva2Vuc1xuICAgICAgfSxcbiAgICAgIE9BdXRoUHJvZmlsZVxuICAgIH07XG4gIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgbG9nZ2VyLmVycm9yKFwiT0FVVEhfUEFSU0VfUFJPRklMRV9FUlJPUlwiLCB7XG4gICAgICBlcnJvcjogZXJyb3IsXG4gICAgICBPQXV0aFByb2ZpbGVcbiAgICB9KTtcbiAgfVxufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/oauth/callback.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/oauth/checks.js":
+/*!*********************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/oauth/checks.js ***!
+ \*********************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.pkce = exports.nonce = exports.PKCE_CODE_CHALLENGE_METHOD = void 0;\nexports.signCookie = signCookie;\nexports.state = void 0;\nvar _openidClient = __webpack_require__(/*! openid-client */ \"(rsc)/./node_modules/openid-client/lib/index.js\");\nvar jwt = _interopRequireWildcard(__webpack_require__(/*! ../../../jwt */ \"(rsc)/./node_modules/next-auth/jwt/index.js\"));\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nasync function signCookie(type, value, maxAge, options) {\n const {\n cookies,\n logger\n } = options;\n logger.debug(`CREATE_${type.toUpperCase()}`, {\n value,\n maxAge\n });\n const {\n name\n } = cookies[type];\n const expires = new Date();\n expires.setTime(expires.getTime() + maxAge * 1000);\n return {\n name,\n value: await jwt.encode({\n ...options.jwt,\n maxAge,\n token: {\n value\n },\n salt: name\n }),\n options: {\n ...cookies[type].options,\n expires\n }\n };\n}\nconst PKCE_MAX_AGE = 60 * 15;\nconst PKCE_CODE_CHALLENGE_METHOD = exports.PKCE_CODE_CHALLENGE_METHOD = \"S256\";\nconst pkce = exports.pkce = {\n async create(options, cookies, resParams) {\n var _options$provider, _options$cookies$pkce;\n if (!((_options$provider = options.provider) !== null && _options$provider !== void 0 && (_options$provider = _options$provider.checks) !== null && _options$provider !== void 0 && _options$provider.includes(\"pkce\"))) return;\n const code_verifier = _openidClient.generators.codeVerifier();\n const value = _openidClient.generators.codeChallenge(code_verifier);\n resParams.code_challenge = value;\n resParams.code_challenge_method = PKCE_CODE_CHALLENGE_METHOD;\n const maxAge = (_options$cookies$pkce = options.cookies.pkceCodeVerifier.options.maxAge) !== null && _options$cookies$pkce !== void 0 ? _options$cookies$pkce : PKCE_MAX_AGE;\n cookies.push(await signCookie(\"pkceCodeVerifier\", code_verifier, maxAge, options));\n },\n async use(cookies, resCookies, options, checks) {\n var _options$provider2;\n if (!((_options$provider2 = options.provider) !== null && _options$provider2 !== void 0 && (_options$provider2 = _options$provider2.checks) !== null && _options$provider2 !== void 0 && _options$provider2.includes(\"pkce\"))) return;\n const codeVerifier = cookies === null || cookies === void 0 ? void 0 : cookies[options.cookies.pkceCodeVerifier.name];\n if (!codeVerifier) throw new TypeError(\"PKCE code_verifier cookie was missing.\");\n const {\n name\n } = options.cookies.pkceCodeVerifier;\n const value = await jwt.decode({\n ...options.jwt,\n token: codeVerifier,\n salt: name\n });\n if (!(value !== null && value !== void 0 && value.value)) throw new TypeError(\"PKCE code_verifier value could not be parsed.\");\n resCookies.push({\n name,\n value: \"\",\n options: {\n ...options.cookies.pkceCodeVerifier.options,\n maxAge: 0\n }\n });\n checks.code_verifier = value.value;\n }\n};\nconst STATE_MAX_AGE = 60 * 15;\nconst state = exports.state = {\n async create(options, cookies, resParams) {\n var _options$provider$che, _options$cookies$stat;\n if (!((_options$provider$che = options.provider.checks) !== null && _options$provider$che !== void 0 && _options$provider$che.includes(\"state\"))) return;\n const value = _openidClient.generators.state();\n resParams.state = value;\n const maxAge = (_options$cookies$stat = options.cookies.state.options.maxAge) !== null && _options$cookies$stat !== void 0 ? _options$cookies$stat : STATE_MAX_AGE;\n cookies.push(await signCookie(\"state\", value, maxAge, options));\n },\n async use(cookies, resCookies, options, checks) {\n var _options$provider$che2;\n if (!((_options$provider$che2 = options.provider.checks) !== null && _options$provider$che2 !== void 0 && _options$provider$che2.includes(\"state\"))) return;\n const state = cookies === null || cookies === void 0 ? void 0 : cookies[options.cookies.state.name];\n if (!state) throw new TypeError(\"State cookie was missing.\");\n const {\n name\n } = options.cookies.state;\n const value = await jwt.decode({\n ...options.jwt,\n token: state,\n salt: name\n });\n if (!(value !== null && value !== void 0 && value.value)) throw new TypeError(\"State value could not be parsed.\");\n resCookies.push({\n name,\n value: \"\",\n options: {\n ...options.cookies.state.options,\n maxAge: 0\n }\n });\n checks.state = value.value;\n }\n};\nconst NONCE_MAX_AGE = 60 * 15;\nconst nonce = exports.nonce = {\n async create(options, cookies, resParams) {\n var _options$provider$che3, _options$cookies$nonc;\n if (!((_options$provider$che3 = options.provider.checks) !== null && _options$provider$che3 !== void 0 && _options$provider$che3.includes(\"nonce\"))) return;\n const value = _openidClient.generators.nonce();\n resParams.nonce = value;\n const maxAge = (_options$cookies$nonc = options.cookies.nonce.options.maxAge) !== null && _options$cookies$nonc !== void 0 ? _options$cookies$nonc : NONCE_MAX_AGE;\n cookies.push(await signCookie(\"nonce\", value, maxAge, options));\n },\n async use(cookies, resCookies, options, checks) {\n var _options$provider3;\n if (!((_options$provider3 = options.provider) !== null && _options$provider3 !== void 0 && (_options$provider3 = _options$provider3.checks) !== null && _options$provider3 !== void 0 && _options$provider3.includes(\"nonce\"))) return;\n const nonce = cookies === null || cookies === void 0 ? void 0 : cookies[options.cookies.nonce.name];\n if (!nonce) throw new TypeError(\"Nonce cookie was missing.\");\n const {\n name\n } = options.cookies.nonce;\n const value = await jwt.decode({\n ...options.jwt,\n token: nonce,\n salt: name\n });\n if (!(value !== null && value !== void 0 && value.value)) throw new TypeError(\"Nonce value could not be parsed.\");\n resCookies.push({\n name,\n value: \"\",\n options: {\n ...options.cookies.nonce.options,\n maxAge: 0\n }\n });\n checks.nonce = value.value;\n }\n};//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL29hdXRoL2NoZWNrcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixZQUFZLEdBQUcsYUFBYSxHQUFHLGtDQUFrQztBQUNqRSxrQkFBa0I7QUFDbEIsYUFBYTtBQUNiLG9CQUFvQixtQkFBTyxDQUFDLHNFQUFlO0FBQzNDLGtDQUFrQyxtQkFBTyxDQUFDLGlFQUFjO0FBQ3hELHVDQUF1QywrQ0FBK0MsMENBQTBDLGtEQUFrRCxtQkFBbUI7QUFDck0seUNBQXlDLHVDQUF1QywyRUFBMkUsY0FBYyxxQ0FBcUMsb0NBQW9DLFVBQVUsaUJBQWlCLGdFQUFnRSwwQ0FBMEMsOEJBQThCLDBEQUEwRCx3RUFBd0U7QUFDdmhCO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLHlCQUF5QixtQkFBbUI7QUFDNUM7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1DQUFtQyxrQ0FBa0M7QUFDckUsYUFBYSxZQUFZO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsY0FBYyxhQUFhO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLGFBQWE7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9saWIvb2F1dGgvY2hlY2tzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5wa2NlID0gZXhwb3J0cy5ub25jZSA9IGV4cG9ydHMuUEtDRV9DT0RFX0NIQUxMRU5HRV9NRVRIT0QgPSB2b2lkIDA7XG5leHBvcnRzLnNpZ25Db29raWUgPSBzaWduQ29va2llO1xuZXhwb3J0cy5zdGF0ZSA9IHZvaWQgMDtcbnZhciBfb3BlbmlkQ2xpZW50ID0gcmVxdWlyZShcIm9wZW5pZC1jbGllbnRcIik7XG52YXIgand0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcIi4uLy4uLy4uL2p3dFwiKSk7XG5mdW5jdGlvbiBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUoZSkgeyBpZiAoXCJmdW5jdGlvblwiICE9IHR5cGVvZiBXZWFrTWFwKSByZXR1cm4gbnVsbDsgdmFyIHIgPSBuZXcgV2Vha01hcCgpLCB0ID0gbmV3IFdlYWtNYXAoKTsgcmV0dXJuIChfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUgPSBmdW5jdGlvbiAoZSkgeyByZXR1cm4gZSA/IHQgOiByOyB9KShlKTsgfVxuZnVuY3Rpb24gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQoZSwgcikgeyBpZiAoIXIgJiYgZSAmJiBlLl9fZXNNb2R1bGUpIHJldHVybiBlOyBpZiAobnVsbCA9PT0gZSB8fCBcIm9iamVjdFwiICE9IHR5cGVvZiBlICYmIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgZSkgcmV0dXJuIHsgZGVmYXVsdDogZSB9OyB2YXIgdCA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShyKTsgaWYgKHQgJiYgdC5oYXMoZSkpIHJldHVybiB0LmdldChlKTsgdmFyIG4gPSB7IF9fcHJvdG9fXzogbnVsbCB9LCBhID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIHUgaW4gZSkgaWYgKFwiZGVmYXVsdFwiICE9PSB1ICYmIHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSwgdSkpIHsgdmFyIGkgPSBhID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCB1KSA6IG51bGw7IGkgJiYgKGkuZ2V0IHx8IGkuc2V0KSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCB1LCBpKSA6IG5bdV0gPSBlW3VdOyB9IHJldHVybiBuLmRlZmF1bHQgPSBlLCB0ICYmIHQuc2V0KGUsIG4pLCBuOyB9XG5hc3luYyBmdW5jdGlvbiBzaWduQ29va2llKHR5cGUsIHZhbHVlLCBtYXhBZ2UsIG9wdGlvbnMpIHtcbiAgY29uc3Qge1xuICAgIGNvb2tpZXMsXG4gICAgbG9nZ2VyXG4gIH0gPSBvcHRpb25zO1xuICBsb2dnZXIuZGVidWcoYENSRUFURV8ke3R5cGUudG9VcHBlckNhc2UoKX1gLCB7XG4gICAgdmFsdWUsXG4gICAgbWF4QWdlXG4gIH0pO1xuICBjb25zdCB7XG4gICAgbmFtZVxuICB9ID0gY29va2llc1t0eXBlXTtcbiAgY29uc3QgZXhwaXJlcyA9IG5ldyBEYXRlKCk7XG4gIGV4cGlyZXMuc2V0VGltZShleHBpcmVzLmdldFRpbWUoKSArIG1heEFnZSAqIDEwMDApO1xuICByZXR1cm4ge1xuICAgIG5hbWUsXG4gICAgdmFsdWU6IGF3YWl0IGp3dC5lbmNvZGUoe1xuICAgICAgLi4ub3B0aW9ucy5qd3QsXG4gICAgICBtYXhBZ2UsXG4gICAgICB0b2tlbjoge1xuICAgICAgICB2YWx1ZVxuICAgICAgfSxcbiAgICAgIHNhbHQ6IG5hbWVcbiAgICB9KSxcbiAgICBvcHRpb25zOiB7XG4gICAgICAuLi5jb29raWVzW3R5cGVdLm9wdGlvbnMsXG4gICAgICBleHBpcmVzXG4gICAgfVxuICB9O1xufVxuY29uc3QgUEtDRV9NQVhfQUdFID0gNjAgKiAxNTtcbmNvbnN0IFBLQ0VfQ09ERV9DSEFMTEVOR0VfTUVUSE9EID0gZXhwb3J0cy5QS0NFX0NPREVfQ0hBTExFTkdFX01FVEhPRCA9IFwiUzI1NlwiO1xuY29uc3QgcGtjZSA9IGV4cG9ydHMucGtjZSA9IHtcbiAgYXN5bmMgY3JlYXRlKG9wdGlvbnMsIGNvb2tpZXMsIHJlc1BhcmFtcykge1xuICAgIHZhciBfb3B0aW9ucyRwcm92aWRlciwgX29wdGlvbnMkY29va2llcyRwa2NlO1xuICAgIGlmICghKChfb3B0aW9ucyRwcm92aWRlciA9IG9wdGlvbnMucHJvdmlkZXIpICE9PSBudWxsICYmIF9vcHRpb25zJHByb3ZpZGVyICE9PSB2b2lkIDAgJiYgKF9vcHRpb25zJHByb3ZpZGVyID0gX29wdGlvbnMkcHJvdmlkZXIuY2hlY2tzKSAhPT0gbnVsbCAmJiBfb3B0aW9ucyRwcm92aWRlciAhPT0gdm9pZCAwICYmIF9vcHRpb25zJHByb3ZpZGVyLmluY2x1ZGVzKFwicGtjZVwiKSkpIHJldHVybjtcbiAgICBjb25zdCBjb2RlX3ZlcmlmaWVyID0gX29wZW5pZENsaWVudC5nZW5lcmF0b3JzLmNvZGVWZXJpZmllcigpO1xuICAgIGNvbnN0IHZhbHVlID0gX29wZW5pZENsaWVudC5nZW5lcmF0b3JzLmNvZGVDaGFsbGVuZ2UoY29kZV92ZXJpZmllcik7XG4gICAgcmVzUGFyYW1zLmNvZGVfY2hhbGxlbmdlID0gdmFsdWU7XG4gICAgcmVzUGFyYW1zLmNvZGVfY2hhbGxlbmdlX21ldGhvZCA9IFBLQ0VfQ09ERV9DSEFMTEVOR0VfTUVUSE9EO1xuICAgIGNvbnN0IG1heEFnZSA9IChfb3B0aW9ucyRjb29raWVzJHBrY2UgPSBvcHRpb25zLmNvb2tpZXMucGtjZUNvZGVWZXJpZmllci5vcHRpb25zLm1heEFnZSkgIT09IG51bGwgJiYgX29wdGlvbnMkY29va2llcyRwa2NlICE9PSB2b2lkIDAgPyBfb3B0aW9ucyRjb29raWVzJHBrY2UgOiBQS0NFX01BWF9BR0U7XG4gICAgY29va2llcy5wdXNoKGF3YWl0IHNpZ25Db29raWUoXCJwa2NlQ29kZVZlcmlmaWVyXCIsIGNvZGVfdmVyaWZpZXIsIG1heEFnZSwgb3B0aW9ucykpO1xuICB9LFxuICBhc3luYyB1c2UoY29va2llcywgcmVzQ29va2llcywgb3B0aW9ucywgY2hlY2tzKSB7XG4gICAgdmFyIF9vcHRpb25zJHByb3ZpZGVyMjtcbiAgICBpZiAoISgoX29wdGlvbnMkcHJvdmlkZXIyID0gb3B0aW9ucy5wcm92aWRlcikgIT09IG51bGwgJiYgX29wdGlvbnMkcHJvdmlkZXIyICE9PSB2b2lkIDAgJiYgKF9vcHRpb25zJHByb3ZpZGVyMiA9IF9vcHRpb25zJHByb3ZpZGVyMi5jaGVja3MpICE9PSBudWxsICYmIF9vcHRpb25zJHByb3ZpZGVyMiAhPT0gdm9pZCAwICYmIF9vcHRpb25zJHByb3ZpZGVyMi5pbmNsdWRlcyhcInBrY2VcIikpKSByZXR1cm47XG4gICAgY29uc3QgY29kZVZlcmlmaWVyID0gY29va2llcyA9PT0gbnVsbCB8fCBjb29raWVzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBjb29raWVzW29wdGlvbnMuY29va2llcy5wa2NlQ29kZVZlcmlmaWVyLm5hbWVdO1xuICAgIGlmICghY29kZVZlcmlmaWVyKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUEtDRSBjb2RlX3ZlcmlmaWVyIGNvb2tpZSB3YXMgbWlzc2luZy5cIik7XG4gICAgY29uc3Qge1xuICAgICAgbmFtZVxuICAgIH0gPSBvcHRpb25zLmNvb2tpZXMucGtjZUNvZGVWZXJpZmllcjtcbiAgICBjb25zdCB2YWx1ZSA9IGF3YWl0IGp3dC5kZWNvZGUoe1xuICAgICAgLi4ub3B0aW9ucy5qd3QsXG4gICAgICB0b2tlbjogY29kZVZlcmlmaWVyLFxuICAgICAgc2FsdDogbmFtZVxuICAgIH0pO1xuICAgIGlmICghKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDAgJiYgdmFsdWUudmFsdWUpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiUEtDRSBjb2RlX3ZlcmlmaWVyIHZhbHVlIGNvdWxkIG5vdCBiZSBwYXJzZWQuXCIpO1xuICAgIHJlc0Nvb2tpZXMucHVzaCh7XG4gICAgICBuYW1lLFxuICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuY29va2llcy5wa2NlQ29kZVZlcmlmaWVyLm9wdGlvbnMsXG4gICAgICAgIG1heEFnZTogMFxuICAgICAgfVxuICAgIH0pO1xuICAgIGNoZWNrcy5jb2RlX3ZlcmlmaWVyID0gdmFsdWUudmFsdWU7XG4gIH1cbn07XG5jb25zdCBTVEFURV9NQVhfQUdFID0gNjAgKiAxNTtcbmNvbnN0IHN0YXRlID0gZXhwb3J0cy5zdGF0ZSA9IHtcbiAgYXN5bmMgY3JlYXRlKG9wdGlvbnMsIGNvb2tpZXMsIHJlc1BhcmFtcykge1xuICAgIHZhciBfb3B0aW9ucyRwcm92aWRlciRjaGUsIF9vcHRpb25zJGNvb2tpZXMkc3RhdDtcbiAgICBpZiAoISgoX29wdGlvbnMkcHJvdmlkZXIkY2hlID0gb3B0aW9ucy5wcm92aWRlci5jaGVja3MpICE9PSBudWxsICYmIF9vcHRpb25zJHByb3ZpZGVyJGNoZSAhPT0gdm9pZCAwICYmIF9vcHRpb25zJHByb3ZpZGVyJGNoZS5pbmNsdWRlcyhcInN0YXRlXCIpKSkgcmV0dXJuO1xuICAgIGNvbnN0IHZhbHVlID0gX29wZW5pZENsaWVudC5nZW5lcmF0b3JzLnN0YXRlKCk7XG4gICAgcmVzUGFyYW1zLnN0YXRlID0gdmFsdWU7XG4gICAgY29uc3QgbWF4QWdlID0gKF9vcHRpb25zJGNvb2tpZXMkc3RhdCA9IG9wdGlvbnMuY29va2llcy5zdGF0ZS5vcHRpb25zLm1heEFnZSkgIT09IG51bGwgJiYgX29wdGlvbnMkY29va2llcyRzdGF0ICE9PSB2b2lkIDAgPyBfb3B0aW9ucyRjb29raWVzJHN0YXQgOiBTVEFURV9NQVhfQUdFO1xuICAgIGNvb2tpZXMucHVzaChhd2FpdCBzaWduQ29va2llKFwic3RhdGVcIiwgdmFsdWUsIG1heEFnZSwgb3B0aW9ucykpO1xuICB9LFxuICBhc3luYyB1c2UoY29va2llcywgcmVzQ29va2llcywgb3B0aW9ucywgY2hlY2tzKSB7XG4gICAgdmFyIF9vcHRpb25zJHByb3ZpZGVyJGNoZTI7XG4gICAgaWYgKCEoKF9vcHRpb25zJHByb3ZpZGVyJGNoZTIgPSBvcHRpb25zLnByb3ZpZGVyLmNoZWNrcykgIT09IG51bGwgJiYgX29wdGlvbnMkcHJvdmlkZXIkY2hlMiAhPT0gdm9pZCAwICYmIF9vcHRpb25zJHByb3ZpZGVyJGNoZTIuaW5jbHVkZXMoXCJzdGF0ZVwiKSkpIHJldHVybjtcbiAgICBjb25zdCBzdGF0ZSA9IGNvb2tpZXMgPT09IG51bGwgfHwgY29va2llcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogY29va2llc1tvcHRpb25zLmNvb2tpZXMuc3RhdGUubmFtZV07XG4gICAgaWYgKCFzdGF0ZSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIlN0YXRlIGNvb2tpZSB3YXMgbWlzc2luZy5cIik7XG4gICAgY29uc3Qge1xuICAgICAgbmFtZVxuICAgIH0gPSBvcHRpb25zLmNvb2tpZXMuc3RhdGU7XG4gICAgY29uc3QgdmFsdWUgPSBhd2FpdCBqd3QuZGVjb2RlKHtcbiAgICAgIC4uLm9wdGlvbnMuand0LFxuICAgICAgdG9rZW46IHN0YXRlLFxuICAgICAgc2FsdDogbmFtZVxuICAgIH0pO1xuICAgIGlmICghKHZhbHVlICE9PSBudWxsICYmIHZhbHVlICE9PSB2b2lkIDAgJiYgdmFsdWUudmFsdWUpKSB0aHJvdyBuZXcgVHlwZUVycm9yKFwiU3RhdGUgdmFsdWUgY291bGQgbm90IGJlIHBhcnNlZC5cIik7XG4gICAgcmVzQ29va2llcy5wdXNoKHtcbiAgICAgIG5hbWUsXG4gICAgICB2YWx1ZTogXCJcIixcbiAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgLi4ub3B0aW9ucy5jb29raWVzLnN0YXRlLm9wdGlvbnMsXG4gICAgICAgIG1heEFnZTogMFxuICAgICAgfVxuICAgIH0pO1xuICAgIGNoZWNrcy5zdGF0ZSA9IHZhbHVlLnZhbHVlO1xuICB9XG59O1xuY29uc3QgTk9OQ0VfTUFYX0FHRSA9IDYwICogMTU7XG5jb25zdCBub25jZSA9IGV4cG9ydHMubm9uY2UgPSB7XG4gIGFzeW5jIGNyZWF0ZShvcHRpb25zLCBjb29raWVzLCByZXNQYXJhbXMpIHtcbiAgICB2YXIgX29wdGlvbnMkcHJvdmlkZXIkY2hlMywgX29wdGlvbnMkY29va2llcyRub25jO1xuICAgIGlmICghKChfb3B0aW9ucyRwcm92aWRlciRjaGUzID0gb3B0aW9ucy5wcm92aWRlci5jaGVja3MpICE9PSBudWxsICYmIF9vcHRpb25zJHByb3ZpZGVyJGNoZTMgIT09IHZvaWQgMCAmJiBfb3B0aW9ucyRwcm92aWRlciRjaGUzLmluY2x1ZGVzKFwibm9uY2VcIikpKSByZXR1cm47XG4gICAgY29uc3QgdmFsdWUgPSBfb3BlbmlkQ2xpZW50LmdlbmVyYXRvcnMubm9uY2UoKTtcbiAgICByZXNQYXJhbXMubm9uY2UgPSB2YWx1ZTtcbiAgICBjb25zdCBtYXhBZ2UgPSAoX29wdGlvbnMkY29va2llcyRub25jID0gb3B0aW9ucy5jb29raWVzLm5vbmNlLm9wdGlvbnMubWF4QWdlKSAhPT0gbnVsbCAmJiBfb3B0aW9ucyRjb29raWVzJG5vbmMgIT09IHZvaWQgMCA/IF9vcHRpb25zJGNvb2tpZXMkbm9uYyA6IE5PTkNFX01BWF9BR0U7XG4gICAgY29va2llcy5wdXNoKGF3YWl0IHNpZ25Db29raWUoXCJub25jZVwiLCB2YWx1ZSwgbWF4QWdlLCBvcHRpb25zKSk7XG4gIH0sXG4gIGFzeW5jIHVzZShjb29raWVzLCByZXNDb29raWVzLCBvcHRpb25zLCBjaGVja3MpIHtcbiAgICB2YXIgX29wdGlvbnMkcHJvdmlkZXIzO1xuICAgIGlmICghKChfb3B0aW9ucyRwcm92aWRlcjMgPSBvcHRpb25zLnByb3ZpZGVyKSAhPT0gbnVsbCAmJiBfb3B0aW9ucyRwcm92aWRlcjMgIT09IHZvaWQgMCAmJiAoX29wdGlvbnMkcHJvdmlkZXIzID0gX29wdGlvbnMkcHJvdmlkZXIzLmNoZWNrcykgIT09IG51bGwgJiYgX29wdGlvbnMkcHJvdmlkZXIzICE9PSB2b2lkIDAgJiYgX29wdGlvbnMkcHJvdmlkZXIzLmluY2x1ZGVzKFwibm9uY2VcIikpKSByZXR1cm47XG4gICAgY29uc3Qgbm9uY2UgPSBjb29raWVzID09PSBudWxsIHx8IGNvb2tpZXMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGNvb2tpZXNbb3B0aW9ucy5jb29raWVzLm5vbmNlLm5hbWVdO1xuICAgIGlmICghbm9uY2UpIHRocm93IG5ldyBUeXBlRXJyb3IoXCJOb25jZSBjb29raWUgd2FzIG1pc3NpbmcuXCIpO1xuICAgIGNvbnN0IHtcbiAgICAgIG5hbWVcbiAgICB9ID0gb3B0aW9ucy5jb29raWVzLm5vbmNlO1xuICAgIGNvbnN0IHZhbHVlID0gYXdhaXQgand0LmRlY29kZSh7XG4gICAgICAuLi5vcHRpb25zLmp3dCxcbiAgICAgIHRva2VuOiBub25jZSxcbiAgICAgIHNhbHQ6IG5hbWVcbiAgICB9KTtcbiAgICBpZiAoISh2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdm9pZCAwICYmIHZhbHVlLnZhbHVlKSkgdGhyb3cgbmV3IFR5cGVFcnJvcihcIk5vbmNlIHZhbHVlIGNvdWxkIG5vdCBiZSBwYXJzZWQuXCIpO1xuICAgIHJlc0Nvb2tpZXMucHVzaCh7XG4gICAgICBuYW1lLFxuICAgICAgdmFsdWU6IFwiXCIsXG4gICAgICBvcHRpb25zOiB7XG4gICAgICAgIC4uLm9wdGlvbnMuY29va2llcy5ub25jZS5vcHRpb25zLFxuICAgICAgICBtYXhBZ2U6IDBcbiAgICAgIH1cbiAgICB9KTtcbiAgICBjaGVja3Mubm9uY2UgPSB2YWx1ZS52YWx1ZTtcbiAgfVxufTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/oauth/checks.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/oauth/client-legacy.js":
+/*!****************************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/oauth/client-legacy.js ***!
+ \****************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.oAuth1Client = oAuth1Client;\nexports.oAuth1TokenStore = void 0;\nvar _oauth = __webpack_require__(/*! oauth */ \"(rsc)/./node_modules/oauth/index.js\");\nfunction oAuth1Client(options) {\n var _provider$version, _provider$encoding;\n const provider = options.provider;\n const oauth1Client = new _oauth.OAuth(provider.requestTokenUrl, provider.accessTokenUrl, provider.clientId, provider.clientSecret, (_provider$version = provider.version) !== null && _provider$version !== void 0 ? _provider$version : \"1.0\", provider.callbackUrl, (_provider$encoding = provider.encoding) !== null && _provider$encoding !== void 0 ? _provider$encoding : \"HMAC-SHA1\");\n const originalGet = oauth1Client.get.bind(oauth1Client);\n oauth1Client.get = async (...args) => {\n return await new Promise((resolve, reject) => {\n originalGet(...args, (error, result) => {\n if (error) {\n return reject(error);\n }\n resolve(result);\n });\n });\n };\n const originalGetOAuth1AccessToken = oauth1Client.getOAuthAccessToken.bind(oauth1Client);\n oauth1Client.getOAuthAccessToken = async (...args) => {\n return await new Promise((resolve, reject) => {\n originalGetOAuth1AccessToken(...args, (error, oauth_token, oauth_token_secret) => {\n if (error) {\n return reject(error);\n }\n resolve({\n oauth_token,\n oauth_token_secret\n });\n });\n });\n };\n const originalGetOAuthRequestToken = oauth1Client.getOAuthRequestToken.bind(oauth1Client);\n oauth1Client.getOAuthRequestToken = async (params = {}) => {\n return await new Promise((resolve, reject) => {\n originalGetOAuthRequestToken(params, (error, oauth_token, oauth_token_secret, params) => {\n if (error) {\n return reject(error);\n }\n resolve({\n oauth_token,\n oauth_token_secret,\n params\n });\n });\n });\n };\n return oauth1Client;\n}\nconst oAuth1TokenStore = exports.oAuth1TokenStore = new Map();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL29hdXRoL2NsaWVudC1sZWdhY3kuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysb0JBQW9CO0FBQ3BCLHdCQUF3QjtBQUN4QixhQUFhLG1CQUFPLENBQUMsa0RBQU87QUFDNUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBLHdEQUF3RDtBQUN4RDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSx5QkFBeUIsd0JBQXdCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL29hdXRoL2NsaWVudC1sZWdhY3kuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLm9BdXRoMUNsaWVudCA9IG9BdXRoMUNsaWVudDtcbmV4cG9ydHMub0F1dGgxVG9rZW5TdG9yZSA9IHZvaWQgMDtcbnZhciBfb2F1dGggPSByZXF1aXJlKFwib2F1dGhcIik7XG5mdW5jdGlvbiBvQXV0aDFDbGllbnQob3B0aW9ucykge1xuICB2YXIgX3Byb3ZpZGVyJHZlcnNpb24sIF9wcm92aWRlciRlbmNvZGluZztcbiAgY29uc3QgcHJvdmlkZXIgPSBvcHRpb25zLnByb3ZpZGVyO1xuICBjb25zdCBvYXV0aDFDbGllbnQgPSBuZXcgX29hdXRoLk9BdXRoKHByb3ZpZGVyLnJlcXVlc3RUb2tlblVybCwgcHJvdmlkZXIuYWNjZXNzVG9rZW5VcmwsIHByb3ZpZGVyLmNsaWVudElkLCBwcm92aWRlci5jbGllbnRTZWNyZXQsIChfcHJvdmlkZXIkdmVyc2lvbiA9IHByb3ZpZGVyLnZlcnNpb24pICE9PSBudWxsICYmIF9wcm92aWRlciR2ZXJzaW9uICE9PSB2b2lkIDAgPyBfcHJvdmlkZXIkdmVyc2lvbiA6IFwiMS4wXCIsIHByb3ZpZGVyLmNhbGxiYWNrVXJsLCAoX3Byb3ZpZGVyJGVuY29kaW5nID0gcHJvdmlkZXIuZW5jb2RpbmcpICE9PSBudWxsICYmIF9wcm92aWRlciRlbmNvZGluZyAhPT0gdm9pZCAwID8gX3Byb3ZpZGVyJGVuY29kaW5nIDogXCJITUFDLVNIQTFcIik7XG4gIGNvbnN0IG9yaWdpbmFsR2V0ID0gb2F1dGgxQ2xpZW50LmdldC5iaW5kKG9hdXRoMUNsaWVudCk7XG4gIG9hdXRoMUNsaWVudC5nZXQgPSBhc3luYyAoLi4uYXJncykgPT4ge1xuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBvcmlnaW5hbEdldCguLi5hcmdzLCAoZXJyb3IsIHJlc3VsdCkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKHJlc3VsdCk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbiAgY29uc3Qgb3JpZ2luYWxHZXRPQXV0aDFBY2Nlc3NUb2tlbiA9IG9hdXRoMUNsaWVudC5nZXRPQXV0aEFjY2Vzc1Rva2VuLmJpbmQob2F1dGgxQ2xpZW50KTtcbiAgb2F1dGgxQ2xpZW50LmdldE9BdXRoQWNjZXNzVG9rZW4gPSBhc3luYyAoLi4uYXJncykgPT4ge1xuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBvcmlnaW5hbEdldE9BdXRoMUFjY2Vzc1Rva2VuKC4uLmFyZ3MsIChlcnJvciwgb2F1dGhfdG9rZW4sIG9hdXRoX3Rva2VuX3NlY3JldCkgPT4ge1xuICAgICAgICBpZiAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4gcmVqZWN0KGVycm9yKTtcbiAgICAgICAgfVxuICAgICAgICByZXNvbHZlKHtcbiAgICAgICAgICBvYXV0aF90b2tlbixcbiAgICAgICAgICBvYXV0aF90b2tlbl9zZWNyZXRcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfTtcbiAgY29uc3Qgb3JpZ2luYWxHZXRPQXV0aFJlcXVlc3RUb2tlbiA9IG9hdXRoMUNsaWVudC5nZXRPQXV0aFJlcXVlc3RUb2tlbi5iaW5kKG9hdXRoMUNsaWVudCk7XG4gIG9hdXRoMUNsaWVudC5nZXRPQXV0aFJlcXVlc3RUb2tlbiA9IGFzeW5jIChwYXJhbXMgPSB7fSkgPT4ge1xuICAgIHJldHVybiBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICBvcmlnaW5hbEdldE9BdXRoUmVxdWVzdFRva2VuKHBhcmFtcywgKGVycm9yLCBvYXV0aF90b2tlbiwgb2F1dGhfdG9rZW5fc2VjcmV0LCBwYXJhbXMpID0+IHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgcmV0dXJuIHJlamVjdChlcnJvcik7XG4gICAgICAgIH1cbiAgICAgICAgcmVzb2x2ZSh7XG4gICAgICAgICAgb2F1dGhfdG9rZW4sXG4gICAgICAgICAgb2F1dGhfdG9rZW5fc2VjcmV0LFxuICAgICAgICAgIHBhcmFtc1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9O1xuICByZXR1cm4gb2F1dGgxQ2xpZW50O1xufVxuY29uc3Qgb0F1dGgxVG9rZW5TdG9yZSA9IGV4cG9ydHMub0F1dGgxVG9rZW5TdG9yZSA9IG5ldyBNYXAoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/oauth/client-legacy.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/oauth/client.js":
+/*!*********************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/oauth/client.js ***!
+ \*********************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.openidClient = openidClient;\nvar _openidClient = __webpack_require__(/*! openid-client */ \"(rsc)/./node_modules/openid-client/lib/index.js\");\nasync function openidClient(options) {\n const provider = options.provider;\n if (provider.httpOptions) _openidClient.custom.setHttpOptionsDefaults(provider.httpOptions);\n let issuer;\n if (provider.wellKnown) {\n issuer = await _openidClient.Issuer.discover(provider.wellKnown);\n } else {\n var _provider$authorizati, _provider$token, _provider$userinfo;\n issuer = new _openidClient.Issuer({\n issuer: provider.issuer,\n authorization_endpoint: (_provider$authorizati = provider.authorization) === null || _provider$authorizati === void 0 ? void 0 : _provider$authorizati.url,\n token_endpoint: (_provider$token = provider.token) === null || _provider$token === void 0 ? void 0 : _provider$token.url,\n userinfo_endpoint: (_provider$userinfo = provider.userinfo) === null || _provider$userinfo === void 0 ? void 0 : _provider$userinfo.url,\n jwks_uri: provider.jwks_endpoint\n });\n }\n const client = new issuer.Client({\n client_id: provider.clientId,\n client_secret: provider.clientSecret,\n redirect_uris: [provider.callbackUrl],\n ...provider.client\n }, provider.jwks);\n client[_openidClient.custom.clock_tolerance] = 10;\n return client;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL29hdXRoL2NsaWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixvQkFBb0I7QUFDcEIsb0JBQW9CLG1CQUFPLENBQUMsc0VBQWU7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9saWIvb2F1dGgvY2xpZW50LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5vcGVuaWRDbGllbnQgPSBvcGVuaWRDbGllbnQ7XG52YXIgX29wZW5pZENsaWVudCA9IHJlcXVpcmUoXCJvcGVuaWQtY2xpZW50XCIpO1xuYXN5bmMgZnVuY3Rpb24gb3BlbmlkQ2xpZW50KG9wdGlvbnMpIHtcbiAgY29uc3QgcHJvdmlkZXIgPSBvcHRpb25zLnByb3ZpZGVyO1xuICBpZiAocHJvdmlkZXIuaHR0cE9wdGlvbnMpIF9vcGVuaWRDbGllbnQuY3VzdG9tLnNldEh0dHBPcHRpb25zRGVmYXVsdHMocHJvdmlkZXIuaHR0cE9wdGlvbnMpO1xuICBsZXQgaXNzdWVyO1xuICBpZiAocHJvdmlkZXIud2VsbEtub3duKSB7XG4gICAgaXNzdWVyID0gYXdhaXQgX29wZW5pZENsaWVudC5Jc3N1ZXIuZGlzY292ZXIocHJvdmlkZXIud2VsbEtub3duKTtcbiAgfSBlbHNlIHtcbiAgICB2YXIgX3Byb3ZpZGVyJGF1dGhvcml6YXRpLCBfcHJvdmlkZXIkdG9rZW4sIF9wcm92aWRlciR1c2VyaW5mbztcbiAgICBpc3N1ZXIgPSBuZXcgX29wZW5pZENsaWVudC5Jc3N1ZXIoe1xuICAgICAgaXNzdWVyOiBwcm92aWRlci5pc3N1ZXIsXG4gICAgICBhdXRob3JpemF0aW9uX2VuZHBvaW50OiAoX3Byb3ZpZGVyJGF1dGhvcml6YXRpID0gcHJvdmlkZXIuYXV0aG9yaXphdGlvbikgPT09IG51bGwgfHwgX3Byb3ZpZGVyJGF1dGhvcml6YXRpID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvdmlkZXIkYXV0aG9yaXphdGkudXJsLFxuICAgICAgdG9rZW5fZW5kcG9pbnQ6IChfcHJvdmlkZXIkdG9rZW4gPSBwcm92aWRlci50b2tlbikgPT09IG51bGwgfHwgX3Byb3ZpZGVyJHRva2VuID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvdmlkZXIkdG9rZW4udXJsLFxuICAgICAgdXNlcmluZm9fZW5kcG9pbnQ6IChfcHJvdmlkZXIkdXNlcmluZm8gPSBwcm92aWRlci51c2VyaW5mbykgPT09IG51bGwgfHwgX3Byb3ZpZGVyJHVzZXJpbmZvID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcHJvdmlkZXIkdXNlcmluZm8udXJsLFxuICAgICAgandrc191cmk6IHByb3ZpZGVyLmp3a3NfZW5kcG9pbnRcbiAgICB9KTtcbiAgfVxuICBjb25zdCBjbGllbnQgPSBuZXcgaXNzdWVyLkNsaWVudCh7XG4gICAgY2xpZW50X2lkOiBwcm92aWRlci5jbGllbnRJZCxcbiAgICBjbGllbnRfc2VjcmV0OiBwcm92aWRlci5jbGllbnRTZWNyZXQsXG4gICAgcmVkaXJlY3RfdXJpczogW3Byb3ZpZGVyLmNhbGxiYWNrVXJsXSxcbiAgICAuLi5wcm92aWRlci5jbGllbnRcbiAgfSwgcHJvdmlkZXIuandrcyk7XG4gIGNsaWVudFtfb3BlbmlkQ2xpZW50LmN1c3RvbS5jbG9ja190b2xlcmFuY2VdID0gMTA7XG4gIHJldHVybiBjbGllbnQ7XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/oauth/client.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/providers.js":
+/*!******************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/providers.js ***!
+ \******************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = parseProviders;\nvar _merge = __webpack_require__(/*! ../../utils/merge */ \"(rsc)/./node_modules/next-auth/utils/merge.js\");\nfunction parseProviders(params) {\n const {\n url,\n providerId\n } = params;\n const providers = params.providers.map(({\n options: userOptions,\n ...rest\n }) => {\n var _ref;\n if (rest.type === \"oauth\") {\n var _normalizedUserOption;\n const normalizedOptions = normalizeOAuthOptions(rest);\n const normalizedUserOptions = normalizeOAuthOptions(userOptions, true);\n const id = (_normalizedUserOption = normalizedUserOptions === null || normalizedUserOptions === void 0 ? void 0 : normalizedUserOptions.id) !== null && _normalizedUserOption !== void 0 ? _normalizedUserOption : rest.id;\n return (0, _merge.merge)(normalizedOptions, {\n ...normalizedUserOptions,\n signinUrl: `${url}/signin/${id}`,\n callbackUrl: `${url}/callback/${id}`\n });\n }\n const id = (_ref = userOptions === null || userOptions === void 0 ? void 0 : userOptions.id) !== null && _ref !== void 0 ? _ref : rest.id;\n return (0, _merge.merge)(rest, {\n ...userOptions,\n signinUrl: `${url}/signin/${id}`,\n callbackUrl: `${url}/callback/${id}`\n });\n });\n return {\n providers,\n provider: providers.find(({\n id\n }) => id === providerId)\n };\n}\nfunction normalizeOAuthOptions(oauthOptions, isUserOptions = false) {\n var _normalized$version;\n if (!oauthOptions) return;\n const normalized = Object.entries(oauthOptions).reduce((acc, [key, value]) => {\n if ([\"authorization\", \"token\", \"userinfo\"].includes(key) && typeof value === \"string\") {\n var _url$searchParams;\n const url = new URL(value);\n acc[key] = {\n url: `${url.origin}${url.pathname}`,\n params: Object.fromEntries((_url$searchParams = url.searchParams) !== null && _url$searchParams !== void 0 ? _url$searchParams : [])\n };\n } else {\n acc[key] = value;\n }\n return acc;\n }, {});\n if (!isUserOptions && !((_normalized$version = normalized.version) !== null && _normalized$version !== void 0 && _normalized$version.startsWith(\"1.\"))) {\n var _ref2, _normalized$idToken, _normalized$wellKnown, _normalized$authoriza;\n normalized.idToken = Boolean((_ref2 = (_normalized$idToken = normalized.idToken) !== null && _normalized$idToken !== void 0 ? _normalized$idToken : (_normalized$wellKnown = normalized.wellKnown) === null || _normalized$wellKnown === void 0 ? void 0 : _normalized$wellKnown.includes(\"openid-configuration\")) !== null && _ref2 !== void 0 ? _ref2 : (_normalized$authoriza = normalized.authorization) === null || _normalized$authoriza === void 0 || (_normalized$authoriza = _normalized$authoriza.params) === null || _normalized$authoriza === void 0 || (_normalized$authoriza = _normalized$authoriza.scope) === null || _normalized$authoriza === void 0 ? void 0 : _normalized$authoriza.includes(\"openid\"));\n if (!normalized.checks) normalized.checks = [\"state\"];\n }\n return normalized;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL3Byb3ZpZGVycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmLGFBQWEsbUJBQU8sQ0FBQyx3RUFBbUI7QUFDeEM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxzQkFBc0IsSUFBSSxVQUFVLEdBQUc7QUFDdkMsd0JBQXdCLElBQUksWUFBWSxHQUFHO0FBQzNDLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLG9CQUFvQixJQUFJLFVBQVUsR0FBRztBQUNyQyxzQkFBc0IsSUFBSSxZQUFZLEdBQUc7QUFDekMsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixXQUFXLEVBQUUsYUFBYTtBQUMxQztBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBLEdBQUcsSUFBSTtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL3Byb3ZpZGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHBhcnNlUHJvdmlkZXJzO1xudmFyIF9tZXJnZSA9IHJlcXVpcmUoXCIuLi8uLi91dGlscy9tZXJnZVwiKTtcbmZ1bmN0aW9uIHBhcnNlUHJvdmlkZXJzKHBhcmFtcykge1xuICBjb25zdCB7XG4gICAgdXJsLFxuICAgIHByb3ZpZGVySWRcbiAgfSA9IHBhcmFtcztcbiAgY29uc3QgcHJvdmlkZXJzID0gcGFyYW1zLnByb3ZpZGVycy5tYXAoKHtcbiAgICBvcHRpb25zOiB1c2VyT3B0aW9ucyxcbiAgICAuLi5yZXN0XG4gIH0pID0+IHtcbiAgICB2YXIgX3JlZjtcbiAgICBpZiAocmVzdC50eXBlID09PSBcIm9hdXRoXCIpIHtcbiAgICAgIHZhciBfbm9ybWFsaXplZFVzZXJPcHRpb247XG4gICAgICBjb25zdCBub3JtYWxpemVkT3B0aW9ucyA9IG5vcm1hbGl6ZU9BdXRoT3B0aW9ucyhyZXN0KTtcbiAgICAgIGNvbnN0IG5vcm1hbGl6ZWRVc2VyT3B0aW9ucyA9IG5vcm1hbGl6ZU9BdXRoT3B0aW9ucyh1c2VyT3B0aW9ucywgdHJ1ZSk7XG4gICAgICBjb25zdCBpZCA9IChfbm9ybWFsaXplZFVzZXJPcHRpb24gPSBub3JtYWxpemVkVXNlck9wdGlvbnMgPT09IG51bGwgfHwgbm9ybWFsaXplZFVzZXJPcHRpb25zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBub3JtYWxpemVkVXNlck9wdGlvbnMuaWQpICE9PSBudWxsICYmIF9ub3JtYWxpemVkVXNlck9wdGlvbiAhPT0gdm9pZCAwID8gX25vcm1hbGl6ZWRVc2VyT3B0aW9uIDogcmVzdC5pZDtcbiAgICAgIHJldHVybiAoMCwgX21lcmdlLm1lcmdlKShub3JtYWxpemVkT3B0aW9ucywge1xuICAgICAgICAuLi5ub3JtYWxpemVkVXNlck9wdGlvbnMsXG4gICAgICAgIHNpZ25pblVybDogYCR7dXJsfS9zaWduaW4vJHtpZH1gLFxuICAgICAgICBjYWxsYmFja1VybDogYCR7dXJsfS9jYWxsYmFjay8ke2lkfWBcbiAgICAgIH0pO1xuICAgIH1cbiAgICBjb25zdCBpZCA9IChfcmVmID0gdXNlck9wdGlvbnMgPT09IG51bGwgfHwgdXNlck9wdGlvbnMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHVzZXJPcHRpb25zLmlkKSAhPT0gbnVsbCAmJiBfcmVmICE9PSB2b2lkIDAgPyBfcmVmIDogcmVzdC5pZDtcbiAgICByZXR1cm4gKDAsIF9tZXJnZS5tZXJnZSkocmVzdCwge1xuICAgICAgLi4udXNlck9wdGlvbnMsXG4gICAgICBzaWduaW5Vcmw6IGAke3VybH0vc2lnbmluLyR7aWR9YCxcbiAgICAgIGNhbGxiYWNrVXJsOiBgJHt1cmx9L2NhbGxiYWNrLyR7aWR9YFxuICAgIH0pO1xuICB9KTtcbiAgcmV0dXJuIHtcbiAgICBwcm92aWRlcnMsXG4gICAgcHJvdmlkZXI6IHByb3ZpZGVycy5maW5kKCh7XG4gICAgICBpZFxuICAgIH0pID0+IGlkID09PSBwcm92aWRlcklkKVxuICB9O1xufVxuZnVuY3Rpb24gbm9ybWFsaXplT0F1dGhPcHRpb25zKG9hdXRoT3B0aW9ucywgaXNVc2VyT3B0aW9ucyA9IGZhbHNlKSB7XG4gIHZhciBfbm9ybWFsaXplZCR2ZXJzaW9uO1xuICBpZiAoIW9hdXRoT3B0aW9ucykgcmV0dXJuO1xuICBjb25zdCBub3JtYWxpemVkID0gT2JqZWN0LmVudHJpZXMob2F1dGhPcHRpb25zKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgaWYgKFtcImF1dGhvcml6YXRpb25cIiwgXCJ0b2tlblwiLCBcInVzZXJpbmZvXCJdLmluY2x1ZGVzKGtleSkgJiYgdHlwZW9mIHZhbHVlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICB2YXIgX3VybCRzZWFyY2hQYXJhbXM7XG4gICAgICBjb25zdCB1cmwgPSBuZXcgVVJMKHZhbHVlKTtcbiAgICAgIGFjY1trZXldID0ge1xuICAgICAgICB1cmw6IGAke3VybC5vcmlnaW59JHt1cmwucGF0aG5hbWV9YCxcbiAgICAgICAgcGFyYW1zOiBPYmplY3QuZnJvbUVudHJpZXMoKF91cmwkc2VhcmNoUGFyYW1zID0gdXJsLnNlYXJjaFBhcmFtcykgIT09IG51bGwgJiYgX3VybCRzZWFyY2hQYXJhbXMgIT09IHZvaWQgMCA/IF91cmwkc2VhcmNoUGFyYW1zIDogW10pXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICBhY2Nba2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSk7XG4gIGlmICghaXNVc2VyT3B0aW9ucyAmJiAhKChfbm9ybWFsaXplZCR2ZXJzaW9uID0gbm9ybWFsaXplZC52ZXJzaW9uKSAhPT0gbnVsbCAmJiBfbm9ybWFsaXplZCR2ZXJzaW9uICE9PSB2b2lkIDAgJiYgX25vcm1hbGl6ZWQkdmVyc2lvbi5zdGFydHNXaXRoKFwiMS5cIikpKSB7XG4gICAgdmFyIF9yZWYyLCBfbm9ybWFsaXplZCRpZFRva2VuLCBfbm9ybWFsaXplZCR3ZWxsS25vd24sIF9ub3JtYWxpemVkJGF1dGhvcml6YTtcbiAgICBub3JtYWxpemVkLmlkVG9rZW4gPSBCb29sZWFuKChfcmVmMiA9IChfbm9ybWFsaXplZCRpZFRva2VuID0gbm9ybWFsaXplZC5pZFRva2VuKSAhPT0gbnVsbCAmJiBfbm9ybWFsaXplZCRpZFRva2VuICE9PSB2b2lkIDAgPyBfbm9ybWFsaXplZCRpZFRva2VuIDogKF9ub3JtYWxpemVkJHdlbGxLbm93biA9IG5vcm1hbGl6ZWQud2VsbEtub3duKSA9PT0gbnVsbCB8fCBfbm9ybWFsaXplZCR3ZWxsS25vd24gPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9ub3JtYWxpemVkJHdlbGxLbm93bi5pbmNsdWRlcyhcIm9wZW5pZC1jb25maWd1cmF0aW9uXCIpKSAhPT0gbnVsbCAmJiBfcmVmMiAhPT0gdm9pZCAwID8gX3JlZjIgOiAoX25vcm1hbGl6ZWQkYXV0aG9yaXphID0gbm9ybWFsaXplZC5hdXRob3JpemF0aW9uKSA9PT0gbnVsbCB8fCBfbm9ybWFsaXplZCRhdXRob3JpemEgPT09IHZvaWQgMCB8fCAoX25vcm1hbGl6ZWQkYXV0aG9yaXphID0gX25vcm1hbGl6ZWQkYXV0aG9yaXphLnBhcmFtcykgPT09IG51bGwgfHwgX25vcm1hbGl6ZWQkYXV0aG9yaXphID09PSB2b2lkIDAgfHwgKF9ub3JtYWxpemVkJGF1dGhvcml6YSA9IF9ub3JtYWxpemVkJGF1dGhvcml6YS5zY29wZSkgPT09IG51bGwgfHwgX25vcm1hbGl6ZWQkYXV0aG9yaXphID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfbm9ybWFsaXplZCRhdXRob3JpemEuaW5jbHVkZXMoXCJvcGVuaWRcIikpO1xuICAgIGlmICghbm9ybWFsaXplZC5jaGVja3MpIG5vcm1hbGl6ZWQuY2hlY2tzID0gW1wic3RhdGVcIl07XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/providers.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/lib/utils.js":
+/*!**************************************************!*\
+ !*** ./node_modules/next-auth/core/lib/utils.js ***!
+ \**************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.createSecret = createSecret;\nexports.fromDate = fromDate;\nexports.hashToken = hashToken;\nvar _crypto = __webpack_require__(/*! crypto */ \"crypto\");\nfunction fromDate(time, date = Date.now()) {\n return new Date(date + time * 1000);\n}\nfunction hashToken(token, options) {\n var _provider$secret;\n const {\n provider,\n secret\n } = options;\n return (0, _crypto.createHash)(\"sha256\").update(`${token}${(_provider$secret = provider.secret) !== null && _provider$secret !== void 0 ? _provider$secret : secret}`).digest(\"hex\");\n}\nfunction createSecret(params) {\n var _authOptions$secret;\n const {\n authOptions,\n url\n } = params;\n return (_authOptions$secret = authOptions.secret) !== null && _authOptions$secret !== void 0 ? _authOptions$secret : (0, _crypto.createHash)(\"sha256\").update(JSON.stringify({\n ...url,\n ...authOptions\n })).digest(\"hex\");\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvbGliL3V0aWxzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLG9CQUFvQjtBQUNwQixnQkFBZ0I7QUFDaEIsaUJBQWlCO0FBQ2pCLGNBQWMsbUJBQU8sQ0FBQyxzQkFBUTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLHFEQUFxRCxNQUFNLEVBQUUseUdBQXlHO0FBQ3RLO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9saWIvdXRpbHMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmNyZWF0ZVNlY3JldCA9IGNyZWF0ZVNlY3JldDtcbmV4cG9ydHMuZnJvbURhdGUgPSBmcm9tRGF0ZTtcbmV4cG9ydHMuaGFzaFRva2VuID0gaGFzaFRva2VuO1xudmFyIF9jcnlwdG8gPSByZXF1aXJlKFwiY3J5cHRvXCIpO1xuZnVuY3Rpb24gZnJvbURhdGUodGltZSwgZGF0ZSA9IERhdGUubm93KCkpIHtcbiAgcmV0dXJuIG5ldyBEYXRlKGRhdGUgKyB0aW1lICogMTAwMCk7XG59XG5mdW5jdGlvbiBoYXNoVG9rZW4odG9rZW4sIG9wdGlvbnMpIHtcbiAgdmFyIF9wcm92aWRlciRzZWNyZXQ7XG4gIGNvbnN0IHtcbiAgICBwcm92aWRlcixcbiAgICBzZWNyZXRcbiAgfSA9IG9wdGlvbnM7XG4gIHJldHVybiAoMCwgX2NyeXB0by5jcmVhdGVIYXNoKShcInNoYTI1NlwiKS51cGRhdGUoYCR7dG9rZW59JHsoX3Byb3ZpZGVyJHNlY3JldCA9IHByb3ZpZGVyLnNlY3JldCkgIT09IG51bGwgJiYgX3Byb3ZpZGVyJHNlY3JldCAhPT0gdm9pZCAwID8gX3Byb3ZpZGVyJHNlY3JldCA6IHNlY3JldH1gKS5kaWdlc3QoXCJoZXhcIik7XG59XG5mdW5jdGlvbiBjcmVhdGVTZWNyZXQocGFyYW1zKSB7XG4gIHZhciBfYXV0aE9wdGlvbnMkc2VjcmV0O1xuICBjb25zdCB7XG4gICAgYXV0aE9wdGlvbnMsXG4gICAgdXJsXG4gIH0gPSBwYXJhbXM7XG4gIHJldHVybiAoX2F1dGhPcHRpb25zJHNlY3JldCA9IGF1dGhPcHRpb25zLnNlY3JldCkgIT09IG51bGwgJiYgX2F1dGhPcHRpb25zJHNlY3JldCAhPT0gdm9pZCAwID8gX2F1dGhPcHRpb25zJHNlY3JldCA6ICgwLCBfY3J5cHRvLmNyZWF0ZUhhc2gpKFwic2hhMjU2XCIpLnVwZGF0ZShKU09OLnN0cmluZ2lmeSh7XG4gICAgLi4udXJsLFxuICAgIC4uLmF1dGhPcHRpb25zXG4gIH0pKS5kaWdlc3QoXCJoZXhcIik7XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/lib/utils.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/pages/error.js":
+/*!****************************************************!*\
+ !*** ./node_modules/next-auth/core/pages/error.js ***!
+ \****************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = ErrorPage;\nvar _preact = __webpack_require__(/*! preact */ \"(rsc)/./node_modules/preact/dist/preact.js\");\nfunction ErrorPage(props) {\n var _errors$error$toLower;\n const {\n url,\n error = \"default\",\n theme\n } = props;\n const signinPageUrl = `${url}/signin`;\n const errors = {\n default: {\n status: 200,\n heading: \"Error\",\n message: (0, _preact.h)(\"p\", null, (0, _preact.h)(\"a\", {\n className: \"site\",\n href: url === null || url === void 0 ? void 0 : url.origin\n }, url === null || url === void 0 ? void 0 : url.host))\n },\n configuration: {\n status: 500,\n heading: \"Server error\",\n message: (0, _preact.h)(\"div\", null, (0, _preact.h)(\"p\", null, \"There is a problem with the server configuration.\"), (0, _preact.h)(\"p\", null, \"Check the server logs for more information.\"))\n },\n accessdenied: {\n status: 403,\n heading: \"Access Denied\",\n message: (0, _preact.h)(\"div\", null, (0, _preact.h)(\"p\", null, \"You do not have permission to sign in.\"), (0, _preact.h)(\"p\", null, (0, _preact.h)(\"a\", {\n className: \"button\",\n href: signinPageUrl\n }, \"Sign in\")))\n },\n verification: {\n status: 403,\n heading: \"Unable to sign in\",\n message: (0, _preact.h)(\"div\", null, (0, _preact.h)(\"p\", null, \"The sign in link is no longer valid.\"), (0, _preact.h)(\"p\", null, \"It may have been used already or it may have expired.\")),\n signin: (0, _preact.h)(\"a\", {\n className: \"button\",\n href: signinPageUrl\n }, \"Sign in\")\n }\n };\n const {\n status,\n heading,\n message,\n signin\n } = (_errors$error$toLower = errors[error.toLowerCase()]) !== null && _errors$error$toLower !== void 0 ? _errors$error$toLower : errors.default;\n return {\n status,\n html: (0, _preact.h)(\"div\", {\n className: \"error\"\n }, (theme === null || theme === void 0 ? void 0 : theme.brandColor) && (0, _preact.h)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `\n :root {\n --brand-color: ${theme === null || theme === void 0 ? void 0 : theme.brandColor}\n }\n `\n }\n }), (0, _preact.h)(\"div\", {\n className: \"card\"\n }, (theme === null || theme === void 0 ? void 0 : theme.logo) && (0, _preact.h)(\"img\", {\n src: theme.logo,\n alt: \"Logo\",\n className: \"logo\"\n }), (0, _preact.h)(\"h1\", null, heading), (0, _preact.h)(\"div\", {\n className: \"message\"\n }, message), signin))\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcGFnZXMvZXJyb3IuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWU7QUFDZixjQUFjLG1CQUFPLENBQUMsMERBQVE7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKLDJCQUEyQixJQUFJO0FBQy9CO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLDJCQUEyQjtBQUMzQjtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsS0FBSztBQUNMO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9wYWdlcy9lcnJvci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IEVycm9yUGFnZTtcbnZhciBfcHJlYWN0ID0gcmVxdWlyZShcInByZWFjdFwiKTtcbmZ1bmN0aW9uIEVycm9yUGFnZShwcm9wcykge1xuICB2YXIgX2Vycm9ycyRlcnJvciR0b0xvd2VyO1xuICBjb25zdCB7XG4gICAgdXJsLFxuICAgIGVycm9yID0gXCJkZWZhdWx0XCIsXG4gICAgdGhlbWVcbiAgfSA9IHByb3BzO1xuICBjb25zdCBzaWduaW5QYWdlVXJsID0gYCR7dXJsfS9zaWduaW5gO1xuICBjb25zdCBlcnJvcnMgPSB7XG4gICAgZGVmYXVsdDoge1xuICAgICAgc3RhdHVzOiAyMDAsXG4gICAgICBoZWFkaW5nOiBcIkVycm9yXCIsXG4gICAgICBtZXNzYWdlOiAoMCwgX3ByZWFjdC5oKShcInBcIiwgbnVsbCwgKDAsIF9wcmVhY3QuaCkoXCJhXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcInNpdGVcIixcbiAgICAgICAgaHJlZjogdXJsID09PSBudWxsIHx8IHVybCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdXJsLm9yaWdpblxuICAgICAgfSwgdXJsID09PSBudWxsIHx8IHVybCA9PT0gdm9pZCAwID8gdm9pZCAwIDogdXJsLmhvc3QpKVxuICAgIH0sXG4gICAgY29uZmlndXJhdGlvbjoge1xuICAgICAgc3RhdHVzOiA1MDAsXG4gICAgICBoZWFkaW5nOiBcIlNlcnZlciBlcnJvclwiLFxuICAgICAgbWVzc2FnZTogKDAsIF9wcmVhY3QuaCkoXCJkaXZcIiwgbnVsbCwgKDAsIF9wcmVhY3QuaCkoXCJwXCIsIG51bGwsIFwiVGhlcmUgaXMgYSBwcm9ibGVtIHdpdGggdGhlIHNlcnZlciBjb25maWd1cmF0aW9uLlwiKSwgKDAsIF9wcmVhY3QuaCkoXCJwXCIsIG51bGwsIFwiQ2hlY2sgdGhlIHNlcnZlciBsb2dzIGZvciBtb3JlIGluZm9ybWF0aW9uLlwiKSlcbiAgICB9LFxuICAgIGFjY2Vzc2RlbmllZDoge1xuICAgICAgc3RhdHVzOiA0MDMsXG4gICAgICBoZWFkaW5nOiBcIkFjY2VzcyBEZW5pZWRcIixcbiAgICAgIG1lc3NhZ2U6ICgwLCBfcHJlYWN0LmgpKFwiZGl2XCIsIG51bGwsICgwLCBfcHJlYWN0LmgpKFwicFwiLCBudWxsLCBcIllvdSBkbyBub3QgaGF2ZSBwZXJtaXNzaW9uIHRvIHNpZ24gaW4uXCIpLCAoMCwgX3ByZWFjdC5oKShcInBcIiwgbnVsbCwgKDAsIF9wcmVhY3QuaCkoXCJhXCIsIHtcbiAgICAgICAgY2xhc3NOYW1lOiBcImJ1dHRvblwiLFxuICAgICAgICBocmVmOiBzaWduaW5QYWdlVXJsXG4gICAgICB9LCBcIlNpZ24gaW5cIikpKVxuICAgIH0sXG4gICAgdmVyaWZpY2F0aW9uOiB7XG4gICAgICBzdGF0dXM6IDQwMyxcbiAgICAgIGhlYWRpbmc6IFwiVW5hYmxlIHRvIHNpZ24gaW5cIixcbiAgICAgIG1lc3NhZ2U6ICgwLCBfcHJlYWN0LmgpKFwiZGl2XCIsIG51bGwsICgwLCBfcHJlYWN0LmgpKFwicFwiLCBudWxsLCBcIlRoZSBzaWduIGluIGxpbmsgaXMgbm8gbG9uZ2VyIHZhbGlkLlwiKSwgKDAsIF9wcmVhY3QuaCkoXCJwXCIsIG51bGwsIFwiSXQgbWF5IGhhdmUgYmVlbiB1c2VkIGFscmVhZHkgb3IgaXQgbWF5IGhhdmUgZXhwaXJlZC5cIikpLFxuICAgICAgc2lnbmluOiAoMCwgX3ByZWFjdC5oKShcImFcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwiYnV0dG9uXCIsXG4gICAgICAgIGhyZWY6IHNpZ25pblBhZ2VVcmxcbiAgICAgIH0sIFwiU2lnbiBpblwiKVxuICAgIH1cbiAgfTtcbiAgY29uc3Qge1xuICAgIHN0YXR1cyxcbiAgICBoZWFkaW5nLFxuICAgIG1lc3NhZ2UsXG4gICAgc2lnbmluXG4gIH0gPSAoX2Vycm9ycyRlcnJvciR0b0xvd2VyID0gZXJyb3JzW2Vycm9yLnRvTG93ZXJDYXNlKCldKSAhPT0gbnVsbCAmJiBfZXJyb3JzJGVycm9yJHRvTG93ZXIgIT09IHZvaWQgMCA/IF9lcnJvcnMkZXJyb3IkdG9Mb3dlciA6IGVycm9ycy5kZWZhdWx0O1xuICByZXR1cm4ge1xuICAgIHN0YXR1cyxcbiAgICBodG1sOiAoMCwgX3ByZWFjdC5oKShcImRpdlwiLCB7XG4gICAgICBjbGFzc05hbWU6IFwiZXJyb3JcIlxuICAgIH0sICh0aGVtZSA9PT0gbnVsbCB8fCB0aGVtZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGhlbWUuYnJhbmRDb2xvcikgJiYgKDAsIF9wcmVhY3QuaCkoXCJzdHlsZVwiLCB7XG4gICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTDoge1xuICAgICAgICBfX2h0bWw6IGBcbiAgICAgICAgOnJvb3Qge1xuICAgICAgICAgIC0tYnJhbmQtY29sb3I6ICR7dGhlbWUgPT09IG51bGwgfHwgdGhlbWUgPT09IHZvaWQgMCA/IHZvaWQgMCA6IHRoZW1lLmJyYW5kQ29sb3J9XG4gICAgICAgIH1cbiAgICAgIGBcbiAgICAgIH1cbiAgICB9KSwgKDAsIF9wcmVhY3QuaCkoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcImNhcmRcIlxuICAgIH0sICh0aGVtZSA9PT0gbnVsbCB8fCB0aGVtZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGhlbWUubG9nbykgJiYgKDAsIF9wcmVhY3QuaCkoXCJpbWdcIiwge1xuICAgICAgc3JjOiB0aGVtZS5sb2dvLFxuICAgICAgYWx0OiBcIkxvZ29cIixcbiAgICAgIGNsYXNzTmFtZTogXCJsb2dvXCJcbiAgICB9KSwgKDAsIF9wcmVhY3QuaCkoXCJoMVwiLCBudWxsLCBoZWFkaW5nKSwgKDAsIF9wcmVhY3QuaCkoXCJkaXZcIiwge1xuICAgICAgY2xhc3NOYW1lOiBcIm1lc3NhZ2VcIlxuICAgIH0sIG1lc3NhZ2UpLCBzaWduaW4pKVxuICB9O1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/pages/error.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/pages/index.js":
+/*!****************************************************!*\
+ !*** ./node_modules/next-auth/core/pages/index.js ***!
+ \****************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(rsc)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = renderPage;\nvar _preactRenderToString = _interopRequireDefault(__webpack_require__(/*! preact-render-to-string */ \"(rsc)/./node_modules/preact-render-to-string/dist/index.js\"));\nvar _signin = _interopRequireDefault(__webpack_require__(/*! ./signin */ \"(rsc)/./node_modules/next-auth/core/pages/signin.js\"));\nvar _signout = _interopRequireDefault(__webpack_require__(/*! ./signout */ \"(rsc)/./node_modules/next-auth/core/pages/signout.js\"));\nvar _verifyRequest = _interopRequireDefault(__webpack_require__(/*! ./verify-request */ \"(rsc)/./node_modules/next-auth/core/pages/verify-request.js\"));\nvar _error = _interopRequireDefault(__webpack_require__(/*! ./error */ \"(rsc)/./node_modules/next-auth/core/pages/error.js\"));\nvar _css = _interopRequireDefault(__webpack_require__(/*! ../../css */ \"(rsc)/./node_modules/next-auth/css/index.js\"));\nfunction renderPage(params) {\n const {\n url,\n theme,\n query,\n cookies\n } = params;\n function send({\n html,\n title,\n status\n }) {\n var _theme$colorScheme;\n return {\n cookies,\n status,\n headers: [{\n key: \"Content-Type\",\n value: \"text/html\"\n }],\n body: `
${title}${(0, _preactRenderToString.default)(html)}
`\n };\n }\n return {\n signin(props) {\n return send({\n html: (0, _signin.default)({\n csrfToken: params.csrfToken,\n providers: params.providers,\n callbackUrl: params.callbackUrl,\n theme,\n ...query,\n ...props\n }),\n title: \"Sign In\"\n });\n },\n signout(props) {\n return send({\n html: (0, _signout.default)({\n csrfToken: params.csrfToken,\n url,\n theme,\n ...props\n }),\n title: \"Sign Out\"\n });\n },\n verifyRequest(props) {\n return send({\n html: (0, _verifyRequest.default)({\n url,\n theme,\n ...props\n }),\n title: \"Verify Request\"\n });\n },\n error(props) {\n return send({\n ...(0, _error.default)({\n url,\n theme,\n ...props\n }),\n title: \"Error\"\n });\n }\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcGFnZXMvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsNkJBQTZCLG1CQUFPLENBQUMsMEhBQThDO0FBQ25GLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGtCQUFlO0FBQ2YsbURBQW1ELG1CQUFPLENBQUMsMkZBQXlCO0FBQ3BGLHFDQUFxQyxtQkFBTyxDQUFDLHFFQUFVO0FBQ3ZELHNDQUFzQyxtQkFBTyxDQUFDLHVFQUFXO0FBQ3pELDRDQUE0QyxtQkFBTyxDQUFDLHFGQUFrQjtBQUN0RSxvQ0FBb0MsbUJBQU8sQ0FBQyxtRUFBUztBQUNyRCxrQ0FBa0MsbUJBQU8sQ0FBQyw4REFBVztBQUNyRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsNE1BQTRNLG9CQUFvQixpQkFBaUIsTUFBTSxnREFBZ0QsK0pBQStKLHNCQUFzQix5Q0FBeUM7QUFDcmdCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9jb3JlL3BhZ2VzL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSByZW5kZXJQYWdlO1xudmFyIF9wcmVhY3RSZW5kZXJUb1N0cmluZyA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcInByZWFjdC1yZW5kZXItdG8tc3RyaW5nXCIpKTtcbnZhciBfc2lnbmluID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9zaWduaW5cIikpO1xudmFyIF9zaWdub3V0ID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9zaWdub3V0XCIpKTtcbnZhciBfdmVyaWZ5UmVxdWVzdCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vdmVyaWZ5LXJlcXVlc3RcIikpO1xudmFyIF9lcnJvciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vZXJyb3JcIikpO1xudmFyIF9jc3MgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi8uLi9jc3NcIikpO1xuZnVuY3Rpb24gcmVuZGVyUGFnZShwYXJhbXMpIHtcbiAgY29uc3Qge1xuICAgIHVybCxcbiAgICB0aGVtZSxcbiAgICBxdWVyeSxcbiAgICBjb29raWVzXG4gIH0gPSBwYXJhbXM7XG4gIGZ1bmN0aW9uIHNlbmQoe1xuICAgIGh0bWwsXG4gICAgdGl0bGUsXG4gICAgc3RhdHVzXG4gIH0pIHtcbiAgICB2YXIgX3RoZW1lJGNvbG9yU2NoZW1lO1xuICAgIHJldHVybiB7XG4gICAgICBjb29raWVzLFxuICAgICAgc3RhdHVzLFxuICAgICAgaGVhZGVyczogW3tcbiAgICAgICAga2V5OiBcIkNvbnRlbnQtVHlwZVwiLFxuICAgICAgICB2YWx1ZTogXCJ0ZXh0L2h0bWxcIlxuICAgICAgfV0sXG4gICAgICBib2R5OiBgPCFET0NUWVBFIGh0bWw+PGh0bWwgbGFuZz1cImVuXCI+PGhlYWQ+PG1ldGEgY2hhcnNldD1cIlVURi04XCI+PG1ldGEgaHR0cC1lcXVpdj1cIlgtVUEtQ29tcGF0aWJsZVwiIGNvbnRlbnQ9XCJJRT1lZGdlXCI+PG1ldGEgbmFtZT1cInZpZXdwb3J0XCIgY29udGVudD1cIndpZHRoPWRldmljZS13aWR0aCwgaW5pdGlhbC1zY2FsZT0xLjBcIj48c3R5bGU+JHsoMCwgX2Nzcy5kZWZhdWx0KSgpfTwvc3R5bGU+PHRpdGxlPiR7dGl0bGV9PC90aXRsZT48L2hlYWQ+PGJvZHkgY2xhc3M9XCJfX25leHQtYXV0aC10aGVtZS0keyhfdGhlbWUkY29sb3JTY2hlbWUgPSB0aGVtZSA9PT0gbnVsbCB8fCB0aGVtZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogdGhlbWUuY29sb3JTY2hlbWUpICE9PSBudWxsICYmIF90aGVtZSRjb2xvclNjaGVtZSAhPT0gdm9pZCAwID8gX3RoZW1lJGNvbG9yU2NoZW1lIDogXCJhdXRvXCJ9XCI+PGRpdiBjbGFzcz1cInBhZ2VcIj4keygwLCBfcHJlYWN0UmVuZGVyVG9TdHJpbmcuZGVmYXVsdCkoaHRtbCl9PC9kaXY+PC9ib2R5PjwvaHRtbD5gXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHNpZ25pbihwcm9wcykge1xuICAgICAgcmV0dXJuIHNlbmQoe1xuICAgICAgICBodG1sOiAoMCwgX3NpZ25pbi5kZWZhdWx0KSh7XG4gICAgICAgICAgY3NyZlRva2VuOiBwYXJhbXMuY3NyZlRva2VuLFxuICAgICAgICAgIHByb3ZpZGVyczogcGFyYW1zLnByb3ZpZGVycyxcbiAgICAgICAgICBjYWxsYmFja1VybDogcGFyYW1zLmNhbGxiYWNrVXJsLFxuICAgICAgICAgIHRoZW1lLFxuICAgICAgICAgIC4uLnF1ZXJ5LFxuICAgICAgICAgIC4uLnByb3BzXG4gICAgICAgIH0pLFxuICAgICAgICB0aXRsZTogXCJTaWduIEluXCJcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgc2lnbm91dChwcm9wcykge1xuICAgICAgcmV0dXJuIHNlbmQoe1xuICAgICAgICBodG1sOiAoMCwgX3NpZ25vdXQuZGVmYXVsdCkoe1xuICAgICAgICAgIGNzcmZUb2tlbjogcGFyYW1zLmNzcmZUb2tlbixcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAgdGhlbWUsXG4gICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSksXG4gICAgICAgIHRpdGxlOiBcIlNpZ24gT3V0XCJcbiAgICAgIH0pO1xuICAgIH0sXG4gICAgdmVyaWZ5UmVxdWVzdChwcm9wcykge1xuICAgICAgcmV0dXJuIHNlbmQoe1xuICAgICAgICBodG1sOiAoMCwgX3ZlcmlmeVJlcXVlc3QuZGVmYXVsdCkoe1xuICAgICAgICAgIHVybCxcbiAgICAgICAgICB0aGVtZSxcbiAgICAgICAgICAuLi5wcm9wc1xuICAgICAgICB9KSxcbiAgICAgICAgdGl0bGU6IFwiVmVyaWZ5IFJlcXVlc3RcIlxuICAgICAgfSk7XG4gICAgfSxcbiAgICBlcnJvcihwcm9wcykge1xuICAgICAgcmV0dXJuIHNlbmQoe1xuICAgICAgICAuLi4oMCwgX2Vycm9yLmRlZmF1bHQpKHtcbiAgICAgICAgICB1cmwsXG4gICAgICAgICAgdGhlbWUsXG4gICAgICAgICAgLi4ucHJvcHNcbiAgICAgICAgfSksXG4gICAgICAgIHRpdGxlOiBcIkVycm9yXCJcbiAgICAgIH0pO1xuICAgIH1cbiAgfTtcbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/pages/index.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/pages/signin.js":
+/*!*****************************************************!*\
+ !*** ./node_modules/next-auth/core/pages/signin.js ***!
+ \*****************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(rsc)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = SigninPage;\nvar _preact = __webpack_require__(/*! preact */ \"(rsc)/./node_modules/preact/dist/preact.js\");\nvar _extends2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/extends */ \"(rsc)/./node_modules/@babel/runtime/helpers/extends.js\"));\nfunction hexToRgba(hex, alpha = 1) {\n if (!hex) {\n return;\n }\n hex = hex.replace(/^#/, \"\");\n if (hex.length === 3) {\n hex = hex[0] + hex[0] + hex[1] + hex[1] + hex[2] + hex[2];\n }\n const bigint = parseInt(hex, 16);\n const r = bigint >> 16 & 255;\n const g = bigint >> 8 & 255;\n const b = bigint & 255;\n alpha = Math.min(Math.max(alpha, 0), 1);\n const rgba = `rgba(${r}, ${g}, ${b}, ${alpha})`;\n return rgba;\n}\nfunction SigninPage(props) {\n var _errors$errorType;\n const {\n csrfToken,\n providers,\n callbackUrl,\n theme,\n email,\n error: errorType\n } = props;\n const providersToRender = providers.filter(provider => {\n if (provider.type === \"oauth\" || provider.type === \"email\") {\n return true;\n } else if (provider.type === \"credentials\" && provider.credentials) {\n return true;\n }\n return false;\n });\n if (typeof document !== \"undefined\" && theme.buttonText) {\n document.documentElement.style.setProperty(\"--button-text-color\", theme.buttonText);\n }\n if (typeof document !== \"undefined\" && theme.brandColor) {\n document.documentElement.style.setProperty(\"--brand-color\", theme.brandColor);\n }\n const errors = {\n Signin: \"Try signing in with a different account.\",\n OAuthSignin: \"Try signing in with a different account.\",\n OAuthCallback: \"Try signing in with a different account.\",\n OAuthCreateAccount: \"Try signing in with a different account.\",\n EmailCreateAccount: \"Try signing in with a different account.\",\n Callback: \"Try signing in with a different account.\",\n OAuthAccountNotLinked: \"To confirm your identity, sign in with the same account you used originally.\",\n EmailSignin: \"The e-mail could not be sent.\",\n CredentialsSignin: \"Sign in failed. Check the details you provided are correct.\",\n SessionRequired: \"Please sign in to access this page.\",\n default: \"Unable to sign in.\"\n };\n const error = errorType && ((_errors$errorType = errors[errorType]) !== null && _errors$errorType !== void 0 ? _errors$errorType : errors.default);\n const providerLogoPath = \"https://authjs.dev/img/providers\";\n return (0, _preact.h)(\"div\", {\n className: \"signin\"\n }, theme.brandColor && (0, _preact.h)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `\n :root {\n --brand-color: ${theme.brandColor}\n }\n `\n }\n }), theme.buttonText && (0, _preact.h)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `\n :root {\n --button-text-color: ${theme.buttonText}\n }\n `\n }\n }), (0, _preact.h)(\"div\", {\n className: \"card\"\n }, theme.logo && (0, _preact.h)(\"img\", {\n src: theme.logo,\n alt: \"Logo\",\n className: \"logo\"\n }), error && (0, _preact.h)(\"div\", {\n className: \"error\"\n }, (0, _preact.h)(\"p\", null, error)), providersToRender.map((provider, i) => {\n let bg, text, logo, logoDark, bgDark, textDark;\n if (provider.type === \"oauth\") {\n var _provider$style;\n ;\n ({\n bg = \"\",\n text = \"\",\n logo = \"\",\n bgDark = bg,\n textDark = text,\n logoDark = \"\"\n } = (_provider$style = provider.style) !== null && _provider$style !== void 0 ? _provider$style : {});\n logo = logo.startsWith(\"/\") ? `${providerLogoPath}${logo}` : logo;\n logoDark = logoDark.startsWith(\"/\") ? `${providerLogoPath}${logoDark}` : logoDark || logo;\n logoDark || (logoDark = logo);\n }\n return (0, _preact.h)(\"div\", {\n key: provider.id,\n className: \"provider\"\n }, provider.type === \"oauth\" && (0, _preact.h)(\"form\", {\n action: provider.signinUrl,\n method: \"POST\"\n }, (0, _preact.h)(\"input\", {\n type: \"hidden\",\n name: \"csrfToken\",\n value: csrfToken\n }), callbackUrl && (0, _preact.h)(\"input\", {\n type: \"hidden\",\n name: \"callbackUrl\",\n value: callbackUrl\n }), (0, _preact.h)(\"button\", {\n type: \"submit\",\n className: \"button\",\n style: {\n \"--provider-bg\": bg,\n \"--provider-dark-bg\": bgDark,\n \"--provider-color\": text,\n \"--provider-dark-color\": textDark,\n \"--provider-bg-hover\": hexToRgba(bg, 0.8),\n \"--provider-dark-bg-hover\": hexToRgba(bgDark, 0.8)\n }\n }, logo && (0, _preact.h)(\"img\", {\n loading: \"lazy\",\n height: 24,\n width: 24,\n id: \"provider-logo\",\n src: `${logo.startsWith(\"/\") ? providerLogoPath : \"\"}${logo}`\n }), logoDark && (0, _preact.h)(\"img\", {\n loading: \"lazy\",\n height: 24,\n width: 24,\n id: \"provider-logo-dark\",\n src: `${logo.startsWith(\"/\") ? providerLogoPath : \"\"}${logoDark}`\n }), (0, _preact.h)(\"span\", null, \"Sign in with \", provider.name))), (provider.type === \"email\" || provider.type === \"credentials\") && i > 0 && providersToRender[i - 1].type !== \"email\" && providersToRender[i - 1].type !== \"credentials\" && (0, _preact.h)(\"hr\", null), provider.type === \"email\" && (0, _preact.h)(\"form\", {\n action: provider.signinUrl,\n method: \"POST\"\n }, (0, _preact.h)(\"input\", {\n type: \"hidden\",\n name: \"csrfToken\",\n value: csrfToken\n }), (0, _preact.h)(\"label\", {\n className: \"section-header\",\n htmlFor: `input-email-for-${provider.id}-provider`\n }, \"Email\"), (0, _preact.h)(\"input\", {\n id: `input-email-for-${provider.id}-provider`,\n autoFocus: true,\n type: \"email\",\n name: \"email\",\n value: email,\n placeholder: \"email@example.com\",\n required: true\n }), (0, _preact.h)(\"button\", {\n id: \"submitButton\",\n type: \"submit\"\n }, \"Sign in with \", provider.name)), provider.type === \"credentials\" && (0, _preact.h)(\"form\", {\n action: provider.callbackUrl,\n method: \"POST\"\n }, (0, _preact.h)(\"input\", {\n type: \"hidden\",\n name: \"csrfToken\",\n value: csrfToken\n }), Object.keys(provider.credentials).map(credential => {\n var _provider$credentials, _provider$credentials2, _provider$credentials3;\n return (0, _preact.h)(\"div\", {\n key: `input-group-${provider.id}`\n }, (0, _preact.h)(\"label\", {\n className: \"section-header\",\n htmlFor: `input-${credential}-for-${provider.id}-provider`\n }, (_provider$credentials = provider.credentials[credential].label) !== null && _provider$credentials !== void 0 ? _provider$credentials : credential), (0, _preact.h)(\"input\", (0, _extends2.default)({\n name: credential,\n id: `input-${credential}-for-${provider.id}-provider`,\n type: (_provider$credentials2 = provider.credentials[credential].type) !== null && _provider$credentials2 !== void 0 ? _provider$credentials2 : \"text\",\n placeholder: (_provider$credentials3 = provider.credentials[credential].placeholder) !== null && _provider$credentials3 !== void 0 ? _provider$credentials3 : \"\"\n }, provider.credentials[credential])));\n }), (0, _preact.h)(\"button\", {\n type: \"submit\"\n }, \"Sign in with \", provider.name)), (provider.type === \"email\" || provider.type === \"credentials\") && i + 1 < providersToRender.length && (0, _preact.h)(\"hr\", null));\n })));\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcGFnZXMvc2lnbmluLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLDBIQUE4QztBQUNuRiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmLGNBQWMsbUJBQU8sQ0FBQywwREFBUTtBQUM5Qix1Q0FBdUMsbUJBQU8sQ0FBQyw4RkFBZ0M7QUFDL0U7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLElBQUksTUFBTTtBQUMvQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQztBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRLGtHQUFrRztBQUMxRyx1Q0FBdUMsaUJBQWlCLEVBQUUsS0FBSztBQUMvRCwrQ0FBK0MsaUJBQWlCLEVBQUUsU0FBUztBQUMzRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWMsNkNBQTZDLEVBQUUsS0FBSztBQUNsRSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjLDZDQUE2QyxFQUFFLFNBQVM7QUFDdEUsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0Esa0NBQWtDLFlBQVk7QUFDOUMsS0FBSztBQUNMLDZCQUE2QixZQUFZO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSw0QkFBNEIsWUFBWTtBQUN4QyxPQUFPO0FBQ1A7QUFDQSwwQkFBMEIsV0FBVyxPQUFPLFlBQVk7QUFDeEQsT0FBTztBQUNQO0FBQ0EscUJBQXFCLFdBQVcsT0FBTyxZQUFZO0FBQ25EO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9jb3JlL3BhZ2VzL3NpZ25pbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gU2lnbmluUGFnZTtcbnZhciBfcHJlYWN0ID0gcmVxdWlyZShcInByZWFjdFwiKTtcbnZhciBfZXh0ZW5kczIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2V4dGVuZHNcIikpO1xuZnVuY3Rpb24gaGV4VG9SZ2JhKGhleCwgYWxwaGEgPSAxKSB7XG4gIGlmICghaGV4KSB7XG4gICAgcmV0dXJuO1xuICB9XG4gIGhleCA9IGhleC5yZXBsYWNlKC9eIy8sIFwiXCIpO1xuICBpZiAoaGV4Lmxlbmd0aCA9PT0gMykge1xuICAgIGhleCA9IGhleFswXSArIGhleFswXSArIGhleFsxXSArIGhleFsxXSArIGhleFsyXSArIGhleFsyXTtcbiAgfVxuICBjb25zdCBiaWdpbnQgPSBwYXJzZUludChoZXgsIDE2KTtcbiAgY29uc3QgciA9IGJpZ2ludCA+PiAxNiAmIDI1NTtcbiAgY29uc3QgZyA9IGJpZ2ludCA+PiA4ICYgMjU1O1xuICBjb25zdCBiID0gYmlnaW50ICYgMjU1O1xuICBhbHBoYSA9IE1hdGgubWluKE1hdGgubWF4KGFscGhhLCAwKSwgMSk7XG4gIGNvbnN0IHJnYmEgPSBgcmdiYSgke3J9LCAke2d9LCAke2J9LCAke2FscGhhfSlgO1xuICByZXR1cm4gcmdiYTtcbn1cbmZ1bmN0aW9uIFNpZ25pblBhZ2UocHJvcHMpIHtcbiAgdmFyIF9lcnJvcnMkZXJyb3JUeXBlO1xuICBjb25zdCB7XG4gICAgY3NyZlRva2VuLFxuICAgIHByb3ZpZGVycyxcbiAgICBjYWxsYmFja1VybCxcbiAgICB0aGVtZSxcbiAgICBlbWFpbCxcbiAgICBlcnJvcjogZXJyb3JUeXBlXG4gIH0gPSBwcm9wcztcbiAgY29uc3QgcHJvdmlkZXJzVG9SZW5kZXIgPSBwcm92aWRlcnMuZmlsdGVyKHByb3ZpZGVyID0+IHtcbiAgICBpZiAocHJvdmlkZXIudHlwZSA9PT0gXCJvYXV0aFwiIHx8IHByb3ZpZGVyLnR5cGUgPT09IFwiZW1haWxcIikge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfSBlbHNlIGlmIChwcm92aWRlci50eXBlID09PSBcImNyZWRlbnRpYWxzXCIgJiYgcHJvdmlkZXIuY3JlZGVudGlhbHMpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH0pO1xuICBpZiAodHlwZW9mIGRvY3VtZW50ICE9PSBcInVuZGVmaW5lZFwiICYmIHRoZW1lLmJ1dHRvblRleHQpIHtcbiAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc3R5bGUuc2V0UHJvcGVydHkoXCItLWJ1dHRvbi10ZXh0LWNvbG9yXCIsIHRoZW1lLmJ1dHRvblRleHQpO1xuICB9XG4gIGlmICh0eXBlb2YgZG9jdW1lbnQgIT09IFwidW5kZWZpbmVkXCIgJiYgdGhlbWUuYnJhbmRDb2xvcikge1xuICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tYnJhbmQtY29sb3JcIiwgdGhlbWUuYnJhbmRDb2xvcik7XG4gIH1cbiAgY29uc3QgZXJyb3JzID0ge1xuICAgIFNpZ25pbjogXCJUcnkgc2lnbmluZyBpbiB3aXRoIGEgZGlmZmVyZW50IGFjY291bnQuXCIsXG4gICAgT0F1dGhTaWduaW46IFwiVHJ5IHNpZ25pbmcgaW4gd2l0aCBhIGRpZmZlcmVudCBhY2NvdW50LlwiLFxuICAgIE9BdXRoQ2FsbGJhY2s6IFwiVHJ5IHNpZ25pbmcgaW4gd2l0aCBhIGRpZmZlcmVudCBhY2NvdW50LlwiLFxuICAgIE9BdXRoQ3JlYXRlQWNjb3VudDogXCJUcnkgc2lnbmluZyBpbiB3aXRoIGEgZGlmZmVyZW50IGFjY291bnQuXCIsXG4gICAgRW1haWxDcmVhdGVBY2NvdW50OiBcIlRyeSBzaWduaW5nIGluIHdpdGggYSBkaWZmZXJlbnQgYWNjb3VudC5cIixcbiAgICBDYWxsYmFjazogXCJUcnkgc2lnbmluZyBpbiB3aXRoIGEgZGlmZmVyZW50IGFjY291bnQuXCIsXG4gICAgT0F1dGhBY2NvdW50Tm90TGlua2VkOiBcIlRvIGNvbmZpcm0geW91ciBpZGVudGl0eSwgc2lnbiBpbiB3aXRoIHRoZSBzYW1lIGFjY291bnQgeW91IHVzZWQgb3JpZ2luYWxseS5cIixcbiAgICBFbWFpbFNpZ25pbjogXCJUaGUgZS1tYWlsIGNvdWxkIG5vdCBiZSBzZW50LlwiLFxuICAgIENyZWRlbnRpYWxzU2lnbmluOiBcIlNpZ24gaW4gZmFpbGVkLiBDaGVjayB0aGUgZGV0YWlscyB5b3UgcHJvdmlkZWQgYXJlIGNvcnJlY3QuXCIsXG4gICAgU2Vzc2lvblJlcXVpcmVkOiBcIlBsZWFzZSBzaWduIGluIHRvIGFjY2VzcyB0aGlzIHBhZ2UuXCIsXG4gICAgZGVmYXVsdDogXCJVbmFibGUgdG8gc2lnbiBpbi5cIlxuICB9O1xuICBjb25zdCBlcnJvciA9IGVycm9yVHlwZSAmJiAoKF9lcnJvcnMkZXJyb3JUeXBlID0gZXJyb3JzW2Vycm9yVHlwZV0pICE9PSBudWxsICYmIF9lcnJvcnMkZXJyb3JUeXBlICE9PSB2b2lkIDAgPyBfZXJyb3JzJGVycm9yVHlwZSA6IGVycm9ycy5kZWZhdWx0KTtcbiAgY29uc3QgcHJvdmlkZXJMb2dvUGF0aCA9IFwiaHR0cHM6Ly9hdXRoanMuZGV2L2ltZy9wcm92aWRlcnNcIjtcbiAgcmV0dXJuICgwLCBfcHJlYWN0LmgpKFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwic2lnbmluXCJcbiAgfSwgdGhlbWUuYnJhbmRDb2xvciAmJiAoMCwgX3ByZWFjdC5oKShcInN0eWxlXCIsIHtcbiAgICBkYW5nZXJvdXNseVNldElubmVySFRNTDoge1xuICAgICAgX19odG1sOiBgXG4gICAgICAgIDpyb290IHtcbiAgICAgICAgICAtLWJyYW5kLWNvbG9yOiAke3RoZW1lLmJyYW5kQ29sb3J9XG4gICAgICAgIH1cbiAgICAgIGBcbiAgICB9XG4gIH0pLCB0aGVtZS5idXR0b25UZXh0ICYmICgwLCBfcHJlYWN0LmgpKFwic3R5bGVcIiwge1xuICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICBfX2h0bWw6IGBcbiAgICAgICAgOnJvb3Qge1xuICAgICAgICAgIC0tYnV0dG9uLXRleHQtY29sb3I6ICR7dGhlbWUuYnV0dG9uVGV4dH1cbiAgICAgICAgfVxuICAgICAgYFxuICAgIH1cbiAgfSksICgwLCBfcHJlYWN0LmgpKFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwiY2FyZFwiXG4gIH0sIHRoZW1lLmxvZ28gJiYgKDAsIF9wcmVhY3QuaCkoXCJpbWdcIiwge1xuICAgIHNyYzogdGhlbWUubG9nbyxcbiAgICBhbHQ6IFwiTG9nb1wiLFxuICAgIGNsYXNzTmFtZTogXCJsb2dvXCJcbiAgfSksIGVycm9yICYmICgwLCBfcHJlYWN0LmgpKFwiZGl2XCIsIHtcbiAgICBjbGFzc05hbWU6IFwiZXJyb3JcIlxuICB9LCAoMCwgX3ByZWFjdC5oKShcInBcIiwgbnVsbCwgZXJyb3IpKSwgcHJvdmlkZXJzVG9SZW5kZXIubWFwKChwcm92aWRlciwgaSkgPT4ge1xuICAgIGxldCBiZywgdGV4dCwgbG9nbywgbG9nb0RhcmssIGJnRGFyaywgdGV4dERhcms7XG4gICAgaWYgKHByb3ZpZGVyLnR5cGUgPT09IFwib2F1dGhcIikge1xuICAgICAgdmFyIF9wcm92aWRlciRzdHlsZTtcbiAgICAgIDtcbiAgICAgICh7XG4gICAgICAgIGJnID0gXCJcIixcbiAgICAgICAgdGV4dCA9IFwiXCIsXG4gICAgICAgIGxvZ28gPSBcIlwiLFxuICAgICAgICBiZ0RhcmsgPSBiZyxcbiAgICAgICAgdGV4dERhcmsgPSB0ZXh0LFxuICAgICAgICBsb2dvRGFyayA9IFwiXCJcbiAgICAgIH0gPSAoX3Byb3ZpZGVyJHN0eWxlID0gcHJvdmlkZXIuc3R5bGUpICE9PSBudWxsICYmIF9wcm92aWRlciRzdHlsZSAhPT0gdm9pZCAwID8gX3Byb3ZpZGVyJHN0eWxlIDoge30pO1xuICAgICAgbG9nbyA9IGxvZ28uc3RhcnRzV2l0aChcIi9cIikgPyBgJHtwcm92aWRlckxvZ29QYXRofSR7bG9nb31gIDogbG9nbztcbiAgICAgIGxvZ29EYXJrID0gbG9nb0Rhcmsuc3RhcnRzV2l0aChcIi9cIikgPyBgJHtwcm92aWRlckxvZ29QYXRofSR7bG9nb0Rhcmt9YCA6IGxvZ29EYXJrIHx8IGxvZ287XG4gICAgICBsb2dvRGFyayB8fCAobG9nb0RhcmsgPSBsb2dvKTtcbiAgICB9XG4gICAgcmV0dXJuICgwLCBfcHJlYWN0LmgpKFwiZGl2XCIsIHtcbiAgICAgIGtleTogcHJvdmlkZXIuaWQsXG4gICAgICBjbGFzc05hbWU6IFwicHJvdmlkZXJcIlxuICAgIH0sIHByb3ZpZGVyLnR5cGUgPT09IFwib2F1dGhcIiAmJiAoMCwgX3ByZWFjdC5oKShcImZvcm1cIiwge1xuICAgICAgYWN0aW9uOiBwcm92aWRlci5zaWduaW5VcmwsXG4gICAgICBtZXRob2Q6IFwiUE9TVFwiXG4gICAgfSwgKDAsIF9wcmVhY3QuaCkoXCJpbnB1dFwiLCB7XG4gICAgICB0eXBlOiBcImhpZGRlblwiLFxuICAgICAgbmFtZTogXCJjc3JmVG9rZW5cIixcbiAgICAgIHZhbHVlOiBjc3JmVG9rZW5cbiAgICB9KSwgY2FsbGJhY2tVcmwgJiYgKDAsIF9wcmVhY3QuaCkoXCJpbnB1dFwiLCB7XG4gICAgICB0eXBlOiBcImhpZGRlblwiLFxuICAgICAgbmFtZTogXCJjYWxsYmFja1VybFwiLFxuICAgICAgdmFsdWU6IGNhbGxiYWNrVXJsXG4gICAgfSksICgwLCBfcHJlYWN0LmgpKFwiYnV0dG9uXCIsIHtcbiAgICAgIHR5cGU6IFwic3VibWl0XCIsXG4gICAgICBjbGFzc05hbWU6IFwiYnV0dG9uXCIsXG4gICAgICBzdHlsZToge1xuICAgICAgICBcIi0tcHJvdmlkZXItYmdcIjogYmcsXG4gICAgICAgIFwiLS1wcm92aWRlci1kYXJrLWJnXCI6IGJnRGFyayxcbiAgICAgICAgXCItLXByb3ZpZGVyLWNvbG9yXCI6IHRleHQsXG4gICAgICAgIFwiLS1wcm92aWRlci1kYXJrLWNvbG9yXCI6IHRleHREYXJrLFxuICAgICAgICBcIi0tcHJvdmlkZXItYmctaG92ZXJcIjogaGV4VG9SZ2JhKGJnLCAwLjgpLFxuICAgICAgICBcIi0tcHJvdmlkZXItZGFyay1iZy1ob3ZlclwiOiBoZXhUb1JnYmEoYmdEYXJrLCAwLjgpXG4gICAgICB9XG4gICAgfSwgbG9nbyAmJiAoMCwgX3ByZWFjdC5oKShcImltZ1wiLCB7XG4gICAgICBsb2FkaW5nOiBcImxhenlcIixcbiAgICAgIGhlaWdodDogMjQsXG4gICAgICB3aWR0aDogMjQsXG4gICAgICBpZDogXCJwcm92aWRlci1sb2dvXCIsXG4gICAgICBzcmM6IGAke2xvZ28uc3RhcnRzV2l0aChcIi9cIikgPyBwcm92aWRlckxvZ29QYXRoIDogXCJcIn0ke2xvZ299YFxuICAgIH0pLCBsb2dvRGFyayAmJiAoMCwgX3ByZWFjdC5oKShcImltZ1wiLCB7XG4gICAgICBsb2FkaW5nOiBcImxhenlcIixcbiAgICAgIGhlaWdodDogMjQsXG4gICAgICB3aWR0aDogMjQsXG4gICAgICBpZDogXCJwcm92aWRlci1sb2dvLWRhcmtcIixcbiAgICAgIHNyYzogYCR7bG9nby5zdGFydHNXaXRoKFwiL1wiKSA/IHByb3ZpZGVyTG9nb1BhdGggOiBcIlwifSR7bG9nb0Rhcmt9YFxuICAgIH0pLCAoMCwgX3ByZWFjdC5oKShcInNwYW5cIiwgbnVsbCwgXCJTaWduIGluIHdpdGggXCIsIHByb3ZpZGVyLm5hbWUpKSksIChwcm92aWRlci50eXBlID09PSBcImVtYWlsXCIgfHwgcHJvdmlkZXIudHlwZSA9PT0gXCJjcmVkZW50aWFsc1wiKSAmJiBpID4gMCAmJiBwcm92aWRlcnNUb1JlbmRlcltpIC0gMV0udHlwZSAhPT0gXCJlbWFpbFwiICYmIHByb3ZpZGVyc1RvUmVuZGVyW2kgLSAxXS50eXBlICE9PSBcImNyZWRlbnRpYWxzXCIgJiYgKDAsIF9wcmVhY3QuaCkoXCJoclwiLCBudWxsKSwgcHJvdmlkZXIudHlwZSA9PT0gXCJlbWFpbFwiICYmICgwLCBfcHJlYWN0LmgpKFwiZm9ybVwiLCB7XG4gICAgICBhY3Rpb246IHByb3ZpZGVyLnNpZ25pblVybCxcbiAgICAgIG1ldGhvZDogXCJQT1NUXCJcbiAgICB9LCAoMCwgX3ByZWFjdC5oKShcImlucHV0XCIsIHtcbiAgICAgIHR5cGU6IFwiaGlkZGVuXCIsXG4gICAgICBuYW1lOiBcImNzcmZUb2tlblwiLFxuICAgICAgdmFsdWU6IGNzcmZUb2tlblxuICAgIH0pLCAoMCwgX3ByZWFjdC5oKShcImxhYmVsXCIsIHtcbiAgICAgIGNsYXNzTmFtZTogXCJzZWN0aW9uLWhlYWRlclwiLFxuICAgICAgaHRtbEZvcjogYGlucHV0LWVtYWlsLWZvci0ke3Byb3ZpZGVyLmlkfS1wcm92aWRlcmBcbiAgICB9LCBcIkVtYWlsXCIpLCAoMCwgX3ByZWFjdC5oKShcImlucHV0XCIsIHtcbiAgICAgIGlkOiBgaW5wdXQtZW1haWwtZm9yLSR7cHJvdmlkZXIuaWR9LXByb3ZpZGVyYCxcbiAgICAgIGF1dG9Gb2N1czogdHJ1ZSxcbiAgICAgIHR5cGU6IFwiZW1haWxcIixcbiAgICAgIG5hbWU6IFwiZW1haWxcIixcbiAgICAgIHZhbHVlOiBlbWFpbCxcbiAgICAgIHBsYWNlaG9sZGVyOiBcImVtYWlsQGV4YW1wbGUuY29tXCIsXG4gICAgICByZXF1aXJlZDogdHJ1ZVxuICAgIH0pLCAoMCwgX3ByZWFjdC5oKShcImJ1dHRvblwiLCB7XG4gICAgICBpZDogXCJzdWJtaXRCdXR0b25cIixcbiAgICAgIHR5cGU6IFwic3VibWl0XCJcbiAgICB9LCBcIlNpZ24gaW4gd2l0aCBcIiwgcHJvdmlkZXIubmFtZSkpLCBwcm92aWRlci50eXBlID09PSBcImNyZWRlbnRpYWxzXCIgJiYgKDAsIF9wcmVhY3QuaCkoXCJmb3JtXCIsIHtcbiAgICAgIGFjdGlvbjogcHJvdmlkZXIuY2FsbGJhY2tVcmwsXG4gICAgICBtZXRob2Q6IFwiUE9TVFwiXG4gICAgfSwgKDAsIF9wcmVhY3QuaCkoXCJpbnB1dFwiLCB7XG4gICAgICB0eXBlOiBcImhpZGRlblwiLFxuICAgICAgbmFtZTogXCJjc3JmVG9rZW5cIixcbiAgICAgIHZhbHVlOiBjc3JmVG9rZW5cbiAgICB9KSwgT2JqZWN0LmtleXMocHJvdmlkZXIuY3JlZGVudGlhbHMpLm1hcChjcmVkZW50aWFsID0+IHtcbiAgICAgIHZhciBfcHJvdmlkZXIkY3JlZGVudGlhbHMsIF9wcm92aWRlciRjcmVkZW50aWFsczIsIF9wcm92aWRlciRjcmVkZW50aWFsczM7XG4gICAgICByZXR1cm4gKDAsIF9wcmVhY3QuaCkoXCJkaXZcIiwge1xuICAgICAgICBrZXk6IGBpbnB1dC1ncm91cC0ke3Byb3ZpZGVyLmlkfWBcbiAgICAgIH0sICgwLCBfcHJlYWN0LmgpKFwibGFiZWxcIiwge1xuICAgICAgICBjbGFzc05hbWU6IFwic2VjdGlvbi1oZWFkZXJcIixcbiAgICAgICAgaHRtbEZvcjogYGlucHV0LSR7Y3JlZGVudGlhbH0tZm9yLSR7cHJvdmlkZXIuaWR9LXByb3ZpZGVyYFxuICAgICAgfSwgKF9wcm92aWRlciRjcmVkZW50aWFscyA9IHByb3ZpZGVyLmNyZWRlbnRpYWxzW2NyZWRlbnRpYWxdLmxhYmVsKSAhPT0gbnVsbCAmJiBfcHJvdmlkZXIkY3JlZGVudGlhbHMgIT09IHZvaWQgMCA/IF9wcm92aWRlciRjcmVkZW50aWFscyA6IGNyZWRlbnRpYWwpLCAoMCwgX3ByZWFjdC5oKShcImlucHV0XCIsICgwLCBfZXh0ZW5kczIuZGVmYXVsdCkoe1xuICAgICAgICBuYW1lOiBjcmVkZW50aWFsLFxuICAgICAgICBpZDogYGlucHV0LSR7Y3JlZGVudGlhbH0tZm9yLSR7cHJvdmlkZXIuaWR9LXByb3ZpZGVyYCxcbiAgICAgICAgdHlwZTogKF9wcm92aWRlciRjcmVkZW50aWFsczIgPSBwcm92aWRlci5jcmVkZW50aWFsc1tjcmVkZW50aWFsXS50eXBlKSAhPT0gbnVsbCAmJiBfcHJvdmlkZXIkY3JlZGVudGlhbHMyICE9PSB2b2lkIDAgPyBfcHJvdmlkZXIkY3JlZGVudGlhbHMyIDogXCJ0ZXh0XCIsXG4gICAgICAgIHBsYWNlaG9sZGVyOiAoX3Byb3ZpZGVyJGNyZWRlbnRpYWxzMyA9IHByb3ZpZGVyLmNyZWRlbnRpYWxzW2NyZWRlbnRpYWxdLnBsYWNlaG9sZGVyKSAhPT0gbnVsbCAmJiBfcHJvdmlkZXIkY3JlZGVudGlhbHMzICE9PSB2b2lkIDAgPyBfcHJvdmlkZXIkY3JlZGVudGlhbHMzIDogXCJcIlxuICAgICAgfSwgcHJvdmlkZXIuY3JlZGVudGlhbHNbY3JlZGVudGlhbF0pKSk7XG4gICAgfSksICgwLCBfcHJlYWN0LmgpKFwiYnV0dG9uXCIsIHtcbiAgICAgIHR5cGU6IFwic3VibWl0XCJcbiAgICB9LCBcIlNpZ24gaW4gd2l0aCBcIiwgcHJvdmlkZXIubmFtZSkpLCAocHJvdmlkZXIudHlwZSA9PT0gXCJlbWFpbFwiIHx8IHByb3ZpZGVyLnR5cGUgPT09IFwiY3JlZGVudGlhbHNcIikgJiYgaSArIDEgPCBwcm92aWRlcnNUb1JlbmRlci5sZW5ndGggJiYgKDAsIF9wcmVhY3QuaCkoXCJoclwiLCBudWxsKSk7XG4gIH0pKSk7XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/pages/signin.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/pages/signout.js":
+/*!******************************************************!*\
+ !*** ./node_modules/next-auth/core/pages/signout.js ***!
+ \******************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = SignoutPage;\nvar _preact = __webpack_require__(/*! preact */ \"(rsc)/./node_modules/preact/dist/preact.js\");\nfunction SignoutPage(props) {\n const {\n url,\n csrfToken,\n theme\n } = props;\n return (0, _preact.h)(\"div\", {\n className: \"signout\"\n }, theme.brandColor && (0, _preact.h)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `\n :root {\n --brand-color: ${theme.brandColor}\n }\n `\n }\n }), theme.buttonText && (0, _preact.h)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `\n :root {\n --button-text-color: ${theme.buttonText}\n }\n `\n }\n }), (0, _preact.h)(\"div\", {\n className: \"card\"\n }, theme.logo && (0, _preact.h)(\"img\", {\n src: theme.logo,\n alt: \"Logo\",\n className: \"logo\"\n }), (0, _preact.h)(\"h1\", null, \"Signout\"), (0, _preact.h)(\"p\", null, \"Are you sure you want to sign out?\"), (0, _preact.h)(\"form\", {\n action: `${url}/signout`,\n method: \"POST\"\n }, (0, _preact.h)(\"input\", {\n type: \"hidden\",\n name: \"csrfToken\",\n value: csrfToken\n }), (0, _preact.h)(\"button\", {\n id: \"submitButton\",\n type: \"submit\"\n }, \"Sign out\"))));\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcGFnZXMvc2lnbm91dC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmLGNBQWMsbUJBQU8sQ0FBQywwREFBUTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsMkJBQTJCO0FBQzNCO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSxpQ0FBaUM7QUFDakM7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxlQUFlLElBQUk7QUFDbkI7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0giLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9wYWdlcy9zaWdub3V0LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gU2lnbm91dFBhZ2U7XG52YXIgX3ByZWFjdCA9IHJlcXVpcmUoXCJwcmVhY3RcIik7XG5mdW5jdGlvbiBTaWdub3V0UGFnZShwcm9wcykge1xuICBjb25zdCB7XG4gICAgdXJsLFxuICAgIGNzcmZUb2tlbixcbiAgICB0aGVtZVxuICB9ID0gcHJvcHM7XG4gIHJldHVybiAoMCwgX3ByZWFjdC5oKShcImRpdlwiLCB7XG4gICAgY2xhc3NOYW1lOiBcInNpZ25vdXRcIlxuICB9LCB0aGVtZS5icmFuZENvbG9yICYmICgwLCBfcHJlYWN0LmgpKFwic3R5bGVcIiwge1xuICAgIGRhbmdlcm91c2x5U2V0SW5uZXJIVE1MOiB7XG4gICAgICBfX2h0bWw6IGBcbiAgICAgICAgOnJvb3Qge1xuICAgICAgICAgIC0tYnJhbmQtY29sb3I6ICR7dGhlbWUuYnJhbmRDb2xvcn1cbiAgICAgICAgfVxuICAgICAgYFxuICAgIH1cbiAgfSksIHRoZW1lLmJ1dHRvblRleHQgJiYgKDAsIF9wcmVhY3QuaCkoXCJzdHlsZVwiLCB7XG4gICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgIF9faHRtbDogYFxuICAgICAgICA6cm9vdCB7XG4gICAgICAgICAgLS1idXR0b24tdGV4dC1jb2xvcjogJHt0aGVtZS5idXR0b25UZXh0fVxuICAgICAgICB9XG4gICAgICBgXG4gICAgfVxuICB9KSwgKDAsIF9wcmVhY3QuaCkoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogXCJjYXJkXCJcbiAgfSwgdGhlbWUubG9nbyAmJiAoMCwgX3ByZWFjdC5oKShcImltZ1wiLCB7XG4gICAgc3JjOiB0aGVtZS5sb2dvLFxuICAgIGFsdDogXCJMb2dvXCIsXG4gICAgY2xhc3NOYW1lOiBcImxvZ29cIlxuICB9KSwgKDAsIF9wcmVhY3QuaCkoXCJoMVwiLCBudWxsLCBcIlNpZ25vdXRcIiksICgwLCBfcHJlYWN0LmgpKFwicFwiLCBudWxsLCBcIkFyZSB5b3Ugc3VyZSB5b3Ugd2FudCB0byBzaWduIG91dD9cIiksICgwLCBfcHJlYWN0LmgpKFwiZm9ybVwiLCB7XG4gICAgYWN0aW9uOiBgJHt1cmx9L3NpZ25vdXRgLFxuICAgIG1ldGhvZDogXCJQT1NUXCJcbiAgfSwgKDAsIF9wcmVhY3QuaCkoXCJpbnB1dFwiLCB7XG4gICAgdHlwZTogXCJoaWRkZW5cIixcbiAgICBuYW1lOiBcImNzcmZUb2tlblwiLFxuICAgIHZhbHVlOiBjc3JmVG9rZW5cbiAgfSksICgwLCBfcHJlYWN0LmgpKFwiYnV0dG9uXCIsIHtcbiAgICBpZDogXCJzdWJtaXRCdXR0b25cIixcbiAgICB0eXBlOiBcInN1Ym1pdFwiXG4gIH0sIFwiU2lnbiBvdXRcIikpKSk7XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/pages/signout.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/pages/verify-request.js":
+/*!*************************************************************!*\
+ !*** ./node_modules/next-auth/core/pages/verify-request.js ***!
+ \*************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = VerifyRequestPage;\nvar _preact = __webpack_require__(/*! preact */ \"(rsc)/./node_modules/preact/dist/preact.js\");\nfunction VerifyRequestPage(props) {\n const {\n url,\n theme\n } = props;\n return (0, _preact.h)(\"div\", {\n className: \"verify-request\"\n }, theme.brandColor && (0, _preact.h)(\"style\", {\n dangerouslySetInnerHTML: {\n __html: `\n :root {\n --brand-color: ${theme.brandColor}\n }\n `\n }\n }), (0, _preact.h)(\"div\", {\n className: \"card\"\n }, theme.logo && (0, _preact.h)(\"img\", {\n src: theme.logo,\n alt: \"Logo\",\n className: \"logo\"\n }), (0, _preact.h)(\"h1\", null, \"Check your email\"), (0, _preact.h)(\"p\", null, \"A sign in link has been sent to your email address.\"), (0, _preact.h)(\"p\", null, (0, _preact.h)(\"a\", {\n className: \"site\",\n href: url.origin\n }, url.host))));\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcGFnZXMvdmVyaWZ5LXJlcXVlc3QuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWU7QUFDZixjQUFjLG1CQUFPLENBQUMsMERBQVE7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQSwyQkFBMkI7QUFDM0I7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0EsR0FBRztBQUNIIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcGFnZXMvdmVyaWZ5LXJlcXVlc3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRlZmF1bHQgPSBWZXJpZnlSZXF1ZXN0UGFnZTtcbnZhciBfcHJlYWN0ID0gcmVxdWlyZShcInByZWFjdFwiKTtcbmZ1bmN0aW9uIFZlcmlmeVJlcXVlc3RQYWdlKHByb3BzKSB7XG4gIGNvbnN0IHtcbiAgICB1cmwsXG4gICAgdGhlbWVcbiAgfSA9IHByb3BzO1xuICByZXR1cm4gKDAsIF9wcmVhY3QuaCkoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogXCJ2ZXJpZnktcmVxdWVzdFwiXG4gIH0sIHRoZW1lLmJyYW5kQ29sb3IgJiYgKDAsIF9wcmVhY3QuaCkoXCJzdHlsZVwiLCB7XG4gICAgZGFuZ2Vyb3VzbHlTZXRJbm5lckhUTUw6IHtcbiAgICAgIF9faHRtbDogYFxuICAgICAgICA6cm9vdCB7XG4gICAgICAgICAgLS1icmFuZC1jb2xvcjogJHt0aGVtZS5icmFuZENvbG9yfVxuICAgICAgICB9XG4gICAgICBgXG4gICAgfVxuICB9KSwgKDAsIF9wcmVhY3QuaCkoXCJkaXZcIiwge1xuICAgIGNsYXNzTmFtZTogXCJjYXJkXCJcbiAgfSwgdGhlbWUubG9nbyAmJiAoMCwgX3ByZWFjdC5oKShcImltZ1wiLCB7XG4gICAgc3JjOiB0aGVtZS5sb2dvLFxuICAgIGFsdDogXCJMb2dvXCIsXG4gICAgY2xhc3NOYW1lOiBcImxvZ29cIlxuICB9KSwgKDAsIF9wcmVhY3QuaCkoXCJoMVwiLCBudWxsLCBcIkNoZWNrIHlvdXIgZW1haWxcIiksICgwLCBfcHJlYWN0LmgpKFwicFwiLCBudWxsLCBcIkEgc2lnbiBpbiBsaW5rIGhhcyBiZWVuIHNlbnQgdG8geW91ciBlbWFpbCBhZGRyZXNzLlwiKSwgKDAsIF9wcmVhY3QuaCkoXCJwXCIsIG51bGwsICgwLCBfcHJlYWN0LmgpKFwiYVwiLCB7XG4gICAgY2xhc3NOYW1lOiBcInNpdGVcIixcbiAgICBocmVmOiB1cmwub3JpZ2luXG4gIH0sIHVybC5ob3N0KSkpKTtcbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/pages/verify-request.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/routes/callback.js":
+/*!********************************************************!*\
+ !*** ./node_modules/next-auth/core/routes/callback.js ***!
+ \********************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(rsc)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = callback;\nvar _callback = _interopRequireDefault(__webpack_require__(/*! ../lib/oauth/callback */ \"(rsc)/./node_modules/next-auth/core/lib/oauth/callback.js\"));\nvar _callbackHandler = _interopRequireDefault(__webpack_require__(/*! ../lib/callback-handler */ \"(rsc)/./node_modules/next-auth/core/lib/callback-handler.js\"));\nvar _utils = __webpack_require__(/*! ../lib/utils */ \"(rsc)/./node_modules/next-auth/core/lib/utils.js\");\nvar _getUserFromEmail = _interopRequireDefault(__webpack_require__(/*! ../lib/email/getUserFromEmail */ \"(rsc)/./node_modules/next-auth/core/lib/email/getUserFromEmail.js\"));\nasync function callback(params) {\n const {\n options,\n query,\n body,\n method,\n headers,\n sessionStore\n } = params;\n const {\n provider,\n adapter,\n url,\n callbackUrl,\n pages,\n jwt,\n events,\n callbacks,\n session: {\n strategy: sessionStrategy,\n maxAge: sessionMaxAge\n },\n logger\n } = options;\n const cookies = [];\n const useJwtSession = sessionStrategy === \"jwt\";\n if (provider.type === \"oauth\") {\n try {\n const {\n profile,\n account,\n OAuthProfile,\n cookies: oauthCookies\n } = await (0, _callback.default)({\n query,\n body,\n method,\n options,\n cookies: params.cookies\n });\n if (oauthCookies.length) cookies.push(...oauthCookies);\n try {\n var _events$signIn;\n logger.debug(\"OAUTH_CALLBACK_RESPONSE\", {\n profile,\n account,\n OAuthProfile\n });\n if (!profile || !account || !OAuthProfile) {\n return {\n redirect: `${url}/signin`,\n cookies\n };\n }\n let userOrProfile = profile;\n if (adapter) {\n const {\n getUserByAccount\n } = adapter;\n const userByAccount = await getUserByAccount({\n providerAccountId: account.providerAccountId,\n provider: provider.id\n });\n if (userByAccount) userOrProfile = userByAccount;\n }\n try {\n const isAllowed = await callbacks.signIn({\n user: userOrProfile,\n account,\n profile: OAuthProfile\n });\n if (!isAllowed) {\n return {\n redirect: `${url}/error?error=AccessDenied`,\n cookies\n };\n } else if (typeof isAllowed === \"string\") {\n return {\n redirect: isAllowed,\n cookies\n };\n }\n } catch (error) {\n return {\n redirect: `${url}/error?error=${encodeURIComponent(error.message)}`,\n cookies\n };\n }\n const {\n user,\n session,\n isNewUser\n } = await (0, _callbackHandler.default)({\n sessionToken: sessionStore.value,\n profile,\n account,\n options\n });\n if (useJwtSession) {\n var _user$id;\n const defaultToken = {\n name: user.name,\n email: user.email,\n picture: user.image,\n sub: (_user$id = user.id) === null || _user$id === void 0 ? void 0 : _user$id.toString()\n };\n const token = await callbacks.jwt({\n token: defaultToken,\n user,\n account,\n profile: OAuthProfile,\n isNewUser,\n trigger: isNewUser ? \"signUp\" : \"signIn\"\n });\n const newToken = await jwt.encode({\n ...jwt,\n token\n });\n const cookieExpires = new Date();\n cookieExpires.setTime(cookieExpires.getTime() + sessionMaxAge * 1000);\n const sessionCookies = sessionStore.chunk(newToken, {\n expires: cookieExpires\n });\n cookies.push(...sessionCookies);\n } else {\n cookies.push({\n name: options.cookies.sessionToken.name,\n value: session.sessionToken,\n options: {\n ...options.cookies.sessionToken.options,\n expires: session.expires\n }\n });\n }\n await ((_events$signIn = events.signIn) === null || _events$signIn === void 0 ? void 0 : _events$signIn.call(events, {\n user,\n account,\n profile,\n isNewUser\n }));\n if (isNewUser && pages.newUser) {\n return {\n redirect: `${pages.newUser}${pages.newUser.includes(\"?\") ? \"&\" : \"?\"}callbackUrl=${encodeURIComponent(callbackUrl)}`,\n cookies\n };\n }\n return {\n redirect: callbackUrl,\n cookies\n };\n } catch (error) {\n if (error.name === \"AccountNotLinkedError\") {\n return {\n redirect: `${url}/error?error=OAuthAccountNotLinked`,\n cookies\n };\n } else if (error.name === \"CreateUserError\") {\n return {\n redirect: `${url}/error?error=OAuthCreateAccount`,\n cookies\n };\n }\n logger.error(\"OAUTH_CALLBACK_HANDLER_ERROR\", error);\n return {\n redirect: `${url}/error?error=Callback`,\n cookies\n };\n }\n } catch (error) {\n if (error.name === \"OAuthCallbackError\") {\n logger.error(\"OAUTH_CALLBACK_ERROR\", {\n error: error,\n providerId: provider.id\n });\n return {\n redirect: `${url}/error?error=OAuthCallback`,\n cookies\n };\n }\n logger.error(\"OAUTH_CALLBACK_ERROR\", error);\n return {\n redirect: `${url}/error?error=Callback`,\n cookies\n };\n }\n } else if (provider.type === \"email\") {\n try {\n var _events$signIn2;\n const paramToken = query === null || query === void 0 ? void 0 : query.token;\n const paramIdentifier = query === null || query === void 0 ? void 0 : query.email;\n if (!paramToken) {\n return {\n redirect: `${url}/error?error=configuration`,\n cookies\n };\n }\n const invite = await adapter.useVerificationToken({\n identifier: paramIdentifier,\n token: (0, _utils.hashToken)(paramToken, options)\n });\n const invalidInvite = !invite || invite.expires.valueOf() < Date.now() || paramIdentifier && invite.identifier !== paramIdentifier;\n if (invalidInvite) {\n return {\n redirect: `${url}/error?error=Verification`,\n cookies\n };\n }\n const profile = await (0, _getUserFromEmail.default)({\n email: invite.identifier,\n adapter\n });\n const account = {\n providerAccountId: profile.email,\n type: \"email\",\n provider: provider.id\n };\n try {\n const signInCallbackResponse = await callbacks.signIn({\n user: profile,\n account\n });\n if (!signInCallbackResponse) {\n return {\n redirect: `${url}/error?error=AccessDenied`,\n cookies\n };\n } else if (typeof signInCallbackResponse === \"string\") {\n return {\n redirect: signInCallbackResponse,\n cookies\n };\n }\n } catch (error) {\n return {\n redirect: `${url}/error?error=${encodeURIComponent(error.message)}`,\n cookies\n };\n }\n const {\n user,\n session,\n isNewUser\n } = await (0, _callbackHandler.default)({\n sessionToken: sessionStore.value,\n profile,\n account,\n options\n });\n if (useJwtSession) {\n var _user$id2;\n const defaultToken = {\n name: user.name,\n email: user.email,\n picture: user.image,\n sub: (_user$id2 = user.id) === null || _user$id2 === void 0 ? void 0 : _user$id2.toString()\n };\n const token = await callbacks.jwt({\n token: defaultToken,\n user,\n account,\n isNewUser,\n trigger: isNewUser ? \"signUp\" : \"signIn\"\n });\n const newToken = await jwt.encode({\n ...jwt,\n token\n });\n const cookieExpires = new Date();\n cookieExpires.setTime(cookieExpires.getTime() + sessionMaxAge * 1000);\n const sessionCookies = sessionStore.chunk(newToken, {\n expires: cookieExpires\n });\n cookies.push(...sessionCookies);\n } else {\n cookies.push({\n name: options.cookies.sessionToken.name,\n value: session.sessionToken,\n options: {\n ...options.cookies.sessionToken.options,\n expires: session.expires\n }\n });\n }\n await ((_events$signIn2 = events.signIn) === null || _events$signIn2 === void 0 ? void 0 : _events$signIn2.call(events, {\n user,\n account,\n isNewUser\n }));\n if (isNewUser && pages.newUser) {\n return {\n redirect: `${pages.newUser}${pages.newUser.includes(\"?\") ? \"&\" : \"?\"}callbackUrl=${encodeURIComponent(callbackUrl)}`,\n cookies\n };\n }\n return {\n redirect: callbackUrl,\n cookies\n };\n } catch (error) {\n if (error.name === \"CreateUserError\") {\n return {\n redirect: `${url}/error?error=EmailCreateAccount`,\n cookies\n };\n }\n logger.error(\"CALLBACK_EMAIL_ERROR\", error);\n return {\n redirect: `${url}/error?error=Callback`,\n cookies\n };\n }\n } else if (provider.type === \"credentials\" && method === \"POST\") {\n var _user$id3, _events$signIn3;\n const credentials = body;\n let user;\n try {\n user = await provider.authorize(credentials, {\n query,\n body,\n headers,\n method\n });\n if (!user) {\n return {\n status: 401,\n redirect: `${url}/error?${new URLSearchParams({\n error: \"CredentialsSignin\",\n provider: provider.id\n })}`,\n cookies\n };\n }\n } catch (error) {\n return {\n status: 401,\n redirect: `${url}/error?error=${encodeURIComponent(error.message)}`,\n cookies\n };\n }\n const account = {\n providerAccountId: user.id,\n type: \"credentials\",\n provider: provider.id\n };\n try {\n const isAllowed = await callbacks.signIn({\n user,\n account,\n credentials\n });\n if (!isAllowed) {\n return {\n status: 403,\n redirect: `${url}/error?error=AccessDenied`,\n cookies\n };\n } else if (typeof isAllowed === \"string\") {\n return {\n redirect: isAllowed,\n cookies\n };\n }\n } catch (error) {\n return {\n redirect: `${url}/error?error=${encodeURIComponent(error.message)}`,\n cookies\n };\n }\n const defaultToken = {\n name: user.name,\n email: user.email,\n picture: user.image,\n sub: (_user$id3 = user.id) === null || _user$id3 === void 0 ? void 0 : _user$id3.toString()\n };\n const token = await callbacks.jwt({\n token: defaultToken,\n user,\n account,\n isNewUser: false,\n trigger: \"signIn\"\n });\n const newToken = await jwt.encode({\n ...jwt,\n token\n });\n const cookieExpires = new Date();\n cookieExpires.setTime(cookieExpires.getTime() + sessionMaxAge * 1000);\n const sessionCookies = sessionStore.chunk(newToken, {\n expires: cookieExpires\n });\n cookies.push(...sessionCookies);\n await ((_events$signIn3 = events.signIn) === null || _events$signIn3 === void 0 ? void 0 : _events$signIn3.call(events, {\n user,\n account\n }));\n return {\n redirect: callbackUrl,\n cookies\n };\n }\n return {\n status: 500,\n body: `Error: Callback for provider type ${provider.type} not supported`,\n cookies\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcm91dGVzL2NhbGxiYWNrLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLDBIQUE4QztBQUNuRiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmLHVDQUF1QyxtQkFBTyxDQUFDLHdGQUF1QjtBQUN0RSw4Q0FBOEMsbUJBQU8sQ0FBQyw0RkFBeUI7QUFDL0UsYUFBYSxtQkFBTyxDQUFDLHNFQUFjO0FBQ25DLCtDQUErQyxtQkFBTyxDQUFDLHdHQUErQjtBQUN0RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EseUJBQXlCLElBQUk7QUFDN0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxZQUFZO0FBQ1o7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQSwyQkFBMkIsSUFBSTtBQUMvQjtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSx5QkFBeUIsSUFBSSxlQUFlLGtDQUFrQztBQUM5RTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXO0FBQ1g7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EseUJBQXlCLGNBQWMsRUFBRSx3Q0FBd0MsY0FBYyxnQ0FBZ0M7QUFDL0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBLHlCQUF5QixJQUFJO0FBQzdCO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQSx5QkFBeUIsSUFBSTtBQUM3QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLElBQUk7QUFDM0I7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsdUJBQXVCLElBQUk7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHFCQUFxQixJQUFJO0FBQ3pCO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSx1QkFBdUIsSUFBSTtBQUMzQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLElBQUk7QUFDM0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EseUJBQXlCLElBQUk7QUFDN0I7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0EsdUJBQXVCLElBQUksZUFBZSxrQ0FBa0M7QUFDNUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsdUJBQXVCLGNBQWMsRUFBRSx3Q0FBd0MsY0FBYyxnQ0FBZ0M7QUFDN0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBLHVCQUF1QixJQUFJO0FBQzNCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxxQkFBcUIsSUFBSTtBQUN6QjtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBLHVCQUF1QixJQUFJLFNBQVM7QUFDcEM7QUFDQTtBQUNBLFdBQVcsRUFBRTtBQUNiO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0EscUJBQXFCLElBQUksZUFBZSxrQ0FBa0M7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0EsdUJBQXVCLElBQUk7QUFDM0I7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0EscUJBQXFCLElBQUksZUFBZSxrQ0FBa0M7QUFDMUU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtDQUErQyxlQUFlO0FBQzlEO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9jb3JlL3JvdXRlcy9jYWxsYmFjay5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gY2FsbGJhY2s7XG52YXIgX2NhbGxiYWNrID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbGliL29hdXRoL2NhbGxiYWNrXCIpKTtcbnZhciBfY2FsbGJhY2tIYW5kbGVyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbGliL2NhbGxiYWNrLWhhbmRsZXJcIikpO1xudmFyIF91dGlscyA9IHJlcXVpcmUoXCIuLi9saWIvdXRpbHNcIik7XG52YXIgX2dldFVzZXJGcm9tRW1haWwgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9saWIvZW1haWwvZ2V0VXNlckZyb21FbWFpbFwiKSk7XG5hc3luYyBmdW5jdGlvbiBjYWxsYmFjayhwYXJhbXMpIHtcbiAgY29uc3Qge1xuICAgIG9wdGlvbnMsXG4gICAgcXVlcnksXG4gICAgYm9keSxcbiAgICBtZXRob2QsXG4gICAgaGVhZGVycyxcbiAgICBzZXNzaW9uU3RvcmVcbiAgfSA9IHBhcmFtcztcbiAgY29uc3Qge1xuICAgIHByb3ZpZGVyLFxuICAgIGFkYXB0ZXIsXG4gICAgdXJsLFxuICAgIGNhbGxiYWNrVXJsLFxuICAgIHBhZ2VzLFxuICAgIGp3dCxcbiAgICBldmVudHMsXG4gICAgY2FsbGJhY2tzLFxuICAgIHNlc3Npb246IHtcbiAgICAgIHN0cmF0ZWd5OiBzZXNzaW9uU3RyYXRlZ3ksXG4gICAgICBtYXhBZ2U6IHNlc3Npb25NYXhBZ2VcbiAgICB9LFxuICAgIGxvZ2dlclxuICB9ID0gb3B0aW9ucztcbiAgY29uc3QgY29va2llcyA9IFtdO1xuICBjb25zdCB1c2VKd3RTZXNzaW9uID0gc2Vzc2lvblN0cmF0ZWd5ID09PSBcImp3dFwiO1xuICBpZiAocHJvdmlkZXIudHlwZSA9PT0gXCJvYXV0aFwiKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgYWNjb3VudCxcbiAgICAgICAgT0F1dGhQcm9maWxlLFxuICAgICAgICBjb29raWVzOiBvYXV0aENvb2tpZXNcbiAgICAgIH0gPSBhd2FpdCAoMCwgX2NhbGxiYWNrLmRlZmF1bHQpKHtcbiAgICAgICAgcXVlcnksXG4gICAgICAgIGJvZHksXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgb3B0aW9ucyxcbiAgICAgICAgY29va2llczogcGFyYW1zLmNvb2tpZXNcbiAgICAgIH0pO1xuICAgICAgaWYgKG9hdXRoQ29va2llcy5sZW5ndGgpIGNvb2tpZXMucHVzaCguLi5vYXV0aENvb2tpZXMpO1xuICAgICAgdHJ5IHtcbiAgICAgICAgdmFyIF9ldmVudHMkc2lnbkluO1xuICAgICAgICBsb2dnZXIuZGVidWcoXCJPQVVUSF9DQUxMQkFDS19SRVNQT05TRVwiLCB7XG4gICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICBhY2NvdW50LFxuICAgICAgICAgIE9BdXRoUHJvZmlsZVxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKCFwcm9maWxlIHx8ICFhY2NvdW50IHx8ICFPQXV0aFByb2ZpbGUpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVkaXJlY3Q6IGAke3VybH0vc2lnbmluYCxcbiAgICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGxldCB1c2VyT3JQcm9maWxlID0gcHJvZmlsZTtcbiAgICAgICAgaWYgKGFkYXB0ZXIpIHtcbiAgICAgICAgICBjb25zdCB7XG4gICAgICAgICAgICBnZXRVc2VyQnlBY2NvdW50XG4gICAgICAgICAgfSA9IGFkYXB0ZXI7XG4gICAgICAgICAgY29uc3QgdXNlckJ5QWNjb3VudCA9IGF3YWl0IGdldFVzZXJCeUFjY291bnQoe1xuICAgICAgICAgICAgcHJvdmlkZXJBY2NvdW50SWQ6IGFjY291bnQucHJvdmlkZXJBY2NvdW50SWQsXG4gICAgICAgICAgICBwcm92aWRlcjogcHJvdmlkZXIuaWRcbiAgICAgICAgICB9KTtcbiAgICAgICAgICBpZiAodXNlckJ5QWNjb3VudCkgdXNlck9yUHJvZmlsZSA9IHVzZXJCeUFjY291bnQ7XG4gICAgICAgIH1cbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICBjb25zdCBpc0FsbG93ZWQgPSBhd2FpdCBjYWxsYmFja3Muc2lnbkluKHtcbiAgICAgICAgICAgIHVzZXI6IHVzZXJPclByb2ZpbGUsXG4gICAgICAgICAgICBhY2NvdW50LFxuICAgICAgICAgICAgcHJvZmlsZTogT0F1dGhQcm9maWxlXG4gICAgICAgICAgfSk7XG4gICAgICAgICAgaWYgKCFpc0FsbG93ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIHJlZGlyZWN0OiBgJHt1cmx9L2Vycm9yP2Vycm9yPUFjY2Vzc0RlbmllZGAsXG4gICAgICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSBlbHNlIGlmICh0eXBlb2YgaXNBbGxvd2VkID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICByZWRpcmVjdDogaXNBbGxvd2VkLFxuICAgICAgICAgICAgICBjb29raWVzXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVkaXJlY3Q6IGAke3VybH0vZXJyb3I/ZXJyb3I9JHtlbmNvZGVVUklDb21wb25lbnQoZXJyb3IubWVzc2FnZSl9YCxcbiAgICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICB1c2VyLFxuICAgICAgICAgIHNlc3Npb24sXG4gICAgICAgICAgaXNOZXdVc2VyXG4gICAgICAgIH0gPSBhd2FpdCAoMCwgX2NhbGxiYWNrSGFuZGxlci5kZWZhdWx0KSh7XG4gICAgICAgICAgc2Vzc2lvblRva2VuOiBzZXNzaW9uU3RvcmUudmFsdWUsXG4gICAgICAgICAgcHJvZmlsZSxcbiAgICAgICAgICBhY2NvdW50LFxuICAgICAgICAgIG9wdGlvbnNcbiAgICAgICAgfSk7XG4gICAgICAgIGlmICh1c2VKd3RTZXNzaW9uKSB7XG4gICAgICAgICAgdmFyIF91c2VyJGlkO1xuICAgICAgICAgIGNvbnN0IGRlZmF1bHRUb2tlbiA9IHtcbiAgICAgICAgICAgIG5hbWU6IHVzZXIubmFtZSxcbiAgICAgICAgICAgIGVtYWlsOiB1c2VyLmVtYWlsLFxuICAgICAgICAgICAgcGljdHVyZTogdXNlci5pbWFnZSxcbiAgICAgICAgICAgIHN1YjogKF91c2VyJGlkID0gdXNlci5pZCkgPT09IG51bGwgfHwgX3VzZXIkaWQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF91c2VyJGlkLnRvU3RyaW5nKClcbiAgICAgICAgICB9O1xuICAgICAgICAgIGNvbnN0IHRva2VuID0gYXdhaXQgY2FsbGJhY2tzLmp3dCh7XG4gICAgICAgICAgICB0b2tlbjogZGVmYXVsdFRva2VuLFxuICAgICAgICAgICAgdXNlcixcbiAgICAgICAgICAgIGFjY291bnQsXG4gICAgICAgICAgICBwcm9maWxlOiBPQXV0aFByb2ZpbGUsXG4gICAgICAgICAgICBpc05ld1VzZXIsXG4gICAgICAgICAgICB0cmlnZ2VyOiBpc05ld1VzZXIgPyBcInNpZ25VcFwiIDogXCJzaWduSW5cIlxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnN0IG5ld1Rva2VuID0gYXdhaXQgand0LmVuY29kZSh7XG4gICAgICAgICAgICAuLi5qd3QsXG4gICAgICAgICAgICB0b2tlblxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvbnN0IGNvb2tpZUV4cGlyZXMgPSBuZXcgRGF0ZSgpO1xuICAgICAgICAgIGNvb2tpZUV4cGlyZXMuc2V0VGltZShjb29raWVFeHBpcmVzLmdldFRpbWUoKSArIHNlc3Npb25NYXhBZ2UgKiAxMDAwKTtcbiAgICAgICAgICBjb25zdCBzZXNzaW9uQ29va2llcyA9IHNlc3Npb25TdG9yZS5jaHVuayhuZXdUb2tlbiwge1xuICAgICAgICAgICAgZXhwaXJlczogY29va2llRXhwaXJlc1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIGNvb2tpZXMucHVzaCguLi5zZXNzaW9uQ29va2llcyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29va2llcy5wdXNoKHtcbiAgICAgICAgICAgIG5hbWU6IG9wdGlvbnMuY29va2llcy5zZXNzaW9uVG9rZW4ubmFtZSxcbiAgICAgICAgICAgIHZhbHVlOiBzZXNzaW9uLnNlc3Npb25Ub2tlbixcbiAgICAgICAgICAgIG9wdGlvbnM6IHtcbiAgICAgICAgICAgICAgLi4ub3B0aW9ucy5jb29raWVzLnNlc3Npb25Ub2tlbi5vcHRpb25zLFxuICAgICAgICAgICAgICBleHBpcmVzOiBzZXNzaW9uLmV4cGlyZXNcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBhd2FpdCAoKF9ldmVudHMkc2lnbkluID0gZXZlbnRzLnNpZ25JbikgPT09IG51bGwgfHwgX2V2ZW50cyRzaWduSW4gPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9ldmVudHMkc2lnbkluLmNhbGwoZXZlbnRzLCB7XG4gICAgICAgICAgdXNlcixcbiAgICAgICAgICBhY2NvdW50LFxuICAgICAgICAgIHByb2ZpbGUsXG4gICAgICAgICAgaXNOZXdVc2VyXG4gICAgICAgIH0pKTtcbiAgICAgICAgaWYgKGlzTmV3VXNlciAmJiBwYWdlcy5uZXdVc2VyKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlZGlyZWN0OiBgJHtwYWdlcy5uZXdVc2VyfSR7cGFnZXMubmV3VXNlci5pbmNsdWRlcyhcIj9cIikgPyBcIiZcIiA6IFwiP1wifWNhbGxiYWNrVXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KGNhbGxiYWNrVXJsKX1gLFxuICAgICAgICAgICAgY29va2llc1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZWRpcmVjdDogY2FsbGJhY2tVcmwsXG4gICAgICAgICAgY29va2llc1xuICAgICAgICB9O1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yLm5hbWUgPT09IFwiQWNjb3VudE5vdExpbmtlZEVycm9yXCIpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVkaXJlY3Q6IGAke3VybH0vZXJyb3I/ZXJyb3I9T0F1dGhBY2NvdW50Tm90TGlua2VkYCxcbiAgICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKGVycm9yLm5hbWUgPT09IFwiQ3JlYXRlVXNlckVycm9yXCIpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVkaXJlY3Q6IGAke3VybH0vZXJyb3I/ZXJyb3I9T0F1dGhDcmVhdGVBY2NvdW50YCxcbiAgICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgICAgIGxvZ2dlci5lcnJvcihcIk9BVVRIX0NBTExCQUNLX0hBTkRMRVJfRVJST1JcIiwgZXJyb3IpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlZGlyZWN0OiBgJHt1cmx9L2Vycm9yP2Vycm9yPUNhbGxiYWNrYCxcbiAgICAgICAgICBjb29raWVzXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvci5uYW1lID09PSBcIk9BdXRoQ2FsbGJhY2tFcnJvclwiKSB7XG4gICAgICAgIGxvZ2dlci5lcnJvcihcIk9BVVRIX0NBTExCQUNLX0VSUk9SXCIsIHtcbiAgICAgICAgICBlcnJvcjogZXJyb3IsXG4gICAgICAgICAgcHJvdmlkZXJJZDogcHJvdmlkZXIuaWRcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVkaXJlY3Q6IGAke3VybH0vZXJyb3I/ZXJyb3I9T0F1dGhDYWxsYmFja2AsXG4gICAgICAgICAgY29va2llc1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgbG9nZ2VyLmVycm9yKFwiT0FVVEhfQ0FMTEJBQ0tfRVJST1JcIiwgZXJyb3IpO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVkaXJlY3Q6IGAke3VybH0vZXJyb3I/ZXJyb3I9Q2FsbGJhY2tgLFxuICAgICAgICBjb29raWVzXG4gICAgICB9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChwcm92aWRlci50eXBlID09PSBcImVtYWlsXCIpIHtcbiAgICB0cnkge1xuICAgICAgdmFyIF9ldmVudHMkc2lnbkluMjtcbiAgICAgIGNvbnN0IHBhcmFtVG9rZW4gPSBxdWVyeSA9PT0gbnVsbCB8fCBxdWVyeSA9PT0gdm9pZCAwID8gdm9pZCAwIDogcXVlcnkudG9rZW47XG4gICAgICBjb25zdCBwYXJhbUlkZW50aWZpZXIgPSBxdWVyeSA9PT0gbnVsbCB8fCBxdWVyeSA9PT0gdm9pZCAwID8gdm9pZCAwIDogcXVlcnkuZW1haWw7XG4gICAgICBpZiAoIXBhcmFtVG9rZW4pIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZWRpcmVjdDogYCR7dXJsfS9lcnJvcj9lcnJvcj1jb25maWd1cmF0aW9uYCxcbiAgICAgICAgICBjb29raWVzXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBjb25zdCBpbnZpdGUgPSBhd2FpdCBhZGFwdGVyLnVzZVZlcmlmaWNhdGlvblRva2VuKHtcbiAgICAgICAgaWRlbnRpZmllcjogcGFyYW1JZGVudGlmaWVyLFxuICAgICAgICB0b2tlbjogKDAsIF91dGlscy5oYXNoVG9rZW4pKHBhcmFtVG9rZW4sIG9wdGlvbnMpXG4gICAgICB9KTtcbiAgICAgIGNvbnN0IGludmFsaWRJbnZpdGUgPSAhaW52aXRlIHx8IGludml0ZS5leHBpcmVzLnZhbHVlT2YoKSA8IERhdGUubm93KCkgfHwgcGFyYW1JZGVudGlmaWVyICYmIGludml0ZS5pZGVudGlmaWVyICE9PSBwYXJhbUlkZW50aWZpZXI7XG4gICAgICBpZiAoaW52YWxpZEludml0ZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlZGlyZWN0OiBgJHt1cmx9L2Vycm9yP2Vycm9yPVZlcmlmaWNhdGlvbmAsXG4gICAgICAgICAgY29va2llc1xuICAgICAgICB9O1xuICAgICAgfVxuICAgICAgY29uc3QgcHJvZmlsZSA9IGF3YWl0ICgwLCBfZ2V0VXNlckZyb21FbWFpbC5kZWZhdWx0KSh7XG4gICAgICAgIGVtYWlsOiBpbnZpdGUuaWRlbnRpZmllcixcbiAgICAgICAgYWRhcHRlclxuICAgICAgfSk7XG4gICAgICBjb25zdCBhY2NvdW50ID0ge1xuICAgICAgICBwcm92aWRlckFjY291bnRJZDogcHJvZmlsZS5lbWFpbCxcbiAgICAgICAgdHlwZTogXCJlbWFpbFwiLFxuICAgICAgICBwcm92aWRlcjogcHJvdmlkZXIuaWRcbiAgICAgIH07XG4gICAgICB0cnkge1xuICAgICAgICBjb25zdCBzaWduSW5DYWxsYmFja1Jlc3BvbnNlID0gYXdhaXQgY2FsbGJhY2tzLnNpZ25Jbih7XG4gICAgICAgICAgdXNlcjogcHJvZmlsZSxcbiAgICAgICAgICBhY2NvdW50XG4gICAgICAgIH0pO1xuICAgICAgICBpZiAoIXNpZ25JbkNhbGxiYWNrUmVzcG9uc2UpIHtcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgcmVkaXJlY3Q6IGAke3VybH0vZXJyb3I/ZXJyb3I9QWNjZXNzRGVuaWVkYCxcbiAgICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgICB9O1xuICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiBzaWduSW5DYWxsYmFja1Jlc3BvbnNlID09PSBcInN0cmluZ1wiKSB7XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHJlZGlyZWN0OiBzaWduSW5DYWxsYmFja1Jlc3BvbnNlLFxuICAgICAgICAgICAgY29va2llc1xuICAgICAgICAgIH07XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVkaXJlY3Q6IGAke3VybH0vZXJyb3I/ZXJyb3I9JHtlbmNvZGVVUklDb21wb25lbnQoZXJyb3IubWVzc2FnZSl9YCxcbiAgICAgICAgICBjb29raWVzXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBjb25zdCB7XG4gICAgICAgIHVzZXIsXG4gICAgICAgIHNlc3Npb24sXG4gICAgICAgIGlzTmV3VXNlclxuICAgICAgfSA9IGF3YWl0ICgwLCBfY2FsbGJhY2tIYW5kbGVyLmRlZmF1bHQpKHtcbiAgICAgICAgc2Vzc2lvblRva2VuOiBzZXNzaW9uU3RvcmUudmFsdWUsXG4gICAgICAgIHByb2ZpbGUsXG4gICAgICAgIGFjY291bnQsXG4gICAgICAgIG9wdGlvbnNcbiAgICAgIH0pO1xuICAgICAgaWYgKHVzZUp3dFNlc3Npb24pIHtcbiAgICAgICAgdmFyIF91c2VyJGlkMjtcbiAgICAgICAgY29uc3QgZGVmYXVsdFRva2VuID0ge1xuICAgICAgICAgIG5hbWU6IHVzZXIubmFtZSxcbiAgICAgICAgICBlbWFpbDogdXNlci5lbWFpbCxcbiAgICAgICAgICBwaWN0dXJlOiB1c2VyLmltYWdlLFxuICAgICAgICAgIHN1YjogKF91c2VyJGlkMiA9IHVzZXIuaWQpID09PSBudWxsIHx8IF91c2VyJGlkMiA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3VzZXIkaWQyLnRvU3RyaW5nKClcbiAgICAgICAgfTtcbiAgICAgICAgY29uc3QgdG9rZW4gPSBhd2FpdCBjYWxsYmFja3Muand0KHtcbiAgICAgICAgICB0b2tlbjogZGVmYXVsdFRva2VuLFxuICAgICAgICAgIHVzZXIsXG4gICAgICAgICAgYWNjb3VudCxcbiAgICAgICAgICBpc05ld1VzZXIsXG4gICAgICAgICAgdHJpZ2dlcjogaXNOZXdVc2VyID8gXCJzaWduVXBcIiA6IFwic2lnbkluXCJcbiAgICAgICAgfSk7XG4gICAgICAgIGNvbnN0IG5ld1Rva2VuID0gYXdhaXQgand0LmVuY29kZSh7XG4gICAgICAgICAgLi4uand0LFxuICAgICAgICAgIHRva2VuXG4gICAgICAgIH0pO1xuICAgICAgICBjb25zdCBjb29raWVFeHBpcmVzID0gbmV3IERhdGUoKTtcbiAgICAgICAgY29va2llRXhwaXJlcy5zZXRUaW1lKGNvb2tpZUV4cGlyZXMuZ2V0VGltZSgpICsgc2Vzc2lvbk1heEFnZSAqIDEwMDApO1xuICAgICAgICBjb25zdCBzZXNzaW9uQ29va2llcyA9IHNlc3Npb25TdG9yZS5jaHVuayhuZXdUb2tlbiwge1xuICAgICAgICAgIGV4cGlyZXM6IGNvb2tpZUV4cGlyZXNcbiAgICAgICAgfSk7XG4gICAgICAgIGNvb2tpZXMucHVzaCguLi5zZXNzaW9uQ29va2llcyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb29raWVzLnB1c2goe1xuICAgICAgICAgIG5hbWU6IG9wdGlvbnMuY29va2llcy5zZXNzaW9uVG9rZW4ubmFtZSxcbiAgICAgICAgICB2YWx1ZTogc2Vzc2lvbi5zZXNzaW9uVG9rZW4sXG4gICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgLi4ub3B0aW9ucy5jb29raWVzLnNlc3Npb25Ub2tlbi5vcHRpb25zLFxuICAgICAgICAgICAgZXhwaXJlczogc2Vzc2lvbi5leHBpcmVzXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICAgIGF3YWl0ICgoX2V2ZW50cyRzaWduSW4yID0gZXZlbnRzLnNpZ25JbikgPT09IG51bGwgfHwgX2V2ZW50cyRzaWduSW4yID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZXZlbnRzJHNpZ25JbjIuY2FsbChldmVudHMsIHtcbiAgICAgICAgdXNlcixcbiAgICAgICAgYWNjb3VudCxcbiAgICAgICAgaXNOZXdVc2VyXG4gICAgICB9KSk7XG4gICAgICBpZiAoaXNOZXdVc2VyICYmIHBhZ2VzLm5ld1VzZXIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZWRpcmVjdDogYCR7cGFnZXMubmV3VXNlcn0ke3BhZ2VzLm5ld1VzZXIuaW5jbHVkZXMoXCI/XCIpID8gXCImXCIgOiBcIj9cIn1jYWxsYmFja1VybD0ke2VuY29kZVVSSUNvbXBvbmVudChjYWxsYmFja1VybCl9YCxcbiAgICAgICAgICBjb29raWVzXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWRpcmVjdDogY2FsbGJhY2tVcmwsXG4gICAgICAgIGNvb2tpZXNcbiAgICAgIH07XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGlmIChlcnJvci5uYW1lID09PSBcIkNyZWF0ZVVzZXJFcnJvclwiKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgcmVkaXJlY3Q6IGAke3VybH0vZXJyb3I/ZXJyb3I9RW1haWxDcmVhdGVBY2NvdW50YCxcbiAgICAgICAgICBjb29raWVzXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgICBsb2dnZXIuZXJyb3IoXCJDQUxMQkFDS19FTUFJTF9FUlJPUlwiLCBlcnJvcik7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWRpcmVjdDogYCR7dXJsfS9lcnJvcj9lcnJvcj1DYWxsYmFja2AsXG4gICAgICAgIGNvb2tpZXNcbiAgICAgIH07XG4gICAgfVxuICB9IGVsc2UgaWYgKHByb3ZpZGVyLnR5cGUgPT09IFwiY3JlZGVudGlhbHNcIiAmJiBtZXRob2QgPT09IFwiUE9TVFwiKSB7XG4gICAgdmFyIF91c2VyJGlkMywgX2V2ZW50cyRzaWduSW4zO1xuICAgIGNvbnN0IGNyZWRlbnRpYWxzID0gYm9keTtcbiAgICBsZXQgdXNlcjtcbiAgICB0cnkge1xuICAgICAgdXNlciA9IGF3YWl0IHByb3ZpZGVyLmF1dGhvcml6ZShjcmVkZW50aWFscywge1xuICAgICAgICBxdWVyeSxcbiAgICAgICAgYm9keSxcbiAgICAgICAgaGVhZGVycyxcbiAgICAgICAgbWV0aG9kXG4gICAgICB9KTtcbiAgICAgIGlmICghdXNlcikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHN0YXR1czogNDAxLFxuICAgICAgICAgIHJlZGlyZWN0OiBgJHt1cmx9L2Vycm9yPyR7bmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgICAgICBlcnJvcjogXCJDcmVkZW50aWFsc1NpZ25pblwiLFxuICAgICAgICAgICAgcHJvdmlkZXI6IHByb3ZpZGVyLmlkXG4gICAgICAgICAgfSl9YCxcbiAgICAgICAgICBjb29raWVzXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHN0YXR1czogNDAxLFxuICAgICAgICByZWRpcmVjdDogYCR7dXJsfS9lcnJvcj9lcnJvcj0ke2VuY29kZVVSSUNvbXBvbmVudChlcnJvci5tZXNzYWdlKX1gLFxuICAgICAgICBjb29raWVzXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBhY2NvdW50ID0ge1xuICAgICAgcHJvdmlkZXJBY2NvdW50SWQ6IHVzZXIuaWQsXG4gICAgICB0eXBlOiBcImNyZWRlbnRpYWxzXCIsXG4gICAgICBwcm92aWRlcjogcHJvdmlkZXIuaWRcbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBpc0FsbG93ZWQgPSBhd2FpdCBjYWxsYmFja3Muc2lnbkluKHtcbiAgICAgICAgdXNlcixcbiAgICAgICAgYWNjb3VudCxcbiAgICAgICAgY3JlZGVudGlhbHNcbiAgICAgIH0pO1xuICAgICAgaWYgKCFpc0FsbG93ZWQpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBzdGF0dXM6IDQwMyxcbiAgICAgICAgICByZWRpcmVjdDogYCR7dXJsfS9lcnJvcj9lcnJvcj1BY2Nlc3NEZW5pZWRgLFxuICAgICAgICAgIGNvb2tpZXNcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIGlzQWxsb3dlZCA9PT0gXCJzdHJpbmdcIikge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlZGlyZWN0OiBpc0FsbG93ZWQsXG4gICAgICAgICAgY29va2llc1xuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWRpcmVjdDogYCR7dXJsfS9lcnJvcj9lcnJvcj0ke2VuY29kZVVSSUNvbXBvbmVudChlcnJvci5tZXNzYWdlKX1gLFxuICAgICAgICBjb29raWVzXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCBkZWZhdWx0VG9rZW4gPSB7XG4gICAgICBuYW1lOiB1c2VyLm5hbWUsXG4gICAgICBlbWFpbDogdXNlci5lbWFpbCxcbiAgICAgIHBpY3R1cmU6IHVzZXIuaW1hZ2UsXG4gICAgICBzdWI6IChfdXNlciRpZDMgPSB1c2VyLmlkKSA9PT0gbnVsbCB8fCBfdXNlciRpZDMgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF91c2VyJGlkMy50b1N0cmluZygpXG4gICAgfTtcbiAgICBjb25zdCB0b2tlbiA9IGF3YWl0IGNhbGxiYWNrcy5qd3Qoe1xuICAgICAgdG9rZW46IGRlZmF1bHRUb2tlbixcbiAgICAgIHVzZXIsXG4gICAgICBhY2NvdW50LFxuICAgICAgaXNOZXdVc2VyOiBmYWxzZSxcbiAgICAgIHRyaWdnZXI6IFwic2lnbkluXCJcbiAgICB9KTtcbiAgICBjb25zdCBuZXdUb2tlbiA9IGF3YWl0IGp3dC5lbmNvZGUoe1xuICAgICAgLi4uand0LFxuICAgICAgdG9rZW5cbiAgICB9KTtcbiAgICBjb25zdCBjb29raWVFeHBpcmVzID0gbmV3IERhdGUoKTtcbiAgICBjb29raWVFeHBpcmVzLnNldFRpbWUoY29va2llRXhwaXJlcy5nZXRUaW1lKCkgKyBzZXNzaW9uTWF4QWdlICogMTAwMCk7XG4gICAgY29uc3Qgc2Vzc2lvbkNvb2tpZXMgPSBzZXNzaW9uU3RvcmUuY2h1bmsobmV3VG9rZW4sIHtcbiAgICAgIGV4cGlyZXM6IGNvb2tpZUV4cGlyZXNcbiAgICB9KTtcbiAgICBjb29raWVzLnB1c2goLi4uc2Vzc2lvbkNvb2tpZXMpO1xuICAgIGF3YWl0ICgoX2V2ZW50cyRzaWduSW4zID0gZXZlbnRzLnNpZ25JbikgPT09IG51bGwgfHwgX2V2ZW50cyRzaWduSW4zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZXZlbnRzJHNpZ25JbjMuY2FsbChldmVudHMsIHtcbiAgICAgIHVzZXIsXG4gICAgICBhY2NvdW50XG4gICAgfSkpO1xuICAgIHJldHVybiB7XG4gICAgICByZWRpcmVjdDogY2FsbGJhY2tVcmwsXG4gICAgICBjb29raWVzXG4gICAgfTtcbiAgfVxuICByZXR1cm4ge1xuICAgIHN0YXR1czogNTAwLFxuICAgIGJvZHk6IGBFcnJvcjogQ2FsbGJhY2sgZm9yIHByb3ZpZGVyIHR5cGUgJHtwcm92aWRlci50eXBlfSBub3Qgc3VwcG9ydGVkYCxcbiAgICBjb29raWVzXG4gIH07XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/routes/callback.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/routes/index.js":
+/*!*****************************************************!*\
+ !*** ./node_modules/next-auth/core/routes/index.js ***!
+ \*****************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(rsc)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"callback\", ({\n enumerable: true,\n get: function () {\n return _callback.default;\n }\n}));\nObject.defineProperty(exports, \"providers\", ({\n enumerable: true,\n get: function () {\n return _providers.default;\n }\n}));\nObject.defineProperty(exports, \"session\", ({\n enumerable: true,\n get: function () {\n return _session.default;\n }\n}));\nObject.defineProperty(exports, \"signin\", ({\n enumerable: true,\n get: function () {\n return _signin.default;\n }\n}));\nObject.defineProperty(exports, \"signout\", ({\n enumerable: true,\n get: function () {\n return _signout.default;\n }\n}));\nvar _callback = _interopRequireDefault(__webpack_require__(/*! ./callback */ \"(rsc)/./node_modules/next-auth/core/routes/callback.js\"));\nvar _signin = _interopRequireDefault(__webpack_require__(/*! ./signin */ \"(rsc)/./node_modules/next-auth/core/routes/signin.js\"));\nvar _signout = _interopRequireDefault(__webpack_require__(/*! ./signout */ \"(rsc)/./node_modules/next-auth/core/routes/signout.js\"));\nvar _session = _interopRequireDefault(__webpack_require__(/*! ./session */ \"(rsc)/./node_modules/next-auth/core/routes/session.js\"));\nvar _providers = _interopRequireDefault(__webpack_require__(/*! ./providers */ \"(rsc)/./node_modules/next-auth/core/routes/providers.js\"));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcm91dGVzL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLDBIQUE4QztBQUNuRiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw0Q0FBMkM7QUFDM0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRiw2Q0FBNEM7QUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRiwwQ0FBeUM7QUFDekM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQ0FBMEM7QUFDMUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRix1Q0FBdUMsbUJBQU8sQ0FBQywwRUFBWTtBQUMzRCxxQ0FBcUMsbUJBQU8sQ0FBQyxzRUFBVTtBQUN2RCxzQ0FBc0MsbUJBQU8sQ0FBQyx3RUFBVztBQUN6RCxzQ0FBc0MsbUJBQU8sQ0FBQyx3RUFBVztBQUN6RCx3Q0FBd0MsbUJBQU8sQ0FBQyw0RUFBYSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9jb3JlL3JvdXRlcy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY2FsbGJhY2tcIiwge1xuICBlbnVtZXJhYmxlOiB0cnVlLFxuICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICByZXR1cm4gX2NhbGxiYWNrLmRlZmF1bHQ7XG4gIH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwicHJvdmlkZXJzXCIsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIF9wcm92aWRlcnMuZGVmYXVsdDtcbiAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJzZXNzaW9uXCIsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIF9zZXNzaW9uLmRlZmF1bHQ7XG4gIH1cbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwic2lnbmluXCIsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIF9zaWduaW4uZGVmYXVsdDtcbiAgfVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJzaWdub3V0XCIsIHtcbiAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgZ2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIF9zaWdub3V0LmRlZmF1bHQ7XG4gIH1cbn0pO1xudmFyIF9jYWxsYmFjayA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4vY2FsbGJhY2tcIikpO1xudmFyIF9zaWduaW4gPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL3NpZ25pblwiKSk7XG52YXIgX3NpZ25vdXQgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuL3NpZ25vdXRcIikpO1xudmFyIF9zZXNzaW9uID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9zZXNzaW9uXCIpKTtcbnZhciBfcHJvdmlkZXJzID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi9wcm92aWRlcnNcIikpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/routes/index.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/routes/providers.js":
+/*!*********************************************************!*\
+ !*** ./node_modules/next-auth/core/routes/providers.js ***!
+ \*********************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = providers;\nfunction providers(providers) {\n return {\n headers: [{\n key: \"Content-Type\",\n value: \"application/json\"\n }],\n body: providers.reduce((acc, {\n id,\n name,\n type,\n signinUrl,\n callbackUrl\n }) => {\n acc[id] = {\n id,\n name,\n type,\n signinUrl,\n callbackUrl\n };\n return acc;\n }, {})\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcm91dGVzL3Byb3ZpZGVycy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLLElBQUk7QUFDVDtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcm91dGVzL3Byb3ZpZGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHByb3ZpZGVycztcbmZ1bmN0aW9uIHByb3ZpZGVycyhwcm92aWRlcnMpIHtcbiAgcmV0dXJuIHtcbiAgICBoZWFkZXJzOiBbe1xuICAgICAga2V5OiBcIkNvbnRlbnQtVHlwZVwiLFxuICAgICAgdmFsdWU6IFwiYXBwbGljYXRpb24vanNvblwiXG4gICAgfV0sXG4gICAgYm9keTogcHJvdmlkZXJzLnJlZHVjZSgoYWNjLCB7XG4gICAgICBpZCxcbiAgICAgIG5hbWUsXG4gICAgICB0eXBlLFxuICAgICAgc2lnbmluVXJsLFxuICAgICAgY2FsbGJhY2tVcmxcbiAgICB9KSA9PiB7XG4gICAgICBhY2NbaWRdID0ge1xuICAgICAgICBpZCxcbiAgICAgICAgbmFtZSxcbiAgICAgICAgdHlwZSxcbiAgICAgICAgc2lnbmluVXJsLFxuICAgICAgICBjYWxsYmFja1VybFxuICAgICAgfTtcbiAgICAgIHJldHVybiBhY2M7XG4gICAgfSwge30pXG4gIH07XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/routes/providers.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/routes/session.js":
+/*!*******************************************************!*\
+ !*** ./node_modules/next-auth/core/routes/session.js ***!
+ \*******************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = session;\nvar _utils = __webpack_require__(/*! ../lib/utils */ \"(rsc)/./node_modules/next-auth/core/lib/utils.js\");\nasync function session(params) {\n const {\n options,\n sessionStore,\n newSession,\n isUpdate\n } = params;\n const {\n adapter,\n jwt,\n events,\n callbacks,\n logger,\n session: {\n strategy: sessionStrategy,\n maxAge: sessionMaxAge\n }\n } = options;\n const response = {\n body: {},\n headers: [{\n key: \"Content-Type\",\n value: \"application/json\"\n }],\n cookies: []\n };\n const sessionToken = sessionStore.value;\n if (!sessionToken) return response;\n if (sessionStrategy === \"jwt\") {\n try {\n var _response$cookies, _events$session;\n const decodedToken = await jwt.decode({\n ...jwt,\n token: sessionToken\n });\n if (!decodedToken) throw new Error(\"JWT invalid\");\n const token = await callbacks.jwt({\n token: decodedToken,\n ...(isUpdate && {\n trigger: \"update\"\n }),\n session: newSession\n });\n const newExpires = (0, _utils.fromDate)(sessionMaxAge);\n const updatedSession = await callbacks.session({\n session: {\n user: {\n name: decodedToken === null || decodedToken === void 0 ? void 0 : decodedToken.name,\n email: decodedToken === null || decodedToken === void 0 ? void 0 : decodedToken.email,\n image: decodedToken === null || decodedToken === void 0 ? void 0 : decodedToken.picture\n },\n expires: newExpires.toISOString()\n },\n token\n });\n response.body = updatedSession;\n const newToken = await jwt.encode({\n ...jwt,\n token,\n maxAge: options.session.maxAge\n });\n const sessionCookies = sessionStore.chunk(newToken, {\n expires: newExpires\n });\n (_response$cookies = response.cookies) === null || _response$cookies === void 0 || _response$cookies.push(...sessionCookies);\n await ((_events$session = events.session) === null || _events$session === void 0 ? void 0 : _events$session.call(events, {\n session: updatedSession,\n token\n }));\n } catch (error) {\n var _response$cookies2;\n logger.error(\"JWT_SESSION_ERROR\", error);\n (_response$cookies2 = response.cookies) === null || _response$cookies2 === void 0 || _response$cookies2.push(...sessionStore.clean());\n }\n } else {\n try {\n const {\n getSessionAndUser,\n deleteSession,\n updateSession\n } = adapter;\n let userAndSession = await getSessionAndUser(sessionToken);\n if (userAndSession && userAndSession.session.expires.valueOf() < Date.now()) {\n await deleteSession(sessionToken);\n userAndSession = null;\n }\n if (userAndSession) {\n var _response$cookies3, _events$session2;\n const {\n user,\n session\n } = userAndSession;\n const sessionUpdateAge = options.session.updateAge;\n const sessionIsDueToBeUpdatedDate = session.expires.valueOf() - sessionMaxAge * 1000 + sessionUpdateAge * 1000;\n const newExpires = (0, _utils.fromDate)(sessionMaxAge);\n if (sessionIsDueToBeUpdatedDate <= Date.now()) {\n await updateSession({\n sessionToken,\n expires: newExpires\n });\n }\n const sessionPayload = await callbacks.session({\n session: {\n user: {\n name: user.name,\n email: user.email,\n image: user.image\n },\n expires: session.expires.toISOString()\n },\n user,\n newSession,\n ...(isUpdate ? {\n trigger: \"update\"\n } : {})\n });\n response.body = sessionPayload;\n (_response$cookies3 = response.cookies) === null || _response$cookies3 === void 0 || _response$cookies3.push({\n name: options.cookies.sessionToken.name,\n value: sessionToken,\n options: {\n ...options.cookies.sessionToken.options,\n expires: newExpires\n }\n });\n await ((_events$session2 = events.session) === null || _events$session2 === void 0 ? void 0 : _events$session2.call(events, {\n session: sessionPayload\n }));\n } else if (sessionToken) {\n var _response$cookies4;\n (_response$cookies4 = response.cookies) === null || _response$cookies4 === void 0 || _response$cookies4.push(...sessionStore.clean());\n }\n } catch (error) {\n logger.error(\"SESSION_ERROR\", error);\n }\n }\n return response;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcm91dGVzL3Nlc3Npb24uanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWU7QUFDZixhQUFhLG1CQUFPLENBQUMsc0VBQWM7QUFDbkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0EsU0FBUztBQUNUO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLFlBQVksSUFBSTtBQUNoQixTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0EsU0FBUztBQUNULFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9jb3JlL3JvdXRlcy9zZXNzaW9uLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gc2Vzc2lvbjtcbnZhciBfdXRpbHMgPSByZXF1aXJlKFwiLi4vbGliL3V0aWxzXCIpO1xuYXN5bmMgZnVuY3Rpb24gc2Vzc2lvbihwYXJhbXMpIHtcbiAgY29uc3Qge1xuICAgIG9wdGlvbnMsXG4gICAgc2Vzc2lvblN0b3JlLFxuICAgIG5ld1Nlc3Npb24sXG4gICAgaXNVcGRhdGVcbiAgfSA9IHBhcmFtcztcbiAgY29uc3Qge1xuICAgIGFkYXB0ZXIsXG4gICAgand0LFxuICAgIGV2ZW50cyxcbiAgICBjYWxsYmFja3MsXG4gICAgbG9nZ2VyLFxuICAgIHNlc3Npb246IHtcbiAgICAgIHN0cmF0ZWd5OiBzZXNzaW9uU3RyYXRlZ3ksXG4gICAgICBtYXhBZ2U6IHNlc3Npb25NYXhBZ2VcbiAgICB9XG4gIH0gPSBvcHRpb25zO1xuICBjb25zdCByZXNwb25zZSA9IHtcbiAgICBib2R5OiB7fSxcbiAgICBoZWFkZXJzOiBbe1xuICAgICAga2V5OiBcIkNvbnRlbnQtVHlwZVwiLFxuICAgICAgdmFsdWU6IFwiYXBwbGljYXRpb24vanNvblwiXG4gICAgfV0sXG4gICAgY29va2llczogW11cbiAgfTtcbiAgY29uc3Qgc2Vzc2lvblRva2VuID0gc2Vzc2lvblN0b3JlLnZhbHVlO1xuICBpZiAoIXNlc3Npb25Ub2tlbikgcmV0dXJuIHJlc3BvbnNlO1xuICBpZiAoc2Vzc2lvblN0cmF0ZWd5ID09PSBcImp3dFwiKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBfcmVzcG9uc2UkY29va2llcywgX2V2ZW50cyRzZXNzaW9uO1xuICAgICAgY29uc3QgZGVjb2RlZFRva2VuID0gYXdhaXQgand0LmRlY29kZSh7XG4gICAgICAgIC4uLmp3dCxcbiAgICAgICAgdG9rZW46IHNlc3Npb25Ub2tlblxuICAgICAgfSk7XG4gICAgICBpZiAoIWRlY29kZWRUb2tlbikgdGhyb3cgbmV3IEVycm9yKFwiSldUIGludmFsaWRcIik7XG4gICAgICBjb25zdCB0b2tlbiA9IGF3YWl0IGNhbGxiYWNrcy5qd3Qoe1xuICAgICAgICB0b2tlbjogZGVjb2RlZFRva2VuLFxuICAgICAgICAuLi4oaXNVcGRhdGUgJiYge1xuICAgICAgICAgIHRyaWdnZXI6IFwidXBkYXRlXCJcbiAgICAgICAgfSksXG4gICAgICAgIHNlc3Npb246IG5ld1Nlc3Npb25cbiAgICAgIH0pO1xuICAgICAgY29uc3QgbmV3RXhwaXJlcyA9ICgwLCBfdXRpbHMuZnJvbURhdGUpKHNlc3Npb25NYXhBZ2UpO1xuICAgICAgY29uc3QgdXBkYXRlZFNlc3Npb24gPSBhd2FpdCBjYWxsYmFja3Muc2Vzc2lvbih7XG4gICAgICAgIHNlc3Npb246IHtcbiAgICAgICAgICB1c2VyOiB7XG4gICAgICAgICAgICBuYW1lOiBkZWNvZGVkVG9rZW4gPT09IG51bGwgfHwgZGVjb2RlZFRva2VuID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWNvZGVkVG9rZW4ubmFtZSxcbiAgICAgICAgICAgIGVtYWlsOiBkZWNvZGVkVG9rZW4gPT09IG51bGwgfHwgZGVjb2RlZFRva2VuID09PSB2b2lkIDAgPyB2b2lkIDAgOiBkZWNvZGVkVG9rZW4uZW1haWwsXG4gICAgICAgICAgICBpbWFnZTogZGVjb2RlZFRva2VuID09PSBudWxsIHx8IGRlY29kZWRUb2tlbiA9PT0gdm9pZCAwID8gdm9pZCAwIDogZGVjb2RlZFRva2VuLnBpY3R1cmVcbiAgICAgICAgICB9LFxuICAgICAgICAgIGV4cGlyZXM6IG5ld0V4cGlyZXMudG9JU09TdHJpbmcoKVxuICAgICAgICB9LFxuICAgICAgICB0b2tlblxuICAgICAgfSk7XG4gICAgICByZXNwb25zZS5ib2R5ID0gdXBkYXRlZFNlc3Npb247XG4gICAgICBjb25zdCBuZXdUb2tlbiA9IGF3YWl0IGp3dC5lbmNvZGUoe1xuICAgICAgICAuLi5qd3QsXG4gICAgICAgIHRva2VuLFxuICAgICAgICBtYXhBZ2U6IG9wdGlvbnMuc2Vzc2lvbi5tYXhBZ2VcbiAgICAgIH0pO1xuICAgICAgY29uc3Qgc2Vzc2lvbkNvb2tpZXMgPSBzZXNzaW9uU3RvcmUuY2h1bmsobmV3VG9rZW4sIHtcbiAgICAgICAgZXhwaXJlczogbmV3RXhwaXJlc1xuICAgICAgfSk7XG4gICAgICAoX3Jlc3BvbnNlJGNvb2tpZXMgPSByZXNwb25zZS5jb29raWVzKSA9PT0gbnVsbCB8fCBfcmVzcG9uc2UkY29va2llcyA9PT0gdm9pZCAwIHx8IF9yZXNwb25zZSRjb29raWVzLnB1c2goLi4uc2Vzc2lvbkNvb2tpZXMpO1xuICAgICAgYXdhaXQgKChfZXZlbnRzJHNlc3Npb24gPSBldmVudHMuc2Vzc2lvbikgPT09IG51bGwgfHwgX2V2ZW50cyRzZXNzaW9uID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfZXZlbnRzJHNlc3Npb24uY2FsbChldmVudHMsIHtcbiAgICAgICAgc2Vzc2lvbjogdXBkYXRlZFNlc3Npb24sXG4gICAgICAgIHRva2VuXG4gICAgICB9KSk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHZhciBfcmVzcG9uc2UkY29va2llczI7XG4gICAgICBsb2dnZXIuZXJyb3IoXCJKV1RfU0VTU0lPTl9FUlJPUlwiLCBlcnJvcik7XG4gICAgICAoX3Jlc3BvbnNlJGNvb2tpZXMyID0gcmVzcG9uc2UuY29va2llcykgPT09IG51bGwgfHwgX3Jlc3BvbnNlJGNvb2tpZXMyID09PSB2b2lkIDAgfHwgX3Jlc3BvbnNlJGNvb2tpZXMyLnB1c2goLi4uc2Vzc2lvblN0b3JlLmNsZWFuKCkpO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICB0cnkge1xuICAgICAgY29uc3Qge1xuICAgICAgICBnZXRTZXNzaW9uQW5kVXNlcixcbiAgICAgICAgZGVsZXRlU2Vzc2lvbixcbiAgICAgICAgdXBkYXRlU2Vzc2lvblxuICAgICAgfSA9IGFkYXB0ZXI7XG4gICAgICBsZXQgdXNlckFuZFNlc3Npb24gPSBhd2FpdCBnZXRTZXNzaW9uQW5kVXNlcihzZXNzaW9uVG9rZW4pO1xuICAgICAgaWYgKHVzZXJBbmRTZXNzaW9uICYmIHVzZXJBbmRTZXNzaW9uLnNlc3Npb24uZXhwaXJlcy52YWx1ZU9mKCkgPCBEYXRlLm5vdygpKSB7XG4gICAgICAgIGF3YWl0IGRlbGV0ZVNlc3Npb24oc2Vzc2lvblRva2VuKTtcbiAgICAgICAgdXNlckFuZFNlc3Npb24gPSBudWxsO1xuICAgICAgfVxuICAgICAgaWYgKHVzZXJBbmRTZXNzaW9uKSB7XG4gICAgICAgIHZhciBfcmVzcG9uc2UkY29va2llczMsIF9ldmVudHMkc2Vzc2lvbjI7XG4gICAgICAgIGNvbnN0IHtcbiAgICAgICAgICB1c2VyLFxuICAgICAgICAgIHNlc3Npb25cbiAgICAgICAgfSA9IHVzZXJBbmRTZXNzaW9uO1xuICAgICAgICBjb25zdCBzZXNzaW9uVXBkYXRlQWdlID0gb3B0aW9ucy5zZXNzaW9uLnVwZGF0ZUFnZTtcbiAgICAgICAgY29uc3Qgc2Vzc2lvbklzRHVlVG9CZVVwZGF0ZWREYXRlID0gc2Vzc2lvbi5leHBpcmVzLnZhbHVlT2YoKSAtIHNlc3Npb25NYXhBZ2UgKiAxMDAwICsgc2Vzc2lvblVwZGF0ZUFnZSAqIDEwMDA7XG4gICAgICAgIGNvbnN0IG5ld0V4cGlyZXMgPSAoMCwgX3V0aWxzLmZyb21EYXRlKShzZXNzaW9uTWF4QWdlKTtcbiAgICAgICAgaWYgKHNlc3Npb25Jc0R1ZVRvQmVVcGRhdGVkRGF0ZSA8PSBEYXRlLm5vdygpKSB7XG4gICAgICAgICAgYXdhaXQgdXBkYXRlU2Vzc2lvbih7XG4gICAgICAgICAgICBzZXNzaW9uVG9rZW4sXG4gICAgICAgICAgICBleHBpcmVzOiBuZXdFeHBpcmVzXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc2Vzc2lvblBheWxvYWQgPSBhd2FpdCBjYWxsYmFja3Muc2Vzc2lvbih7XG4gICAgICAgICAgc2Vzc2lvbjoge1xuICAgICAgICAgICAgdXNlcjoge1xuICAgICAgICAgICAgICBuYW1lOiB1c2VyLm5hbWUsXG4gICAgICAgICAgICAgIGVtYWlsOiB1c2VyLmVtYWlsLFxuICAgICAgICAgICAgICBpbWFnZTogdXNlci5pbWFnZVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV4cGlyZXM6IHNlc3Npb24uZXhwaXJlcy50b0lTT1N0cmluZygpXG4gICAgICAgICAgfSxcbiAgICAgICAgICB1c2VyLFxuICAgICAgICAgIG5ld1Nlc3Npb24sXG4gICAgICAgICAgLi4uKGlzVXBkYXRlID8ge1xuICAgICAgICAgICAgdHJpZ2dlcjogXCJ1cGRhdGVcIlxuICAgICAgICAgIH0gOiB7fSlcbiAgICAgICAgfSk7XG4gICAgICAgIHJlc3BvbnNlLmJvZHkgPSBzZXNzaW9uUGF5bG9hZDtcbiAgICAgICAgKF9yZXNwb25zZSRjb29raWVzMyA9IHJlc3BvbnNlLmNvb2tpZXMpID09PSBudWxsIHx8IF9yZXNwb25zZSRjb29raWVzMyA9PT0gdm9pZCAwIHx8IF9yZXNwb25zZSRjb29raWVzMy5wdXNoKHtcbiAgICAgICAgICBuYW1lOiBvcHRpb25zLmNvb2tpZXMuc2Vzc2lvblRva2VuLm5hbWUsXG4gICAgICAgICAgdmFsdWU6IHNlc3Npb25Ub2tlbixcbiAgICAgICAgICBvcHRpb25zOiB7XG4gICAgICAgICAgICAuLi5vcHRpb25zLmNvb2tpZXMuc2Vzc2lvblRva2VuLm9wdGlvbnMsXG4gICAgICAgICAgICBleHBpcmVzOiBuZXdFeHBpcmVzXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgYXdhaXQgKChfZXZlbnRzJHNlc3Npb24yID0gZXZlbnRzLnNlc3Npb24pID09PSBudWxsIHx8IF9ldmVudHMkc2Vzc2lvbjIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9ldmVudHMkc2Vzc2lvbjIuY2FsbChldmVudHMsIHtcbiAgICAgICAgICBzZXNzaW9uOiBzZXNzaW9uUGF5bG9hZFxuICAgICAgICB9KSk7XG4gICAgICB9IGVsc2UgaWYgKHNlc3Npb25Ub2tlbikge1xuICAgICAgICB2YXIgX3Jlc3BvbnNlJGNvb2tpZXM0O1xuICAgICAgICAoX3Jlc3BvbnNlJGNvb2tpZXM0ID0gcmVzcG9uc2UuY29va2llcykgPT09IG51bGwgfHwgX3Jlc3BvbnNlJGNvb2tpZXM0ID09PSB2b2lkIDAgfHwgX3Jlc3BvbnNlJGNvb2tpZXM0LnB1c2goLi4uc2Vzc2lvblN0b3JlLmNsZWFuKCkpO1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoXCJTRVNTSU9OX0VSUk9SXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHJlc3BvbnNlO1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/routes/session.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/routes/signin.js":
+/*!******************************************************!*\
+ !*** ./node_modules/next-auth/core/routes/signin.js ***!
+ \******************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(rsc)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = signin;\nvar _authorizationUrl = _interopRequireDefault(__webpack_require__(/*! ../lib/oauth/authorization-url */ \"(rsc)/./node_modules/next-auth/core/lib/oauth/authorization-url.js\"));\nvar _signin = _interopRequireDefault(__webpack_require__(/*! ../lib/email/signin */ \"(rsc)/./node_modules/next-auth/core/lib/email/signin.js\"));\nvar _getUserFromEmail = _interopRequireDefault(__webpack_require__(/*! ../lib/email/getUserFromEmail */ \"(rsc)/./node_modules/next-auth/core/lib/email/getUserFromEmail.js\"));\nasync function signin(params) {\n const {\n options,\n query,\n body\n } = params;\n const {\n url,\n callbacks,\n logger,\n provider\n } = options;\n if (!provider.type) {\n return {\n status: 500,\n text: `Error: Type not specified for ${provider.name}`\n };\n }\n if (provider.type === \"oauth\") {\n try {\n const response = await (0, _authorizationUrl.default)({\n options,\n query\n });\n return response;\n } catch (error) {\n logger.error(\"SIGNIN_OAUTH_ERROR\", {\n error: error,\n providerId: provider.id\n });\n return {\n redirect: `${url}/error?error=OAuthSignin`\n };\n }\n } else if (provider.type === \"email\") {\n var _provider$normalizeId;\n let email = body === null || body === void 0 ? void 0 : body.email;\n if (!email) return {\n redirect: `${url}/error?error=EmailSignin`\n };\n const normalizer = (_provider$normalizeId = provider.normalizeIdentifier) !== null && _provider$normalizeId !== void 0 ? _provider$normalizeId : identifier => {\n let [local, domain] = identifier.toLowerCase().trim().split(\"@\");\n domain = domain.split(\",\")[0];\n return `${local}@${domain}`;\n };\n try {\n email = normalizer(body === null || body === void 0 ? void 0 : body.email);\n } catch (error) {\n logger.error(\"SIGNIN_EMAIL_ERROR\", {\n error,\n providerId: provider.id\n });\n return {\n redirect: `${url}/error?error=EmailSignin`\n };\n }\n const user = await (0, _getUserFromEmail.default)({\n email,\n adapter: options.adapter\n });\n const account = {\n providerAccountId: email,\n userId: email,\n type: \"email\",\n provider: provider.id\n };\n try {\n const signInCallbackResponse = await callbacks.signIn({\n user,\n account,\n email: {\n verificationRequest: true\n }\n });\n if (!signInCallbackResponse) {\n return {\n redirect: `${url}/error?error=AccessDenied`\n };\n } else if (typeof signInCallbackResponse === \"string\") {\n return {\n redirect: signInCallbackResponse\n };\n }\n } catch (error) {\n return {\n redirect: `${url}/error?${new URLSearchParams({\n error: error\n })}`\n };\n }\n try {\n const redirect = await (0, _signin.default)(email, options);\n return {\n redirect\n };\n } catch (error) {\n logger.error(\"SIGNIN_EMAIL_ERROR\", {\n error,\n providerId: provider.id\n });\n return {\n redirect: `${url}/error?error=EmailSignin`\n };\n }\n }\n return {\n redirect: `${url}/signin`\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcm91dGVzL3NpZ25pbi5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw2QkFBNkIsbUJBQU8sQ0FBQywwSEFBOEM7QUFDbkYsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWU7QUFDZiwrQ0FBK0MsbUJBQU8sQ0FBQywwR0FBZ0M7QUFDdkYscUNBQXFDLG1CQUFPLENBQUMsb0ZBQXFCO0FBQ2xFLCtDQUErQyxtQkFBTyxDQUFDLHdHQUErQjtBQUN0RjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0EsNkNBQTZDLGNBQWM7QUFDM0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EscUJBQXFCLElBQUk7QUFDekI7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQSxtQkFBbUIsSUFBSTtBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBLGdCQUFnQixNQUFNLEdBQUcsT0FBTztBQUNoQztBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EscUJBQXFCLElBQUk7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0EsdUJBQXVCLElBQUk7QUFDM0I7QUFDQSxRQUFRO0FBQ1I7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSxxQkFBcUIsSUFBSSxTQUFTO0FBQ2xDO0FBQ0EsU0FBUyxFQUFFO0FBQ1g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EscUJBQXFCLElBQUk7QUFDekI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxpQkFBaUIsSUFBSTtBQUNyQjtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcm91dGVzL3NpZ25pbi5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gc2lnbmluO1xudmFyIF9hdXRob3JpemF0aW9uVXJsID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbGliL29hdXRoL2F1dGhvcml6YXRpb24tdXJsXCIpKTtcbnZhciBfc2lnbmluID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiLi4vbGliL2VtYWlsL3NpZ25pblwiKSk7XG52YXIgX2dldFVzZXJGcm9tRW1haWwgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCIuLi9saWIvZW1haWwvZ2V0VXNlckZyb21FbWFpbFwiKSk7XG5hc3luYyBmdW5jdGlvbiBzaWduaW4ocGFyYW1zKSB7XG4gIGNvbnN0IHtcbiAgICBvcHRpb25zLFxuICAgIHF1ZXJ5LFxuICAgIGJvZHlcbiAgfSA9IHBhcmFtcztcbiAgY29uc3Qge1xuICAgIHVybCxcbiAgICBjYWxsYmFja3MsXG4gICAgbG9nZ2VyLFxuICAgIHByb3ZpZGVyXG4gIH0gPSBvcHRpb25zO1xuICBpZiAoIXByb3ZpZGVyLnR5cGUpIHtcbiAgICByZXR1cm4ge1xuICAgICAgc3RhdHVzOiA1MDAsXG4gICAgICB0ZXh0OiBgRXJyb3I6IFR5cGUgbm90IHNwZWNpZmllZCBmb3IgJHtwcm92aWRlci5uYW1lfWBcbiAgICB9O1xuICB9XG4gIGlmIChwcm92aWRlci50eXBlID09PSBcIm9hdXRoXCIpIHtcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCAoMCwgX2F1dGhvcml6YXRpb25VcmwuZGVmYXVsdCkoe1xuICAgICAgICBvcHRpb25zLFxuICAgICAgICBxdWVyeVxuICAgICAgfSk7XG4gICAgICByZXR1cm4gcmVzcG9uc2U7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIGxvZ2dlci5lcnJvcihcIlNJR05JTl9PQVVUSF9FUlJPUlwiLCB7XG4gICAgICAgIGVycm9yOiBlcnJvcixcbiAgICAgICAgcHJvdmlkZXJJZDogcHJvdmlkZXIuaWRcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVkaXJlY3Q6IGAke3VybH0vZXJyb3I/ZXJyb3I9T0F1dGhTaWduaW5gXG4gICAgICB9O1xuICAgIH1cbiAgfSBlbHNlIGlmIChwcm92aWRlci50eXBlID09PSBcImVtYWlsXCIpIHtcbiAgICB2YXIgX3Byb3ZpZGVyJG5vcm1hbGl6ZUlkO1xuICAgIGxldCBlbWFpbCA9IGJvZHkgPT09IG51bGwgfHwgYm9keSA9PT0gdm9pZCAwID8gdm9pZCAwIDogYm9keS5lbWFpbDtcbiAgICBpZiAoIWVtYWlsKSByZXR1cm4ge1xuICAgICAgcmVkaXJlY3Q6IGAke3VybH0vZXJyb3I/ZXJyb3I9RW1haWxTaWduaW5gXG4gICAgfTtcbiAgICBjb25zdCBub3JtYWxpemVyID0gKF9wcm92aWRlciRub3JtYWxpemVJZCA9IHByb3ZpZGVyLm5vcm1hbGl6ZUlkZW50aWZpZXIpICE9PSBudWxsICYmIF9wcm92aWRlciRub3JtYWxpemVJZCAhPT0gdm9pZCAwID8gX3Byb3ZpZGVyJG5vcm1hbGl6ZUlkIDogaWRlbnRpZmllciA9PiB7XG4gICAgICBsZXQgW2xvY2FsLCBkb21haW5dID0gaWRlbnRpZmllci50b0xvd2VyQ2FzZSgpLnRyaW0oKS5zcGxpdChcIkBcIik7XG4gICAgICBkb21haW4gPSBkb21haW4uc3BsaXQoXCIsXCIpWzBdO1xuICAgICAgcmV0dXJuIGAke2xvY2FsfUAke2RvbWFpbn1gO1xuICAgIH07XG4gICAgdHJ5IHtcbiAgICAgIGVtYWlsID0gbm9ybWFsaXplcihib2R5ID09PSBudWxsIHx8IGJvZHkgPT09IHZvaWQgMCA/IHZvaWQgMCA6IGJvZHkuZW1haWwpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoXCJTSUdOSU5fRU1BSUxfRVJST1JcIiwge1xuICAgICAgICBlcnJvcixcbiAgICAgICAgcHJvdmlkZXJJZDogcHJvdmlkZXIuaWRcbiAgICAgIH0pO1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcmVkaXJlY3Q6IGAke3VybH0vZXJyb3I/ZXJyb3I9RW1haWxTaWduaW5gXG4gICAgICB9O1xuICAgIH1cbiAgICBjb25zdCB1c2VyID0gYXdhaXQgKDAsIF9nZXRVc2VyRnJvbUVtYWlsLmRlZmF1bHQpKHtcbiAgICAgIGVtYWlsLFxuICAgICAgYWRhcHRlcjogb3B0aW9ucy5hZGFwdGVyXG4gICAgfSk7XG4gICAgY29uc3QgYWNjb3VudCA9IHtcbiAgICAgIHByb3ZpZGVyQWNjb3VudElkOiBlbWFpbCxcbiAgICAgIHVzZXJJZDogZW1haWwsXG4gICAgICB0eXBlOiBcImVtYWlsXCIsXG4gICAgICBwcm92aWRlcjogcHJvdmlkZXIuaWRcbiAgICB9O1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBzaWduSW5DYWxsYmFja1Jlc3BvbnNlID0gYXdhaXQgY2FsbGJhY2tzLnNpZ25Jbih7XG4gICAgICAgIHVzZXIsXG4gICAgICAgIGFjY291bnQsXG4gICAgICAgIGVtYWlsOiB7XG4gICAgICAgICAgdmVyaWZpY2F0aW9uUmVxdWVzdDogdHJ1ZVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICAgIGlmICghc2lnbkluQ2FsbGJhY2tSZXNwb25zZSkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIHJlZGlyZWN0OiBgJHt1cmx9L2Vycm9yP2Vycm9yPUFjY2Vzc0RlbmllZGBcbiAgICAgICAgfTtcbiAgICAgIH0gZWxzZSBpZiAodHlwZW9mIHNpZ25JbkNhbGxiYWNrUmVzcG9uc2UgPT09IFwic3RyaW5nXCIpIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICByZWRpcmVjdDogc2lnbkluQ2FsbGJhY2tSZXNwb25zZVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWRpcmVjdDogYCR7dXJsfS9lcnJvcj8ke25ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgIGVycm9yOiBlcnJvclxuICAgICAgICB9KX1gXG4gICAgICB9O1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVkaXJlY3QgPSBhd2FpdCAoMCwgX3NpZ25pbi5kZWZhdWx0KShlbWFpbCwgb3B0aW9ucyk7XG4gICAgICByZXR1cm4ge1xuICAgICAgICByZWRpcmVjdFxuICAgICAgfTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgbG9nZ2VyLmVycm9yKFwiU0lHTklOX0VNQUlMX0VSUk9SXCIsIHtcbiAgICAgICAgZXJyb3IsXG4gICAgICAgIHByb3ZpZGVySWQ6IHByb3ZpZGVyLmlkXG4gICAgICB9KTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIHJlZGlyZWN0OiBgJHt1cmx9L2Vycm9yP2Vycm9yPUVtYWlsU2lnbmluYFxuICAgICAgfTtcbiAgICB9XG4gIH1cbiAgcmV0dXJuIHtcbiAgICByZWRpcmVjdDogYCR7dXJsfS9zaWduaW5gXG4gIH07XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/routes/signin.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/routes/signout.js":
+/*!*******************************************************!*\
+ !*** ./node_modules/next-auth/core/routes/signout.js ***!
+ \*******************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = signout;\nasync function signout(params) {\n const {\n options,\n sessionStore\n } = params;\n const {\n adapter,\n events,\n jwt,\n callbackUrl,\n logger,\n session\n } = options;\n const sessionToken = sessionStore === null || sessionStore === void 0 ? void 0 : sessionStore.value;\n if (!sessionToken) {\n return {\n redirect: callbackUrl\n };\n }\n if (session.strategy === \"jwt\") {\n try {\n var _events$signOut;\n const decodedJwt = await jwt.decode({\n ...jwt,\n token: sessionToken\n });\n await ((_events$signOut = events.signOut) === null || _events$signOut === void 0 ? void 0 : _events$signOut.call(events, {\n token: decodedJwt\n }));\n } catch (error) {\n logger.error(\"SIGNOUT_ERROR\", error);\n }\n } else {\n try {\n var _events$signOut2;\n const session = await adapter.deleteSession(sessionToken);\n await ((_events$signOut2 = events.signOut) === null || _events$signOut2 === void 0 ? void 0 : _events$signOut2.call(events, {\n session\n }));\n } catch (error) {\n logger.error(\"SIGNOUT_ERROR\", error);\n }\n }\n const sessionCookies = sessionStore.clean();\n return {\n redirect: callbackUrl,\n cookies: sessionCookies\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvcm91dGVzL3NpZ25vdXQuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWU7QUFDZjtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBLE9BQU87QUFDUCxNQUFNO0FBQ047QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvY29yZS9yb3V0ZXMvc2lnbm91dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHNpZ25vdXQ7XG5hc3luYyBmdW5jdGlvbiBzaWdub3V0KHBhcmFtcykge1xuICBjb25zdCB7XG4gICAgb3B0aW9ucyxcbiAgICBzZXNzaW9uU3RvcmVcbiAgfSA9IHBhcmFtcztcbiAgY29uc3Qge1xuICAgIGFkYXB0ZXIsXG4gICAgZXZlbnRzLFxuICAgIGp3dCxcbiAgICBjYWxsYmFja1VybCxcbiAgICBsb2dnZXIsXG4gICAgc2Vzc2lvblxuICB9ID0gb3B0aW9ucztcbiAgY29uc3Qgc2Vzc2lvblRva2VuID0gc2Vzc2lvblN0b3JlID09PSBudWxsIHx8IHNlc3Npb25TdG9yZSA9PT0gdm9pZCAwID8gdm9pZCAwIDogc2Vzc2lvblN0b3JlLnZhbHVlO1xuICBpZiAoIXNlc3Npb25Ub2tlbikge1xuICAgIHJldHVybiB7XG4gICAgICByZWRpcmVjdDogY2FsbGJhY2tVcmxcbiAgICB9O1xuICB9XG4gIGlmIChzZXNzaW9uLnN0cmF0ZWd5ID09PSBcImp3dFwiKSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBfZXZlbnRzJHNpZ25PdXQ7XG4gICAgICBjb25zdCBkZWNvZGVkSnd0ID0gYXdhaXQgand0LmRlY29kZSh7XG4gICAgICAgIC4uLmp3dCxcbiAgICAgICAgdG9rZW46IHNlc3Npb25Ub2tlblxuICAgICAgfSk7XG4gICAgICBhd2FpdCAoKF9ldmVudHMkc2lnbk91dCA9IGV2ZW50cy5zaWduT3V0KSA9PT0gbnVsbCB8fCBfZXZlbnRzJHNpZ25PdXQgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9ldmVudHMkc2lnbk91dC5jYWxsKGV2ZW50cywge1xuICAgICAgICB0b2tlbjogZGVjb2RlZEp3dFxuICAgICAgfSkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoXCJTSUdOT1VUX0VSUk9SXCIsIGVycm9yKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgdHJ5IHtcbiAgICAgIHZhciBfZXZlbnRzJHNpZ25PdXQyO1xuICAgICAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0IGFkYXB0ZXIuZGVsZXRlU2Vzc2lvbihzZXNzaW9uVG9rZW4pO1xuICAgICAgYXdhaXQgKChfZXZlbnRzJHNpZ25PdXQyID0gZXZlbnRzLnNpZ25PdXQpID09PSBudWxsIHx8IF9ldmVudHMkc2lnbk91dDIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9ldmVudHMkc2lnbk91dDIuY2FsbChldmVudHMsIHtcbiAgICAgICAgc2Vzc2lvblxuICAgICAgfSkpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICBsb2dnZXIuZXJyb3IoXCJTSUdOT1VUX0VSUk9SXCIsIGVycm9yKTtcbiAgICB9XG4gIH1cbiAgY29uc3Qgc2Vzc2lvbkNvb2tpZXMgPSBzZXNzaW9uU3RvcmUuY2xlYW4oKTtcbiAgcmV0dXJuIHtcbiAgICByZWRpcmVjdDogY2FsbGJhY2tVcmwsXG4gICAgY29va2llczogc2Vzc2lvbkNvb2tpZXNcbiAgfTtcbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/routes/signout.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/core/types.js":
+/*!**********************************************!*\
+ !*** ./node_modules/next-auth/core/types.js ***!
+ \**********************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvdHlwZXMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvdHlwZXMuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/core/types.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/css/index.js":
+/*!*********************************************!*\
+ !*** ./node_modules/next-auth/css/index.js ***!
+ \*********************************************/
+/***/ ((module) => {
+
+eval("module.exports = function() { return \":root{--border-width:1px;--border-radius:0.5rem;--color-error:#c94b4b;--color-info:#157efb;--color-info-hover:#0f6ddb;--color-info-text:#fff}.__next-auth-theme-auto,.__next-auth-theme-light{--color-background:#ececec;--color-background-hover:hsla(0,0%,93%,.8);--color-background-card:#fff;--color-text:#000;--color-primary:#444;--color-control-border:#bbb;--color-button-active-background:#f9f9f9;--color-button-active-border:#aaa;--color-separator:#ccc}.__next-auth-theme-dark{--color-background:#161b22;--color-background-hover:rgba(22,27,34,.8);--color-background-card:#0d1117;--color-text:#fff;--color-primary:#ccc;--color-control-border:#555;--color-button-active-background:#060606;--color-button-active-border:#666;--color-separator:#444}@media (prefers-color-scheme:dark){.__next-auth-theme-auto{--color-background:#161b22;--color-background-hover:rgba(22,27,34,.8);--color-background-card:#0d1117;--color-text:#fff;--color-primary:#ccc;--color-control-border:#555;--color-button-active-background:#060606;--color-button-active-border:#666;--color-separator:#444}a.button,button{background-color:var(--provider-dark-bg,var(--color-background));color:var(--provider-dark-color,var(--color-primary))}a.button:hover,button:hover{background-color:var(--provider-dark-bg-hover,var(--color-background-hover))!important}#provider-logo{display:none!important}#provider-logo-dark{display:block!important;width:25px}}html{box-sizing:border-box}*,:after,:before{box-sizing:inherit;margin:0;padding:0}body{background-color:var(--color-background);font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;margin:0;padding:0}h1{font-weight:400}h1,p{color:var(--color-text);margin-bottom:1.5rem;padding:0 1rem}form{margin:0;padding:0}label{font-weight:500;margin-bottom:.25rem;text-align:left}input[type],label{color:var(--color-text);display:block}input[type]{background:var(--color-background-card);border:var(--border-width) solid var(--color-control-border);border-radius:var(--border-radius);box-sizing:border-box;font-size:1rem;padding:.5rem 1rem;width:100%}input[type]:focus{box-shadow:none}p{font-size:1.1rem;line-height:2rem}a.button{line-height:1rem;text-decoration:none}a.button:link,a.button:visited{background-color:var(--color-background);color:var(--color-primary)}button span{flex-grow:1}a.button,button{align-items:center;background-color:var(--provider-bg);border-color:rgba(0,0,0,.1);border-radius:var(--border-radius);color:var(--provider-color,var(--color-primary));display:flex;font-size:1.1rem;font-weight:500;justify-content:center;min-height:62px;padding:.75rem 1rem;position:relative;transition:all .1s ease-in-out}a.button:hover,button:hover{background-color:var(--provider-bg-hover,var(--color-background-hover));cursor:pointer}a.button:active,button:active{cursor:pointer}a.button #provider-logo,button #provider-logo{display:block;width:25px}a.button #provider-logo-dark,button #provider-logo-dark{display:none}#submitButton{background-color:var(--brand-color,var(--color-info));color:var(--button-text-color,var(--color-info-text));width:100%}#submitButton:hover{background-color:var(--button-hover-bg,var(--color-info-hover))!important}a.site{color:var(--color-primary);font-size:1rem;line-height:2rem;text-decoration:none}a.site:hover{text-decoration:underline}.page{box-sizing:border-box;display:grid;height:100%;margin:0;padding:0;place-items:center;position:absolute;width:100%}.page>div{text-align:center}.error a.button{margin-top:.5rem;padding-left:2rem;padding-right:2rem}.error .message{margin-bottom:1.5rem}.signin input[type=text]{display:block;margin-left:auto;margin-right:auto}.signin hr{border:0;border-top:1px solid var(--color-separator);display:block;margin:2rem auto 1rem;overflow:visible}.signin hr:before{background:var(--color-background-card);color:#888;content:\\\"or\\\";padding:0 .4rem;position:relative;top:-.7rem}.signin .error{background:#f5f5f5;background:var(--color-error);border-radius:.3rem;font-weight:500}.signin .error p{color:var(--color-info-text);font-size:.9rem;line-height:1.2rem;padding:.5rem 1rem;text-align:left}.signin form,.signin>div{display:block}.signin form input[type],.signin>div input[type]{margin-bottom:.5rem}.signin form button,.signin>div button{width:100%}.signin .provider+.provider{margin-top:1rem}.logo{display:inline-block;margin:1.25rem 0;max-height:70px;max-width:150px}.card{background-color:var(--color-background-card);border-radius:2rem;padding:1.25rem 2rem}.card .header{color:var(--color-primary)}.section-header{color:var(--color-text)}@media screen and (min-width:450px){.card{margin:2rem 0;width:368px}}@media screen and (max-width:450px){.card{margin:1rem 0;width:343px}}\" }//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2Nzcy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSw4QkFBOEIsY0FBYyxtQkFBbUIsdUJBQXVCLHNCQUFzQixxQkFBcUIsMkJBQTJCLHVCQUF1QixpREFBaUQsMkJBQTJCLDJDQUEyQyw2QkFBNkIsa0JBQWtCLHFCQUFxQiw0QkFBNEIseUNBQXlDLGtDQUFrQyx1QkFBdUIsd0JBQXdCLDJCQUEyQiwyQ0FBMkMsZ0NBQWdDLGtCQUFrQixxQkFBcUIsNEJBQTRCLHlDQUF5QyxrQ0FBa0MsdUJBQXVCLG1DQUFtQyx3QkFBd0IsMkJBQTJCLDJDQUEyQyxnQ0FBZ0Msa0JBQWtCLHFCQUFxQiw0QkFBNEIseUNBQXlDLGtDQUFrQyx1QkFBdUIsZ0JBQWdCLGlFQUFpRSxzREFBc0QsNEJBQTRCLHVGQUF1RixlQUFlLHVCQUF1QixvQkFBb0Isd0JBQXdCLFlBQVksS0FBSyxzQkFBc0IsaUJBQWlCLG1CQUFtQixTQUFTLFVBQVUsS0FBSyx5Q0FBeUMsaU1BQWlNLFNBQVMsVUFBVSxHQUFHLGdCQUFnQixLQUFLLHdCQUF3QixxQkFBcUIsZUFBZSxLQUFLLFNBQVMsVUFBVSxNQUFNLGdCQUFnQixxQkFBcUIsZ0JBQWdCLGtCQUFrQix3QkFBd0IsY0FBYyxZQUFZLHdDQUF3Qyw2REFBNkQsbUNBQW1DLHNCQUFzQixlQUFlLG1CQUFtQixXQUFXLGtCQUFrQixnQkFBZ0IsRUFBRSxpQkFBaUIsaUJBQWlCLFNBQVMsaUJBQWlCLHFCQUFxQiwrQkFBK0IseUNBQXlDLDJCQUEyQixZQUFZLFlBQVksZ0JBQWdCLG1CQUFtQixvQ0FBb0MsNEJBQTRCLG1DQUFtQyxpREFBaUQsYUFBYSxpQkFBaUIsZ0JBQWdCLHVCQUF1QixnQkFBZ0Isb0JBQW9CLGtCQUFrQiwrQkFBK0IsNEJBQTRCLHdFQUF3RSxlQUFlLDhCQUE4QixlQUFlLDhDQUE4QyxjQUFjLFdBQVcsd0RBQXdELGFBQWEsY0FBYyxzREFBc0Qsc0RBQXNELFdBQVcsb0JBQW9CLDBFQUEwRSxPQUFPLDJCQUEyQixlQUFlLGlCQUFpQixxQkFBcUIsYUFBYSwwQkFBMEIsTUFBTSxzQkFBc0IsYUFBYSxZQUFZLFNBQVMsVUFBVSxtQkFBbUIsa0JBQWtCLFdBQVcsVUFBVSxrQkFBa0IsZ0JBQWdCLGlCQUFpQixrQkFBa0IsbUJBQW1CLGdCQUFnQixxQkFBcUIseUJBQXlCLGNBQWMsaUJBQWlCLGtCQUFrQixXQUFXLFNBQVMsNENBQTRDLGNBQWMsc0JBQXNCLGlCQUFpQixrQkFBa0Isd0NBQXdDLFdBQVcsZUFBZSxnQkFBZ0Isa0JBQWtCLFdBQVcsZUFBZSxtQkFBbUIsOEJBQThCLG9CQUFvQixnQkFBZ0IsaUJBQWlCLDZCQUE2QixnQkFBZ0IsbUJBQW1CLG1CQUFtQixnQkFBZ0IseUJBQXlCLGNBQWMsaURBQWlELG9CQUFvQix1Q0FBdUMsV0FBVyw0QkFBNEIsZ0JBQWdCLE1BQU0scUJBQXFCLGlCQUFpQixnQkFBZ0IsZ0JBQWdCLE1BQU0sOENBQThDLG1CQUFtQixxQkFBcUIsY0FBYywyQkFBMkIsZ0JBQWdCLHdCQUF3QixvQ0FBb0MsTUFBTSxjQUFjLGFBQWEsb0NBQW9DLE1BQU0sY0FBYyxhQUFhIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2Nzcy9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJtb2R1bGUuZXhwb3J0cyA9IGZ1bmN0aW9uKCkgeyByZXR1cm4gXCI6cm9vdHstLWJvcmRlci13aWR0aDoxcHg7LS1ib3JkZXItcmFkaXVzOjAuNXJlbTstLWNvbG9yLWVycm9yOiNjOTRiNGI7LS1jb2xvci1pbmZvOiMxNTdlZmI7LS1jb2xvci1pbmZvLWhvdmVyOiMwZjZkZGI7LS1jb2xvci1pbmZvLXRleHQ6I2ZmZn0uX19uZXh0LWF1dGgtdGhlbWUtYXV0bywuX19uZXh0LWF1dGgtdGhlbWUtbGlnaHR7LS1jb2xvci1iYWNrZ3JvdW5kOiNlY2VjZWM7LS1jb2xvci1iYWNrZ3JvdW5kLWhvdmVyOmhzbGEoMCwwJSw5MyUsLjgpOy0tY29sb3ItYmFja2dyb3VuZC1jYXJkOiNmZmY7LS1jb2xvci10ZXh0OiMwMDA7LS1jb2xvci1wcmltYXJ5OiM0NDQ7LS1jb2xvci1jb250cm9sLWJvcmRlcjojYmJiOy0tY29sb3ItYnV0dG9uLWFjdGl2ZS1iYWNrZ3JvdW5kOiNmOWY5Zjk7LS1jb2xvci1idXR0b24tYWN0aXZlLWJvcmRlcjojYWFhOy0tY29sb3Itc2VwYXJhdG9yOiNjY2N9Ll9fbmV4dC1hdXRoLXRoZW1lLWRhcmt7LS1jb2xvci1iYWNrZ3JvdW5kOiMxNjFiMjI7LS1jb2xvci1iYWNrZ3JvdW5kLWhvdmVyOnJnYmEoMjIsMjcsMzQsLjgpOy0tY29sb3ItYmFja2dyb3VuZC1jYXJkOiMwZDExMTc7LS1jb2xvci10ZXh0OiNmZmY7LS1jb2xvci1wcmltYXJ5OiNjY2M7LS1jb2xvci1jb250cm9sLWJvcmRlcjojNTU1Oy0tY29sb3ItYnV0dG9uLWFjdGl2ZS1iYWNrZ3JvdW5kOiMwNjA2MDY7LS1jb2xvci1idXR0b24tYWN0aXZlLWJvcmRlcjojNjY2Oy0tY29sb3Itc2VwYXJhdG9yOiM0NDR9QG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTpkYXJrKXsuX19uZXh0LWF1dGgtdGhlbWUtYXV0b3stLWNvbG9yLWJhY2tncm91bmQ6IzE2MWIyMjstLWNvbG9yLWJhY2tncm91bmQtaG92ZXI6cmdiYSgyMiwyNywzNCwuOCk7LS1jb2xvci1iYWNrZ3JvdW5kLWNhcmQ6IzBkMTExNzstLWNvbG9yLXRleHQ6I2ZmZjstLWNvbG9yLXByaW1hcnk6I2NjYzstLWNvbG9yLWNvbnRyb2wtYm9yZGVyOiM1NTU7LS1jb2xvci1idXR0b24tYWN0aXZlLWJhY2tncm91bmQ6IzA2MDYwNjstLWNvbG9yLWJ1dHRvbi1hY3RpdmUtYm9yZGVyOiM2NjY7LS1jb2xvci1zZXBhcmF0b3I6IzQ0NH1hLmJ1dHRvbixidXR0b257YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm92aWRlci1kYXJrLWJnLHZhcigtLWNvbG9yLWJhY2tncm91bmQpKTtjb2xvcjp2YXIoLS1wcm92aWRlci1kYXJrLWNvbG9yLHZhcigtLWNvbG9yLXByaW1hcnkpKX1hLmJ1dHRvbjpob3ZlcixidXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1wcm92aWRlci1kYXJrLWJnLWhvdmVyLHZhcigtLWNvbG9yLWJhY2tncm91bmQtaG92ZXIpKSFpbXBvcnRhbnR9I3Byb3ZpZGVyLWxvZ297ZGlzcGxheTpub25lIWltcG9ydGFudH0jcHJvdmlkZXItbG9nby1kYXJre2Rpc3BsYXk6YmxvY2shaW1wb3J0YW50O3dpZHRoOjI1cHh9fWh0bWx7Ym94LXNpemluZzpib3JkZXItYm94fSosOmFmdGVyLDpiZWZvcmV7Ym94LXNpemluZzppbmhlcml0O21hcmdpbjowO3BhZGRpbmc6MH1ib2R5e2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmFja2dyb3VuZCk7Zm9udC1mYW1pbHk6dWktc2Fucy1zZXJpZixzeXN0ZW0tdWksLWFwcGxlLXN5c3RlbSxCbGlua01hY1N5c3RlbUZvbnQsU2Vnb2UgVUksUm9ib3RvLEhlbHZldGljYSBOZXVlLEFyaWFsLE5vdG8gU2FucyxzYW5zLXNlcmlmLEFwcGxlIENvbG9yIEVtb2ppLFNlZ29lIFVJIEVtb2ppLFNlZ29lIFVJIFN5bWJvbCxOb3RvIENvbG9yIEVtb2ppO21hcmdpbjowO3BhZGRpbmc6MH1oMXtmb250LXdlaWdodDo0MDB9aDEscHtjb2xvcjp2YXIoLS1jb2xvci10ZXh0KTttYXJnaW4tYm90dG9tOjEuNXJlbTtwYWRkaW5nOjAgMXJlbX1mb3Jte21hcmdpbjowO3BhZGRpbmc6MH1sYWJlbHtmb250LXdlaWdodDo1MDA7bWFyZ2luLWJvdHRvbTouMjVyZW07dGV4dC1hbGlnbjpsZWZ0fWlucHV0W3R5cGVdLGxhYmVse2NvbG9yOnZhcigtLWNvbG9yLXRleHQpO2Rpc3BsYXk6YmxvY2t9aW5wdXRbdHlwZV17YmFja2dyb3VuZDp2YXIoLS1jb2xvci1iYWNrZ3JvdW5kLWNhcmQpO2JvcmRlcjp2YXIoLS1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLWNvbG9yLWNvbnRyb2wtYm9yZGVyKTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpO2JveC1zaXppbmc6Ym9yZGVyLWJveDtmb250LXNpemU6MXJlbTtwYWRkaW5nOi41cmVtIDFyZW07d2lkdGg6MTAwJX1pbnB1dFt0eXBlXTpmb2N1c3tib3gtc2hhZG93Om5vbmV9cHtmb250LXNpemU6MS4xcmVtO2xpbmUtaGVpZ2h0OjJyZW19YS5idXR0b257bGluZS1oZWlnaHQ6MXJlbTt0ZXh0LWRlY29yYXRpb246bm9uZX1hLmJ1dHRvbjpsaW5rLGEuYnV0dG9uOnZpc2l0ZWR7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1jb2xvci1iYWNrZ3JvdW5kKTtjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5KX1idXR0b24gc3BhbntmbGV4LWdyb3c6MX1hLmJ1dHRvbixidXR0b257YWxpZ24taXRlbXM6Y2VudGVyO2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvdmlkZXItYmcpO2JvcmRlci1jb2xvcjpyZ2JhKDAsMCwwLC4xKTtib3JkZXItcmFkaXVzOnZhcigtLWJvcmRlci1yYWRpdXMpO2NvbG9yOnZhcigtLXByb3ZpZGVyLWNvbG9yLHZhcigtLWNvbG9yLXByaW1hcnkpKTtkaXNwbGF5OmZsZXg7Zm9udC1zaXplOjEuMXJlbTtmb250LXdlaWdodDo1MDA7anVzdGlmeS1jb250ZW50OmNlbnRlcjttaW4taGVpZ2h0OjYycHg7cGFkZGluZzouNzVyZW0gMXJlbTtwb3NpdGlvbjpyZWxhdGl2ZTt0cmFuc2l0aW9uOmFsbCAuMXMgZWFzZS1pbi1vdXR9YS5idXR0b246aG92ZXIsYnV0dG9uOmhvdmVye2JhY2tncm91bmQtY29sb3I6dmFyKC0tcHJvdmlkZXItYmctaG92ZXIsdmFyKC0tY29sb3ItYmFja2dyb3VuZC1ob3ZlcikpO2N1cnNvcjpwb2ludGVyfWEuYnV0dG9uOmFjdGl2ZSxidXR0b246YWN0aXZle2N1cnNvcjpwb2ludGVyfWEuYnV0dG9uICNwcm92aWRlci1sb2dvLGJ1dHRvbiAjcHJvdmlkZXItbG9nb3tkaXNwbGF5OmJsb2NrO3dpZHRoOjI1cHh9YS5idXR0b24gI3Byb3ZpZGVyLWxvZ28tZGFyayxidXR0b24gI3Byb3ZpZGVyLWxvZ28tZGFya3tkaXNwbGF5Om5vbmV9I3N1Ym1pdEJ1dHRvbntiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWJyYW5kLWNvbG9yLHZhcigtLWNvbG9yLWluZm8pKTtjb2xvcjp2YXIoLS1idXR0b24tdGV4dC1jb2xvcix2YXIoLS1jb2xvci1pbmZvLXRleHQpKTt3aWR0aDoxMDAlfSNzdWJtaXRCdXR0b246aG92ZXJ7YmFja2dyb3VuZC1jb2xvcjp2YXIoLS1idXR0b24taG92ZXItYmcsdmFyKC0tY29sb3ItaW5mby1ob3ZlcikpIWltcG9ydGFudH1hLnNpdGV7Y29sb3I6dmFyKC0tY29sb3ItcHJpbWFyeSk7Zm9udC1zaXplOjFyZW07bGluZS1oZWlnaHQ6MnJlbTt0ZXh0LWRlY29yYXRpb246bm9uZX1hLnNpdGU6aG92ZXJ7dGV4dC1kZWNvcmF0aW9uOnVuZGVybGluZX0ucGFnZXtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZGlzcGxheTpncmlkO2hlaWdodDoxMDAlO21hcmdpbjowO3BhZGRpbmc6MDtwbGFjZS1pdGVtczpjZW50ZXI7cG9zaXRpb246YWJzb2x1dGU7d2lkdGg6MTAwJX0ucGFnZT5kaXZ7dGV4dC1hbGlnbjpjZW50ZXJ9LmVycm9yIGEuYnV0dG9ue21hcmdpbi10b3A6LjVyZW07cGFkZGluZy1sZWZ0OjJyZW07cGFkZGluZy1yaWdodDoycmVtfS5lcnJvciAubWVzc2FnZXttYXJnaW4tYm90dG9tOjEuNXJlbX0uc2lnbmluIGlucHV0W3R5cGU9dGV4dF17ZGlzcGxheTpibG9jazttYXJnaW4tbGVmdDphdXRvO21hcmdpbi1yaWdodDphdXRvfS5zaWduaW4gaHJ7Ym9yZGVyOjA7Ym9yZGVyLXRvcDoxcHggc29saWQgdmFyKC0tY29sb3Itc2VwYXJhdG9yKTtkaXNwbGF5OmJsb2NrO21hcmdpbjoycmVtIGF1dG8gMXJlbTtvdmVyZmxvdzp2aXNpYmxlfS5zaWduaW4gaHI6YmVmb3Jle2JhY2tncm91bmQ6dmFyKC0tY29sb3ItYmFja2dyb3VuZC1jYXJkKTtjb2xvcjojODg4O2NvbnRlbnQ6XFxcIm9yXFxcIjtwYWRkaW5nOjAgLjRyZW07cG9zaXRpb246cmVsYXRpdmU7dG9wOi0uN3JlbX0uc2lnbmluIC5lcnJvcntiYWNrZ3JvdW5kOiNmNWY1ZjU7YmFja2dyb3VuZDp2YXIoLS1jb2xvci1lcnJvcik7Ym9yZGVyLXJhZGl1czouM3JlbTtmb250LXdlaWdodDo1MDB9LnNpZ25pbiAuZXJyb3IgcHtjb2xvcjp2YXIoLS1jb2xvci1pbmZvLXRleHQpO2ZvbnQtc2l6ZTouOXJlbTtsaW5lLWhlaWdodDoxLjJyZW07cGFkZGluZzouNXJlbSAxcmVtO3RleHQtYWxpZ246bGVmdH0uc2lnbmluIGZvcm0sLnNpZ25pbj5kaXZ7ZGlzcGxheTpibG9ja30uc2lnbmluIGZvcm0gaW5wdXRbdHlwZV0sLnNpZ25pbj5kaXYgaW5wdXRbdHlwZV17bWFyZ2luLWJvdHRvbTouNXJlbX0uc2lnbmluIGZvcm0gYnV0dG9uLC5zaWduaW4+ZGl2IGJ1dHRvbnt3aWR0aDoxMDAlfS5zaWduaW4gLnByb3ZpZGVyKy5wcm92aWRlcnttYXJnaW4tdG9wOjFyZW19LmxvZ297ZGlzcGxheTppbmxpbmUtYmxvY2s7bWFyZ2luOjEuMjVyZW0gMDttYXgtaGVpZ2h0OjcwcHg7bWF4LXdpZHRoOjE1MHB4fS5jYXJke2JhY2tncm91bmQtY29sb3I6dmFyKC0tY29sb3ItYmFja2dyb3VuZC1jYXJkKTtib3JkZXItcmFkaXVzOjJyZW07cGFkZGluZzoxLjI1cmVtIDJyZW19LmNhcmQgLmhlYWRlcntjb2xvcjp2YXIoLS1jb2xvci1wcmltYXJ5KX0uc2VjdGlvbi1oZWFkZXJ7Y29sb3I6dmFyKC0tY29sb3ItdGV4dCl9QG1lZGlhIHNjcmVlbiBhbmQgKG1pbi13aWR0aDo0NTBweCl7LmNhcmR7bWFyZ2luOjJyZW0gMDt3aWR0aDozNjhweH19QG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDo0NTBweCl7LmNhcmR7bWFyZ2luOjFyZW0gMDt3aWR0aDozNDNweH19XCIgfSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/css/index.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/index.js":
+/*!*****************************************!*\
+ !*** ./node_modules/next-auth/index.js ***!
+ \*****************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar _exportNames = {};\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function () {\n return _next.default;\n }\n}));\nvar _types = __webpack_require__(/*! ./core/types */ \"(rsc)/./node_modules/next-auth/core/types.js\");\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _types[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _types[key];\n }\n });\n});\nvar _next = _interopRequireWildcard(__webpack_require__(/*! ./next */ \"(rsc)/./node_modules/next-auth/next/index.js\"));\nObject.keys(_next).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _next[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _next[key];\n }\n });\n});\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != typeof e && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0EsMkNBQTBDO0FBQzFDO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsYUFBYSxtQkFBTyxDQUFDLGtFQUFjO0FBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCxDQUFDO0FBQ0Qsb0NBQW9DLG1CQUFPLENBQUMsNERBQVE7QUFDcEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUM7QUFDRCx1Q0FBdUMsK0NBQStDLDBDQUEwQyxrREFBa0QsbUJBQW1CO0FBQ3JNLHlDQUF5Qyx1Q0FBdUMsMkVBQTJFLGNBQWMscUNBQXFDLG9DQUFvQyxVQUFVLGlCQUFpQixnRUFBZ0UsMENBQTBDLDhCQUE4QiwwREFBMEQsd0VBQXdFIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xudmFyIF9leHBvcnROYW1lcyA9IHt9O1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiZGVmYXVsdFwiLCB7XG4gIGVudW1lcmFibGU6IHRydWUsXG4gIGdldDogZnVuY3Rpb24gKCkge1xuICAgIHJldHVybiBfbmV4dC5kZWZhdWx0O1xuICB9XG59KTtcbnZhciBfdHlwZXMgPSByZXF1aXJlKFwiLi9jb3JlL3R5cGVzXCIpO1xuT2JqZWN0LmtleXMoX3R5cGVzKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgaWYgKGtleSA9PT0gXCJkZWZhdWx0XCIgfHwga2V5ID09PSBcIl9fZXNNb2R1bGVcIikgcmV0dXJuO1xuICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9leHBvcnROYW1lcywga2V5KSkgcmV0dXJuO1xuICBpZiAoa2V5IGluIGV4cG9ydHMgJiYgZXhwb3J0c1trZXldID09PSBfdHlwZXNba2V5XSkgcmV0dXJuO1xuICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBfdHlwZXNba2V5XTtcbiAgICB9XG4gIH0pO1xufSk7XG52YXIgX25leHQgPSBfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZChyZXF1aXJlKFwiLi9uZXh0XCIpKTtcbk9iamVjdC5rZXlzKF9uZXh0KS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbiAgaWYgKGtleSA9PT0gXCJkZWZhdWx0XCIgfHwga2V5ID09PSBcIl9fZXNNb2R1bGVcIikgcmV0dXJuO1xuICBpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKF9leHBvcnROYW1lcywga2V5KSkgcmV0dXJuO1xuICBpZiAoa2V5IGluIGV4cG9ydHMgJiYgZXhwb3J0c1trZXldID09PSBfbmV4dFtrZXldKSByZXR1cm47XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF9uZXh0W2tleV07XG4gICAgfVxuICB9KTtcbn0pO1xuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKGUpIHsgaWYgKFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgV2Vha01hcCkgcmV0dXJuIG51bGw7IHZhciByID0gbmV3IFdlYWtNYXAoKSwgdCA9IG5ldyBXZWFrTWFwKCk7IHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gKGUpIHsgcmV0dXJuIGUgPyB0IDogcjsgfSkoZSk7IH1cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKGUsIHIpIHsgaWYgKCFyICYmIGUgJiYgZS5fX2VzTW9kdWxlKSByZXR1cm4gZTsgaWYgKG51bGwgPT09IGUgfHwgXCJvYmplY3RcIiAhPSB0eXBlb2YgZSAmJiBcImZ1bmN0aW9uXCIgIT0gdHlwZW9mIGUpIHJldHVybiB7IGRlZmF1bHQ6IGUgfTsgdmFyIHQgPSBfZ2V0UmVxdWlyZVdpbGRjYXJkQ2FjaGUocik7IGlmICh0ICYmIHQuaGFzKGUpKSByZXR1cm4gdC5nZXQoZSk7IHZhciBuID0geyBfX3Byb3RvX186IG51bGwgfSwgYSA9IE9iamVjdC5kZWZpbmVQcm9wZXJ0eSAmJiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yOyBmb3IgKHZhciB1IGluIGUpIGlmIChcImRlZmF1bHRcIiAhPT0gdSAmJiB7fS5oYXNPd25Qcm9wZXJ0eS5jYWxsKGUsIHUpKSB7IHZhciBpID0gYSA/IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSwgdSkgOiBudWxsOyBpICYmIChpLmdldCB8fCBpLnNldCkgPyBPYmplY3QuZGVmaW5lUHJvcGVydHkobiwgdSwgaSkgOiBuW3VdID0gZVt1XTsgfSByZXR1cm4gbi5kZWZhdWx0ID0gZSwgdCAmJiB0LnNldChlLCBuKSwgbjsgfSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/index.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/jwt/index.js":
+/*!*********************************************!*\
+ !*** ./node_modules/next-auth/jwt/index.js ***!
+ \*********************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(rsc)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar _exportNames = {\n encode: true,\n decode: true,\n getToken: true\n};\nexports.decode = decode;\nexports.encode = encode;\nexports.getToken = getToken;\nvar _jose = __webpack_require__(/*! jose */ \"(rsc)/./node_modules/jose/dist/node/cjs/index.js\");\nvar _hkdf = _interopRequireDefault(__webpack_require__(/*! @panva/hkdf */ \"(rsc)/./node_modules/@panva/hkdf/dist/node/cjs/index.js\"));\nvar _uuid = __webpack_require__(/*! uuid */ \"(rsc)/./node_modules/uuid/dist/esm-node/index.js\");\nvar _cookie = __webpack_require__(/*! ../core/lib/cookie */ \"(rsc)/./node_modules/next-auth/core/lib/cookie.js\");\nvar _types = __webpack_require__(/*! ./types */ \"(rsc)/./node_modules/next-auth/jwt/types.js\");\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _types[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function () {\n return _types[key];\n }\n });\n});\nconst DEFAULT_MAX_AGE = 30 * 24 * 60 * 60;\nconst now = () => Date.now() / 1000 | 0;\nasync function encode(params) {\n const {\n token = {},\n secret,\n maxAge = DEFAULT_MAX_AGE,\n salt = \"\"\n } = params;\n const encryptionSecret = await getDerivedEncryptionKey(secret, salt);\n return await new _jose.EncryptJWT(token).setProtectedHeader({\n alg: \"dir\",\n enc: \"A256GCM\"\n }).setIssuedAt().setExpirationTime(now() + maxAge).setJti((0, _uuid.v4)()).encrypt(encryptionSecret);\n}\nasync function decode(params) {\n const {\n token,\n secret,\n salt = \"\"\n } = params;\n if (!token) return null;\n const encryptionSecret = await getDerivedEncryptionKey(secret, salt);\n const {\n payload\n } = await (0, _jose.jwtDecrypt)(token, encryptionSecret, {\n clockTolerance: 15\n });\n return payload;\n}\nasync function getToken(params) {\n var _process$env$NEXTAUTH, _process$env$NEXTAUTH2, _process$env$NEXTAUTH3, _req$headers;\n const {\n req,\n secureCookie = (_process$env$NEXTAUTH = (_process$env$NEXTAUTH2 = process.env.NEXTAUTH_URL) === null || _process$env$NEXTAUTH2 === void 0 ? void 0 : _process$env$NEXTAUTH2.startsWith(\"https://\")) !== null && _process$env$NEXTAUTH !== void 0 ? _process$env$NEXTAUTH : !!process.env.VERCEL,\n cookieName = secureCookie ? \"__Secure-next-auth.session-token\" : \"next-auth.session-token\",\n raw,\n decode: _decode = decode,\n logger = console,\n secret = (_process$env$NEXTAUTH3 = process.env.NEXTAUTH_SECRET) !== null && _process$env$NEXTAUTH3 !== void 0 ? _process$env$NEXTAUTH3 : process.env.AUTH_SECRET\n } = params;\n if (!req) throw new Error(\"Must pass `req` to JWT getToken()\");\n const sessionStore = new _cookie.SessionStore({\n name: cookieName,\n options: {\n secure: secureCookie\n }\n }, {\n cookies: req.cookies,\n headers: req.headers\n }, logger);\n let token = sessionStore.value;\n const authorizationHeader = req.headers instanceof Headers ? req.headers.get(\"authorization\") : (_req$headers = req.headers) === null || _req$headers === void 0 ? void 0 : _req$headers.authorization;\n if (!token && (authorizationHeader === null || authorizationHeader === void 0 ? void 0 : authorizationHeader.split(\" \")[0]) === \"Bearer\") {\n const urlEncodedToken = authorizationHeader.split(\" \")[1];\n token = decodeURIComponent(urlEncodedToken);\n }\n if (!token) return null;\n if (raw) return token;\n try {\n return await _decode({\n token,\n secret\n });\n } catch (_unused) {\n return null;\n }\n}\nasync function getDerivedEncryptionKey(keyMaterial, salt) {\n return await (0, _hkdf.default)(\"sha256\", keyMaterial, salt, `NextAuth.js Generated Encryption Key${salt ? ` (${salt})` : \"\"}`, 32);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2p3dC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw2QkFBNkIsbUJBQU8sQ0FBQywwSEFBOEM7QUFDbkYsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZCxjQUFjO0FBQ2QsZ0JBQWdCO0FBQ2hCLFlBQVksbUJBQU8sQ0FBQyw4REFBTTtBQUMxQixtQ0FBbUMsbUJBQU8sQ0FBQyw0RUFBYTtBQUN4RCxZQUFZLG1CQUFPLENBQUMsOERBQU07QUFDMUIsY0FBYyxtQkFBTyxDQUFDLDZFQUFvQjtBQUMxQyxhQUFhLG1CQUFPLENBQUMsNERBQVM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0dBQXNHLFlBQVksS0FBSyxRQUFRO0FBQy9IIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2p3dC9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xudmFyIF9leHBvcnROYW1lcyA9IHtcbiAgZW5jb2RlOiB0cnVlLFxuICBkZWNvZGU6IHRydWUsXG4gIGdldFRva2VuOiB0cnVlXG59O1xuZXhwb3J0cy5kZWNvZGUgPSBkZWNvZGU7XG5leHBvcnRzLmVuY29kZSA9IGVuY29kZTtcbmV4cG9ydHMuZ2V0VG9rZW4gPSBnZXRUb2tlbjtcbnZhciBfam9zZSA9IHJlcXVpcmUoXCJqb3NlXCIpO1xudmFyIF9oa2RmID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQHBhbnZhL2hrZGZcIikpO1xudmFyIF91dWlkID0gcmVxdWlyZShcInV1aWRcIik7XG52YXIgX2Nvb2tpZSA9IHJlcXVpcmUoXCIuLi9jb3JlL2xpYi9jb29raWVcIik7XG52YXIgX3R5cGVzID0gcmVxdWlyZShcIi4vdHlwZXNcIik7XG5PYmplY3Qua2V5cyhfdHlwZXMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICBpZiAoa2V5ID09PSBcImRlZmF1bHRcIiB8fCBrZXkgPT09IFwiX19lc01vZHVsZVwiKSByZXR1cm47XG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX2V4cG9ydE5hbWVzLCBrZXkpKSByZXR1cm47XG4gIGlmIChrZXkgaW4gZXhwb3J0cyAmJiBleHBvcnRzW2tleV0gPT09IF90eXBlc1trZXldKSByZXR1cm47XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gKCkge1xuICAgICAgcmV0dXJuIF90eXBlc1trZXldO1xuICAgIH1cbiAgfSk7XG59KTtcbmNvbnN0IERFRkFVTFRfTUFYX0FHRSA9IDMwICogMjQgKiA2MCAqIDYwO1xuY29uc3Qgbm93ID0gKCkgPT4gRGF0ZS5ub3coKSAvIDEwMDAgfCAwO1xuYXN5bmMgZnVuY3Rpb24gZW5jb2RlKHBhcmFtcykge1xuICBjb25zdCB7XG4gICAgdG9rZW4gPSB7fSxcbiAgICBzZWNyZXQsXG4gICAgbWF4QWdlID0gREVGQVVMVF9NQVhfQUdFLFxuICAgIHNhbHQgPSBcIlwiXG4gIH0gPSBwYXJhbXM7XG4gIGNvbnN0IGVuY3J5cHRpb25TZWNyZXQgPSBhd2FpdCBnZXREZXJpdmVkRW5jcnlwdGlvbktleShzZWNyZXQsIHNhbHQpO1xuICByZXR1cm4gYXdhaXQgbmV3IF9qb3NlLkVuY3J5cHRKV1QodG9rZW4pLnNldFByb3RlY3RlZEhlYWRlcih7XG4gICAgYWxnOiBcImRpclwiLFxuICAgIGVuYzogXCJBMjU2R0NNXCJcbiAgfSkuc2V0SXNzdWVkQXQoKS5zZXRFeHBpcmF0aW9uVGltZShub3coKSArIG1heEFnZSkuc2V0SnRpKCgwLCBfdXVpZC52NCkoKSkuZW5jcnlwdChlbmNyeXB0aW9uU2VjcmV0KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGRlY29kZShwYXJhbXMpIHtcbiAgY29uc3Qge1xuICAgIHRva2VuLFxuICAgIHNlY3JldCxcbiAgICBzYWx0ID0gXCJcIlxuICB9ID0gcGFyYW1zO1xuICBpZiAoIXRva2VuKSByZXR1cm4gbnVsbDtcbiAgY29uc3QgZW5jcnlwdGlvblNlY3JldCA9IGF3YWl0IGdldERlcml2ZWRFbmNyeXB0aW9uS2V5KHNlY3JldCwgc2FsdCk7XG4gIGNvbnN0IHtcbiAgICBwYXlsb2FkXG4gIH0gPSBhd2FpdCAoMCwgX2pvc2Uuand0RGVjcnlwdCkodG9rZW4sIGVuY3J5cHRpb25TZWNyZXQsIHtcbiAgICBjbG9ja1RvbGVyYW5jZTogMTVcbiAgfSk7XG4gIHJldHVybiBwYXlsb2FkO1xufVxuYXN5bmMgZnVuY3Rpb24gZ2V0VG9rZW4ocGFyYW1zKSB7XG4gIHZhciBfcHJvY2VzcyRlbnYkTkVYVEFVVEgsIF9wcm9jZXNzJGVudiRORVhUQVVUSDIsIF9wcm9jZXNzJGVudiRORVhUQVVUSDMsIF9yZXEkaGVhZGVycztcbiAgY29uc3Qge1xuICAgIHJlcSxcbiAgICBzZWN1cmVDb29raWUgPSAoX3Byb2Nlc3MkZW52JE5FWFRBVVRIID0gKF9wcm9jZXNzJGVudiRORVhUQVVUSDIgPSBwcm9jZXNzLmVudi5ORVhUQVVUSF9VUkwpID09PSBudWxsIHx8IF9wcm9jZXNzJGVudiRORVhUQVVUSDIgPT09IHZvaWQgMCA/IHZvaWQgMCA6IF9wcm9jZXNzJGVudiRORVhUQVVUSDIuc3RhcnRzV2l0aChcImh0dHBzOi8vXCIpKSAhPT0gbnVsbCAmJiBfcHJvY2VzcyRlbnYkTkVYVEFVVEggIT09IHZvaWQgMCA/IF9wcm9jZXNzJGVudiRORVhUQVVUSCA6ICEhcHJvY2Vzcy5lbnYuVkVSQ0VMLFxuICAgIGNvb2tpZU5hbWUgPSBzZWN1cmVDb29raWUgPyBcIl9fU2VjdXJlLW5leHQtYXV0aC5zZXNzaW9uLXRva2VuXCIgOiBcIm5leHQtYXV0aC5zZXNzaW9uLXRva2VuXCIsXG4gICAgcmF3LFxuICAgIGRlY29kZTogX2RlY29kZSA9IGRlY29kZSxcbiAgICBsb2dnZXIgPSBjb25zb2xlLFxuICAgIHNlY3JldCA9IChfcHJvY2VzcyRlbnYkTkVYVEFVVEgzID0gcHJvY2Vzcy5lbnYuTkVYVEFVVEhfU0VDUkVUKSAhPT0gbnVsbCAmJiBfcHJvY2VzcyRlbnYkTkVYVEFVVEgzICE9PSB2b2lkIDAgPyBfcHJvY2VzcyRlbnYkTkVYVEFVVEgzIDogcHJvY2Vzcy5lbnYuQVVUSF9TRUNSRVRcbiAgfSA9IHBhcmFtcztcbiAgaWYgKCFyZXEpIHRocm93IG5ldyBFcnJvcihcIk11c3QgcGFzcyBgcmVxYCB0byBKV1QgZ2V0VG9rZW4oKVwiKTtcbiAgY29uc3Qgc2Vzc2lvblN0b3JlID0gbmV3IF9jb29raWUuU2Vzc2lvblN0b3JlKHtcbiAgICBuYW1lOiBjb29raWVOYW1lLFxuICAgIG9wdGlvbnM6IHtcbiAgICAgIHNlY3VyZTogc2VjdXJlQ29va2llXG4gICAgfVxuICB9LCB7XG4gICAgY29va2llczogcmVxLmNvb2tpZXMsXG4gICAgaGVhZGVyczogcmVxLmhlYWRlcnNcbiAgfSwgbG9nZ2VyKTtcbiAgbGV0IHRva2VuID0gc2Vzc2lvblN0b3JlLnZhbHVlO1xuICBjb25zdCBhdXRob3JpemF0aW9uSGVhZGVyID0gcmVxLmhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzID8gcmVxLmhlYWRlcnMuZ2V0KFwiYXV0aG9yaXphdGlvblwiKSA6IChfcmVxJGhlYWRlcnMgPSByZXEuaGVhZGVycykgPT09IG51bGwgfHwgX3JlcSRoZWFkZXJzID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcmVxJGhlYWRlcnMuYXV0aG9yaXphdGlvbjtcbiAgaWYgKCF0b2tlbiAmJiAoYXV0aG9yaXphdGlvbkhlYWRlciA9PT0gbnVsbCB8fCBhdXRob3JpemF0aW9uSGVhZGVyID09PSB2b2lkIDAgPyB2b2lkIDAgOiBhdXRob3JpemF0aW9uSGVhZGVyLnNwbGl0KFwiIFwiKVswXSkgPT09IFwiQmVhcmVyXCIpIHtcbiAgICBjb25zdCB1cmxFbmNvZGVkVG9rZW4gPSBhdXRob3JpemF0aW9uSGVhZGVyLnNwbGl0KFwiIFwiKVsxXTtcbiAgICB0b2tlbiA9IGRlY29kZVVSSUNvbXBvbmVudCh1cmxFbmNvZGVkVG9rZW4pO1xuICB9XG4gIGlmICghdG9rZW4pIHJldHVybiBudWxsO1xuICBpZiAocmF3KSByZXR1cm4gdG9rZW47XG4gIHRyeSB7XG4gICAgcmV0dXJuIGF3YWl0IF9kZWNvZGUoe1xuICAgICAgdG9rZW4sXG4gICAgICBzZWNyZXRcbiAgICB9KTtcbiAgfSBjYXRjaCAoX3VudXNlZCkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG59XG5hc3luYyBmdW5jdGlvbiBnZXREZXJpdmVkRW5jcnlwdGlvbktleShrZXlNYXRlcmlhbCwgc2FsdCkge1xuICByZXR1cm4gYXdhaXQgKDAsIF9oa2RmLmRlZmF1bHQpKFwic2hhMjU2XCIsIGtleU1hdGVyaWFsLCBzYWx0LCBgTmV4dEF1dGguanMgR2VuZXJhdGVkIEVuY3J5cHRpb24gS2V5JHtzYWx0ID8gYCAoJHtzYWx0fSlgIDogXCJcIn1gLCAzMik7XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/jwt/index.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/jwt/types.js":
+/*!*********************************************!*\
+ !*** ./node_modules/next-auth/jwt/types.js ***!
+ \*********************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2p3dC90eXBlcy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUMiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvand0L3R5cGVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/jwt/types.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/next/index.js":
+/*!**********************************************!*\
+ !*** ./node_modules/next-auth/next/index.js ***!
+ \**********************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nexports.getServerSession = getServerSession;\nexports.unstable_getServerSession = unstable_getServerSession;\nvar _core = __webpack_require__(/*! ../core */ \"(rsc)/./node_modules/next-auth/core/index.js\");\nvar _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next-auth/next/utils.js\");\nasync function NextAuthApiHandler(req, res, options) {\n var _options$secret, _ref, _options$jwt$secret, _options$jwt, _ref2, _handler$status, _handler$cookies, _handler$headers;\n const {\n nextauth,\n ...query\n } = req.query;\n (_options$secret = options.secret) !== null && _options$secret !== void 0 ? _options$secret : options.secret = (_ref = (_options$jwt$secret = (_options$jwt = options.jwt) === null || _options$jwt === void 0 ? void 0 : _options$jwt.secret) !== null && _options$jwt$secret !== void 0 ? _options$jwt$secret : process.env.NEXTAUTH_SECRET) !== null && _ref !== void 0 ? _ref : process.env.AUTH_SECRET;\n const handler = await (0, _core.AuthHandler)({\n req: {\n body: req.body,\n query,\n cookies: req.cookies,\n headers: req.headers,\n method: req.method,\n action: nextauth === null || nextauth === void 0 ? void 0 : nextauth[0],\n providerId: nextauth === null || nextauth === void 0 ? void 0 : nextauth[1],\n error: (_ref2 = req.query.error) !== null && _ref2 !== void 0 ? _ref2 : nextauth === null || nextauth === void 0 ? void 0 : nextauth[1]\n },\n options\n });\n res.status((_handler$status = handler.status) !== null && _handler$status !== void 0 ? _handler$status : 200);\n (_handler$cookies = handler.cookies) === null || _handler$cookies === void 0 || _handler$cookies.forEach(cookie => (0, _utils.setCookie)(res, cookie));\n (_handler$headers = handler.headers) === null || _handler$headers === void 0 || _handler$headers.forEach(h => res.setHeader(h.key, h.value));\n if (handler.redirect) {\n var _req$body;\n if (((_req$body = req.body) === null || _req$body === void 0 ? void 0 : _req$body.json) !== \"true\") {\n res.status(302).setHeader(\"Location\", handler.redirect);\n res.end();\n return;\n }\n return res.json({\n url: handler.redirect\n });\n }\n return res.send(handler.body);\n}\nasync function NextAuthRouteHandler(req, context, options) {\n var _options$secret2, _process$env$NEXTAUTH, _await$context$params, _query$error;\n (_options$secret2 = options.secret) !== null && _options$secret2 !== void 0 ? _options$secret2 : options.secret = (_process$env$NEXTAUTH = process.env.NEXTAUTH_SECRET) !== null && _process$env$NEXTAUTH !== void 0 ? _process$env$NEXTAUTH : process.env.AUTH_SECRET;\n const {\n headers,\n cookies\n } = __webpack_require__(/*! next/headers */ \"(rsc)/./node_modules/next/dist/api/headers.js\");\n const nextauth = (_await$context$params = await context.params) === null || _await$context$params === void 0 ? void 0 : _await$context$params.nextauth;\n const query = Object.fromEntries(req.nextUrl.searchParams);\n const body = await (0, _utils.getBody)(req);\n const internalResponse = await (0, _core.AuthHandler)({\n req: {\n body,\n query,\n cookies: Object.fromEntries((await cookies()).getAll().map(c => [c.name, c.value])),\n headers: Object.fromEntries(await headers()),\n method: req.method,\n action: nextauth === null || nextauth === void 0 ? void 0 : nextauth[0],\n providerId: nextauth === null || nextauth === void 0 ? void 0 : nextauth[1],\n error: (_query$error = query.error) !== null && _query$error !== void 0 ? _query$error : nextauth === null || nextauth === void 0 ? void 0 : nextauth[1]\n },\n options\n });\n const response = (0, _utils.toResponse)(internalResponse);\n const redirect = response.headers.get(\"Location\");\n if ((body === null || body === void 0 ? void 0 : body.json) === \"true\" && redirect) {\n response.headers.delete(\"Location\");\n response.headers.set(\"Content-Type\", \"application/json\");\n return new Response(JSON.stringify({\n url: redirect\n }), {\n status: internalResponse.status,\n headers: response.headers\n });\n }\n return response;\n}\nfunction NextAuth(...args) {\n var _args$;\n if (args.length === 1) {\n return async (req, res) => {\n if (res !== null && res !== void 0 && res.params) {\n return await NextAuthRouteHandler(req, res, args[0]);\n }\n return await NextAuthApiHandler(req, res, args[0]);\n };\n }\n if ((_args$ = args[1]) !== null && _args$ !== void 0 && _args$.params) {\n return NextAuthRouteHandler(...args);\n }\n return NextAuthApiHandler(...args);\n}\nvar _default = exports[\"default\"] = NextAuth;\nasync function getServerSession(...args) {\n var _options, _options$secret3, _process$env$NEXTAUTH2;\n const isRSC = args.length === 0 || args.length === 1;\n let req, res, options;\n if (isRSC) {\n options = Object.assign({}, args[0], {\n providers: []\n });\n const {\n headers,\n cookies\n } = __webpack_require__(/*! next/headers */ \"(rsc)/./node_modules/next/dist/api/headers.js\");\n req = {\n headers: Object.fromEntries(await headers()),\n cookies: Object.fromEntries((await cookies()).getAll().map(c => [c.name, c.value]))\n };\n res = {\n getHeader() {},\n setCookie() {},\n setHeader() {}\n };\n } else {\n req = args[0];\n res = args[1];\n options = Object.assign({}, args[2], {\n providers: []\n });\n }\n (_options$secret3 = (_options = options).secret) !== null && _options$secret3 !== void 0 ? _options$secret3 : _options.secret = (_process$env$NEXTAUTH2 = process.env.NEXTAUTH_SECRET) !== null && _process$env$NEXTAUTH2 !== void 0 ? _process$env$NEXTAUTH2 : process.env.AUTH_SECRET;\n const session = await (0, _core.AuthHandler)({\n options,\n req: {\n action: \"session\",\n method: \"GET\",\n cookies: req.cookies,\n headers: req.headers\n }\n });\n const {\n body,\n cookies,\n status = 200\n } = session;\n cookies === null || cookies === void 0 || cookies.forEach(cookie => (0, _utils.setCookie)(res, cookie));\n if (body && typeof body !== \"string\" && Object.keys(body).length) {\n if (status === 200) {\n if (isRSC) delete body.expires;\n return body;\n }\n throw new Error(body.message);\n }\n return null;\n}\nlet deprecatedWarningShown = false;\nasync function unstable_getServerSession(...args) {\n if (!deprecatedWarningShown && \"development\" !== \"production\") {\n console.warn(\"`unstable_getServerSession` has been renamed to `getServerSession`.\");\n deprecatedWarningShown = true;\n }\n return await getServerSession(...args);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL25leHQvaW5kZXguanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWU7QUFDZix3QkFBd0I7QUFDeEIsaUNBQWlDO0FBQ2pDLFlBQVksbUJBQU8sQ0FBQyw2REFBUztBQUM3QixhQUFhLG1CQUFPLENBQUMsNkRBQVM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJLEVBQUUsbUJBQU8sQ0FBQyxtRUFBYztBQUM1QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGVBQWUsa0JBQWU7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxNQUFNLEVBQUUsbUJBQU8sQ0FBQyxtRUFBYztBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esb0JBQW9CO0FBQ3BCLG9CQUFvQjtBQUNwQjtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQSw4QkFBOEI7QUFDOUI7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDLGFBQW9CO0FBQ3JEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvbmV4dC9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMuZGVmYXVsdCA9IHZvaWQgMDtcbmV4cG9ydHMuZ2V0U2VydmVyU2Vzc2lvbiA9IGdldFNlcnZlclNlc3Npb247XG5leHBvcnRzLnVuc3RhYmxlX2dldFNlcnZlclNlc3Npb24gPSB1bnN0YWJsZV9nZXRTZXJ2ZXJTZXNzaW9uO1xudmFyIF9jb3JlID0gcmVxdWlyZShcIi4uL2NvcmVcIik7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4vdXRpbHNcIik7XG5hc3luYyBmdW5jdGlvbiBOZXh0QXV0aEFwaUhhbmRsZXIocmVxLCByZXMsIG9wdGlvbnMpIHtcbiAgdmFyIF9vcHRpb25zJHNlY3JldCwgX3JlZiwgX29wdGlvbnMkand0JHNlY3JldCwgX29wdGlvbnMkand0LCBfcmVmMiwgX2hhbmRsZXIkc3RhdHVzLCBfaGFuZGxlciRjb29raWVzLCBfaGFuZGxlciRoZWFkZXJzO1xuICBjb25zdCB7XG4gICAgbmV4dGF1dGgsXG4gICAgLi4ucXVlcnlcbiAgfSA9IHJlcS5xdWVyeTtcbiAgKF9vcHRpb25zJHNlY3JldCA9IG9wdGlvbnMuc2VjcmV0KSAhPT0gbnVsbCAmJiBfb3B0aW9ucyRzZWNyZXQgIT09IHZvaWQgMCA/IF9vcHRpb25zJHNlY3JldCA6IG9wdGlvbnMuc2VjcmV0ID0gKF9yZWYgPSAoX29wdGlvbnMkand0JHNlY3JldCA9IChfb3B0aW9ucyRqd3QgPSBvcHRpb25zLmp3dCkgPT09IG51bGwgfHwgX29wdGlvbnMkand0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfb3B0aW9ucyRqd3Quc2VjcmV0KSAhPT0gbnVsbCAmJiBfb3B0aW9ucyRqd3Qkc2VjcmV0ICE9PSB2b2lkIDAgPyBfb3B0aW9ucyRqd3Qkc2VjcmV0IDogcHJvY2Vzcy5lbnYuTkVYVEFVVEhfU0VDUkVUKSAhPT0gbnVsbCAmJiBfcmVmICE9PSB2b2lkIDAgPyBfcmVmIDogcHJvY2Vzcy5lbnYuQVVUSF9TRUNSRVQ7XG4gIGNvbnN0IGhhbmRsZXIgPSBhd2FpdCAoMCwgX2NvcmUuQXV0aEhhbmRsZXIpKHtcbiAgICByZXE6IHtcbiAgICAgIGJvZHk6IHJlcS5ib2R5LFxuICAgICAgcXVlcnksXG4gICAgICBjb29raWVzOiByZXEuY29va2llcyxcbiAgICAgIGhlYWRlcnM6IHJlcS5oZWFkZXJzLFxuICAgICAgbWV0aG9kOiByZXEubWV0aG9kLFxuICAgICAgYWN0aW9uOiBuZXh0YXV0aCA9PT0gbnVsbCB8fCBuZXh0YXV0aCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbmV4dGF1dGhbMF0sXG4gICAgICBwcm92aWRlcklkOiBuZXh0YXV0aCA9PT0gbnVsbCB8fCBuZXh0YXV0aCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbmV4dGF1dGhbMV0sXG4gICAgICBlcnJvcjogKF9yZWYyID0gcmVxLnF1ZXJ5LmVycm9yKSAhPT0gbnVsbCAmJiBfcmVmMiAhPT0gdm9pZCAwID8gX3JlZjIgOiBuZXh0YXV0aCA9PT0gbnVsbCB8fCBuZXh0YXV0aCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbmV4dGF1dGhbMV1cbiAgICB9LFxuICAgIG9wdGlvbnNcbiAgfSk7XG4gIHJlcy5zdGF0dXMoKF9oYW5kbGVyJHN0YXR1cyA9IGhhbmRsZXIuc3RhdHVzKSAhPT0gbnVsbCAmJiBfaGFuZGxlciRzdGF0dXMgIT09IHZvaWQgMCA/IF9oYW5kbGVyJHN0YXR1cyA6IDIwMCk7XG4gIChfaGFuZGxlciRjb29raWVzID0gaGFuZGxlci5jb29raWVzKSA9PT0gbnVsbCB8fCBfaGFuZGxlciRjb29raWVzID09PSB2b2lkIDAgfHwgX2hhbmRsZXIkY29va2llcy5mb3JFYWNoKGNvb2tpZSA9PiAoMCwgX3V0aWxzLnNldENvb2tpZSkocmVzLCBjb29raWUpKTtcbiAgKF9oYW5kbGVyJGhlYWRlcnMgPSBoYW5kbGVyLmhlYWRlcnMpID09PSBudWxsIHx8IF9oYW5kbGVyJGhlYWRlcnMgPT09IHZvaWQgMCB8fCBfaGFuZGxlciRoZWFkZXJzLmZvckVhY2goaCA9PiByZXMuc2V0SGVhZGVyKGgua2V5LCBoLnZhbHVlKSk7XG4gIGlmIChoYW5kbGVyLnJlZGlyZWN0KSB7XG4gICAgdmFyIF9yZXEkYm9keTtcbiAgICBpZiAoKChfcmVxJGJvZHkgPSByZXEuYm9keSkgPT09IG51bGwgfHwgX3JlcSRib2R5ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfcmVxJGJvZHkuanNvbikgIT09IFwidHJ1ZVwiKSB7XG4gICAgICByZXMuc3RhdHVzKDMwMikuc2V0SGVhZGVyKFwiTG9jYXRpb25cIiwgaGFuZGxlci5yZWRpcmVjdCk7XG4gICAgICByZXMuZW5kKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHJldHVybiByZXMuanNvbih7XG4gICAgICB1cmw6IGhhbmRsZXIucmVkaXJlY3RcbiAgICB9KTtcbiAgfVxuICByZXR1cm4gcmVzLnNlbmQoaGFuZGxlci5ib2R5KTtcbn1cbmFzeW5jIGZ1bmN0aW9uIE5leHRBdXRoUm91dGVIYW5kbGVyKHJlcSwgY29udGV4dCwgb3B0aW9ucykge1xuICB2YXIgX29wdGlvbnMkc2VjcmV0MiwgX3Byb2Nlc3MkZW52JE5FWFRBVVRILCBfYXdhaXQkY29udGV4dCRwYXJhbXMsIF9xdWVyeSRlcnJvcjtcbiAgKF9vcHRpb25zJHNlY3JldDIgPSBvcHRpb25zLnNlY3JldCkgIT09IG51bGwgJiYgX29wdGlvbnMkc2VjcmV0MiAhPT0gdm9pZCAwID8gX29wdGlvbnMkc2VjcmV0MiA6IG9wdGlvbnMuc2VjcmV0ID0gKF9wcm9jZXNzJGVudiRORVhUQVVUSCA9IHByb2Nlc3MuZW52Lk5FWFRBVVRIX1NFQ1JFVCkgIT09IG51bGwgJiYgX3Byb2Nlc3MkZW52JE5FWFRBVVRIICE9PSB2b2lkIDAgPyBfcHJvY2VzcyRlbnYkTkVYVEFVVEggOiBwcm9jZXNzLmVudi5BVVRIX1NFQ1JFVDtcbiAgY29uc3Qge1xuICAgIGhlYWRlcnMsXG4gICAgY29va2llc1xuICB9ID0gcmVxdWlyZShcIm5leHQvaGVhZGVyc1wiKTtcbiAgY29uc3QgbmV4dGF1dGggPSAoX2F3YWl0JGNvbnRleHQkcGFyYW1zID0gYXdhaXQgY29udGV4dC5wYXJhbXMpID09PSBudWxsIHx8IF9hd2FpdCRjb250ZXh0JHBhcmFtcyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX2F3YWl0JGNvbnRleHQkcGFyYW1zLm5leHRhdXRoO1xuICBjb25zdCBxdWVyeSA9IE9iamVjdC5mcm9tRW50cmllcyhyZXEubmV4dFVybC5zZWFyY2hQYXJhbXMpO1xuICBjb25zdCBib2R5ID0gYXdhaXQgKDAsIF91dGlscy5nZXRCb2R5KShyZXEpO1xuICBjb25zdCBpbnRlcm5hbFJlc3BvbnNlID0gYXdhaXQgKDAsIF9jb3JlLkF1dGhIYW5kbGVyKSh7XG4gICAgcmVxOiB7XG4gICAgICBib2R5LFxuICAgICAgcXVlcnksXG4gICAgICBjb29raWVzOiBPYmplY3QuZnJvbUVudHJpZXMoKGF3YWl0IGNvb2tpZXMoKSkuZ2V0QWxsKCkubWFwKGMgPT4gW2MubmFtZSwgYy52YWx1ZV0pKSxcbiAgICAgIGhlYWRlcnM6IE9iamVjdC5mcm9tRW50cmllcyhhd2FpdCBoZWFkZXJzKCkpLFxuICAgICAgbWV0aG9kOiByZXEubWV0aG9kLFxuICAgICAgYWN0aW9uOiBuZXh0YXV0aCA9PT0gbnVsbCB8fCBuZXh0YXV0aCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbmV4dGF1dGhbMF0sXG4gICAgICBwcm92aWRlcklkOiBuZXh0YXV0aCA9PT0gbnVsbCB8fCBuZXh0YXV0aCA9PT0gdm9pZCAwID8gdm9pZCAwIDogbmV4dGF1dGhbMV0sXG4gICAgICBlcnJvcjogKF9xdWVyeSRlcnJvciA9IHF1ZXJ5LmVycm9yKSAhPT0gbnVsbCAmJiBfcXVlcnkkZXJyb3IgIT09IHZvaWQgMCA/IF9xdWVyeSRlcnJvciA6IG5leHRhdXRoID09PSBudWxsIHx8IG5leHRhdXRoID09PSB2b2lkIDAgPyB2b2lkIDAgOiBuZXh0YXV0aFsxXVxuICAgIH0sXG4gICAgb3B0aW9uc1xuICB9KTtcbiAgY29uc3QgcmVzcG9uc2UgPSAoMCwgX3V0aWxzLnRvUmVzcG9uc2UpKGludGVybmFsUmVzcG9uc2UpO1xuICBjb25zdCByZWRpcmVjdCA9IHJlc3BvbnNlLmhlYWRlcnMuZ2V0KFwiTG9jYXRpb25cIik7XG4gIGlmICgoYm9keSA9PT0gbnVsbCB8fCBib2R5ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBib2R5Lmpzb24pID09PSBcInRydWVcIiAmJiByZWRpcmVjdCkge1xuICAgIHJlc3BvbnNlLmhlYWRlcnMuZGVsZXRlKFwiTG9jYXRpb25cIik7XG4gICAgcmVzcG9uc2UuaGVhZGVycy5zZXQoXCJDb250ZW50LVR5cGVcIiwgXCJhcHBsaWNhdGlvbi9qc29uXCIpO1xuICAgIHJldHVybiBuZXcgUmVzcG9uc2UoSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgdXJsOiByZWRpcmVjdFxuICAgIH0pLCB7XG4gICAgICBzdGF0dXM6IGludGVybmFsUmVzcG9uc2Uuc3RhdHVzLFxuICAgICAgaGVhZGVyczogcmVzcG9uc2UuaGVhZGVyc1xuICAgIH0pO1xuICB9XG4gIHJldHVybiByZXNwb25zZTtcbn1cbmZ1bmN0aW9uIE5leHRBdXRoKC4uLmFyZ3MpIHtcbiAgdmFyIF9hcmdzJDtcbiAgaWYgKGFyZ3MubGVuZ3RoID09PSAxKSB7XG4gICAgcmV0dXJuIGFzeW5jIChyZXEsIHJlcykgPT4ge1xuICAgICAgaWYgKHJlcyAhPT0gbnVsbCAmJiByZXMgIT09IHZvaWQgMCAmJiByZXMucGFyYW1zKSB7XG4gICAgICAgIHJldHVybiBhd2FpdCBOZXh0QXV0aFJvdXRlSGFuZGxlcihyZXEsIHJlcywgYXJnc1swXSk7XG4gICAgICB9XG4gICAgICByZXR1cm4gYXdhaXQgTmV4dEF1dGhBcGlIYW5kbGVyKHJlcSwgcmVzLCBhcmdzWzBdKTtcbiAgICB9O1xuICB9XG4gIGlmICgoX2FyZ3MkID0gYXJnc1sxXSkgIT09IG51bGwgJiYgX2FyZ3MkICE9PSB2b2lkIDAgJiYgX2FyZ3MkLnBhcmFtcykge1xuICAgIHJldHVybiBOZXh0QXV0aFJvdXRlSGFuZGxlciguLi5hcmdzKTtcbiAgfVxuICByZXR1cm4gTmV4dEF1dGhBcGlIYW5kbGVyKC4uLmFyZ3MpO1xufVxudmFyIF9kZWZhdWx0ID0gZXhwb3J0cy5kZWZhdWx0ID0gTmV4dEF1dGg7XG5hc3luYyBmdW5jdGlvbiBnZXRTZXJ2ZXJTZXNzaW9uKC4uLmFyZ3MpIHtcbiAgdmFyIF9vcHRpb25zLCBfb3B0aW9ucyRzZWNyZXQzLCBfcHJvY2VzcyRlbnYkTkVYVEFVVEgyO1xuICBjb25zdCBpc1JTQyA9IGFyZ3MubGVuZ3RoID09PSAwIHx8IGFyZ3MubGVuZ3RoID09PSAxO1xuICBsZXQgcmVxLCByZXMsIG9wdGlvbnM7XG4gIGlmIChpc1JTQykge1xuICAgIG9wdGlvbnMgPSBPYmplY3QuYXNzaWduKHt9LCBhcmdzWzBdLCB7XG4gICAgICBwcm92aWRlcnM6IFtdXG4gICAgfSk7XG4gICAgY29uc3Qge1xuICAgICAgaGVhZGVycyxcbiAgICAgIGNvb2tpZXNcbiAgICB9ID0gcmVxdWlyZShcIm5leHQvaGVhZGVyc1wiKTtcbiAgICByZXEgPSB7XG4gICAgICBoZWFkZXJzOiBPYmplY3QuZnJvbUVudHJpZXMoYXdhaXQgaGVhZGVycygpKSxcbiAgICAgIGNvb2tpZXM6IE9iamVjdC5mcm9tRW50cmllcygoYXdhaXQgY29va2llcygpKS5nZXRBbGwoKS5tYXAoYyA9PiBbYy5uYW1lLCBjLnZhbHVlXSkpXG4gICAgfTtcbiAgICByZXMgPSB7XG4gICAgICBnZXRIZWFkZXIoKSB7fSxcbiAgICAgIHNldENvb2tpZSgpIHt9LFxuICAgICAgc2V0SGVhZGVyKCkge31cbiAgICB9O1xuICB9IGVsc2Uge1xuICAgIHJlcSA9IGFyZ3NbMF07XG4gICAgcmVzID0gYXJnc1sxXTtcbiAgICBvcHRpb25zID0gT2JqZWN0LmFzc2lnbih7fSwgYXJnc1syXSwge1xuICAgICAgcHJvdmlkZXJzOiBbXVxuICAgIH0pO1xuICB9XG4gIChfb3B0aW9ucyRzZWNyZXQzID0gKF9vcHRpb25zID0gb3B0aW9ucykuc2VjcmV0KSAhPT0gbnVsbCAmJiBfb3B0aW9ucyRzZWNyZXQzICE9PSB2b2lkIDAgPyBfb3B0aW9ucyRzZWNyZXQzIDogX29wdGlvbnMuc2VjcmV0ID0gKF9wcm9jZXNzJGVudiRORVhUQVVUSDIgPSBwcm9jZXNzLmVudi5ORVhUQVVUSF9TRUNSRVQpICE9PSBudWxsICYmIF9wcm9jZXNzJGVudiRORVhUQVVUSDIgIT09IHZvaWQgMCA/IF9wcm9jZXNzJGVudiRORVhUQVVUSDIgOiBwcm9jZXNzLmVudi5BVVRIX1NFQ1JFVDtcbiAgY29uc3Qgc2Vzc2lvbiA9IGF3YWl0ICgwLCBfY29yZS5BdXRoSGFuZGxlcikoe1xuICAgIG9wdGlvbnMsXG4gICAgcmVxOiB7XG4gICAgICBhY3Rpb246IFwic2Vzc2lvblwiLFxuICAgICAgbWV0aG9kOiBcIkdFVFwiLFxuICAgICAgY29va2llczogcmVxLmNvb2tpZXMsXG4gICAgICBoZWFkZXJzOiByZXEuaGVhZGVyc1xuICAgIH1cbiAgfSk7XG4gIGNvbnN0IHtcbiAgICBib2R5LFxuICAgIGNvb2tpZXMsXG4gICAgc3RhdHVzID0gMjAwXG4gIH0gPSBzZXNzaW9uO1xuICBjb29raWVzID09PSBudWxsIHx8IGNvb2tpZXMgPT09IHZvaWQgMCB8fCBjb29raWVzLmZvckVhY2goY29va2llID0+ICgwLCBfdXRpbHMuc2V0Q29va2llKShyZXMsIGNvb2tpZSkpO1xuICBpZiAoYm9keSAmJiB0eXBlb2YgYm9keSAhPT0gXCJzdHJpbmdcIiAmJiBPYmplY3Qua2V5cyhib2R5KS5sZW5ndGgpIHtcbiAgICBpZiAoc3RhdHVzID09PSAyMDApIHtcbiAgICAgIGlmIChpc1JTQykgZGVsZXRlIGJvZHkuZXhwaXJlcztcbiAgICAgIHJldHVybiBib2R5O1xuICAgIH1cbiAgICB0aHJvdyBuZXcgRXJyb3IoYm9keS5tZXNzYWdlKTtcbiAgfVxuICByZXR1cm4gbnVsbDtcbn1cbmxldCBkZXByZWNhdGVkV2FybmluZ1Nob3duID0gZmFsc2U7XG5hc3luYyBmdW5jdGlvbiB1bnN0YWJsZV9nZXRTZXJ2ZXJTZXNzaW9uKC4uLmFyZ3MpIHtcbiAgaWYgKCFkZXByZWNhdGVkV2FybmluZ1Nob3duICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIGNvbnNvbGUud2FybihcImB1bnN0YWJsZV9nZXRTZXJ2ZXJTZXNzaW9uYCBoYXMgYmVlbiByZW5hbWVkIHRvIGBnZXRTZXJ2ZXJTZXNzaW9uYC5cIik7XG4gICAgZGVwcmVjYXRlZFdhcm5pbmdTaG93biA9IHRydWU7XG4gIH1cbiAgcmV0dXJuIGF3YWl0IGdldFNlcnZlclNlc3Npb24oLi4uYXJncyk7XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/next/index.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/next/utils.js":
+/*!**********************************************!*\
+ !*** ./node_modules/next-auth/next/utils.js ***!
+ \**********************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.getBody = getBody;\nexports.setCookie = setCookie;\nexports.toResponse = toResponse;\nvar _cookie = __webpack_require__(/*! cookie */ \"(rsc)/./node_modules/cookie/index.js\");\nfunction setCookie(res, cookie) {\n var _res$getHeader;\n let setCookieHeader = (_res$getHeader = res.getHeader(\"Set-Cookie\")) !== null && _res$getHeader !== void 0 ? _res$getHeader : [];\n if (!Array.isArray(setCookieHeader)) {\n setCookieHeader = [setCookieHeader];\n }\n const {\n name,\n value,\n options\n } = cookie;\n const cookieHeader = (0, _cookie.serialize)(name, value, options);\n setCookieHeader.push(cookieHeader);\n res.setHeader(\"Set-Cookie\", setCookieHeader);\n}\nasync function getBody(req) {\n if (!(\"body\" in req) || !req.body || req.method !== \"POST\") return;\n const contentType = req.headers.get(\"content-type\");\n if (contentType !== null && contentType !== void 0 && contentType.includes(\"application/json\")) {\n return await req.json();\n } else if (contentType !== null && contentType !== void 0 && contentType.includes(\"application/x-www-form-urlencoded\")) {\n const params = new URLSearchParams(await req.text());\n return Object.fromEntries(params);\n }\n}\nfunction toResponse(res) {\n var _res$headers, _res$cookies, _res$status;\n const headers = new Headers((_res$headers = res.headers) === null || _res$headers === void 0 ? void 0 : _res$headers.reduce((acc, {\n key,\n value\n }) => {\n acc[key] = value;\n return acc;\n }, {}));\n (_res$cookies = res.cookies) === null || _res$cookies === void 0 || _res$cookies.forEach(cookie => {\n const {\n name,\n value,\n options\n } = cookie;\n const cookieHeader = (0, _cookie.serialize)(name, value, options);\n if (headers.has(\"Set-Cookie\")) headers.append(\"Set-Cookie\", cookieHeader);else headers.set(\"Set-Cookie\", cookieHeader);\n });\n let body = res.body;\n if (headers.get(\"content-type\") === \"application/json\") body = JSON.stringify(res.body);else if (headers.get(\"content-type\") === \"application/x-www-form-urlencoded\") body = new URLSearchParams(res.body).toString();\n const status = res.redirect ? 302 : (_res$status = res.status) !== null && _res$status !== void 0 ? _res$status : 200;\n const response = new Response(body, {\n headers,\n status\n });\n if (res.redirect) response.headers.set(\"Location\", res.redirect);\n return response;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL25leHQvdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZUFBZTtBQUNmLGlCQUFpQjtBQUNqQixrQkFBa0I7QUFDbEIsY0FBYyxtQkFBTyxDQUFDLG9EQUFRO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7QUFDSjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBLEdBQUcsSUFBSTtBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQSw4RUFBOEU7QUFDOUUsR0FBRztBQUNIO0FBQ0EsMEZBQTBGO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9uZXh0L3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5nZXRCb2R5ID0gZ2V0Qm9keTtcbmV4cG9ydHMuc2V0Q29va2llID0gc2V0Q29va2llO1xuZXhwb3J0cy50b1Jlc3BvbnNlID0gdG9SZXNwb25zZTtcbnZhciBfY29va2llID0gcmVxdWlyZShcImNvb2tpZVwiKTtcbmZ1bmN0aW9uIHNldENvb2tpZShyZXMsIGNvb2tpZSkge1xuICB2YXIgX3JlcyRnZXRIZWFkZXI7XG4gIGxldCBzZXRDb29raWVIZWFkZXIgPSAoX3JlcyRnZXRIZWFkZXIgPSByZXMuZ2V0SGVhZGVyKFwiU2V0LUNvb2tpZVwiKSkgIT09IG51bGwgJiYgX3JlcyRnZXRIZWFkZXIgIT09IHZvaWQgMCA/IF9yZXMkZ2V0SGVhZGVyIDogW107XG4gIGlmICghQXJyYXkuaXNBcnJheShzZXRDb29raWVIZWFkZXIpKSB7XG4gICAgc2V0Q29va2llSGVhZGVyID0gW3NldENvb2tpZUhlYWRlcl07XG4gIH1cbiAgY29uc3Qge1xuICAgIG5hbWUsXG4gICAgdmFsdWUsXG4gICAgb3B0aW9uc1xuICB9ID0gY29va2llO1xuICBjb25zdCBjb29raWVIZWFkZXIgPSAoMCwgX2Nvb2tpZS5zZXJpYWxpemUpKG5hbWUsIHZhbHVlLCBvcHRpb25zKTtcbiAgc2V0Q29va2llSGVhZGVyLnB1c2goY29va2llSGVhZGVyKTtcbiAgcmVzLnNldEhlYWRlcihcIlNldC1Db29raWVcIiwgc2V0Q29va2llSGVhZGVyKTtcbn1cbmFzeW5jIGZ1bmN0aW9uIGdldEJvZHkocmVxKSB7XG4gIGlmICghKFwiYm9keVwiIGluIHJlcSkgfHwgIXJlcS5ib2R5IHx8IHJlcS5tZXRob2QgIT09IFwiUE9TVFwiKSByZXR1cm47XG4gIGNvbnN0IGNvbnRlbnRUeXBlID0gcmVxLmhlYWRlcnMuZ2V0KFwiY29udGVudC10eXBlXCIpO1xuICBpZiAoY29udGVudFR5cGUgIT09IG51bGwgJiYgY29udGVudFR5cGUgIT09IHZvaWQgMCAmJiBjb250ZW50VHlwZS5pbmNsdWRlcyhcImFwcGxpY2F0aW9uL2pzb25cIikpIHtcbiAgICByZXR1cm4gYXdhaXQgcmVxLmpzb24oKTtcbiAgfSBlbHNlIGlmIChjb250ZW50VHlwZSAhPT0gbnVsbCAmJiBjb250ZW50VHlwZSAhPT0gdm9pZCAwICYmIGNvbnRlbnRUeXBlLmluY2x1ZGVzKFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCIpKSB7XG4gICAgY29uc3QgcGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhhd2FpdCByZXEudGV4dCgpKTtcbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKHBhcmFtcyk7XG4gIH1cbn1cbmZ1bmN0aW9uIHRvUmVzcG9uc2UocmVzKSB7XG4gIHZhciBfcmVzJGhlYWRlcnMsIF9yZXMkY29va2llcywgX3JlcyRzdGF0dXM7XG4gIGNvbnN0IGhlYWRlcnMgPSBuZXcgSGVhZGVycygoX3JlcyRoZWFkZXJzID0gcmVzLmhlYWRlcnMpID09PSBudWxsIHx8IF9yZXMkaGVhZGVycyA9PT0gdm9pZCAwID8gdm9pZCAwIDogX3JlcyRoZWFkZXJzLnJlZHVjZSgoYWNjLCB7XG4gICAga2V5LFxuICAgIHZhbHVlXG4gIH0pID0+IHtcbiAgICBhY2Nba2V5XSA9IHZhbHVlO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KSk7XG4gIChfcmVzJGNvb2tpZXMgPSByZXMuY29va2llcykgPT09IG51bGwgfHwgX3JlcyRjb29raWVzID09PSB2b2lkIDAgfHwgX3JlcyRjb29raWVzLmZvckVhY2goY29va2llID0+IHtcbiAgICBjb25zdCB7XG4gICAgICBuYW1lLFxuICAgICAgdmFsdWUsXG4gICAgICBvcHRpb25zXG4gICAgfSA9IGNvb2tpZTtcbiAgICBjb25zdCBjb29raWVIZWFkZXIgPSAoMCwgX2Nvb2tpZS5zZXJpYWxpemUpKG5hbWUsIHZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAoaGVhZGVycy5oYXMoXCJTZXQtQ29va2llXCIpKSBoZWFkZXJzLmFwcGVuZChcIlNldC1Db29raWVcIiwgY29va2llSGVhZGVyKTtlbHNlIGhlYWRlcnMuc2V0KFwiU2V0LUNvb2tpZVwiLCBjb29raWVIZWFkZXIpO1xuICB9KTtcbiAgbGV0IGJvZHkgPSByZXMuYm9keTtcbiAgaWYgKGhlYWRlcnMuZ2V0KFwiY29udGVudC10eXBlXCIpID09PSBcImFwcGxpY2F0aW9uL2pzb25cIikgYm9keSA9IEpTT04uc3RyaW5naWZ5KHJlcy5ib2R5KTtlbHNlIGlmIChoZWFkZXJzLmdldChcImNvbnRlbnQtdHlwZVwiKSA9PT0gXCJhcHBsaWNhdGlvbi94LXd3dy1mb3JtLXVybGVuY29kZWRcIikgYm9keSA9IG5ldyBVUkxTZWFyY2hQYXJhbXMocmVzLmJvZHkpLnRvU3RyaW5nKCk7XG4gIGNvbnN0IHN0YXR1cyA9IHJlcy5yZWRpcmVjdCA/IDMwMiA6IChfcmVzJHN0YXR1cyA9IHJlcy5zdGF0dXMpICE9PSBudWxsICYmIF9yZXMkc3RhdHVzICE9PSB2b2lkIDAgPyBfcmVzJHN0YXR1cyA6IDIwMDtcbiAgY29uc3QgcmVzcG9uc2UgPSBuZXcgUmVzcG9uc2UoYm9keSwge1xuICAgIGhlYWRlcnMsXG4gICAgc3RhdHVzXG4gIH0pO1xuICBpZiAocmVzLnJlZGlyZWN0KSByZXNwb25zZS5oZWFkZXJzLnNldChcIkxvY2F0aW9uXCIsIHJlcy5yZWRpcmVjdCk7XG4gIHJldHVybiByZXNwb25zZTtcbn0iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/next/utils.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/providers/credentials.js":
+/*!*********************************************************!*\
+ !*** ./node_modules/next-auth/providers/credentials.js ***!
+ \*********************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = Credentials;\nfunction Credentials(options) {\n return {\n id: \"credentials\",\n name: \"Credentials\",\n type: \"credentials\",\n credentials: {},\n authorize: () => null,\n options\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3Byb3ZpZGVycy9jcmVkZW50aWFscy5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvcHJvdmlkZXJzL2NyZWRlbnRpYWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gQ3JlZGVudGlhbHM7XG5mdW5jdGlvbiBDcmVkZW50aWFscyhvcHRpb25zKSB7XG4gIHJldHVybiB7XG4gICAgaWQ6IFwiY3JlZGVudGlhbHNcIixcbiAgICBuYW1lOiBcIkNyZWRlbnRpYWxzXCIsXG4gICAgdHlwZTogXCJjcmVkZW50aWFsc1wiLFxuICAgIGNyZWRlbnRpYWxzOiB7fSxcbiAgICBhdXRob3JpemU6ICgpID0+IG51bGwsXG4gICAgb3B0aW9uc1xuICB9O1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/providers/credentials.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/utils/detect-origin.js":
+/*!*******************************************************!*\
+ !*** ./node_modules/next-auth/utils/detect-origin.js ***!
+ \*******************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.detectOrigin = detectOrigin;\nfunction detectOrigin(forwardedHost, protocol) {\n var _process$env$VERCEL;\n if ((_process$env$VERCEL = process.env.VERCEL) !== null && _process$env$VERCEL !== void 0 ? _process$env$VERCEL : process.env.AUTH_TRUST_HOST) return `${protocol === \"http\" ? \"http\" : \"https\"}://${forwardedHost}`;\n return process.env.NEXTAUTH_URL;\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3V0aWxzL2RldGVjdC1vcmlnaW4uanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysb0JBQW9CO0FBQ3BCO0FBQ0E7QUFDQSwySkFBMkosdUNBQXVDLEtBQUssY0FBYztBQUNyTjtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3V0aWxzL2RldGVjdC1vcmlnaW4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5cbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLmRldGVjdE9yaWdpbiA9IGRldGVjdE9yaWdpbjtcbmZ1bmN0aW9uIGRldGVjdE9yaWdpbihmb3J3YXJkZWRIb3N0LCBwcm90b2NvbCkge1xuICB2YXIgX3Byb2Nlc3MkZW52JFZFUkNFTDtcbiAgaWYgKChfcHJvY2VzcyRlbnYkVkVSQ0VMID0gcHJvY2Vzcy5lbnYuVkVSQ0VMKSAhPT0gbnVsbCAmJiBfcHJvY2VzcyRlbnYkVkVSQ0VMICE9PSB2b2lkIDAgPyBfcHJvY2VzcyRlbnYkVkVSQ0VMIDogcHJvY2Vzcy5lbnYuQVVUSF9UUlVTVF9IT1NUKSByZXR1cm4gYCR7cHJvdG9jb2wgPT09IFwiaHR0cFwiID8gXCJodHRwXCIgOiBcImh0dHBzXCJ9Oi8vJHtmb3J3YXJkZWRIb3N0fWA7XG4gIHJldHVybiBwcm9jZXNzLmVudi5ORVhUQVVUSF9VUkw7XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/utils/detect-origin.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/utils/logger.js":
+/*!************************************************!*\
+ !*** ./node_modules/next-auth/utils/logger.js ***!
+ \************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(rsc)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nexports.proxyLogger = proxyLogger;\nexports.setLogger = setLogger;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(rsc)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(rsc)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(rsc)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nvar _errors = __webpack_require__(/*! ../core/errors */ \"(rsc)/./node_modules/next-auth/core/errors.js\");\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction formatError(o) {\n if (o instanceof Error && !(o instanceof _errors.UnknownError)) {\n return {\n message: o.message,\n stack: o.stack,\n name: o.name\n };\n }\n if (hasErrorProperty(o)) {\n var _o$message;\n o.error = formatError(o.error);\n o.message = (_o$message = o.message) !== null && _o$message !== void 0 ? _o$message : o.error.message;\n }\n return o;\n}\nfunction hasErrorProperty(x) {\n return !!(x !== null && x !== void 0 && x.error);\n}\nvar _logger = {\n error: function error(code, metadata) {\n metadata = formatError(metadata);\n console.error(\"[next-auth][error][\".concat(code, \"]\"), \"\\nhttps://next-auth.js.org/errors#\".concat(code.toLowerCase()), metadata.message, metadata);\n },\n warn: function warn(code) {\n console.warn(\"[next-auth][warn][\".concat(code, \"]\"), \"\\nhttps://next-auth.js.org/warnings#\".concat(code.toLowerCase()));\n },\n debug: function debug(code, metadata) {\n console.log(\"[next-auth][debug][\".concat(code, \"]\"), metadata);\n }\n};\nfunction setLogger() {\n var newLogger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var debug = arguments.length > 1 ? arguments[1] : undefined;\n if (!debug) _logger.debug = function () {};\n if (newLogger.error) _logger.error = newLogger.error;\n if (newLogger.warn) _logger.warn = newLogger.warn;\n if (newLogger.debug) _logger.debug = newLogger.debug;\n}\nvar _default = exports[\"default\"] = _logger;\nfunction proxyLogger() {\n var logger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _logger;\n var basePath = arguments.length > 1 ? arguments[1] : undefined;\n try {\n if (typeof window === \"undefined\") {\n return logger;\n }\n var clientLogger = {};\n var _loop = function _loop(level) {\n clientLogger[level] = function () {\n var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(code, metadata) {\n var url, body;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _logger[level](code, metadata);\n if (level === \"error\") {\n metadata = formatError(metadata);\n }\n ;\n metadata.client = true;\n url = \"\".concat(basePath, \"/_log\");\n body = new URLSearchParams(_objectSpread({\n level: level,\n code: code\n }, metadata));\n if (!navigator.sendBeacon) {\n _context.next = 8;\n break;\n }\n return _context.abrupt(\"return\", navigator.sendBeacon(url, body));\n case 8:\n _context.next = 10;\n return fetch(url, {\n method: \"POST\",\n body: body,\n keepalive: true\n });\n case 10:\n return _context.abrupt(\"return\", _context.sent);\n case 11:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }();\n };\n for (var level in logger) {\n _loop(level);\n }\n return clientLogger;\n } catch (_unused) {\n return _logger;\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3V0aWxzL2xvZ2dlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw2QkFBNkIsbUJBQU8sQ0FBQywwSEFBOEM7QUFDbkYsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWU7QUFDZixtQkFBbUI7QUFDbkIsaUJBQWlCO0FBQ2pCLDBDQUEwQyxtQkFBTyxDQUFDLDRGQUE0QjtBQUM5RSw4Q0FBOEMsbUJBQU8sQ0FBQyw0R0FBdUM7QUFDN0YsZ0RBQWdELG1CQUFPLENBQUMsZ0hBQXlDO0FBQ2pHLGNBQWMsbUJBQU8sQ0FBQyxxRUFBZ0I7QUFDdEMseUJBQXlCLHdCQUF3QixvQ0FBb0MseUNBQXlDLGtDQUFrQywwREFBMEQsMEJBQTBCO0FBQ3BQLDRCQUE0QixnQkFBZ0Isc0JBQXNCLE9BQU8sa0RBQWtELHNEQUFzRCw0Q0FBNEMsbUpBQW1KLHFFQUFxRSxLQUFLO0FBQzFiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxrQkFBZTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3V0aWxzL2xvZ2dlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuZXhwb3J0cy5wcm94eUxvZ2dlciA9IHByb3h5TG9nZ2VyO1xuZXhwb3J0cy5zZXRMb2dnZXIgPSBzZXRMb2dnZXI7XG52YXIgX3JlZ2VuZXJhdG9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3JcIikpO1xudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5XCIpKTtcbnZhciBfYXN5bmNUb0dlbmVyYXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2FzeW5jVG9HZW5lcmF0b3JcIikpO1xudmFyIF9lcnJvcnMgPSByZXF1aXJlKFwiLi4vY29yZS9lcnJvcnNcIik7XG5mdW5jdGlvbiBvd25LZXlzKGUsIHIpIHsgdmFyIHQgPSBPYmplY3Qua2V5cyhlKTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIG8gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpOyByICYmIChvID0gby5maWx0ZXIoZnVuY3Rpb24gKHIpIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSwgcikuZW51bWVyYWJsZTsgfSkpLCB0LnB1c2guYXBwbHkodCwgbyk7IH0gcmV0dXJuIHQ7IH1cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQoZSkgeyBmb3IgKHZhciByID0gMTsgciA8IGFyZ3VtZW50cy5sZW5ndGg7IHIrKykgeyB2YXIgdCA9IG51bGwgIT0gYXJndW1lbnRzW3JdID8gYXJndW1lbnRzW3JdIDoge307IHIgJSAyID8gb3duS2V5cyhPYmplY3QodCksICEwKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7ICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKGUsIHIsIHRbcl0pOyB9KSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpIDogb3duS2V5cyhPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24gKHIpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCwgcikpOyB9KTsgfSByZXR1cm4gZTsgfVxuZnVuY3Rpb24gZm9ybWF0RXJyb3Iobykge1xuICBpZiAobyBpbnN0YW5jZW9mIEVycm9yICYmICEobyBpbnN0YW5jZW9mIF9lcnJvcnMuVW5rbm93bkVycm9yKSkge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlOiBvLm1lc3NhZ2UsXG4gICAgICBzdGFjazogby5zdGFjayxcbiAgICAgIG5hbWU6IG8ubmFtZVxuICAgIH07XG4gIH1cbiAgaWYgKGhhc0Vycm9yUHJvcGVydHkobykpIHtcbiAgICB2YXIgX28kbWVzc2FnZTtcbiAgICBvLmVycm9yID0gZm9ybWF0RXJyb3Ioby5lcnJvcik7XG4gICAgby5tZXNzYWdlID0gKF9vJG1lc3NhZ2UgPSBvLm1lc3NhZ2UpICE9PSBudWxsICYmIF9vJG1lc3NhZ2UgIT09IHZvaWQgMCA/IF9vJG1lc3NhZ2UgOiBvLmVycm9yLm1lc3NhZ2U7XG4gIH1cbiAgcmV0dXJuIG87XG59XG5mdW5jdGlvbiBoYXNFcnJvclByb3BlcnR5KHgpIHtcbiAgcmV0dXJuICEhKHggIT09IG51bGwgJiYgeCAhPT0gdm9pZCAwICYmIHguZXJyb3IpO1xufVxudmFyIF9sb2dnZXIgPSB7XG4gIGVycm9yOiBmdW5jdGlvbiBlcnJvcihjb2RlLCBtZXRhZGF0YSkge1xuICAgIG1ldGFkYXRhID0gZm9ybWF0RXJyb3IobWV0YWRhdGEpO1xuICAgIGNvbnNvbGUuZXJyb3IoXCJbbmV4dC1hdXRoXVtlcnJvcl1bXCIuY29uY2F0KGNvZGUsIFwiXVwiKSwgXCJcXG5odHRwczovL25leHQtYXV0aC5qcy5vcmcvZXJyb3JzI1wiLmNvbmNhdChjb2RlLnRvTG93ZXJDYXNlKCkpLCBtZXRhZGF0YS5tZXNzYWdlLCBtZXRhZGF0YSk7XG4gIH0sXG4gIHdhcm46IGZ1bmN0aW9uIHdhcm4oY29kZSkge1xuICAgIGNvbnNvbGUud2FybihcIltuZXh0LWF1dGhdW3dhcm5dW1wiLmNvbmNhdChjb2RlLCBcIl1cIiksIFwiXFxuaHR0cHM6Ly9uZXh0LWF1dGguanMub3JnL3dhcm5pbmdzI1wiLmNvbmNhdChjb2RlLnRvTG93ZXJDYXNlKCkpKTtcbiAgfSxcbiAgZGVidWc6IGZ1bmN0aW9uIGRlYnVnKGNvZGUsIG1ldGFkYXRhKSB7XG4gICAgY29uc29sZS5sb2coXCJbbmV4dC1hdXRoXVtkZWJ1Z11bXCIuY29uY2F0KGNvZGUsIFwiXVwiKSwgbWV0YWRhdGEpO1xuICB9XG59O1xuZnVuY3Rpb24gc2V0TG9nZ2VyKCkge1xuICB2YXIgbmV3TG9nZ2VyID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgdmFyIGRlYnVnID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG4gIGlmICghZGVidWcpIF9sb2dnZXIuZGVidWcgPSBmdW5jdGlvbiAoKSB7fTtcbiAgaWYgKG5ld0xvZ2dlci5lcnJvcikgX2xvZ2dlci5lcnJvciA9IG5ld0xvZ2dlci5lcnJvcjtcbiAgaWYgKG5ld0xvZ2dlci53YXJuKSBfbG9nZ2VyLndhcm4gPSBuZXdMb2dnZXIud2FybjtcbiAgaWYgKG5ld0xvZ2dlci5kZWJ1ZykgX2xvZ2dlci5kZWJ1ZyA9IG5ld0xvZ2dlci5kZWJ1Zztcbn1cbnZhciBfZGVmYXVsdCA9IGV4cG9ydHMuZGVmYXVsdCA9IF9sb2dnZXI7XG5mdW5jdGlvbiBwcm94eUxvZ2dlcigpIHtcbiAgdmFyIGxvZ2dlciA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogX2xvZ2dlcjtcbiAgdmFyIGJhc2VQYXRoID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG4gIHRyeSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHJldHVybiBsb2dnZXI7XG4gICAgfVxuICAgIHZhciBjbGllbnRMb2dnZXIgPSB7fTtcbiAgICB2YXIgX2xvb3AgPSBmdW5jdGlvbiBfbG9vcChsZXZlbCkge1xuICAgICAgY2xpZW50TG9nZ2VyW2xldmVsXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF9yZWYgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZShjb2RlLCBtZXRhZGF0YSkge1xuICAgICAgICAgIHZhciB1cmwsIGJvZHk7XG4gICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHtcbiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7XG4gICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICBfbG9nZ2VyW2xldmVsXShjb2RlLCBtZXRhZGF0YSk7XG4gICAgICAgICAgICAgICAgaWYgKGxldmVsID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZm9ybWF0RXJyb3IobWV0YWRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgbWV0YWRhdGEuY2xpZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB1cmwgPSBcIlwiLmNvbmNhdChiYXNlUGF0aCwgXCIvX2xvZ1wiKTtcbiAgICAgICAgICAgICAgICBib2R5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgICAgIGxldmVsOiBsZXZlbCxcbiAgICAgICAgICAgICAgICAgIGNvZGU6IGNvZGVcbiAgICAgICAgICAgICAgICB9LCBtZXRhZGF0YSkpO1xuICAgICAgICAgICAgICAgIGlmICghbmF2aWdhdG9yLnNlbmRCZWFjb24pIHtcbiAgICAgICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA4O1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIiwgbmF2aWdhdG9yLnNlbmRCZWFjb24odXJsLCBib2R5KSk7XG4gICAgICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMTA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgICBrZWVwYWxpdmU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0LnNlbnQpO1xuICAgICAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBfY2FsbGVlKTtcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94LCBfeDIpIHtcbiAgICAgICAgICByZXR1cm4gX3JlZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgICAgfSgpO1xuICAgIH07XG4gICAgZm9yICh2YXIgbGV2ZWwgaW4gbG9nZ2VyKSB7XG4gICAgICBfbG9vcChsZXZlbCk7XG4gICAgfVxuICAgIHJldHVybiBjbGllbnRMb2dnZXI7XG4gIH0gY2F0Y2ggKF91bnVzZWQpIHtcbiAgICByZXR1cm4gX2xvZ2dlcjtcbiAgfVxufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/utils/logger.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/utils/merge.js":
+/*!***********************************************!*\
+ !*** ./node_modules/next-auth/utils/merge.js ***!
+ \***********************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.merge = merge;\nfunction isObject(item) {\n return item && typeof item === \"object\" && !Array.isArray(item);\n}\nfunction merge(target, ...sources) {\n if (!sources.length) return target;\n const source = sources.shift();\n if (isObject(target) && isObject(source)) {\n for (const key in source) {\n if (isObject(source[key])) {\n if (!target[key]) Object.assign(target, {\n [key]: {}\n });\n merge(target[key], source[key]);\n } else {\n Object.assign(target, {\n [key]: source[key]\n });\n }\n }\n }\n return merge(target, ...sources);\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3V0aWxzL21lcmdlLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC91dGlscy9tZXJnZS5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTtcbmV4cG9ydHMubWVyZ2UgPSBtZXJnZTtcbmZ1bmN0aW9uIGlzT2JqZWN0KGl0ZW0pIHtcbiAgcmV0dXJuIGl0ZW0gJiYgdHlwZW9mIGl0ZW0gPT09IFwib2JqZWN0XCIgJiYgIUFycmF5LmlzQXJyYXkoaXRlbSk7XG59XG5mdW5jdGlvbiBtZXJnZSh0YXJnZXQsIC4uLnNvdXJjZXMpIHtcbiAgaWYgKCFzb3VyY2VzLmxlbmd0aCkgcmV0dXJuIHRhcmdldDtcbiAgY29uc3Qgc291cmNlID0gc291cmNlcy5zaGlmdCgpO1xuICBpZiAoaXNPYmplY3QodGFyZ2V0KSAmJiBpc09iamVjdChzb3VyY2UpKSB7XG4gICAgZm9yIChjb25zdCBrZXkgaW4gc291cmNlKSB7XG4gICAgICBpZiAoaXNPYmplY3Qoc291cmNlW2tleV0pKSB7XG4gICAgICAgIGlmICghdGFyZ2V0W2tleV0pIE9iamVjdC5hc3NpZ24odGFyZ2V0LCB7XG4gICAgICAgICAgW2tleV06IHt9XG4gICAgICAgIH0pO1xuICAgICAgICBtZXJnZSh0YXJnZXRba2V5XSwgc291cmNlW2tleV0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgT2JqZWN0LmFzc2lnbih0YXJnZXQsIHtcbiAgICAgICAgICBba2V5XTogc291cmNlW2tleV1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBtZXJnZSh0YXJnZXQsIC4uLnNvdXJjZXMpO1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/utils/merge.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next-auth/utils/parse-url.js":
+/*!***************************************************!*\
+ !*** ./node_modules/next-auth/utils/parse-url.js ***!
+ \***************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = parseUrl;\nfunction parseUrl(url) {\n var _url2;\n const defaultUrl = new URL(\"http://localhost:3000/api/auth\");\n if (url && !url.startsWith(\"http\")) {\n url = `https://${url}`;\n }\n const _url = new URL((_url2 = url) !== null && _url2 !== void 0 ? _url2 : defaultUrl);\n const path = (_url.pathname === \"/\" ? defaultUrl.pathname : _url.pathname).replace(/\\/$/, \"\");\n const base = `${_url.origin}${path}`;\n return {\n origin: _url.origin,\n host: _url.host,\n path,\n base,\n toString: () => base\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3V0aWxzL3BhcnNlLXVybC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLElBQUk7QUFDekI7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLFlBQVksRUFBRSxLQUFLO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvdXRpbHMvcGFyc2UtdXJsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gcGFyc2VVcmw7XG5mdW5jdGlvbiBwYXJzZVVybCh1cmwpIHtcbiAgdmFyIF91cmwyO1xuICBjb25zdCBkZWZhdWx0VXJsID0gbmV3IFVSTChcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvYXV0aFwiKTtcbiAgaWYgKHVybCAmJiAhdXJsLnN0YXJ0c1dpdGgoXCJodHRwXCIpKSB7XG4gICAgdXJsID0gYGh0dHBzOi8vJHt1cmx9YDtcbiAgfVxuICBjb25zdCBfdXJsID0gbmV3IFVSTCgoX3VybDIgPSB1cmwpICE9PSBudWxsICYmIF91cmwyICE9PSB2b2lkIDAgPyBfdXJsMiA6IGRlZmF1bHRVcmwpO1xuICBjb25zdCBwYXRoID0gKF91cmwucGF0aG5hbWUgPT09IFwiL1wiID8gZGVmYXVsdFVybC5wYXRobmFtZSA6IF91cmwucGF0aG5hbWUpLnJlcGxhY2UoL1xcLyQvLCBcIlwiKTtcbiAgY29uc3QgYmFzZSA9IGAke191cmwub3JpZ2lufSR7cGF0aH1gO1xuICByZXR1cm4ge1xuICAgIG9yaWdpbjogX3VybC5vcmlnaW4sXG4gICAgaG9zdDogX3VybC5ob3N0LFxuICAgIHBhdGgsXG4gICAgYmFzZSxcbiAgICB0b1N0cmluZzogKCkgPT4gYmFzZVxuICB9O1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next-auth/utils/parse-url.js\n");
+
+/***/ }),
+
/***/ "(ssr)/./node_modules/next-auth/client/_utils.js":
/*!*************************************************!*\
!*** ./node_modules/next-auth/client/_utils.js ***!
\*************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(ssr)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.BroadcastChannel = BroadcastChannel;\nexports.apiBaseUrl = apiBaseUrl;\nexports.fetchData = fetchData;\nexports.now = now;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(ssr)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(ssr)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(ssr)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction fetchData(_x, _x2, _x3) {\n return _fetchData.apply(this, arguments);\n}\nfunction _fetchData() {\n _fetchData = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(path, __NEXTAUTH, logger) {\n var _ref,\n ctx,\n _ref$req,\n req,\n url,\n _req$headers,\n options,\n res,\n data,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _ref = _args.length > 3 && _args[3] !== undefined ? _args[3] : {}, ctx = _ref.ctx, _ref$req = _ref.req, req = _ref$req === void 0 ? ctx === null || ctx === void 0 ? void 0 : ctx.req : _ref$req;\n url = \"\".concat(apiBaseUrl(__NEXTAUTH), \"/\").concat(path);\n _context.prev = 2;\n options = {\n headers: _objectSpread({\n \"Content-Type\": \"application/json\"\n }, req !== null && req !== void 0 && (_req$headers = req.headers) !== null && _req$headers !== void 0 && _req$headers.cookie ? {\n cookie: req.headers.cookie\n } : {})\n };\n if (req !== null && req !== void 0 && req.body) {\n options.body = JSON.stringify(req.body);\n options.method = \"POST\";\n }\n _context.next = 7;\n return fetch(url, options);\n case 7:\n res = _context.sent;\n _context.next = 10;\n return res.json();\n case 10:\n data = _context.sent;\n if (res.ok) {\n _context.next = 13;\n break;\n }\n throw data;\n case 13:\n return _context.abrupt(\"return\", Object.keys(data).length > 0 ? data : null);\n case 16:\n _context.prev = 16;\n _context.t0 = _context[\"catch\"](2);\n logger.error(\"CLIENT_FETCH_ERROR\", {\n error: _context.t0,\n url: url\n });\n return _context.abrupt(\"return\", null);\n case 20:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[2, 16]]);\n }));\n return _fetchData.apply(this, arguments);\n}\nfunction apiBaseUrl(__NEXTAUTH) {\n if (typeof window === \"undefined\") {\n return \"\".concat(__NEXTAUTH.baseUrlServer).concat(__NEXTAUTH.basePathServer);\n }\n return __NEXTAUTH.basePath;\n}\nfunction now() {\n return Math.floor(Date.now() / 1000);\n}\nfunction BroadcastChannel() {\n var name = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : \"nextauth.message\";\n return {\n receive: function receive(onReceive) {\n var handler = function handler(event) {\n var _event$newValue;\n if (event.key !== name) return;\n var message = JSON.parse((_event$newValue = event.newValue) !== null && _event$newValue !== void 0 ? _event$newValue : \"{}\");\n if ((message === null || message === void 0 ? void 0 : message.event) !== \"session\" || !(message !== null && message !== void 0 && message.data)) return;\n onReceive(message);\n };\n window.addEventListener(\"storage\", handler);\n return function () {\n return window.removeEventListener(\"storage\", handler);\n };\n },\n post: function post(message) {\n if (typeof window === \"undefined\") return;\n try {\n localStorage.setItem(name, JSON.stringify(_objectSpread(_objectSpread({}, message), {}, {\n timestamp: now()\n })));\n } catch (_unused) {}\n }\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NsaWVudC9fdXRpbHMuanMiLCJtYXBwaW5ncyI6IkFBQWE7O0FBRWIsNkJBQTZCLG1CQUFPLENBQUMsMEhBQThDO0FBQ25GLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHdCQUF3QjtBQUN4QixrQkFBa0I7QUFDbEIsaUJBQWlCO0FBQ2pCLFdBQVc7QUFDWCwwQ0FBMEMsbUJBQU8sQ0FBQyw0RkFBNEI7QUFDOUUsOENBQThDLG1CQUFPLENBQUMsNEdBQXVDO0FBQzdGLGdEQUFnRCxtQkFBTyxDQUFDLGdIQUF5QztBQUNqRyx5QkFBeUIsd0JBQXdCLG9DQUFvQyx5Q0FBeUMsa0NBQWtDLDBEQUEwRCwwQkFBMEI7QUFDcFAsNEJBQTRCLGdCQUFnQixzQkFBc0IsT0FBTyxrREFBa0Qsc0RBQXNELDRDQUE0QyxtSkFBbUoscUVBQXFFLEtBQUs7QUFDMWI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsMkVBQTJFO0FBQzNFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxjQUFjLElBQUk7QUFDbEI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxrSUFBa0k7QUFDbEk7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsZ0ZBQWdGLGNBQWM7QUFDOUY7QUFDQSxTQUFTO0FBQ1QsUUFBUTtBQUNSO0FBQ0E7QUFDQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9jbGllbnQvX3V0aWxzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG52YXIgX2ludGVyb3BSZXF1aXJlRGVmYXVsdCA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2ludGVyb3BSZXF1aXJlRGVmYXVsdFwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG5leHBvcnRzLkJyb2FkY2FzdENoYW5uZWwgPSBCcm9hZGNhc3RDaGFubmVsO1xuZXhwb3J0cy5hcGlCYXNlVXJsID0gYXBpQmFzZVVybDtcbmV4cG9ydHMuZmV0Y2hEYXRhID0gZmV0Y2hEYXRhO1xuZXhwb3J0cy5ub3cgPSBub3c7XG52YXIgX3JlZ2VuZXJhdG9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3JcIikpO1xudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5XCIpKTtcbnZhciBfYXN5bmNUb0dlbmVyYXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2FzeW5jVG9HZW5lcmF0b3JcIikpO1xuZnVuY3Rpb24gb3duS2V5cyhlLCByKSB7IHZhciB0ID0gT2JqZWN0LmtleXMoZSk7IGlmIChPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKSB7IHZhciBvID0gT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKTsgciAmJiAobyA9IG8uZmlsdGVyKGZ1bmN0aW9uIChyKSB7IHJldHVybiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUsIHIpLmVudW1lcmFibGU7IH0pKSwgdC5wdXNoLmFwcGx5KHQsIG8pOyB9IHJldHVybiB0OyB9XG5mdW5jdGlvbiBfb2JqZWN0U3ByZWFkKGUpIHsgZm9yICh2YXIgciA9IDE7IHIgPCBhcmd1bWVudHMubGVuZ3RoOyByKyspIHsgdmFyIHQgPSBudWxsICE9IGFyZ3VtZW50c1tyXSA/IGFyZ3VtZW50c1tyXSA6IHt9OyByICUgMiA/IG93bktleXMoT2JqZWN0KHQpLCAhMCkuZm9yRWFjaChmdW5jdGlvbiAocikgeyAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShlLCByLCB0W3JdKTsgfSkgOiBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGUsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzKHQpKSA6IG93bktleXMoT2JqZWN0KHQpKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlLCByLCBPYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKHQsIHIpKTsgfSk7IH0gcmV0dXJuIGU7IH1cbmZ1bmN0aW9uIGZldGNoRGF0YShfeCwgX3gyLCBfeDMpIHtcbiAgcmV0dXJuIF9mZXRjaERhdGEuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9mZXRjaERhdGEoKSB7XG4gIF9mZXRjaERhdGEgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZShwYXRoLCBfX05FWFRBVVRILCBsb2dnZXIpIHtcbiAgICB2YXIgX3JlZixcbiAgICAgIGN0eCxcbiAgICAgIF9yZWYkcmVxLFxuICAgICAgcmVxLFxuICAgICAgdXJsLFxuICAgICAgX3JlcSRoZWFkZXJzLFxuICAgICAgb3B0aW9ucyxcbiAgICAgIHJlcyxcbiAgICAgIGRhdGEsXG4gICAgICBfYXJncyA9IGFyZ3VtZW50cztcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yLmRlZmF1bHQud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkge1xuICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQucHJldiA9IF9jb250ZXh0Lm5leHQpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIF9yZWYgPSBfYXJncy5sZW5ndGggPiAzICYmIF9hcmdzWzNdICE9PSB1bmRlZmluZWQgPyBfYXJnc1szXSA6IHt9LCBjdHggPSBfcmVmLmN0eCwgX3JlZiRyZXEgPSBfcmVmLnJlcSwgcmVxID0gX3JlZiRyZXEgPT09IHZvaWQgMCA/IGN0eCA9PT0gbnVsbCB8fCBjdHggPT09IHZvaWQgMCA/IHZvaWQgMCA6IGN0eC5yZXEgOiBfcmVmJHJlcTtcbiAgICAgICAgICB1cmwgPSBcIlwiLmNvbmNhdChhcGlCYXNlVXJsKF9fTkVYVEFVVEgpLCBcIi9cIikuY29uY2F0KHBhdGgpO1xuICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAyO1xuICAgICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICBoZWFkZXJzOiBfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogXCJhcHBsaWNhdGlvbi9qc29uXCJcbiAgICAgICAgICAgIH0sIHJlcSAhPT0gbnVsbCAmJiByZXEgIT09IHZvaWQgMCAmJiAoX3JlcSRoZWFkZXJzID0gcmVxLmhlYWRlcnMpICE9PSBudWxsICYmIF9yZXEkaGVhZGVycyAhPT0gdm9pZCAwICYmIF9yZXEkaGVhZGVycy5jb29raWUgPyB7XG4gICAgICAgICAgICAgIGNvb2tpZTogcmVxLmhlYWRlcnMuY29va2llXG4gICAgICAgICAgICB9IDoge30pXG4gICAgICAgICAgfTtcbiAgICAgICAgICBpZiAocmVxICE9PSBudWxsICYmIHJlcSAhPT0gdm9pZCAwICYmIHJlcS5ib2R5KSB7XG4gICAgICAgICAgICBvcHRpb25zLmJvZHkgPSBKU09OLnN0cmluZ2lmeShyZXEuYm9keSk7XG4gICAgICAgICAgICBvcHRpb25zLm1ldGhvZCA9IFwiUE9TVFwiO1xuICAgICAgICAgIH1cbiAgICAgICAgICBfY29udGV4dC5uZXh0ID0gNztcbiAgICAgICAgICByZXR1cm4gZmV0Y2godXJsLCBvcHRpb25zKTtcbiAgICAgICAgY2FzZSA3OlxuICAgICAgICAgIHJlcyA9IF9jb250ZXh0LnNlbnQ7XG4gICAgICAgICAgX2NvbnRleHQubmV4dCA9IDEwO1xuICAgICAgICAgIHJldHVybiByZXMuanNvbigpO1xuICAgICAgICBjYXNlIDEwOlxuICAgICAgICAgIGRhdGEgPSBfY29udGV4dC5zZW50O1xuICAgICAgICAgIGlmIChyZXMub2spIHtcbiAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAxMztcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aHJvdyBkYXRhO1xuICAgICAgICBjYXNlIDEzOlxuICAgICAgICAgIHJldHVybiBfY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIiwgT2JqZWN0LmtleXMoZGF0YSkubGVuZ3RoID4gMCA/IGRhdGEgOiBudWxsKTtcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICBfY29udGV4dC5wcmV2ID0gMTY7XG4gICAgICAgICAgX2NvbnRleHQudDAgPSBfY29udGV4dFtcImNhdGNoXCJdKDIpO1xuICAgICAgICAgIGxvZ2dlci5lcnJvcihcIkNMSUVOVF9GRVRDSF9FUlJPUlwiLCB7XG4gICAgICAgICAgICBlcnJvcjogX2NvbnRleHQudDAsXG4gICAgICAgICAgICB1cmw6IHVybFxuICAgICAgICAgIH0pO1xuICAgICAgICAgIHJldHVybiBfY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIiwgbnVsbCk7XG4gICAgICAgIGNhc2UgMjA6XG4gICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpO1xuICAgICAgfVxuICAgIH0sIF9jYWxsZWUsIG51bGwsIFtbMiwgMTZdXSk7XG4gIH0pKTtcbiAgcmV0dXJuIF9mZXRjaERhdGEuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIGFwaUJhc2VVcmwoX19ORVhUQVVUSCkge1xuICBpZiAodHlwZW9mIHdpbmRvdyA9PT0gXCJ1bmRlZmluZWRcIikge1xuICAgIHJldHVybiBcIlwiLmNvbmNhdChfX05FWFRBVVRILmJhc2VVcmxTZXJ2ZXIpLmNvbmNhdChfX05FWFRBVVRILmJhc2VQYXRoU2VydmVyKTtcbiAgfVxuICByZXR1cm4gX19ORVhUQVVUSC5iYXNlUGF0aDtcbn1cbmZ1bmN0aW9uIG5vdygpIHtcbiAgcmV0dXJuIE1hdGguZmxvb3IoRGF0ZS5ub3coKSAvIDEwMDApO1xufVxuZnVuY3Rpb24gQnJvYWRjYXN0Q2hhbm5lbCgpIHtcbiAgdmFyIG5hbWUgPSBhcmd1bWVudHMubGVuZ3RoID4gMCAmJiBhcmd1bWVudHNbMF0gIT09IHVuZGVmaW5lZCA/IGFyZ3VtZW50c1swXSA6IFwibmV4dGF1dGgubWVzc2FnZVwiO1xuICByZXR1cm4ge1xuICAgIHJlY2VpdmU6IGZ1bmN0aW9uIHJlY2VpdmUob25SZWNlaXZlKSB7XG4gICAgICB2YXIgaGFuZGxlciA9IGZ1bmN0aW9uIGhhbmRsZXIoZXZlbnQpIHtcbiAgICAgICAgdmFyIF9ldmVudCRuZXdWYWx1ZTtcbiAgICAgICAgaWYgKGV2ZW50LmtleSAhPT0gbmFtZSkgcmV0dXJuO1xuICAgICAgICB2YXIgbWVzc2FnZSA9IEpTT04ucGFyc2UoKF9ldmVudCRuZXdWYWx1ZSA9IGV2ZW50Lm5ld1ZhbHVlKSAhPT0gbnVsbCAmJiBfZXZlbnQkbmV3VmFsdWUgIT09IHZvaWQgMCA/IF9ldmVudCRuZXdWYWx1ZSA6IFwie31cIik7XG4gICAgICAgIGlmICgobWVzc2FnZSA9PT0gbnVsbCB8fCBtZXNzYWdlID09PSB2b2lkIDAgPyB2b2lkIDAgOiBtZXNzYWdlLmV2ZW50KSAhPT0gXCJzZXNzaW9uXCIgfHwgIShtZXNzYWdlICE9PSBudWxsICYmIG1lc3NhZ2UgIT09IHZvaWQgMCAmJiBtZXNzYWdlLmRhdGEpKSByZXR1cm47XG4gICAgICAgIG9uUmVjZWl2ZShtZXNzYWdlKTtcbiAgICAgIH07XG4gICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInN0b3JhZ2VcIiwgaGFuZGxlcik7XG4gICAgICByZXR1cm4gZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJzdG9yYWdlXCIsIGhhbmRsZXIpO1xuICAgICAgfTtcbiAgICB9LFxuICAgIHBvc3Q6IGZ1bmN0aW9uIHBvc3QobWVzc2FnZSkge1xuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHJldHVybjtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKG5hbWUsIEpTT04uc3RyaW5naWZ5KF9vYmplY3RTcHJlYWQoX29iamVjdFNwcmVhZCh7fSwgbWVzc2FnZSksIHt9LCB7XG4gICAgICAgICAgdGltZXN0YW1wOiBub3coKVxuICAgICAgICB9KSkpO1xuICAgICAgfSBjYXRjaCAoX3VudXNlZCkge31cbiAgICB9XG4gIH07XG59Il0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next-auth/client/_utils.js\n");
/***/ }),
@@ -27,6 +477,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
\***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(ssr)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports.UnsupportedStrategy = exports.UnknownError = exports.OAuthCallbackError = exports.MissingSecret = exports.MissingAuthorize = exports.MissingAdapterMethods = exports.MissingAdapter = exports.MissingAPIRoute = exports.InvalidCallbackUrl = exports.AccountNotLinkedError = void 0;\nexports.adapterErrorHandler = adapterErrorHandler;\nexports.capitalize = capitalize;\nexports.eventsErrorHandler = eventsErrorHandler;\nexports.upperSnake = upperSnake;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(ssr)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(ssr)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(ssr)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _classCallCheck2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/classCallCheck */ \"(ssr)/./node_modules/@babel/runtime/helpers/classCallCheck.js\"));\nvar _createClass2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/createClass */ \"(ssr)/./node_modules/@babel/runtime/helpers/createClass.js\"));\nvar _possibleConstructorReturn2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/possibleConstructorReturn */ \"(ssr)/./node_modules/@babel/runtime/helpers/possibleConstructorReturn.js\"));\nvar _getPrototypeOf2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/getPrototypeOf */ \"(ssr)/./node_modules/@babel/runtime/helpers/getPrototypeOf.js\"));\nvar _inherits2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/inherits */ \"(ssr)/./node_modules/@babel/runtime/helpers/inherits.js\"));\nvar _wrapNativeSuper2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/wrapNativeSuper */ \"(ssr)/./node_modules/@babel/runtime/helpers/wrapNativeSuper.js\"));\nfunction _callSuper(t, o, e) { return o = (0, _getPrototypeOf2.default)(o), (0, _possibleConstructorReturn2.default)(t, _isNativeReflectConstruct() ? Reflect.construct(o, e || [], (0, _getPrototypeOf2.default)(t).constructor) : o.apply(t, e)); }\nfunction _isNativeReflectConstruct() { try { var t = !Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); } catch (t) {} return (_isNativeReflectConstruct = function _isNativeReflectConstruct() { return !!t; })(); }\nvar UnknownError = exports.UnknownError = function (_Error) {\n function UnknownError(error) {\n var _message;\n var _this;\n (0, _classCallCheck2.default)(this, UnknownError);\n _this = _callSuper(this, UnknownError, [(_message = error === null || error === void 0 ? void 0 : error.message) !== null && _message !== void 0 ? _message : error]);\n _this.name = \"UnknownError\";\n _this.code = error.code;\n if (error instanceof Error) {\n _this.stack = error.stack;\n }\n return _this;\n }\n (0, _inherits2.default)(UnknownError, _Error);\n return (0, _createClass2.default)(UnknownError, [{\n key: \"toJSON\",\n value: function toJSON() {\n return {\n name: this.name,\n message: this.message,\n stack: this.stack\n };\n }\n }]);\n}((0, _wrapNativeSuper2.default)(Error));\nvar OAuthCallbackError = exports.OAuthCallbackError = function (_UnknownError) {\n function OAuthCallbackError() {\n var _this2;\n (0, _classCallCheck2.default)(this, OAuthCallbackError);\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n _this2 = _callSuper(this, OAuthCallbackError, [].concat(args));\n (0, _defineProperty2.default)(_this2, \"name\", \"OAuthCallbackError\");\n return _this2;\n }\n (0, _inherits2.default)(OAuthCallbackError, _UnknownError);\n return (0, _createClass2.default)(OAuthCallbackError);\n}(UnknownError);\nvar AccountNotLinkedError = exports.AccountNotLinkedError = function (_UnknownError2) {\n function AccountNotLinkedError() {\n var _this3;\n (0, _classCallCheck2.default)(this, AccountNotLinkedError);\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n _this3 = _callSuper(this, AccountNotLinkedError, [].concat(args));\n (0, _defineProperty2.default)(_this3, \"name\", \"AccountNotLinkedError\");\n return _this3;\n }\n (0, _inherits2.default)(AccountNotLinkedError, _UnknownError2);\n return (0, _createClass2.default)(AccountNotLinkedError);\n}(UnknownError);\nvar MissingAPIRoute = exports.MissingAPIRoute = function (_UnknownError3) {\n function MissingAPIRoute() {\n var _this4;\n (0, _classCallCheck2.default)(this, MissingAPIRoute);\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n _this4 = _callSuper(this, MissingAPIRoute, [].concat(args));\n (0, _defineProperty2.default)(_this4, \"name\", \"MissingAPIRouteError\");\n (0, _defineProperty2.default)(_this4, \"code\", \"MISSING_NEXTAUTH_API_ROUTE_ERROR\");\n return _this4;\n }\n (0, _inherits2.default)(MissingAPIRoute, _UnknownError3);\n return (0, _createClass2.default)(MissingAPIRoute);\n}(UnknownError);\nvar MissingSecret = exports.MissingSecret = function (_UnknownError4) {\n function MissingSecret() {\n var _this5;\n (0, _classCallCheck2.default)(this, MissingSecret);\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n _this5 = _callSuper(this, MissingSecret, [].concat(args));\n (0, _defineProperty2.default)(_this5, \"name\", \"MissingSecretError\");\n (0, _defineProperty2.default)(_this5, \"code\", \"NO_SECRET\");\n return _this5;\n }\n (0, _inherits2.default)(MissingSecret, _UnknownError4);\n return (0, _createClass2.default)(MissingSecret);\n}(UnknownError);\nvar MissingAuthorize = exports.MissingAuthorize = function (_UnknownError5) {\n function MissingAuthorize() {\n var _this6;\n (0, _classCallCheck2.default)(this, MissingAuthorize);\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n _this6 = _callSuper(this, MissingAuthorize, [].concat(args));\n (0, _defineProperty2.default)(_this6, \"name\", \"MissingAuthorizeError\");\n (0, _defineProperty2.default)(_this6, \"code\", \"CALLBACK_CREDENTIALS_HANDLER_ERROR\");\n return _this6;\n }\n (0, _inherits2.default)(MissingAuthorize, _UnknownError5);\n return (0, _createClass2.default)(MissingAuthorize);\n}(UnknownError);\nvar MissingAdapter = exports.MissingAdapter = function (_UnknownError6) {\n function MissingAdapter() {\n var _this7;\n (0, _classCallCheck2.default)(this, MissingAdapter);\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n _this7 = _callSuper(this, MissingAdapter, [].concat(args));\n (0, _defineProperty2.default)(_this7, \"name\", \"MissingAdapterError\");\n (0, _defineProperty2.default)(_this7, \"code\", \"EMAIL_REQUIRES_ADAPTER_ERROR\");\n return _this7;\n }\n (0, _inherits2.default)(MissingAdapter, _UnknownError6);\n return (0, _createClass2.default)(MissingAdapter);\n}(UnknownError);\nvar MissingAdapterMethods = exports.MissingAdapterMethods = function (_UnknownError7) {\n function MissingAdapterMethods() {\n var _this8;\n (0, _classCallCheck2.default)(this, MissingAdapterMethods);\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n _this8 = _callSuper(this, MissingAdapterMethods, [].concat(args));\n (0, _defineProperty2.default)(_this8, \"name\", \"MissingAdapterMethodsError\");\n (0, _defineProperty2.default)(_this8, \"code\", \"MISSING_ADAPTER_METHODS_ERROR\");\n return _this8;\n }\n (0, _inherits2.default)(MissingAdapterMethods, _UnknownError7);\n return (0, _createClass2.default)(MissingAdapterMethods);\n}(UnknownError);\nvar UnsupportedStrategy = exports.UnsupportedStrategy = function (_UnknownError8) {\n function UnsupportedStrategy() {\n var _this9;\n (0, _classCallCheck2.default)(this, UnsupportedStrategy);\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n _this9 = _callSuper(this, UnsupportedStrategy, [].concat(args));\n (0, _defineProperty2.default)(_this9, \"name\", \"UnsupportedStrategyError\");\n (0, _defineProperty2.default)(_this9, \"code\", \"CALLBACK_CREDENTIALS_JWT_ERROR\");\n return _this9;\n }\n (0, _inherits2.default)(UnsupportedStrategy, _UnknownError8);\n return (0, _createClass2.default)(UnsupportedStrategy);\n}(UnknownError);\nvar InvalidCallbackUrl = exports.InvalidCallbackUrl = function (_UnknownError9) {\n function InvalidCallbackUrl() {\n var _this10;\n (0, _classCallCheck2.default)(this, InvalidCallbackUrl);\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n _this10 = _callSuper(this, InvalidCallbackUrl, [].concat(args));\n (0, _defineProperty2.default)(_this10, \"name\", \"InvalidCallbackUrl\");\n (0, _defineProperty2.default)(_this10, \"code\", \"INVALID_CALLBACK_URL_ERROR\");\n return _this10;\n }\n (0, _inherits2.default)(InvalidCallbackUrl, _UnknownError9);\n return (0, _createClass2.default)(InvalidCallbackUrl);\n}(UnknownError);\nfunction upperSnake(s) {\n return s.replace(/([A-Z])/g, \"_$1\").toUpperCase();\n}\nfunction capitalize(s) {\n return \"\".concat(s[0].toUpperCase()).concat(s.slice(1));\n}\nfunction eventsErrorHandler(methods, logger) {\n return Object.keys(methods).reduce(function (acc, name) {\n acc[name] = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {\n var method,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n method = methods[name];\n _context.next = 4;\n return method.apply(void 0, _args);\n case 4:\n return _context.abrupt(\"return\", _context.sent);\n case 7:\n _context.prev = 7;\n _context.t0 = _context[\"catch\"](0);\n logger.error(\"\".concat(upperSnake(name), \"_EVENT_ERROR\"), _context.t0);\n case 10:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[0, 7]]);\n }));\n return acc;\n }, {});\n}\nfunction adapterErrorHandler(adapter, logger) {\n if (!adapter) return;\n return Object.keys(adapter).reduce(function (acc, name) {\n acc[name] = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {\n var _len10,\n args,\n _key10,\n method,\n e,\n _args2 = arguments;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n _context2.prev = 0;\n for (_len10 = _args2.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = _args2[_key10];\n }\n logger.debug(\"adapter_\".concat(name), {\n args: args\n });\n method = adapter[name];\n _context2.next = 6;\n return method.apply(void 0, args);\n case 6:\n return _context2.abrupt(\"return\", _context2.sent);\n case 9:\n _context2.prev = 9;\n _context2.t0 = _context2[\"catch\"](0);\n logger.error(\"adapter_error_\".concat(name), _context2.t0);\n e = new UnknownError(_context2.t0);\n e.name = \"\".concat(capitalize(name), \"Error\");\n throw e;\n case 15:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2, null, [[0, 9]]);\n }));\n return acc;\n }, {});\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL2NvcmUvZXJyb3JzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLDBIQUE4QztBQUNuRiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwyQkFBMkIsR0FBRyxvQkFBb0IsR0FBRywwQkFBMEIsR0FBRyxxQkFBcUIsR0FBRyx3QkFBd0IsR0FBRyw2QkFBNkIsR0FBRyxzQkFBc0IsR0FBRyx1QkFBdUIsR0FBRywwQkFBMEIsR0FBRyw2QkFBNkI7QUFDbFIsMkJBQTJCO0FBQzNCLGtCQUFrQjtBQUNsQiwwQkFBMEI7QUFDMUIsa0JBQWtCO0FBQ2xCLDBDQUEwQyxtQkFBTyxDQUFDLDRGQUE0QjtBQUM5RSxnREFBZ0QsbUJBQU8sQ0FBQyxnSEFBeUM7QUFDakcsOENBQThDLG1CQUFPLENBQUMsNEdBQXVDO0FBQzdGLDhDQUE4QyxtQkFBTyxDQUFDLDRHQUF1QztBQUM3RiwyQ0FBMkMsbUJBQU8sQ0FBQyxzR0FBb0M7QUFDdkYseURBQXlELG1CQUFPLENBQUMsa0lBQWtEO0FBQ25ILDhDQUE4QyxtQkFBTyxDQUFDLDRHQUF1QztBQUM3Rix3Q0FBd0MsbUJBQU8sQ0FBQyxnR0FBaUM7QUFDakYsK0NBQStDLG1CQUFPLENBQUMsOEdBQXdDO0FBQy9GLCtCQUErQjtBQUMvQix1Q0FBdUMsTUFBTSxxRkFBcUYsTUFBTSxhQUFhLDJFQUEyRSxhQUFhO0FBQzdPLG1CQUFtQixvQkFBb0I7QUFDdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0gsQ0FBQztBQUNELHlCQUF5QiwwQkFBMEI7QUFDbkQ7QUFDQTtBQUNBO0FBQ0Esd0VBQXdFLGFBQWE7QUFDckY7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUM7QUFDRCw0QkFBNEIsNkJBQTZCO0FBQ3pEO0FBQ0E7QUFDQTtBQUNBLDJFQUEyRSxlQUFlO0FBQzFGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsc0JBQXNCLHVCQUF1QjtBQUM3QztBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Qsb0JBQW9CLHFCQUFxQjtBQUN6QztBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsdUJBQXVCLHdCQUF3QjtBQUMvQztBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QscUJBQXFCLHNCQUFzQjtBQUMzQztBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsNEJBQTRCLDZCQUE2QjtBQUN6RDtBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsMEJBQTBCLDJCQUEyQjtBQUNyRDtBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QseUJBQXlCLDBCQUEwQjtBQUNuRDtBQUNBO0FBQ0E7QUFDQSwyRUFBMkUsZUFBZTtBQUMxRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0EsR0FBRyxJQUFJO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsK0VBQStFLGlCQUFpQjtBQUNoRztBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUCxLQUFLO0FBQ0w7QUFDQSxHQUFHLElBQUk7QUFDUCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9jb3JlL2Vycm9ycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5VbnN1cHBvcnRlZFN0cmF0ZWd5ID0gZXhwb3J0cy5Vbmtub3duRXJyb3IgPSBleHBvcnRzLk9BdXRoQ2FsbGJhY2tFcnJvciA9IGV4cG9ydHMuTWlzc2luZ1NlY3JldCA9IGV4cG9ydHMuTWlzc2luZ0F1dGhvcml6ZSA9IGV4cG9ydHMuTWlzc2luZ0FkYXB0ZXJNZXRob2RzID0gZXhwb3J0cy5NaXNzaW5nQWRhcHRlciA9IGV4cG9ydHMuTWlzc2luZ0FQSVJvdXRlID0gZXhwb3J0cy5JbnZhbGlkQ2FsbGJhY2tVcmwgPSBleHBvcnRzLkFjY291bnROb3RMaW5rZWRFcnJvciA9IHZvaWQgMDtcbmV4cG9ydHMuYWRhcHRlckVycm9ySGFuZGxlciA9IGFkYXB0ZXJFcnJvckhhbmRsZXI7XG5leHBvcnRzLmNhcGl0YWxpemUgPSBjYXBpdGFsaXplO1xuZXhwb3J0cy5ldmVudHNFcnJvckhhbmRsZXIgPSBldmVudHNFcnJvckhhbmRsZXI7XG5leHBvcnRzLnVwcGVyU25ha2UgPSB1cHBlclNuYWtlO1xudmFyIF9yZWdlbmVyYXRvciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yXCIpKTtcbnZhciBfYXN5bmNUb0dlbmVyYXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2FzeW5jVG9HZW5lcmF0b3JcIikpO1xudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5XCIpKTtcbnZhciBfY2xhc3NDYWxsQ2hlY2syID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9jbGFzc0NhbGxDaGVja1wiKSk7XG52YXIgX2NyZWF0ZUNsYXNzMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvY3JlYXRlQ2xhc3NcIikpO1xudmFyIF9wb3NzaWJsZUNvbnN0cnVjdG9yUmV0dXJuMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvcG9zc2libGVDb25zdHJ1Y3RvclJldHVyblwiKSk7XG52YXIgX2dldFByb3RvdHlwZU9mMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvZ2V0UHJvdG90eXBlT2ZcIikpO1xudmFyIF9pbmhlcml0czIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2luaGVyaXRzXCIpKTtcbnZhciBfd3JhcE5hdGl2ZVN1cGVyMiA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL2hlbHBlcnMvd3JhcE5hdGl2ZVN1cGVyXCIpKTtcbmZ1bmN0aW9uIF9jYWxsU3VwZXIodCwgbywgZSkgeyByZXR1cm4gbyA9ICgwLCBfZ2V0UHJvdG90eXBlT2YyLmRlZmF1bHQpKG8pLCAoMCwgX3Bvc3NpYmxlQ29uc3RydWN0b3JSZXR1cm4yLmRlZmF1bHQpKHQsIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSA/IFJlZmxlY3QuY29uc3RydWN0KG8sIGUgfHwgW10sICgwLCBfZ2V0UHJvdG90eXBlT2YyLmRlZmF1bHQpKHQpLmNvbnN0cnVjdG9yKSA6IG8uYXBwbHkodCwgZSkpOyB9XG5mdW5jdGlvbiBfaXNOYXRpdmVSZWZsZWN0Q29uc3RydWN0KCkgeyB0cnkgeyB2YXIgdCA9ICFCb29sZWFuLnByb3RvdHlwZS52YWx1ZU9mLmNhbGwoUmVmbGVjdC5jb25zdHJ1Y3QoQm9vbGVhbiwgW10sIGZ1bmN0aW9uICgpIHt9KSk7IH0gY2F0Y2ggKHQpIHt9IHJldHVybiAoX2lzTmF0aXZlUmVmbGVjdENvbnN0cnVjdCA9IGZ1bmN0aW9uIF9pc05hdGl2ZVJlZmxlY3RDb25zdHJ1Y3QoKSB7IHJldHVybiAhIXQ7IH0pKCk7IH1cbnZhciBVbmtub3duRXJyb3IgPSBleHBvcnRzLlVua25vd25FcnJvciA9IGZ1bmN0aW9uIChfRXJyb3IpIHtcbiAgZnVuY3Rpb24gVW5rbm93bkVycm9yKGVycm9yKSB7XG4gICAgdmFyIF9tZXNzYWdlO1xuICAgIHZhciBfdGhpcztcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBVbmtub3duRXJyb3IpO1xuICAgIF90aGlzID0gX2NhbGxTdXBlcih0aGlzLCBVbmtub3duRXJyb3IsIFsoX21lc3NhZ2UgPSBlcnJvciA9PT0gbnVsbCB8fCBlcnJvciA9PT0gdm9pZCAwID8gdm9pZCAwIDogZXJyb3IubWVzc2FnZSkgIT09IG51bGwgJiYgX21lc3NhZ2UgIT09IHZvaWQgMCA/IF9tZXNzYWdlIDogZXJyb3JdKTtcbiAgICBfdGhpcy5uYW1lID0gXCJVbmtub3duRXJyb3JcIjtcbiAgICBfdGhpcy5jb2RlID0gZXJyb3IuY29kZTtcbiAgICBpZiAoZXJyb3IgaW5zdGFuY2VvZiBFcnJvcikge1xuICAgICAgX3RoaXMuc3RhY2sgPSBlcnJvci5zdGFjaztcbiAgICB9XG4gICAgcmV0dXJuIF90aGlzO1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKFVua25vd25FcnJvciwgX0Vycm9yKTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKFVua25vd25FcnJvciwgW3tcbiAgICBrZXk6IFwidG9KU09OXCIsXG4gICAgdmFsdWU6IGZ1bmN0aW9uIHRvSlNPTigpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIG5hbWU6IHRoaXMubmFtZSxcbiAgICAgICAgbWVzc2FnZTogdGhpcy5tZXNzYWdlLFxuICAgICAgICBzdGFjazogdGhpcy5zdGFja1xuICAgICAgfTtcbiAgICB9XG4gIH1dKTtcbn0oKDAsIF93cmFwTmF0aXZlU3VwZXIyLmRlZmF1bHQpKEVycm9yKSk7XG52YXIgT0F1dGhDYWxsYmFja0Vycm9yID0gZXhwb3J0cy5PQXV0aENhbGxiYWNrRXJyb3IgPSBmdW5jdGlvbiAoX1Vua25vd25FcnJvcikge1xuICBmdW5jdGlvbiBPQXV0aENhbGxiYWNrRXJyb3IoKSB7XG4gICAgdmFyIF90aGlzMjtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBPQXV0aENhbGxiYWNrRXJyb3IpO1xuICAgIGZvciAodmFyIF9sZW4gPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4pLCBfa2V5ID0gMDsgX2tleSA8IF9sZW47IF9rZXkrKykge1xuICAgICAgYXJnc1tfa2V5XSA9IGFyZ3VtZW50c1tfa2V5XTtcbiAgICB9XG4gICAgX3RoaXMyID0gX2NhbGxTdXBlcih0aGlzLCBPQXV0aENhbGxiYWNrRXJyb3IsIFtdLmNvbmNhdChhcmdzKSk7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXMyLCBcIm5hbWVcIiwgXCJPQXV0aENhbGxiYWNrRXJyb3JcIik7XG4gICAgcmV0dXJuIF90aGlzMjtcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShPQXV0aENhbGxiYWNrRXJyb3IsIF9Vbmtub3duRXJyb3IpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoT0F1dGhDYWxsYmFja0Vycm9yKTtcbn0oVW5rbm93bkVycm9yKTtcbnZhciBBY2NvdW50Tm90TGlua2VkRXJyb3IgPSBleHBvcnRzLkFjY291bnROb3RMaW5rZWRFcnJvciA9IGZ1bmN0aW9uIChfVW5rbm93bkVycm9yMikge1xuICBmdW5jdGlvbiBBY2NvdW50Tm90TGlua2VkRXJyb3IoKSB7XG4gICAgdmFyIF90aGlzMztcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBBY2NvdW50Tm90TGlua2VkRXJyb3IpO1xuICAgIGZvciAodmFyIF9sZW4yID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMiksIF9rZXkyID0gMDsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgYXJnc1tfa2V5Ml0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgIH1cbiAgICBfdGhpczMgPSBfY2FsbFN1cGVyKHRoaXMsIEFjY291bnROb3RMaW5rZWRFcnJvciwgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczMsIFwibmFtZVwiLCBcIkFjY291bnROb3RMaW5rZWRFcnJvclwiKTtcbiAgICByZXR1cm4gX3RoaXMzO1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKEFjY291bnROb3RMaW5rZWRFcnJvciwgX1Vua25vd25FcnJvcjIpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoQWNjb3VudE5vdExpbmtlZEVycm9yKTtcbn0oVW5rbm93bkVycm9yKTtcbnZhciBNaXNzaW5nQVBJUm91dGUgPSBleHBvcnRzLk1pc3NpbmdBUElSb3V0ZSA9IGZ1bmN0aW9uIChfVW5rbm93bkVycm9yMykge1xuICBmdW5jdGlvbiBNaXNzaW5nQVBJUm91dGUoKSB7XG4gICAgdmFyIF90aGlzNDtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBNaXNzaW5nQVBJUm91dGUpO1xuICAgIGZvciAodmFyIF9sZW4zID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuMyksIF9rZXkzID0gMDsgX2tleTMgPCBfbGVuMzsgX2tleTMrKykge1xuICAgICAgYXJnc1tfa2V5M10gPSBhcmd1bWVudHNbX2tleTNdO1xuICAgIH1cbiAgICBfdGhpczQgPSBfY2FsbFN1cGVyKHRoaXMsIE1pc3NpbmdBUElSb3V0ZSwgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczQsIFwibmFtZVwiLCBcIk1pc3NpbmdBUElSb3V0ZUVycm9yXCIpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzNCwgXCJjb2RlXCIsIFwiTUlTU0lOR19ORVhUQVVUSF9BUElfUk9VVEVfRVJST1JcIik7XG4gICAgcmV0dXJuIF90aGlzNDtcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShNaXNzaW5nQVBJUm91dGUsIF9Vbmtub3duRXJyb3IzKTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKE1pc3NpbmdBUElSb3V0ZSk7XG59KFVua25vd25FcnJvcik7XG52YXIgTWlzc2luZ1NlY3JldCA9IGV4cG9ydHMuTWlzc2luZ1NlY3JldCA9IGZ1bmN0aW9uIChfVW5rbm93bkVycm9yNCkge1xuICBmdW5jdGlvbiBNaXNzaW5nU2VjcmV0KCkge1xuICAgIHZhciBfdGhpczU7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgTWlzc2luZ1NlY3JldCk7XG4gICAgZm9yICh2YXIgX2xlbjQgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW40KSwgX2tleTQgPSAwOyBfa2V5NCA8IF9sZW40OyBfa2V5NCsrKSB7XG4gICAgICBhcmdzW19rZXk0XSA9IGFyZ3VtZW50c1tfa2V5NF07XG4gICAgfVxuICAgIF90aGlzNSA9IF9jYWxsU3VwZXIodGhpcywgTWlzc2luZ1NlY3JldCwgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczUsIFwibmFtZVwiLCBcIk1pc3NpbmdTZWNyZXRFcnJvclwiKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczUsIFwiY29kZVwiLCBcIk5PX1NFQ1JFVFwiKTtcbiAgICByZXR1cm4gX3RoaXM1O1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKE1pc3NpbmdTZWNyZXQsIF9Vbmtub3duRXJyb3I0KTtcbiAgcmV0dXJuICgwLCBfY3JlYXRlQ2xhc3MyLmRlZmF1bHQpKE1pc3NpbmdTZWNyZXQpO1xufShVbmtub3duRXJyb3IpO1xudmFyIE1pc3NpbmdBdXRob3JpemUgPSBleHBvcnRzLk1pc3NpbmdBdXRob3JpemUgPSBmdW5jdGlvbiAoX1Vua25vd25FcnJvcjUpIHtcbiAgZnVuY3Rpb24gTWlzc2luZ0F1dGhvcml6ZSgpIHtcbiAgICB2YXIgX3RoaXM2O1xuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2syLmRlZmF1bHQpKHRoaXMsIE1pc3NpbmdBdXRob3JpemUpO1xuICAgIGZvciAodmFyIF9sZW41ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNSksIF9rZXk1ID0gMDsgX2tleTUgPCBfbGVuNTsgX2tleTUrKykge1xuICAgICAgYXJnc1tfa2V5NV0gPSBhcmd1bWVudHNbX2tleTVdO1xuICAgIH1cbiAgICBfdGhpczYgPSBfY2FsbFN1cGVyKHRoaXMsIE1pc3NpbmdBdXRob3JpemUsIFtdLmNvbmNhdChhcmdzKSk7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM2LCBcIm5hbWVcIiwgXCJNaXNzaW5nQXV0aG9yaXplRXJyb3JcIik7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM2LCBcImNvZGVcIiwgXCJDQUxMQkFDS19DUkVERU5USUFMU19IQU5ETEVSX0VSUk9SXCIpO1xuICAgIHJldHVybiBfdGhpczY7XG4gIH1cbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoTWlzc2luZ0F1dGhvcml6ZSwgX1Vua25vd25FcnJvcjUpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoTWlzc2luZ0F1dGhvcml6ZSk7XG59KFVua25vd25FcnJvcik7XG52YXIgTWlzc2luZ0FkYXB0ZXIgPSBleHBvcnRzLk1pc3NpbmdBZGFwdGVyID0gZnVuY3Rpb24gKF9Vbmtub3duRXJyb3I2KSB7XG4gIGZ1bmN0aW9uIE1pc3NpbmdBZGFwdGVyKCkge1xuICAgIHZhciBfdGhpczc7XG4gICAgKDAsIF9jbGFzc0NhbGxDaGVjazIuZGVmYXVsdCkodGhpcywgTWlzc2luZ0FkYXB0ZXIpO1xuICAgIGZvciAodmFyIF9sZW42ID0gYXJndW1lbnRzLmxlbmd0aCwgYXJncyA9IG5ldyBBcnJheShfbGVuNiksIF9rZXk2ID0gMDsgX2tleTYgPCBfbGVuNjsgX2tleTYrKykge1xuICAgICAgYXJnc1tfa2V5Nl0gPSBhcmd1bWVudHNbX2tleTZdO1xuICAgIH1cbiAgICBfdGhpczcgPSBfY2FsbFN1cGVyKHRoaXMsIE1pc3NpbmdBZGFwdGVyLCBbXS5jb25jYXQoYXJncykpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzNywgXCJuYW1lXCIsIFwiTWlzc2luZ0FkYXB0ZXJFcnJvclwiKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczcsIFwiY29kZVwiLCBcIkVNQUlMX1JFUVVJUkVTX0FEQVBURVJfRVJST1JcIik7XG4gICAgcmV0dXJuIF90aGlzNztcbiAgfVxuICAoMCwgX2luaGVyaXRzMi5kZWZhdWx0KShNaXNzaW5nQWRhcHRlciwgX1Vua25vd25FcnJvcjYpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoTWlzc2luZ0FkYXB0ZXIpO1xufShVbmtub3duRXJyb3IpO1xudmFyIE1pc3NpbmdBZGFwdGVyTWV0aG9kcyA9IGV4cG9ydHMuTWlzc2luZ0FkYXB0ZXJNZXRob2RzID0gZnVuY3Rpb24gKF9Vbmtub3duRXJyb3I3KSB7XG4gIGZ1bmN0aW9uIE1pc3NpbmdBZGFwdGVyTWV0aG9kcygpIHtcbiAgICB2YXIgX3RoaXM4O1xuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2syLmRlZmF1bHQpKHRoaXMsIE1pc3NpbmdBZGFwdGVyTWV0aG9kcyk7XG4gICAgZm9yICh2YXIgX2xlbjcgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW43KSwgX2tleTcgPSAwOyBfa2V5NyA8IF9sZW43OyBfa2V5NysrKSB7XG4gICAgICBhcmdzW19rZXk3XSA9IGFyZ3VtZW50c1tfa2V5N107XG4gICAgfVxuICAgIF90aGlzOCA9IF9jYWxsU3VwZXIodGhpcywgTWlzc2luZ0FkYXB0ZXJNZXRob2RzLCBbXS5jb25jYXQoYXJncykpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzOCwgXCJuYW1lXCIsIFwiTWlzc2luZ0FkYXB0ZXJNZXRob2RzRXJyb3JcIik7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXM4LCBcImNvZGVcIiwgXCJNSVNTSU5HX0FEQVBURVJfTUVUSE9EU19FUlJPUlwiKTtcbiAgICByZXR1cm4gX3RoaXM4O1xuICB9XG4gICgwLCBfaW5oZXJpdHMyLmRlZmF1bHQpKE1pc3NpbmdBZGFwdGVyTWV0aG9kcywgX1Vua25vd25FcnJvcjcpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoTWlzc2luZ0FkYXB0ZXJNZXRob2RzKTtcbn0oVW5rbm93bkVycm9yKTtcbnZhciBVbnN1cHBvcnRlZFN0cmF0ZWd5ID0gZXhwb3J0cy5VbnN1cHBvcnRlZFN0cmF0ZWd5ID0gZnVuY3Rpb24gKF9Vbmtub3duRXJyb3I4KSB7XG4gIGZ1bmN0aW9uIFVuc3VwcG9ydGVkU3RyYXRlZ3koKSB7XG4gICAgdmFyIF90aGlzOTtcbiAgICAoMCwgX2NsYXNzQ2FsbENoZWNrMi5kZWZhdWx0KSh0aGlzLCBVbnN1cHBvcnRlZFN0cmF0ZWd5KTtcbiAgICBmb3IgKHZhciBfbGVuOCA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjgpLCBfa2V5OCA9IDA7IF9rZXk4IDwgX2xlbjg7IF9rZXk4KyspIHtcbiAgICAgIGFyZ3NbX2tleThdID0gYXJndW1lbnRzW19rZXk4XTtcbiAgICB9XG4gICAgX3RoaXM5ID0gX2NhbGxTdXBlcih0aGlzLCBVbnN1cHBvcnRlZFN0cmF0ZWd5LCBbXS5jb25jYXQoYXJncykpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzOSwgXCJuYW1lXCIsIFwiVW5zdXBwb3J0ZWRTdHJhdGVneUVycm9yXCIpO1xuICAgICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKF90aGlzOSwgXCJjb2RlXCIsIFwiQ0FMTEJBQ0tfQ1JFREVOVElBTFNfSldUX0VSUk9SXCIpO1xuICAgIHJldHVybiBfdGhpczk7XG4gIH1cbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoVW5zdXBwb3J0ZWRTdHJhdGVneSwgX1Vua25vd25FcnJvcjgpO1xuICByZXR1cm4gKDAsIF9jcmVhdGVDbGFzczIuZGVmYXVsdCkoVW5zdXBwb3J0ZWRTdHJhdGVneSk7XG59KFVua25vd25FcnJvcik7XG52YXIgSW52YWxpZENhbGxiYWNrVXJsID0gZXhwb3J0cy5JbnZhbGlkQ2FsbGJhY2tVcmwgPSBmdW5jdGlvbiAoX1Vua25vd25FcnJvcjkpIHtcbiAgZnVuY3Rpb24gSW52YWxpZENhbGxiYWNrVXJsKCkge1xuICAgIHZhciBfdGhpczEwO1xuICAgICgwLCBfY2xhc3NDYWxsQ2hlY2syLmRlZmF1bHQpKHRoaXMsIEludmFsaWRDYWxsYmFja1VybCk7XG4gICAgZm9yICh2YXIgX2xlbjkgPSBhcmd1bWVudHMubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW45KSwgX2tleTkgPSAwOyBfa2V5OSA8IF9sZW45OyBfa2V5OSsrKSB7XG4gICAgICBhcmdzW19rZXk5XSA9IGFyZ3VtZW50c1tfa2V5OV07XG4gICAgfVxuICAgIF90aGlzMTAgPSBfY2FsbFN1cGVyKHRoaXMsIEludmFsaWRDYWxsYmFja1VybCwgW10uY29uY2F0KGFyZ3MpKTtcbiAgICAoMCwgX2RlZmluZVByb3BlcnR5Mi5kZWZhdWx0KShfdGhpczEwLCBcIm5hbWVcIiwgXCJJbnZhbGlkQ2FsbGJhY2tVcmxcIik7XG4gICAgKDAsIF9kZWZpbmVQcm9wZXJ0eTIuZGVmYXVsdCkoX3RoaXMxMCwgXCJjb2RlXCIsIFwiSU5WQUxJRF9DQUxMQkFDS19VUkxfRVJST1JcIik7XG4gICAgcmV0dXJuIF90aGlzMTA7XG4gIH1cbiAgKDAsIF9pbmhlcml0czIuZGVmYXVsdCkoSW52YWxpZENhbGxiYWNrVXJsLCBfVW5rbm93bkVycm9yOSk7XG4gIHJldHVybiAoMCwgX2NyZWF0ZUNsYXNzMi5kZWZhdWx0KShJbnZhbGlkQ2FsbGJhY2tVcmwpO1xufShVbmtub3duRXJyb3IpO1xuZnVuY3Rpb24gdXBwZXJTbmFrZShzKSB7XG4gIHJldHVybiBzLnJlcGxhY2UoLyhbQS1aXSkvZywgXCJfJDFcIikudG9VcHBlckNhc2UoKTtcbn1cbmZ1bmN0aW9uIGNhcGl0YWxpemUocykge1xuICByZXR1cm4gXCJcIi5jb25jYXQoc1swXS50b1VwcGVyQ2FzZSgpKS5jb25jYXQocy5zbGljZSgxKSk7XG59XG5mdW5jdGlvbiBldmVudHNFcnJvckhhbmRsZXIobWV0aG9kcywgbG9nZ2VyKSB7XG4gIHJldHVybiBPYmplY3Qua2V5cyhtZXRob2RzKS5yZWR1Y2UoZnVuY3Rpb24gKGFjYywgbmFtZSkge1xuICAgIGFjY1tuYW1lXSA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjIuZGVmYXVsdCkoX3JlZ2VuZXJhdG9yLmRlZmF1bHQubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkge1xuICAgICAgdmFyIG1ldGhvZCxcbiAgICAgICAgX2FyZ3MgPSBhcmd1bWVudHM7XG4gICAgICByZXR1cm4gX3JlZ2VuZXJhdG9yLmRlZmF1bHQud3JhcChmdW5jdGlvbiBfY2FsbGVlJChfY29udGV4dCkge1xuICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dC5wcmV2ID0gX2NvbnRleHQubmV4dCkge1xuICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAwO1xuICAgICAgICAgICAgbWV0aG9kID0gbWV0aG9kc1tuYW1lXTtcbiAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA0O1xuICAgICAgICAgICAgcmV0dXJuIG1ldGhvZC5hcHBseSh2b2lkIDAsIF9hcmdzKTtcbiAgICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0LnNlbnQpO1xuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSA3O1xuICAgICAgICAgICAgX2NvbnRleHQudDAgPSBfY29udGV4dFtcImNhdGNoXCJdKDApO1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFwiXCIuY29uY2F0KHVwcGVyU25ha2UobmFtZSksIFwiX0VWRU5UX0VSUk9SXCIpLCBfY29udGV4dC50MCk7XG4gICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuc3RvcCgpO1xuICAgICAgICB9XG4gICAgICB9LCBfY2FsbGVlLCBudWxsLCBbWzAsIDddXSk7XG4gICAgfSkpO1xuICAgIHJldHVybiBhY2M7XG4gIH0sIHt9KTtcbn1cbmZ1bmN0aW9uIGFkYXB0ZXJFcnJvckhhbmRsZXIoYWRhcHRlciwgbG9nZ2VyKSB7XG4gIGlmICghYWRhcHRlcikgcmV0dXJuO1xuICByZXR1cm4gT2JqZWN0LmtleXMoYWRhcHRlcikucmVkdWNlKGZ1bmN0aW9uIChhY2MsIG5hbWUpIHtcbiAgICBhY2NbbmFtZV0gPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7XG4gICAgICB2YXIgX2xlbjEwLFxuICAgICAgICBhcmdzLFxuICAgICAgICBfa2V5MTAsXG4gICAgICAgIG1ldGhvZCxcbiAgICAgICAgZSxcbiAgICAgICAgX2FyZ3MyID0gYXJndW1lbnRzO1xuICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0Mikge1xuICAgICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDIucHJldiA9IF9jb250ZXh0Mi5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX2NvbnRleHQyLnByZXYgPSAwO1xuICAgICAgICAgICAgZm9yIChfbGVuMTAgPSBfYXJnczIubGVuZ3RoLCBhcmdzID0gbmV3IEFycmF5KF9sZW4xMCksIF9rZXkxMCA9IDA7IF9rZXkxMCA8IF9sZW4xMDsgX2tleTEwKyspIHtcbiAgICAgICAgICAgICAgYXJnc1tfa2V5MTBdID0gX2FyZ3MyW19rZXkxMF07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsb2dnZXIuZGVidWcoXCJhZGFwdGVyX1wiLmNvbmNhdChuYW1lKSwge1xuICAgICAgICAgICAgICBhcmdzOiBhcmdzXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIG1ldGhvZCA9IGFkYXB0ZXJbbmFtZV07XG4gICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDY7XG4gICAgICAgICAgICByZXR1cm4gbWV0aG9kLmFwcGx5KHZvaWQgMCwgYXJncyk7XG4gICAgICAgICAgY2FzZSA2OlxuICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5hYnJ1cHQoXCJyZXR1cm5cIiwgX2NvbnRleHQyLnNlbnQpO1xuICAgICAgICAgIGNhc2UgOTpcbiAgICAgICAgICAgIF9jb250ZXh0Mi5wcmV2ID0gOTtcbiAgICAgICAgICAgIF9jb250ZXh0Mi50MCA9IF9jb250ZXh0MltcImNhdGNoXCJdKDApO1xuICAgICAgICAgICAgbG9nZ2VyLmVycm9yKFwiYWRhcHRlcl9lcnJvcl9cIi5jb25jYXQobmFtZSksIF9jb250ZXh0Mi50MCk7XG4gICAgICAgICAgICBlID0gbmV3IFVua25vd25FcnJvcihfY29udGV4dDIudDApO1xuICAgICAgICAgICAgZS5uYW1lID0gXCJcIi5jb25jYXQoY2FwaXRhbGl6ZShuYW1lKSwgXCJFcnJvclwiKTtcbiAgICAgICAgICAgIHRocm93IGU7XG4gICAgICAgICAgY2FzZSAxNTpcbiAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLnN0b3AoKTtcbiAgICAgICAgfVxuICAgICAgfSwgX2NhbGxlZTIsIG51bGwsIFtbMCwgOV1dKTtcbiAgICB9KSk7XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30pO1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next-auth/core/errors.js\n");
/***/ }),
@@ -37,6 +488,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
\***********************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(ssr)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nvar _typeof = __webpack_require__(/*! @babel/runtime/helpers/typeof */ \"(ssr)/./node_modules/@babel/runtime/helpers/typeof.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nvar _exportNames = {\n SessionContext: true,\n useSession: true,\n getSession: true,\n getCsrfToken: true,\n getProviders: true,\n signIn: true,\n signOut: true,\n SessionProvider: true\n};\nexports.SessionContext = void 0;\nexports.SessionProvider = SessionProvider;\nexports.getCsrfToken = getCsrfToken;\nexports.getProviders = getProviders;\nexports.getSession = getSession;\nexports.signIn = signIn;\nexports.signOut = signOut;\nexports.useSession = useSession;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(ssr)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(ssr)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(ssr)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nvar _slicedToArray2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/slicedToArray */ \"(ssr)/./node_modules/@babel/runtime/helpers/slicedToArray.js\"));\nvar React = _interopRequireWildcard(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nvar _logger2 = _interopRequireWildcard(__webpack_require__(/*! ../utils/logger */ \"(ssr)/./node_modules/next-auth/utils/logger.js\"));\nvar _parseUrl = _interopRequireDefault(__webpack_require__(/*! ../utils/parse-url */ \"(ssr)/./node_modules/next-auth/utils/parse-url.js\"));\nvar _utils = __webpack_require__(/*! ../client/_utils */ \"(ssr)/./node_modules/next-auth/client/_utils.js\");\nvar _jsxRuntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nvar _types = __webpack_require__(/*! ./types */ \"(ssr)/./node_modules/next-auth/react/types.js\");\nObject.keys(_types).forEach(function (key) {\n if (key === \"default\" || key === \"__esModule\") return;\n if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;\n if (key in exports && exports[key] === _types[key]) return;\n Object.defineProperty(exports, key, {\n enumerable: true,\n get: function get() {\n return _types[key];\n }\n });\n});\nvar _process$env$NEXTAUTH, _ref, _process$env$NEXTAUTH2, _process$env$NEXTAUTH3, _React$createContext;\nfunction _getRequireWildcardCache(e) { if (\"function\" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(e) { return e ? t : r; })(e); }\nfunction _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || \"object\" != _typeof(e) && \"function\" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if (\"default\" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar __NEXTAUTH = {\n baseUrl: (0, _parseUrl.default)((_process$env$NEXTAUTH = process.env.NEXTAUTH_URL) !== null && _process$env$NEXTAUTH !== void 0 ? _process$env$NEXTAUTH : process.env.VERCEL_URL).origin,\n basePath: (0, _parseUrl.default)(process.env.NEXTAUTH_URL).path,\n baseUrlServer: (0, _parseUrl.default)((_ref = (_process$env$NEXTAUTH2 = process.env.NEXTAUTH_URL_INTERNAL) !== null && _process$env$NEXTAUTH2 !== void 0 ? _process$env$NEXTAUTH2 : process.env.NEXTAUTH_URL) !== null && _ref !== void 0 ? _ref : process.env.VERCEL_URL).origin,\n basePathServer: (0, _parseUrl.default)((_process$env$NEXTAUTH3 = process.env.NEXTAUTH_URL_INTERNAL) !== null && _process$env$NEXTAUTH3 !== void 0 ? _process$env$NEXTAUTH3 : process.env.NEXTAUTH_URL).path,\n _lastSync: 0,\n _session: undefined,\n _getSession: function _getSession() {}\n};\nvar broadcast = (0, _utils.BroadcastChannel)();\nvar logger = (0, _logger2.proxyLogger)(_logger2.default, __NEXTAUTH.basePath);\nfunction useOnline() {\n var _React$useState = React.useState(typeof navigator !== \"undefined\" ? navigator.onLine : false),\n _React$useState2 = (0, _slicedToArray2.default)(_React$useState, 2),\n isOnline = _React$useState2[0],\n setIsOnline = _React$useState2[1];\n var setOnline = function setOnline() {\n return setIsOnline(true);\n };\n var setOffline = function setOffline() {\n return setIsOnline(false);\n };\n React.useEffect(function () {\n window.addEventListener(\"online\", setOnline);\n window.addEventListener(\"offline\", setOffline);\n return function () {\n window.removeEventListener(\"online\", setOnline);\n window.removeEventListener(\"offline\", setOffline);\n };\n }, []);\n return isOnline;\n}\nvar SessionContext = exports.SessionContext = (_React$createContext = React.createContext) === null || _React$createContext === void 0 ? void 0 : _React$createContext.call(React, undefined);\nfunction useSession(options) {\n if (!SessionContext) {\n throw new Error(\"React Context is unavailable in Server Components\");\n }\n var value = React.useContext(SessionContext);\n if (!value && \"development\" !== \"production\") {\n throw new Error(\"[next-auth]: `useSession` must be wrapped in a \");\n }\n var _ref2 = options !== null && options !== void 0 ? options : {},\n required = _ref2.required,\n onUnauthenticated = _ref2.onUnauthenticated;\n var requiredAndNotLoading = required && value.status === \"unauthenticated\";\n React.useEffect(function () {\n if (requiredAndNotLoading) {\n var url = \"/api/auth/signin?\".concat(new URLSearchParams({\n error: \"SessionRequired\",\n callbackUrl: window.location.href\n }));\n if (onUnauthenticated) onUnauthenticated();else window.location.href = url;\n }\n }, [requiredAndNotLoading, onUnauthenticated]);\n if (requiredAndNotLoading) {\n return {\n data: value.data,\n update: value.update,\n status: \"loading\"\n };\n }\n return value;\n}\nfunction getSession(_x) {\n return _getSession2.apply(this, arguments);\n}\nfunction _getSession2() {\n _getSession2 = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee3(params) {\n var _params$broadcast;\n var session;\n return _regenerator.default.wrap(function _callee3$(_context3) {\n while (1) switch (_context3.prev = _context3.next) {\n case 0:\n _context3.next = 2;\n return (0, _utils.fetchData)(\"session\", __NEXTAUTH, logger, params);\n case 2:\n session = _context3.sent;\n if ((_params$broadcast = params === null || params === void 0 ? void 0 : params.broadcast) !== null && _params$broadcast !== void 0 ? _params$broadcast : true) {\n broadcast.post({\n event: \"session\",\n data: {\n trigger: \"getSession\"\n }\n });\n }\n return _context3.abrupt(\"return\", session);\n case 5:\n case \"end\":\n return _context3.stop();\n }\n }, _callee3);\n }));\n return _getSession2.apply(this, arguments);\n}\nfunction getCsrfToken(_x2) {\n return _getCsrfToken.apply(this, arguments);\n}\nfunction _getCsrfToken() {\n _getCsrfToken = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee4(params) {\n var response;\n return _regenerator.default.wrap(function _callee4$(_context4) {\n while (1) switch (_context4.prev = _context4.next) {\n case 0:\n _context4.next = 2;\n return (0, _utils.fetchData)(\"csrf\", __NEXTAUTH, logger, params);\n case 2:\n response = _context4.sent;\n return _context4.abrupt(\"return\", response === null || response === void 0 ? void 0 : response.csrfToken);\n case 4:\n case \"end\":\n return _context4.stop();\n }\n }, _callee4);\n }));\n return _getCsrfToken.apply(this, arguments);\n}\nfunction getProviders() {\n return _getProviders.apply(this, arguments);\n}\nfunction _getProviders() {\n _getProviders = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee5() {\n return _regenerator.default.wrap(function _callee5$(_context5) {\n while (1) switch (_context5.prev = _context5.next) {\n case 0:\n _context5.next = 2;\n return (0, _utils.fetchData)(\"providers\", __NEXTAUTH, logger);\n case 2:\n return _context5.abrupt(\"return\", _context5.sent);\n case 3:\n case \"end\":\n return _context5.stop();\n }\n }, _callee5);\n }));\n return _getProviders.apply(this, arguments);\n}\nfunction signIn(_x3, _x4, _x5) {\n return _signIn.apply(this, arguments);\n}\nfunction _signIn() {\n _signIn = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee6(provider, options, authorizationParams) {\n var _ref5, _ref5$callbackUrl, callbackUrl, _ref5$redirect, redirect, baseUrl, providers, isCredentials, isEmail, isSupportingReturn, signInUrl, _signInUrl, res, data, _data$url, url, error;\n return _regenerator.default.wrap(function _callee6$(_context6) {\n while (1) switch (_context6.prev = _context6.next) {\n case 0:\n _ref5 = options !== null && options !== void 0 ? options : {}, _ref5$callbackUrl = _ref5.callbackUrl, callbackUrl = _ref5$callbackUrl === void 0 ? window.location.href : _ref5$callbackUrl, _ref5$redirect = _ref5.redirect, redirect = _ref5$redirect === void 0 ? true : _ref5$redirect;\n baseUrl = (0, _utils.apiBaseUrl)(__NEXTAUTH);\n _context6.next = 4;\n return getProviders();\n case 4:\n providers = _context6.sent;\n if (providers) {\n _context6.next = 8;\n break;\n }\n window.location.href = \"\".concat(baseUrl, \"/error\");\n return _context6.abrupt(\"return\");\n case 8:\n if (!(!provider || !(provider in providers))) {\n _context6.next = 11;\n break;\n }\n window.location.href = \"\".concat(baseUrl, \"/signin?\").concat(new URLSearchParams({\n callbackUrl: callbackUrl\n }));\n return _context6.abrupt(\"return\");\n case 11:\n isCredentials = providers[provider].type === \"credentials\";\n isEmail = providers[provider].type === \"email\";\n isSupportingReturn = isCredentials || isEmail;\n signInUrl = \"\".concat(baseUrl, \"/\").concat(isCredentials ? \"callback\" : \"signin\", \"/\").concat(provider);\n _signInUrl = \"\".concat(signInUrl).concat(authorizationParams ? \"?\".concat(new URLSearchParams(authorizationParams)) : \"\");\n _context6.t0 = fetch;\n _context6.t1 = _signInUrl;\n _context6.t2 = {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n };\n _context6.t3 = URLSearchParams;\n _context6.t4 = _objectSpread;\n _context6.t5 = _objectSpread({}, options);\n _context6.t6 = {};\n _context6.next = 25;\n return getCsrfToken();\n case 25:\n _context6.t7 = _context6.sent;\n _context6.t8 = callbackUrl;\n _context6.t9 = {\n csrfToken: _context6.t7,\n callbackUrl: _context6.t8,\n json: true\n };\n _context6.t10 = (0, _context6.t4)(_context6.t5, _context6.t6, _context6.t9);\n _context6.t11 = new _context6.t3(_context6.t10);\n _context6.t12 = {\n method: \"post\",\n headers: _context6.t2,\n body: _context6.t11\n };\n _context6.next = 33;\n return (0, _context6.t0)(_context6.t1, _context6.t12);\n case 33:\n res = _context6.sent;\n _context6.next = 36;\n return res.json();\n case 36:\n data = _context6.sent;\n if (!(redirect || !isSupportingReturn)) {\n _context6.next = 42;\n break;\n }\n url = (_data$url = data.url) !== null && _data$url !== void 0 ? _data$url : callbackUrl;\n window.location.href = url;\n if (url.includes(\"#\")) window.location.reload();\n return _context6.abrupt(\"return\");\n case 42:\n error = new URL(data.url).searchParams.get(\"error\");\n if (!res.ok) {\n _context6.next = 46;\n break;\n }\n _context6.next = 46;\n return __NEXTAUTH._getSession({\n event: \"storage\"\n });\n case 46:\n return _context6.abrupt(\"return\", {\n error: error,\n status: res.status,\n ok: res.ok,\n url: error ? null : data.url\n });\n case 47:\n case \"end\":\n return _context6.stop();\n }\n }, _callee6);\n }));\n return _signIn.apply(this, arguments);\n}\nfunction signOut(_x6) {\n return _signOut.apply(this, arguments);\n}\nfunction _signOut() {\n _signOut = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee7(options) {\n var _options$redirect;\n var _ref6, _ref6$callbackUrl, callbackUrl, baseUrl, fetchOptions, res, data, _data$url2, url;\n return _regenerator.default.wrap(function _callee7$(_context7) {\n while (1) switch (_context7.prev = _context7.next) {\n case 0:\n _ref6 = options !== null && options !== void 0 ? options : {}, _ref6$callbackUrl = _ref6.callbackUrl, callbackUrl = _ref6$callbackUrl === void 0 ? window.location.href : _ref6$callbackUrl;\n baseUrl = (0, _utils.apiBaseUrl)(__NEXTAUTH);\n _context7.t0 = {\n \"Content-Type\": \"application/x-www-form-urlencoded\"\n };\n _context7.t1 = URLSearchParams;\n _context7.next = 6;\n return getCsrfToken();\n case 6:\n _context7.t2 = _context7.sent;\n _context7.t3 = callbackUrl;\n _context7.t4 = {\n csrfToken: _context7.t2,\n callbackUrl: _context7.t3,\n json: true\n };\n _context7.t5 = new _context7.t1(_context7.t4);\n fetchOptions = {\n method: \"post\",\n headers: _context7.t0,\n body: _context7.t5\n };\n _context7.next = 13;\n return fetch(\"\".concat(baseUrl, \"/signout\"), fetchOptions);\n case 13:\n res = _context7.sent;\n _context7.next = 16;\n return res.json();\n case 16:\n data = _context7.sent;\n broadcast.post({\n event: \"session\",\n data: {\n trigger: \"signout\"\n }\n });\n if (!((_options$redirect = options === null || options === void 0 ? void 0 : options.redirect) !== null && _options$redirect !== void 0 ? _options$redirect : true)) {\n _context7.next = 23;\n break;\n }\n url = (_data$url2 = data.url) !== null && _data$url2 !== void 0 ? _data$url2 : callbackUrl;\n window.location.href = url;\n if (url.includes(\"#\")) window.location.reload();\n return _context7.abrupt(\"return\");\n case 23:\n _context7.next = 25;\n return __NEXTAUTH._getSession({\n event: \"storage\"\n });\n case 25:\n return _context7.abrupt(\"return\", data);\n case 26:\n case \"end\":\n return _context7.stop();\n }\n }, _callee7);\n }));\n return _signOut.apply(this, arguments);\n}\nfunction SessionProvider(props) {\n if (!SessionContext) {\n throw new Error(\"React Context is unavailable in Server Components\");\n }\n var children = props.children,\n basePath = props.basePath,\n refetchInterval = props.refetchInterval,\n refetchWhenOffline = props.refetchWhenOffline;\n if (basePath) __NEXTAUTH.basePath = basePath;\n var hasInitialSession = props.session !== undefined;\n __NEXTAUTH._lastSync = hasInitialSession ? (0, _utils.now)() : 0;\n var _React$useState3 = React.useState(function () {\n if (hasInitialSession) __NEXTAUTH._session = props.session;\n return props.session;\n }),\n _React$useState4 = (0, _slicedToArray2.default)(_React$useState3, 2),\n session = _React$useState4[0],\n setSession = _React$useState4[1];\n var _React$useState5 = React.useState(!hasInitialSession),\n _React$useState6 = (0, _slicedToArray2.default)(_React$useState5, 2),\n loading = _React$useState6[0],\n setLoading = _React$useState6[1];\n React.useEffect(function () {\n __NEXTAUTH._getSession = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee() {\n var _ref4,\n event,\n storageEvent,\n _args = arguments;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _ref4 = _args.length > 0 && _args[0] !== undefined ? _args[0] : {}, event = _ref4.event;\n _context.prev = 1;\n storageEvent = event === \"storage\";\n if (!(storageEvent || __NEXTAUTH._session === undefined)) {\n _context.next = 10;\n break;\n }\n __NEXTAUTH._lastSync = (0, _utils.now)();\n _context.next = 7;\n return getSession({\n broadcast: !storageEvent\n });\n case 7:\n __NEXTAUTH._session = _context.sent;\n setSession(__NEXTAUTH._session);\n return _context.abrupt(\"return\");\n case 10:\n if (!(!event || __NEXTAUTH._session === null || (0, _utils.now)() < __NEXTAUTH._lastSync)) {\n _context.next = 12;\n break;\n }\n return _context.abrupt(\"return\");\n case 12:\n __NEXTAUTH._lastSync = (0, _utils.now)();\n _context.next = 15;\n return getSession();\n case 15:\n __NEXTAUTH._session = _context.sent;\n setSession(__NEXTAUTH._session);\n _context.next = 22;\n break;\n case 19:\n _context.prev = 19;\n _context.t0 = _context[\"catch\"](1);\n logger.error(\"CLIENT_SESSION_ERROR\", _context.t0);\n case 22:\n _context.prev = 22;\n setLoading(false);\n return _context.finish(22);\n case 25:\n case \"end\":\n return _context.stop();\n }\n }, _callee, null, [[1, 19, 22, 25]]);\n }));\n __NEXTAUTH._getSession();\n return function () {\n __NEXTAUTH._lastSync = 0;\n __NEXTAUTH._session = undefined;\n __NEXTAUTH._getSession = function () {};\n };\n }, []);\n React.useEffect(function () {\n var unsubscribe = broadcast.receive(function () {\n return __NEXTAUTH._getSession({\n event: \"storage\"\n });\n });\n return function () {\n return unsubscribe();\n };\n }, []);\n React.useEffect(function () {\n var _props$refetchOnWindo = props.refetchOnWindowFocus,\n refetchOnWindowFocus = _props$refetchOnWindo === void 0 ? true : _props$refetchOnWindo;\n var visibilityHandler = function visibilityHandler() {\n if (refetchOnWindowFocus && document.visibilityState === \"visible\") __NEXTAUTH._getSession({\n event: \"visibilitychange\"\n });\n };\n document.addEventListener(\"visibilitychange\", visibilityHandler, false);\n return function () {\n return document.removeEventListener(\"visibilitychange\", visibilityHandler, false);\n };\n }, [props.refetchOnWindowFocus]);\n var isOnline = useOnline();\n var shouldRefetch = refetchWhenOffline !== false || isOnline;\n React.useEffect(function () {\n if (refetchInterval && shouldRefetch) {\n var refetchIntervalTimer = setInterval(function () {\n if (__NEXTAUTH._session) {\n __NEXTAUTH._getSession({\n event: \"poll\"\n });\n }\n }, refetchInterval * 1000);\n return function () {\n return clearInterval(refetchIntervalTimer);\n };\n }\n }, [refetchInterval, shouldRefetch]);\n var value = React.useMemo(function () {\n return {\n data: session,\n status: loading ? \"loading\" : session ? \"authenticated\" : \"unauthenticated\",\n update: function update(data) {\n return (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee2() {\n var newSession;\n return _regenerator.default.wrap(function _callee2$(_context2) {\n while (1) switch (_context2.prev = _context2.next) {\n case 0:\n if (!(loading || !session)) {\n _context2.next = 2;\n break;\n }\n return _context2.abrupt(\"return\");\n case 2:\n setLoading(true);\n _context2.t0 = _utils.fetchData;\n _context2.t1 = __NEXTAUTH;\n _context2.t2 = logger;\n _context2.next = 8;\n return getCsrfToken();\n case 8:\n _context2.t3 = _context2.sent;\n _context2.t4 = data;\n _context2.t5 = {\n csrfToken: _context2.t3,\n data: _context2.t4\n };\n _context2.t6 = {\n body: _context2.t5\n };\n _context2.t7 = {\n req: _context2.t6\n };\n _context2.next = 15;\n return (0, _context2.t0)(\"session\", _context2.t1, _context2.t2, _context2.t7);\n case 15:\n newSession = _context2.sent;\n setLoading(false);\n if (newSession) {\n setSession(newSession);\n broadcast.post({\n event: \"session\",\n data: {\n trigger: \"getSession\"\n }\n });\n }\n return _context2.abrupt(\"return\", newSession);\n case 19:\n case \"end\":\n return _context2.stop();\n }\n }, _callee2);\n }))();\n }\n };\n }, [session, loading]);\n return (0, _jsxRuntime.jsx)(SessionContext.Provider, {\n value: value,\n children: children\n });\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3JlYWN0L2luZGV4LmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDZCQUE2QixtQkFBTyxDQUFDLDBIQUE4QztBQUNuRixjQUFjLG1CQUFPLENBQUMsNEZBQStCO0FBQ3JELDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esc0JBQXNCO0FBQ3RCLHVCQUF1QjtBQUN2QixvQkFBb0I7QUFDcEIsb0JBQW9CO0FBQ3BCLGtCQUFrQjtBQUNsQixjQUFjO0FBQ2QsZUFBZTtBQUNmLGtCQUFrQjtBQUNsQiwwQ0FBMEMsbUJBQU8sQ0FBQyw0RkFBNEI7QUFDOUUsOENBQThDLG1CQUFPLENBQUMsNEdBQXVDO0FBQzdGLGdEQUFnRCxtQkFBTyxDQUFDLGdIQUF5QztBQUNqRyw2Q0FBNkMsbUJBQU8sQ0FBQywwR0FBc0M7QUFDM0Ysb0NBQW9DLG1CQUFPLENBQUMsaUdBQU87QUFDbkQsdUNBQXVDLG1CQUFPLENBQUMsdUVBQWlCO0FBQ2hFLHVDQUF1QyxtQkFBTyxDQUFDLDZFQUFvQjtBQUNuRSxhQUFhLG1CQUFPLENBQUMseUVBQWtCO0FBQ3ZDLGtCQUFrQixtQkFBTyxDQUFDLHlIQUFtQjtBQUM3QyxhQUFhLG1CQUFPLENBQUMsOERBQVM7QUFDOUI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNILENBQUM7QUFDRDtBQUNBLHVDQUF1QywrQ0FBK0MsMENBQTBDLDBFQUEwRSxtQkFBbUI7QUFDN04seUNBQXlDLHVDQUF1Qyw2RUFBNkUsY0FBYyxxQ0FBcUMsb0NBQW9DLFVBQVUsaUJBQWlCLGdFQUFnRSwwQ0FBMEMsOEJBQThCLDBEQUEwRCx3RUFBd0U7QUFDemhCLHlCQUF5Qix3QkFBd0Isb0NBQW9DLHlDQUF5QyxrQ0FBa0MsMERBQTBELDBCQUEwQjtBQUNwUCw0QkFBNEIsZ0JBQWdCLHNCQUFzQixPQUFPLGtEQUFrRCxzREFBc0QsNENBQTRDLG1KQUFtSixxRUFBcUUsS0FBSztBQUMxYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxxQkFBcUIsc0JBQXNCO0FBQzNDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxnQkFBZ0IsYUFBb0I7QUFDcEM7QUFDQTtBQUNBLG1FQUFtRTtBQUNuRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLGlEQUFpRDtBQUNqRDtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUVBQXVFO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUNBQXlDO0FBQ3pDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTCxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsdUVBQXVFO0FBQ3ZFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0wsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEVBQThFO0FBQzlFO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsYUFBYTtBQUNiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1AsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxtQkFBbUI7QUFDbkI7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVztBQUNYLFNBQVM7QUFDVDtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQTtBQUNBLEdBQUc7QUFDSCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9yZWFjdC9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG52YXIgX3R5cGVvZiA9IHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3R5cGVvZlwiKTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICB2YWx1ZTogdHJ1ZVxufSk7XG52YXIgX2V4cG9ydE5hbWVzID0ge1xuICBTZXNzaW9uQ29udGV4dDogdHJ1ZSxcbiAgdXNlU2Vzc2lvbjogdHJ1ZSxcbiAgZ2V0U2Vzc2lvbjogdHJ1ZSxcbiAgZ2V0Q3NyZlRva2VuOiB0cnVlLFxuICBnZXRQcm92aWRlcnM6IHRydWUsXG4gIHNpZ25JbjogdHJ1ZSxcbiAgc2lnbk91dDogdHJ1ZSxcbiAgU2Vzc2lvblByb3ZpZGVyOiB0cnVlXG59O1xuZXhwb3J0cy5TZXNzaW9uQ29udGV4dCA9IHZvaWQgMDtcbmV4cG9ydHMuU2Vzc2lvblByb3ZpZGVyID0gU2Vzc2lvblByb3ZpZGVyO1xuZXhwb3J0cy5nZXRDc3JmVG9rZW4gPSBnZXRDc3JmVG9rZW47XG5leHBvcnRzLmdldFByb3ZpZGVycyA9IGdldFByb3ZpZGVycztcbmV4cG9ydHMuZ2V0U2Vzc2lvbiA9IGdldFNlc3Npb247XG5leHBvcnRzLnNpZ25JbiA9IHNpZ25JbjtcbmV4cG9ydHMuc2lnbk91dCA9IHNpZ25PdXQ7XG5leHBvcnRzLnVzZVNlc3Npb24gPSB1c2VTZXNzaW9uO1xudmFyIF9yZWdlbmVyYXRvciA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIkBiYWJlbC9ydW50aW1lL3JlZ2VuZXJhdG9yXCIpKTtcbnZhciBfZGVmaW5lUHJvcGVydHkyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9kZWZpbmVQcm9wZXJ0eVwiKSk7XG52YXIgX2FzeW5jVG9HZW5lcmF0b3IyID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9hc3luY1RvR2VuZXJhdG9yXCIpKTtcbnZhciBfc2xpY2VkVG9BcnJheTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL3NsaWNlZFRvQXJyYXlcIikpO1xudmFyIFJlYWN0ID0gX2ludGVyb3BSZXF1aXJlV2lsZGNhcmQocmVxdWlyZShcInJlYWN0XCIpKTtcbnZhciBfbG9nZ2VyMiA9IF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKHJlcXVpcmUoXCIuLi91dGlscy9sb2dnZXJcIikpO1xudmFyIF9wYXJzZVVybCA9IF9pbnRlcm9wUmVxdWlyZURlZmF1bHQocmVxdWlyZShcIi4uL3V0aWxzL3BhcnNlLXVybFwiKSk7XG52YXIgX3V0aWxzID0gcmVxdWlyZShcIi4uL2NsaWVudC9fdXRpbHNcIik7XG52YXIgX2pzeFJ1bnRpbWUgPSByZXF1aXJlKFwicmVhY3QvanN4LXJ1bnRpbWVcIik7XG52YXIgX3R5cGVzID0gcmVxdWlyZShcIi4vdHlwZXNcIik7XG5PYmplY3Qua2V5cyhfdHlwZXMpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuICBpZiAoa2V5ID09PSBcImRlZmF1bHRcIiB8fCBrZXkgPT09IFwiX19lc01vZHVsZVwiKSByZXR1cm47XG4gIGlmIChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwoX2V4cG9ydE5hbWVzLCBrZXkpKSByZXR1cm47XG4gIGlmIChrZXkgaW4gZXhwb3J0cyAmJiBleHBvcnRzW2tleV0gPT09IF90eXBlc1trZXldKSByZXR1cm47XG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24gZ2V0KCkge1xuICAgICAgcmV0dXJuIF90eXBlc1trZXldO1xuICAgIH1cbiAgfSk7XG59KTtcbnZhciBfcHJvY2VzcyRlbnYkTkVYVEFVVEgsIF9yZWYsIF9wcm9jZXNzJGVudiRORVhUQVVUSDIsIF9wcm9jZXNzJGVudiRORVhUQVVUSDMsIF9SZWFjdCRjcmVhdGVDb250ZXh0O1xuZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKGUpIHsgaWYgKFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgV2Vha01hcCkgcmV0dXJuIG51bGw7IHZhciByID0gbmV3IFdlYWtNYXAoKSwgdCA9IG5ldyBXZWFrTWFwKCk7IHJldHVybiAoX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlID0gZnVuY3Rpb24gX2dldFJlcXVpcmVXaWxkY2FyZENhY2hlKGUpIHsgcmV0dXJuIGUgPyB0IDogcjsgfSkoZSk7IH1cbmZ1bmN0aW9uIF9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkKGUsIHIpIHsgaWYgKCFyICYmIGUgJiYgZS5fX2VzTW9kdWxlKSByZXR1cm4gZTsgaWYgKG51bGwgPT09IGUgfHwgXCJvYmplY3RcIiAhPSBfdHlwZW9mKGUpICYmIFwiZnVuY3Rpb25cIiAhPSB0eXBlb2YgZSkgcmV0dXJuIHsgZGVmYXVsdDogZSB9OyB2YXIgdCA9IF9nZXRSZXF1aXJlV2lsZGNhcmRDYWNoZShyKTsgaWYgKHQgJiYgdC5oYXMoZSkpIHJldHVybiB0LmdldChlKTsgdmFyIG4gPSB7IF9fcHJvdG9fXzogbnVsbCB9LCBhID0gT2JqZWN0LmRlZmluZVByb3BlcnR5ICYmIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3I7IGZvciAodmFyIHUgaW4gZSkgaWYgKFwiZGVmYXVsdFwiICE9PSB1ICYmIHt9Lmhhc093blByb3BlcnR5LmNhbGwoZSwgdSkpIHsgdmFyIGkgPSBhID8gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLCB1KSA6IG51bGw7IGkgJiYgKGkuZ2V0IHx8IGkuc2V0KSA/IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLCB1LCBpKSA6IG5bdV0gPSBlW3VdOyB9IHJldHVybiBuLmRlZmF1bHQgPSBlLCB0ICYmIHQuc2V0KGUsIG4pLCBuOyB9XG5mdW5jdGlvbiBvd25LZXlzKGUsIHIpIHsgdmFyIHQgPSBPYmplY3Qua2V5cyhlKTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIG8gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpOyByICYmIChvID0gby5maWx0ZXIoZnVuY3Rpb24gKHIpIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSwgcikuZW51bWVyYWJsZTsgfSkpLCB0LnB1c2guYXBwbHkodCwgbyk7IH0gcmV0dXJuIHQ7IH1cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQoZSkgeyBmb3IgKHZhciByID0gMTsgciA8IGFyZ3VtZW50cy5sZW5ndGg7IHIrKykgeyB2YXIgdCA9IG51bGwgIT0gYXJndW1lbnRzW3JdID8gYXJndW1lbnRzW3JdIDoge307IHIgJSAyID8gb3duS2V5cyhPYmplY3QodCksICEwKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7ICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKGUsIHIsIHRbcl0pOyB9KSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpIDogb3duS2V5cyhPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24gKHIpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCwgcikpOyB9KTsgfSByZXR1cm4gZTsgfVxudmFyIF9fTkVYVEFVVEggPSB7XG4gIGJhc2VVcmw6ICgwLCBfcGFyc2VVcmwuZGVmYXVsdCkoKF9wcm9jZXNzJGVudiRORVhUQVVUSCA9IHByb2Nlc3MuZW52Lk5FWFRBVVRIX1VSTCkgIT09IG51bGwgJiYgX3Byb2Nlc3MkZW52JE5FWFRBVVRIICE9PSB2b2lkIDAgPyBfcHJvY2VzcyRlbnYkTkVYVEFVVEggOiBwcm9jZXNzLmVudi5WRVJDRUxfVVJMKS5vcmlnaW4sXG4gIGJhc2VQYXRoOiAoMCwgX3BhcnNlVXJsLmRlZmF1bHQpKHByb2Nlc3MuZW52Lk5FWFRBVVRIX1VSTCkucGF0aCxcbiAgYmFzZVVybFNlcnZlcjogKDAsIF9wYXJzZVVybC5kZWZhdWx0KSgoX3JlZiA9IChfcHJvY2VzcyRlbnYkTkVYVEFVVEgyID0gcHJvY2Vzcy5lbnYuTkVYVEFVVEhfVVJMX0lOVEVSTkFMKSAhPT0gbnVsbCAmJiBfcHJvY2VzcyRlbnYkTkVYVEFVVEgyICE9PSB2b2lkIDAgPyBfcHJvY2VzcyRlbnYkTkVYVEFVVEgyIDogcHJvY2Vzcy5lbnYuTkVYVEFVVEhfVVJMKSAhPT0gbnVsbCAmJiBfcmVmICE9PSB2b2lkIDAgPyBfcmVmIDogcHJvY2Vzcy5lbnYuVkVSQ0VMX1VSTCkub3JpZ2luLFxuICBiYXNlUGF0aFNlcnZlcjogKDAsIF9wYXJzZVVybC5kZWZhdWx0KSgoX3Byb2Nlc3MkZW52JE5FWFRBVVRIMyA9IHByb2Nlc3MuZW52Lk5FWFRBVVRIX1VSTF9JTlRFUk5BTCkgIT09IG51bGwgJiYgX3Byb2Nlc3MkZW52JE5FWFRBVVRIMyAhPT0gdm9pZCAwID8gX3Byb2Nlc3MkZW52JE5FWFRBVVRIMyA6IHByb2Nlc3MuZW52Lk5FWFRBVVRIX1VSTCkucGF0aCxcbiAgX2xhc3RTeW5jOiAwLFxuICBfc2Vzc2lvbjogdW5kZWZpbmVkLFxuICBfZ2V0U2Vzc2lvbjogZnVuY3Rpb24gX2dldFNlc3Npb24oKSB7fVxufTtcbnZhciBicm9hZGNhc3QgPSAoMCwgX3V0aWxzLkJyb2FkY2FzdENoYW5uZWwpKCk7XG52YXIgbG9nZ2VyID0gKDAsIF9sb2dnZXIyLnByb3h5TG9nZ2VyKShfbG9nZ2VyMi5kZWZhdWx0LCBfX05FWFRBVVRILmJhc2VQYXRoKTtcbmZ1bmN0aW9uIHVzZU9ubGluZSgpIHtcbiAgdmFyIF9SZWFjdCR1c2VTdGF0ZSA9IFJlYWN0LnVzZVN0YXRlKHR5cGVvZiBuYXZpZ2F0b3IgIT09IFwidW5kZWZpbmVkXCIgPyBuYXZpZ2F0b3Iub25MaW5lIDogZmFsc2UpLFxuICAgIF9SZWFjdCR1c2VTdGF0ZTIgPSAoMCwgX3NsaWNlZFRvQXJyYXkyLmRlZmF1bHQpKF9SZWFjdCR1c2VTdGF0ZSwgMiksXG4gICAgaXNPbmxpbmUgPSBfUmVhY3QkdXNlU3RhdGUyWzBdLFxuICAgIHNldElzT25saW5lID0gX1JlYWN0JHVzZVN0YXRlMlsxXTtcbiAgdmFyIHNldE9ubGluZSA9IGZ1bmN0aW9uIHNldE9ubGluZSgpIHtcbiAgICByZXR1cm4gc2V0SXNPbmxpbmUodHJ1ZSk7XG4gIH07XG4gIHZhciBzZXRPZmZsaW5lID0gZnVuY3Rpb24gc2V0T2ZmbGluZSgpIHtcbiAgICByZXR1cm4gc2V0SXNPbmxpbmUoZmFsc2UpO1xuICB9O1xuICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwib25saW5lXCIsIHNldE9ubGluZSk7XG4gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoXCJvZmZsaW5lXCIsIHNldE9mZmxpbmUpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm9ubGluZVwiLCBzZXRPbmxpbmUpO1xuICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJvZmZsaW5lXCIsIHNldE9mZmxpbmUpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgcmV0dXJuIGlzT25saW5lO1xufVxudmFyIFNlc3Npb25Db250ZXh0ID0gZXhwb3J0cy5TZXNzaW9uQ29udGV4dCA9IChfUmVhY3QkY3JlYXRlQ29udGV4dCA9IFJlYWN0LmNyZWF0ZUNvbnRleHQpID09PSBudWxsIHx8IF9SZWFjdCRjcmVhdGVDb250ZXh0ID09PSB2b2lkIDAgPyB2b2lkIDAgOiBfUmVhY3QkY3JlYXRlQ29udGV4dC5jYWxsKFJlYWN0LCB1bmRlZmluZWQpO1xuZnVuY3Rpb24gdXNlU2Vzc2lvbihvcHRpb25zKSB7XG4gIGlmICghU2Vzc2lvbkNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJSZWFjdCBDb250ZXh0IGlzIHVuYXZhaWxhYmxlIGluIFNlcnZlciBDb21wb25lbnRzXCIpO1xuICB9XG4gIHZhciB2YWx1ZSA9IFJlYWN0LnVzZUNvbnRleHQoU2Vzc2lvbkNvbnRleHQpO1xuICBpZiAoIXZhbHVlICYmIHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSBcInByb2R1Y3Rpb25cIikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIltuZXh0LWF1dGhdOiBgdXNlU2Vzc2lvbmAgbXVzdCBiZSB3cmFwcGVkIGluIGEgPFNlc3Npb25Qcm92aWRlciAvPlwiKTtcbiAgfVxuICB2YXIgX3JlZjIgPSBvcHRpb25zICE9PSBudWxsICYmIG9wdGlvbnMgIT09IHZvaWQgMCA/IG9wdGlvbnMgOiB7fSxcbiAgICByZXF1aXJlZCA9IF9yZWYyLnJlcXVpcmVkLFxuICAgIG9uVW5hdXRoZW50aWNhdGVkID0gX3JlZjIub25VbmF1dGhlbnRpY2F0ZWQ7XG4gIHZhciByZXF1aXJlZEFuZE5vdExvYWRpbmcgPSByZXF1aXJlZCAmJiB2YWx1ZS5zdGF0dXMgPT09IFwidW5hdXRoZW50aWNhdGVkXCI7XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgaWYgKHJlcXVpcmVkQW5kTm90TG9hZGluZykge1xuICAgICAgdmFyIHVybCA9IFwiL2FwaS9hdXRoL3NpZ25pbj9cIi5jb25jYXQobmV3IFVSTFNlYXJjaFBhcmFtcyh7XG4gICAgICAgIGVycm9yOiBcIlNlc3Npb25SZXF1aXJlZFwiLFxuICAgICAgICBjYWxsYmFja1VybDogd2luZG93LmxvY2F0aW9uLmhyZWZcbiAgICAgIH0pKTtcbiAgICAgIGlmIChvblVuYXV0aGVudGljYXRlZCkgb25VbmF1dGhlbnRpY2F0ZWQoKTtlbHNlIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgIH1cbiAgfSwgW3JlcXVpcmVkQW5kTm90TG9hZGluZywgb25VbmF1dGhlbnRpY2F0ZWRdKTtcbiAgaWYgKHJlcXVpcmVkQW5kTm90TG9hZGluZykge1xuICAgIHJldHVybiB7XG4gICAgICBkYXRhOiB2YWx1ZS5kYXRhLFxuICAgICAgdXBkYXRlOiB2YWx1ZS51cGRhdGUsXG4gICAgICBzdGF0dXM6IFwibG9hZGluZ1wiXG4gICAgfTtcbiAgfVxuICByZXR1cm4gdmFsdWU7XG59XG5mdW5jdGlvbiBnZXRTZXNzaW9uKF94KSB7XG4gIHJldHVybiBfZ2V0U2Vzc2lvbjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9nZXRTZXNzaW9uMigpIHtcbiAgX2dldFNlc3Npb24yID0gKDAsIF9hc3luY1RvR2VuZXJhdG9yMi5kZWZhdWx0KShfcmVnZW5lcmF0b3IuZGVmYXVsdC5tYXJrKGZ1bmN0aW9uIF9jYWxsZWUzKHBhcmFtcykge1xuICAgIHZhciBfcGFyYW1zJGJyb2FkY2FzdDtcbiAgICB2YXIgc2Vzc2lvbjtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yLmRlZmF1bHQud3JhcChmdW5jdGlvbiBfY2FsbGVlMyQoX2NvbnRleHQzKSB7XG4gICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDMucHJldiA9IF9jb250ZXh0My5uZXh0KSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBfY29udGV4dDMubmV4dCA9IDI7XG4gICAgICAgICAgcmV0dXJuICgwLCBfdXRpbHMuZmV0Y2hEYXRhKShcInNlc3Npb25cIiwgX19ORVhUQVVUSCwgbG9nZ2VyLCBwYXJhbXMpO1xuICAgICAgICBjYXNlIDI6XG4gICAgICAgICAgc2Vzc2lvbiA9IF9jb250ZXh0My5zZW50O1xuICAgICAgICAgIGlmICgoX3BhcmFtcyRicm9hZGNhc3QgPSBwYXJhbXMgPT09IG51bGwgfHwgcGFyYW1zID09PSB2b2lkIDAgPyB2b2lkIDAgOiBwYXJhbXMuYnJvYWRjYXN0KSAhPT0gbnVsbCAmJiBfcGFyYW1zJGJyb2FkY2FzdCAhPT0gdm9pZCAwID8gX3BhcmFtcyRicm9hZGNhc3QgOiB0cnVlKSB7XG4gICAgICAgICAgICBicm9hZGNhc3QucG9zdCh7XG4gICAgICAgICAgICAgIGV2ZW50OiBcInNlc3Npb25cIixcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIHRyaWdnZXI6IFwiZ2V0U2Vzc2lvblwiXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQzLmFicnVwdChcInJldHVyblwiLCBzZXNzaW9uKTtcbiAgICAgICAgY2FzZSA1OlxuICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0My5zdG9wKCk7XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTMpO1xuICB9KSk7XG4gIHJldHVybiBfZ2V0U2Vzc2lvbjIuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIGdldENzcmZUb2tlbihfeDIpIHtcbiAgcmV0dXJuIF9nZXRDc3JmVG9rZW4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9nZXRDc3JmVG9rZW4oKSB7XG4gIF9nZXRDc3JmVG9rZW4gPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTQocGFyYW1zKSB7XG4gICAgdmFyIHJlc3BvbnNlO1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3IuZGVmYXVsdC53cmFwKGZ1bmN0aW9uIF9jYWxsZWU0JChfY29udGV4dDQpIHtcbiAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0NC5wcmV2ID0gX2NvbnRleHQ0Lm5leHQpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIF9jb250ZXh0NC5uZXh0ID0gMjtcbiAgICAgICAgICByZXR1cm4gKDAsIF91dGlscy5mZXRjaERhdGEpKFwiY3NyZlwiLCBfX05FWFRBVVRILCBsb2dnZXIsIHBhcmFtcyk7XG4gICAgICAgIGNhc2UgMjpcbiAgICAgICAgICByZXNwb25zZSA9IF9jb250ZXh0NC5zZW50O1xuICAgICAgICAgIHJldHVybiBfY29udGV4dDQuYWJydXB0KFwicmV0dXJuXCIsIHJlc3BvbnNlID09PSBudWxsIHx8IHJlc3BvbnNlID09PSB2b2lkIDAgPyB2b2lkIDAgOiByZXNwb25zZS5jc3JmVG9rZW4pO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQ0LnN0b3AoKTtcbiAgICAgIH1cbiAgICB9LCBfY2FsbGVlNCk7XG4gIH0pKTtcbiAgcmV0dXJuIF9nZXRDc3JmVG9rZW4uYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIGdldFByb3ZpZGVycygpIHtcbiAgcmV0dXJuIF9nZXRQcm92aWRlcnMuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIF9nZXRQcm92aWRlcnMoKSB7XG4gIF9nZXRQcm92aWRlcnMgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTUoKSB7XG4gICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZTUkKF9jb250ZXh0NSkge1xuICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQ1LnByZXYgPSBfY29udGV4dDUubmV4dCkge1xuICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgX2NvbnRleHQ1Lm5leHQgPSAyO1xuICAgICAgICAgIHJldHVybiAoMCwgX3V0aWxzLmZldGNoRGF0YSkoXCJwcm92aWRlcnNcIiwgX19ORVhUQVVUSCwgbG9nZ2VyKTtcbiAgICAgICAgY2FzZSAyOlxuICAgICAgICAgIHJldHVybiBfY29udGV4dDUuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0NS5zZW50KTtcbiAgICAgICAgY2FzZSAzOlxuICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0NS5zdG9wKCk7XG4gICAgICB9XG4gICAgfSwgX2NhbGxlZTUpO1xuICB9KSk7XG4gIHJldHVybiBfZ2V0UHJvdmlkZXJzLmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBzaWduSW4oX3gzLCBfeDQsIF94NSkge1xuICByZXR1cm4gX3NpZ25Jbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuZnVuY3Rpb24gX3NpZ25JbigpIHtcbiAgX3NpZ25JbiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjIuZGVmYXVsdCkoX3JlZ2VuZXJhdG9yLmRlZmF1bHQubWFyayhmdW5jdGlvbiBfY2FsbGVlNihwcm92aWRlciwgb3B0aW9ucywgYXV0aG9yaXphdGlvblBhcmFtcykge1xuICAgIHZhciBfcmVmNSwgX3JlZjUkY2FsbGJhY2tVcmwsIGNhbGxiYWNrVXJsLCBfcmVmNSRyZWRpcmVjdCwgcmVkaXJlY3QsIGJhc2VVcmwsIHByb3ZpZGVycywgaXNDcmVkZW50aWFscywgaXNFbWFpbCwgaXNTdXBwb3J0aW5nUmV0dXJuLCBzaWduSW5VcmwsIF9zaWduSW5VcmwsIHJlcywgZGF0YSwgX2RhdGEkdXJsLCB1cmwsIGVycm9yO1xuICAgIHJldHVybiBfcmVnZW5lcmF0b3IuZGVmYXVsdC53cmFwKGZ1bmN0aW9uIF9jYWxsZWU2JChfY29udGV4dDYpIHtcbiAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0Ni5wcmV2ID0gX2NvbnRleHQ2Lm5leHQpIHtcbiAgICAgICAgY2FzZSAwOlxuICAgICAgICAgIF9yZWY1ID0gb3B0aW9ucyAhPT0gbnVsbCAmJiBvcHRpb25zICE9PSB2b2lkIDAgPyBvcHRpb25zIDoge30sIF9yZWY1JGNhbGxiYWNrVXJsID0gX3JlZjUuY2FsbGJhY2tVcmwsIGNhbGxiYWNrVXJsID0gX3JlZjUkY2FsbGJhY2tVcmwgPT09IHZvaWQgMCA/IHdpbmRvdy5sb2NhdGlvbi5ocmVmIDogX3JlZjUkY2FsbGJhY2tVcmwsIF9yZWY1JHJlZGlyZWN0ID0gX3JlZjUucmVkaXJlY3QsIHJlZGlyZWN0ID0gX3JlZjUkcmVkaXJlY3QgPT09IHZvaWQgMCA/IHRydWUgOiBfcmVmNSRyZWRpcmVjdDtcbiAgICAgICAgICBiYXNlVXJsID0gKDAsIF91dGlscy5hcGlCYXNlVXJsKShfX05FWFRBVVRIKTtcbiAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDQ7XG4gICAgICAgICAgcmV0dXJuIGdldFByb3ZpZGVycygpO1xuICAgICAgICBjYXNlIDQ6XG4gICAgICAgICAgcHJvdmlkZXJzID0gX2NvbnRleHQ2LnNlbnQ7XG4gICAgICAgICAgaWYgKHByb3ZpZGVycykge1xuICAgICAgICAgICAgX2NvbnRleHQ2Lm5leHQgPSA4O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gXCJcIi5jb25jYXQoYmFzZVVybCwgXCIvZXJyb3JcIik7XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ni5hYnJ1cHQoXCJyZXR1cm5cIik7XG4gICAgICAgIGNhc2UgODpcbiAgICAgICAgICBpZiAoISghcHJvdmlkZXIgfHwgIShwcm92aWRlciBpbiBwcm92aWRlcnMpKSkge1xuICAgICAgICAgICAgX2NvbnRleHQ2Lm5leHQgPSAxMTtcbiAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgIH1cbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IFwiXCIuY29uY2F0KGJhc2VVcmwsIFwiL3NpZ25pbj9cIikuY29uY2F0KG5ldyBVUkxTZWFyY2hQYXJhbXMoe1xuICAgICAgICAgICAgY2FsbGJhY2tVcmw6IGNhbGxiYWNrVXJsXG4gICAgICAgICAgfSkpO1xuICAgICAgICAgIHJldHVybiBfY29udGV4dDYuYWJydXB0KFwicmV0dXJuXCIpO1xuICAgICAgICBjYXNlIDExOlxuICAgICAgICAgIGlzQ3JlZGVudGlhbHMgPSBwcm92aWRlcnNbcHJvdmlkZXJdLnR5cGUgPT09IFwiY3JlZGVudGlhbHNcIjtcbiAgICAgICAgICBpc0VtYWlsID0gcHJvdmlkZXJzW3Byb3ZpZGVyXS50eXBlID09PSBcImVtYWlsXCI7XG4gICAgICAgICAgaXNTdXBwb3J0aW5nUmV0dXJuID0gaXNDcmVkZW50aWFscyB8fCBpc0VtYWlsO1xuICAgICAgICAgIHNpZ25JblVybCA9IFwiXCIuY29uY2F0KGJhc2VVcmwsIFwiL1wiKS5jb25jYXQoaXNDcmVkZW50aWFscyA/IFwiY2FsbGJhY2tcIiA6IFwic2lnbmluXCIsIFwiL1wiKS5jb25jYXQocHJvdmlkZXIpO1xuICAgICAgICAgIF9zaWduSW5VcmwgPSBcIlwiLmNvbmNhdChzaWduSW5VcmwpLmNvbmNhdChhdXRob3JpemF0aW9uUGFyYW1zID8gXCI/XCIuY29uY2F0KG5ldyBVUkxTZWFyY2hQYXJhbXMoYXV0aG9yaXphdGlvblBhcmFtcykpIDogXCJcIik7XG4gICAgICAgICAgX2NvbnRleHQ2LnQwID0gZmV0Y2g7XG4gICAgICAgICAgX2NvbnRleHQ2LnQxID0gX3NpZ25JblVybDtcbiAgICAgICAgICBfY29udGV4dDYudDIgPSB7XG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiBcImFwcGxpY2F0aW9uL3gtd3d3LWZvcm0tdXJsZW5jb2RlZFwiXG4gICAgICAgICAgfTtcbiAgICAgICAgICBfY29udGV4dDYudDMgPSBVUkxTZWFyY2hQYXJhbXM7XG4gICAgICAgICAgX2NvbnRleHQ2LnQ0ID0gX29iamVjdFNwcmVhZDtcbiAgICAgICAgICBfY29udGV4dDYudDUgPSBfb2JqZWN0U3ByZWFkKHt9LCBvcHRpb25zKTtcbiAgICAgICAgICBfY29udGV4dDYudDYgPSB7fTtcbiAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDI1O1xuICAgICAgICAgIHJldHVybiBnZXRDc3JmVG9rZW4oKTtcbiAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICBfY29udGV4dDYudDcgPSBfY29udGV4dDYuc2VudDtcbiAgICAgICAgICBfY29udGV4dDYudDggPSBjYWxsYmFja1VybDtcbiAgICAgICAgICBfY29udGV4dDYudDkgPSB7XG4gICAgICAgICAgICBjc3JmVG9rZW46IF9jb250ZXh0Ni50NyxcbiAgICAgICAgICAgIGNhbGxiYWNrVXJsOiBfY29udGV4dDYudDgsXG4gICAgICAgICAgICBqc29uOiB0cnVlXG4gICAgICAgICAgfTtcbiAgICAgICAgICBfY29udGV4dDYudDEwID0gKDAsIF9jb250ZXh0Ni50NCkoX2NvbnRleHQ2LnQ1LCBfY29udGV4dDYudDYsIF9jb250ZXh0Ni50OSk7XG4gICAgICAgICAgX2NvbnRleHQ2LnQxMSA9IG5ldyBfY29udGV4dDYudDMoX2NvbnRleHQ2LnQxMCk7XG4gICAgICAgICAgX2NvbnRleHQ2LnQxMiA9IHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXG4gICAgICAgICAgICBoZWFkZXJzOiBfY29udGV4dDYudDIsXG4gICAgICAgICAgICBib2R5OiBfY29udGV4dDYudDExXG4gICAgICAgICAgfTtcbiAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDMzO1xuICAgICAgICAgIHJldHVybiAoMCwgX2NvbnRleHQ2LnQwKShfY29udGV4dDYudDEsIF9jb250ZXh0Ni50MTIpO1xuICAgICAgICBjYXNlIDMzOlxuICAgICAgICAgIHJlcyA9IF9jb250ZXh0Ni5zZW50O1xuICAgICAgICAgIF9jb250ZXh0Ni5uZXh0ID0gMzY7XG4gICAgICAgICAgcmV0dXJuIHJlcy5qc29uKCk7XG4gICAgICAgIGNhc2UgMzY6XG4gICAgICAgICAgZGF0YSA9IF9jb250ZXh0Ni5zZW50O1xuICAgICAgICAgIGlmICghKHJlZGlyZWN0IHx8ICFpc1N1cHBvcnRpbmdSZXR1cm4pKSB7XG4gICAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDQyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIHVybCA9IChfZGF0YSR1cmwgPSBkYXRhLnVybCkgIT09IG51bGwgJiYgX2RhdGEkdXJsICE9PSB2b2lkIDAgPyBfZGF0YSR1cmwgOiBjYWxsYmFja1VybDtcbiAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZiA9IHVybDtcbiAgICAgICAgICBpZiAodXJsLmluY2x1ZGVzKFwiI1wiKSkgd2luZG93LmxvY2F0aW9uLnJlbG9hZCgpO1xuICAgICAgICAgIHJldHVybiBfY29udGV4dDYuYWJydXB0KFwicmV0dXJuXCIpO1xuICAgICAgICBjYXNlIDQyOlxuICAgICAgICAgIGVycm9yID0gbmV3IFVSTChkYXRhLnVybCkuc2VhcmNoUGFyYW1zLmdldChcImVycm9yXCIpO1xuICAgICAgICAgIGlmICghcmVzLm9rKSB7XG4gICAgICAgICAgICBfY29udGV4dDYubmV4dCA9IDQ2O1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgfVxuICAgICAgICAgIF9jb250ZXh0Ni5uZXh0ID0gNDY7XG4gICAgICAgICAgcmV0dXJuIF9fTkVYVEFVVEguX2dldFNlc3Npb24oe1xuICAgICAgICAgICAgZXZlbnQ6IFwic3RvcmFnZVwiXG4gICAgICAgICAgfSk7XG4gICAgICAgIGNhc2UgNDY6XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ni5hYnJ1cHQoXCJyZXR1cm5cIiwge1xuICAgICAgICAgICAgZXJyb3I6IGVycm9yLFxuICAgICAgICAgICAgc3RhdHVzOiByZXMuc3RhdHVzLFxuICAgICAgICAgICAgb2s6IHJlcy5vayxcbiAgICAgICAgICAgIHVybDogZXJyb3IgPyBudWxsIDogZGF0YS51cmxcbiAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSA0NzpcbiAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgIHJldHVybiBfY29udGV4dDYuc3RvcCgpO1xuICAgICAgfVxuICAgIH0sIF9jYWxsZWU2KTtcbiAgfSkpO1xuICByZXR1cm4gX3NpZ25Jbi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xufVxuZnVuY3Rpb24gc2lnbk91dChfeDYpIHtcbiAgcmV0dXJuIF9zaWduT3V0LmFwcGx5KHRoaXMsIGFyZ3VtZW50cyk7XG59XG5mdW5jdGlvbiBfc2lnbk91dCgpIHtcbiAgX3NpZ25PdXQgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTcob3B0aW9ucykge1xuICAgIHZhciBfb3B0aW9ucyRyZWRpcmVjdDtcbiAgICB2YXIgX3JlZjYsIF9yZWY2JGNhbGxiYWNrVXJsLCBjYWxsYmFja1VybCwgYmFzZVVybCwgZmV0Y2hPcHRpb25zLCByZXMsIGRhdGEsIF9kYXRhJHVybDIsIHVybDtcbiAgICByZXR1cm4gX3JlZ2VuZXJhdG9yLmRlZmF1bHQud3JhcChmdW5jdGlvbiBfY2FsbGVlNyQoX2NvbnRleHQ3KSB7XG4gICAgICB3aGlsZSAoMSkgc3dpdGNoIChfY29udGV4dDcucHJldiA9IF9jb250ZXh0Ny5uZXh0KSB7XG4gICAgICAgIGNhc2UgMDpcbiAgICAgICAgICBfcmVmNiA9IG9wdGlvbnMgIT09IG51bGwgJiYgb3B0aW9ucyAhPT0gdm9pZCAwID8gb3B0aW9ucyA6IHt9LCBfcmVmNiRjYWxsYmFja1VybCA9IF9yZWY2LmNhbGxiYWNrVXJsLCBjYWxsYmFja1VybCA9IF9yZWY2JGNhbGxiYWNrVXJsID09PSB2b2lkIDAgPyB3aW5kb3cubG9jYXRpb24uaHJlZiA6IF9yZWY2JGNhbGxiYWNrVXJsO1xuICAgICAgICAgIGJhc2VVcmwgPSAoMCwgX3V0aWxzLmFwaUJhc2VVcmwpKF9fTkVYVEFVVEgpO1xuICAgICAgICAgIF9jb250ZXh0Ny50MCA9IHtcbiAgICAgICAgICAgIFwiQ29udGVudC1UeXBlXCI6IFwiYXBwbGljYXRpb24veC13d3ctZm9ybS11cmxlbmNvZGVkXCJcbiAgICAgICAgICB9O1xuICAgICAgICAgIF9jb250ZXh0Ny50MSA9IFVSTFNlYXJjaFBhcmFtcztcbiAgICAgICAgICBfY29udGV4dDcubmV4dCA9IDY7XG4gICAgICAgICAgcmV0dXJuIGdldENzcmZUb2tlbigpO1xuICAgICAgICBjYXNlIDY6XG4gICAgICAgICAgX2NvbnRleHQ3LnQyID0gX2NvbnRleHQ3LnNlbnQ7XG4gICAgICAgICAgX2NvbnRleHQ3LnQzID0gY2FsbGJhY2tVcmw7XG4gICAgICAgICAgX2NvbnRleHQ3LnQ0ID0ge1xuICAgICAgICAgICAgY3NyZlRva2VuOiBfY29udGV4dDcudDIsXG4gICAgICAgICAgICBjYWxsYmFja1VybDogX2NvbnRleHQ3LnQzLFxuICAgICAgICAgICAganNvbjogdHJ1ZVxuICAgICAgICAgIH07XG4gICAgICAgICAgX2NvbnRleHQ3LnQ1ID0gbmV3IF9jb250ZXh0Ny50MShfY29udGV4dDcudDQpO1xuICAgICAgICAgIGZldGNoT3B0aW9ucyA9IHtcbiAgICAgICAgICAgIG1ldGhvZDogXCJwb3N0XCIsXG4gICAgICAgICAgICBoZWFkZXJzOiBfY29udGV4dDcudDAsXG4gICAgICAgICAgICBib2R5OiBfY29udGV4dDcudDVcbiAgICAgICAgICB9O1xuICAgICAgICAgIF9jb250ZXh0Ny5uZXh0ID0gMTM7XG4gICAgICAgICAgcmV0dXJuIGZldGNoKFwiXCIuY29uY2F0KGJhc2VVcmwsIFwiL3NpZ25vdXRcIiksIGZldGNoT3B0aW9ucyk7XG4gICAgICAgIGNhc2UgMTM6XG4gICAgICAgICAgcmVzID0gX2NvbnRleHQ3LnNlbnQ7XG4gICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSAxNjtcbiAgICAgICAgICByZXR1cm4gcmVzLmpzb24oKTtcbiAgICAgICAgY2FzZSAxNjpcbiAgICAgICAgICBkYXRhID0gX2NvbnRleHQ3LnNlbnQ7XG4gICAgICAgICAgYnJvYWRjYXN0LnBvc3Qoe1xuICAgICAgICAgICAgZXZlbnQ6IFwic2Vzc2lvblwiLFxuICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICB0cmlnZ2VyOiBcInNpZ25vdXRcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICAgIGlmICghKChfb3B0aW9ucyRyZWRpcmVjdCA9IG9wdGlvbnMgPT09IG51bGwgfHwgb3B0aW9ucyA9PT0gdm9pZCAwID8gdm9pZCAwIDogb3B0aW9ucy5yZWRpcmVjdCkgIT09IG51bGwgJiYgX29wdGlvbnMkcmVkaXJlY3QgIT09IHZvaWQgMCA/IF9vcHRpb25zJHJlZGlyZWN0IDogdHJ1ZSkpIHtcbiAgICAgICAgICAgIF9jb250ZXh0Ny5uZXh0ID0gMjM7XG4gICAgICAgICAgICBicmVhaztcbiAgICAgICAgICB9XG4gICAgICAgICAgdXJsID0gKF9kYXRhJHVybDIgPSBkYXRhLnVybCkgIT09IG51bGwgJiYgX2RhdGEkdXJsMiAhPT0gdm9pZCAwID8gX2RhdGEkdXJsMiA6IGNhbGxiYWNrVXJsO1xuICAgICAgICAgIHdpbmRvdy5sb2NhdGlvbi5ocmVmID0gdXJsO1xuICAgICAgICAgIGlmICh1cmwuaW5jbHVkZXMoXCIjXCIpKSB3aW5kb3cubG9jYXRpb24ucmVsb2FkKCk7XG4gICAgICAgICAgcmV0dXJuIF9jb250ZXh0Ny5hYnJ1cHQoXCJyZXR1cm5cIik7XG4gICAgICAgIGNhc2UgMjM6XG4gICAgICAgICAgX2NvbnRleHQ3Lm5leHQgPSAyNTtcbiAgICAgICAgICByZXR1cm4gX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbih7XG4gICAgICAgICAgICBldmVudDogXCJzdG9yYWdlXCJcbiAgICAgICAgICB9KTtcbiAgICAgICAgY2FzZSAyNTpcbiAgICAgICAgICByZXR1cm4gX2NvbnRleHQ3LmFicnVwdChcInJldHVyblwiLCBkYXRhKTtcbiAgICAgICAgY2FzZSAyNjpcbiAgICAgICAgY2FzZSBcImVuZFwiOlxuICAgICAgICAgIHJldHVybiBfY29udGV4dDcuc3RvcCgpO1xuICAgICAgfVxuICAgIH0sIF9jYWxsZWU3KTtcbiAgfSkpO1xuICByZXR1cm4gX3NpZ25PdXQuYXBwbHkodGhpcywgYXJndW1lbnRzKTtcbn1cbmZ1bmN0aW9uIFNlc3Npb25Qcm92aWRlcihwcm9wcykge1xuICBpZiAoIVNlc3Npb25Db250ZXh0KSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiUmVhY3QgQ29udGV4dCBpcyB1bmF2YWlsYWJsZSBpbiBTZXJ2ZXIgQ29tcG9uZW50c1wiKTtcbiAgfVxuICB2YXIgY2hpbGRyZW4gPSBwcm9wcy5jaGlsZHJlbixcbiAgICBiYXNlUGF0aCA9IHByb3BzLmJhc2VQYXRoLFxuICAgIHJlZmV0Y2hJbnRlcnZhbCA9IHByb3BzLnJlZmV0Y2hJbnRlcnZhbCxcbiAgICByZWZldGNoV2hlbk9mZmxpbmUgPSBwcm9wcy5yZWZldGNoV2hlbk9mZmxpbmU7XG4gIGlmIChiYXNlUGF0aCkgX19ORVhUQVVUSC5iYXNlUGF0aCA9IGJhc2VQYXRoO1xuICB2YXIgaGFzSW5pdGlhbFNlc3Npb24gPSBwcm9wcy5zZXNzaW9uICE9PSB1bmRlZmluZWQ7XG4gIF9fTkVYVEFVVEguX2xhc3RTeW5jID0gaGFzSW5pdGlhbFNlc3Npb24gPyAoMCwgX3V0aWxzLm5vdykoKSA6IDA7XG4gIHZhciBfUmVhY3QkdXNlU3RhdGUzID0gUmVhY3QudXNlU3RhdGUoZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKGhhc0luaXRpYWxTZXNzaW9uKSBfX05FWFRBVVRILl9zZXNzaW9uID0gcHJvcHMuc2Vzc2lvbjtcbiAgICAgIHJldHVybiBwcm9wcy5zZXNzaW9uO1xuICAgIH0pLFxuICAgIF9SZWFjdCR1c2VTdGF0ZTQgPSAoMCwgX3NsaWNlZFRvQXJyYXkyLmRlZmF1bHQpKF9SZWFjdCR1c2VTdGF0ZTMsIDIpLFxuICAgIHNlc3Npb24gPSBfUmVhY3QkdXNlU3RhdGU0WzBdLFxuICAgIHNldFNlc3Npb24gPSBfUmVhY3QkdXNlU3RhdGU0WzFdO1xuICB2YXIgX1JlYWN0JHVzZVN0YXRlNSA9IFJlYWN0LnVzZVN0YXRlKCFoYXNJbml0aWFsU2Vzc2lvbiksXG4gICAgX1JlYWN0JHVzZVN0YXRlNiA9ICgwLCBfc2xpY2VkVG9BcnJheTIuZGVmYXVsdCkoX1JlYWN0JHVzZVN0YXRlNSwgMiksXG4gICAgbG9hZGluZyA9IF9SZWFjdCR1c2VTdGF0ZTZbMF0sXG4gICAgc2V0TG9hZGluZyA9IF9SZWFjdCR1c2VTdGF0ZTZbMV07XG4gIFJlYWN0LnVzZUVmZmVjdChmdW5jdGlvbiAoKSB7XG4gICAgX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbiA9ICgwLCBfYXN5bmNUb0dlbmVyYXRvcjIuZGVmYXVsdCkoX3JlZ2VuZXJhdG9yLmRlZmF1bHQubWFyayhmdW5jdGlvbiBfY2FsbGVlKCkge1xuICAgICAgdmFyIF9yZWY0LFxuICAgICAgICBldmVudCxcbiAgICAgICAgc3RvcmFnZUV2ZW50LFxuICAgICAgICBfYXJncyA9IGFyZ3VtZW50cztcbiAgICAgIHJldHVybiBfcmVnZW5lcmF0b3IuZGVmYXVsdC53cmFwKGZ1bmN0aW9uIF9jYWxsZWUkKF9jb250ZXh0KSB7XG4gICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7XG4gICAgICAgICAgY2FzZSAwOlxuICAgICAgICAgICAgX3JlZjQgPSBfYXJncy5sZW5ndGggPiAwICYmIF9hcmdzWzBdICE9PSB1bmRlZmluZWQgPyBfYXJnc1swXSA6IHt9LCBldmVudCA9IF9yZWY0LmV2ZW50O1xuICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDE7XG4gICAgICAgICAgICBzdG9yYWdlRXZlbnQgPSBldmVudCA9PT0gXCJzdG9yYWdlXCI7XG4gICAgICAgICAgICBpZiAoIShzdG9yYWdlRXZlbnQgfHwgX19ORVhUQVVUSC5fc2Vzc2lvbiA9PT0gdW5kZWZpbmVkKSkge1xuICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMTA7XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgX19ORVhUQVVUSC5fbGFzdFN5bmMgPSAoMCwgX3V0aWxzLm5vdykoKTtcbiAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA3O1xuICAgICAgICAgICAgcmV0dXJuIGdldFNlc3Npb24oe1xuICAgICAgICAgICAgICBicm9hZGNhc3Q6ICFzdG9yYWdlRXZlbnRcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGNhc2UgNzpcbiAgICAgICAgICAgIF9fTkVYVEFVVEguX3Nlc3Npb24gPSBfY29udGV4dC5zZW50O1xuICAgICAgICAgICAgc2V0U2Vzc2lvbihfX05FWFRBVVRILl9zZXNzaW9uKTtcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIik7XG4gICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgIGlmICghKCFldmVudCB8fCBfX05FWFRBVVRILl9zZXNzaW9uID09PSBudWxsIHx8ICgwLCBfdXRpbHMubm93KSgpIDwgX19ORVhUQVVUSC5fbGFzdFN5bmMpKSB7XG4gICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSAxMjtcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KFwicmV0dXJuXCIpO1xuICAgICAgICAgIGNhc2UgMTI6XG4gICAgICAgICAgICBfX05FWFRBVVRILl9sYXN0U3luYyA9ICgwLCBfdXRpbHMubm93KSgpO1xuICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDE1O1xuICAgICAgICAgICAgcmV0dXJuIGdldFNlc3Npb24oKTtcbiAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgX19ORVhUQVVUSC5fc2Vzc2lvbiA9IF9jb250ZXh0LnNlbnQ7XG4gICAgICAgICAgICBzZXRTZXNzaW9uKF9fTkVYVEFVVEguX3Nlc3Npb24pO1xuICAgICAgICAgICAgX2NvbnRleHQubmV4dCA9IDIyO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgY2FzZSAxOTpcbiAgICAgICAgICAgIF9jb250ZXh0LnByZXYgPSAxOTtcbiAgICAgICAgICAgIF9jb250ZXh0LnQwID0gX2NvbnRleHRbXCJjYXRjaFwiXSgxKTtcbiAgICAgICAgICAgIGxvZ2dlci5lcnJvcihcIkNMSUVOVF9TRVNTSU9OX0VSUk9SXCIsIF9jb250ZXh0LnQwKTtcbiAgICAgICAgICBjYXNlIDIyOlxuICAgICAgICAgICAgX2NvbnRleHQucHJldiA9IDIyO1xuICAgICAgICAgICAgc2V0TG9hZGluZyhmYWxzZSk7XG4gICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuZmluaXNoKDIyKTtcbiAgICAgICAgICBjYXNlIDI1OlxuICAgICAgICAgIGNhc2UgXCJlbmRcIjpcbiAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5zdG9wKCk7XG4gICAgICAgIH1cbiAgICAgIH0sIF9jYWxsZWUsIG51bGwsIFtbMSwgMTksIDIyLCAyNV1dKTtcbiAgICB9KSk7XG4gICAgX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbigpO1xuICAgIHJldHVybiBmdW5jdGlvbiAoKSB7XG4gICAgICBfX05FWFRBVVRILl9sYXN0U3luYyA9IDA7XG4gICAgICBfX05FWFRBVVRILl9zZXNzaW9uID0gdW5kZWZpbmVkO1xuICAgICAgX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbiA9IGZ1bmN0aW9uICgpIHt9O1xuICAgIH07XG4gIH0sIFtdKTtcbiAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgdW5zdWJzY3JpYmUgPSBicm9hZGNhc3QucmVjZWl2ZShmdW5jdGlvbiAoKSB7XG4gICAgICByZXR1cm4gX19ORVhUQVVUSC5fZ2V0U2Vzc2lvbih7XG4gICAgICAgIGV2ZW50OiBcInN0b3JhZ2VcIlxuICAgICAgfSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiB1bnN1YnNjcmliZSgpO1xuICAgIH07XG4gIH0sIFtdKTtcbiAgUmVhY3QudXNlRWZmZWN0KGZ1bmN0aW9uICgpIHtcbiAgICB2YXIgX3Byb3BzJHJlZmV0Y2hPbldpbmRvID0gcHJvcHMucmVmZXRjaE9uV2luZG93Rm9jdXMsXG4gICAgICByZWZldGNoT25XaW5kb3dGb2N1cyA9IF9wcm9wcyRyZWZldGNoT25XaW5kbyA9PT0gdm9pZCAwID8gdHJ1ZSA6IF9wcm9wcyRyZWZldGNoT25XaW5kbztcbiAgICB2YXIgdmlzaWJpbGl0eUhhbmRsZXIgPSBmdW5jdGlvbiB2aXNpYmlsaXR5SGFuZGxlcigpIHtcbiAgICAgIGlmIChyZWZldGNoT25XaW5kb3dGb2N1cyAmJiBkb2N1bWVudC52aXNpYmlsaXR5U3RhdGUgPT09IFwidmlzaWJsZVwiKSBfX05FWFRBVVRILl9nZXRTZXNzaW9uKHtcbiAgICAgICAgZXZlbnQ6IFwidmlzaWJpbGl0eWNoYW5nZVwiXG4gICAgICB9KTtcbiAgICB9O1xuICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoXCJ2aXNpYmlsaXR5Y2hhbmdlXCIsIHZpc2liaWxpdHlIYW5kbGVyLCBmYWxzZSk7XG4gICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgIHJldHVybiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKFwidmlzaWJpbGl0eWNoYW5nZVwiLCB2aXNpYmlsaXR5SGFuZGxlciwgZmFsc2UpO1xuICAgIH07XG4gIH0sIFtwcm9wcy5yZWZldGNoT25XaW5kb3dGb2N1c10pO1xuICB2YXIgaXNPbmxpbmUgPSB1c2VPbmxpbmUoKTtcbiAgdmFyIHNob3VsZFJlZmV0Y2ggPSByZWZldGNoV2hlbk9mZmxpbmUgIT09IGZhbHNlIHx8IGlzT25saW5lO1xuICBSZWFjdC51c2VFZmZlY3QoZnVuY3Rpb24gKCkge1xuICAgIGlmIChyZWZldGNoSW50ZXJ2YWwgJiYgc2hvdWxkUmVmZXRjaCkge1xuICAgICAgdmFyIHJlZmV0Y2hJbnRlcnZhbFRpbWVyID0gc2V0SW50ZXJ2YWwoZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoX19ORVhUQVVUSC5fc2Vzc2lvbikge1xuICAgICAgICAgIF9fTkVYVEFVVEguX2dldFNlc3Npb24oe1xuICAgICAgICAgICAgZXZlbnQ6IFwicG9sbFwiXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0sIHJlZmV0Y2hJbnRlcnZhbCAqIDEwMDApO1xuICAgICAgcmV0dXJuIGZ1bmN0aW9uICgpIHtcbiAgICAgICAgcmV0dXJuIGNsZWFySW50ZXJ2YWwocmVmZXRjaEludGVydmFsVGltZXIpO1xuICAgICAgfTtcbiAgICB9XG4gIH0sIFtyZWZldGNoSW50ZXJ2YWwsIHNob3VsZFJlZmV0Y2hdKTtcbiAgdmFyIHZhbHVlID0gUmVhY3QudXNlTWVtbyhmdW5jdGlvbiAoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRhdGE6IHNlc3Npb24sXG4gICAgICBzdGF0dXM6IGxvYWRpbmcgPyBcImxvYWRpbmdcIiA6IHNlc3Npb24gPyBcImF1dGhlbnRpY2F0ZWRcIiA6IFwidW5hdXRoZW50aWNhdGVkXCIsXG4gICAgICB1cGRhdGU6IGZ1bmN0aW9uIHVwZGF0ZShkYXRhKSB7XG4gICAgICAgIHJldHVybiAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZTIoKSB7XG4gICAgICAgICAgdmFyIG5ld1Nlc3Npb247XG4gICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZTIkKF9jb250ZXh0Mikge1xuICAgICAgICAgICAgd2hpbGUgKDEpIHN3aXRjaCAoX2NvbnRleHQyLnByZXYgPSBfY29udGV4dDIubmV4dCkge1xuICAgICAgICAgICAgICBjYXNlIDA6XG4gICAgICAgICAgICAgICAgaWYgKCEobG9hZGluZyB8fCAhc2Vzc2lvbikpIHtcbiAgICAgICAgICAgICAgICAgIF9jb250ZXh0Mi5uZXh0ID0gMjtcbiAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQyLmFicnVwdChcInJldHVyblwiKTtcbiAgICAgICAgICAgICAgY2FzZSAyOlxuICAgICAgICAgICAgICAgIHNldExvYWRpbmcodHJ1ZSk7XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLnQwID0gX3V0aWxzLmZldGNoRGF0YTtcbiAgICAgICAgICAgICAgICBfY29udGV4dDIudDEgPSBfX05FWFRBVVRIO1xuICAgICAgICAgICAgICAgIF9jb250ZXh0Mi50MiA9IGxvZ2dlcjtcbiAgICAgICAgICAgICAgICBfY29udGV4dDIubmV4dCA9IDg7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldENzcmZUb2tlbigpO1xuICAgICAgICAgICAgICBjYXNlIDg6XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLnQzID0gX2NvbnRleHQyLnNlbnQ7XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLnQ0ID0gZGF0YTtcbiAgICAgICAgICAgICAgICBfY29udGV4dDIudDUgPSB7XG4gICAgICAgICAgICAgICAgICBjc3JmVG9rZW46IF9jb250ZXh0Mi50MyxcbiAgICAgICAgICAgICAgICAgIGRhdGE6IF9jb250ZXh0Mi50NFxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLnQ2ID0ge1xuICAgICAgICAgICAgICAgICAgYm9keTogX2NvbnRleHQyLnQ1XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBfY29udGV4dDIudDcgPSB7XG4gICAgICAgICAgICAgICAgICByZXE6IF9jb250ZXh0Mi50NlxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgX2NvbnRleHQyLm5leHQgPSAxNTtcbiAgICAgICAgICAgICAgICByZXR1cm4gKDAsIF9jb250ZXh0Mi50MCkoXCJzZXNzaW9uXCIsIF9jb250ZXh0Mi50MSwgX2NvbnRleHQyLnQyLCBfY29udGV4dDIudDcpO1xuICAgICAgICAgICAgICBjYXNlIDE1OlxuICAgICAgICAgICAgICAgIG5ld1Nlc3Npb24gPSBfY29udGV4dDIuc2VudDtcbiAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgICAgICAgICBpZiAobmV3U2Vzc2lvbikge1xuICAgICAgICAgICAgICAgICAgc2V0U2Vzc2lvbihuZXdTZXNzaW9uKTtcbiAgICAgICAgICAgICAgICAgIGJyb2FkY2FzdC5wb3N0KHtcbiAgICAgICAgICAgICAgICAgICAgZXZlbnQ6IFwic2Vzc2lvblwiLFxuICAgICAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgICAgdHJpZ2dlcjogXCJnZXRTZXNzaW9uXCJcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dDIuYWJydXB0KFwicmV0dXJuXCIsIG5ld1Nlc3Npb24pO1xuICAgICAgICAgICAgICBjYXNlIDE5OlxuICAgICAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0Mi5zdG9wKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSwgX2NhbGxlZTIpO1xuICAgICAgICB9KSkoKTtcbiAgICAgIH1cbiAgICB9O1xuICB9LCBbc2Vzc2lvbiwgbG9hZGluZ10pO1xuICByZXR1cm4gKDAsIF9qc3hSdW50aW1lLmpzeCkoU2Vzc2lvbkNvbnRleHQuUHJvdmlkZXIsIHtcbiAgICB2YWx1ZTogdmFsdWUsXG4gICAgY2hpbGRyZW46IGNoaWxkcmVuXG4gIH0pO1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next-auth/react/index.js\n");
/***/ }),
@@ -47,6 +499,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
\***********************************************/
/***/ ((__unused_webpack_module, exports) => {
+"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3JlYWN0L3R5cGVzLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQyIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQtYXV0aC9yZWFjdC90eXBlcy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gIHZhbHVlOiB0cnVlXG59KTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next-auth/react/types.js\n");
/***/ }),
@@ -57,6 +510,7 @@ eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
\************************************************/
/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+"use strict";
eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/helpers/interopRequireDefault */ \"(ssr)/./node_modules/@babel/runtime/helpers/interopRequireDefault.js\");\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = void 0;\nexports.proxyLogger = proxyLogger;\nexports.setLogger = setLogger;\nvar _regenerator = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/regenerator */ \"(ssr)/./node_modules/@babel/runtime/regenerator/index.js\"));\nvar _defineProperty2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/defineProperty */ \"(ssr)/./node_modules/@babel/runtime/helpers/defineProperty.js\"));\nvar _asyncToGenerator2 = _interopRequireDefault(__webpack_require__(/*! @babel/runtime/helpers/asyncToGenerator */ \"(ssr)/./node_modules/@babel/runtime/helpers/asyncToGenerator.js\"));\nvar _errors = __webpack_require__(/*! ../core/errors */ \"(ssr)/./node_modules/next-auth/core/errors.js\");\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction formatError(o) {\n if (o instanceof Error && !(o instanceof _errors.UnknownError)) {\n return {\n message: o.message,\n stack: o.stack,\n name: o.name\n };\n }\n if (hasErrorProperty(o)) {\n var _o$message;\n o.error = formatError(o.error);\n o.message = (_o$message = o.message) !== null && _o$message !== void 0 ? _o$message : o.error.message;\n }\n return o;\n}\nfunction hasErrorProperty(x) {\n return !!(x !== null && x !== void 0 && x.error);\n}\nvar _logger = {\n error: function error(code, metadata) {\n metadata = formatError(metadata);\n console.error(\"[next-auth][error][\".concat(code, \"]\"), \"\\nhttps://next-auth.js.org/errors#\".concat(code.toLowerCase()), metadata.message, metadata);\n },\n warn: function warn(code) {\n console.warn(\"[next-auth][warn][\".concat(code, \"]\"), \"\\nhttps://next-auth.js.org/warnings#\".concat(code.toLowerCase()));\n },\n debug: function debug(code, metadata) {\n console.log(\"[next-auth][debug][\".concat(code, \"]\"), metadata);\n }\n};\nfunction setLogger() {\n var newLogger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var debug = arguments.length > 1 ? arguments[1] : undefined;\n if (!debug) _logger.debug = function () {};\n if (newLogger.error) _logger.error = newLogger.error;\n if (newLogger.warn) _logger.warn = newLogger.warn;\n if (newLogger.debug) _logger.debug = newLogger.debug;\n}\nvar _default = exports[\"default\"] = _logger;\nfunction proxyLogger() {\n var logger = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : _logger;\n var basePath = arguments.length > 1 ? arguments[1] : undefined;\n try {\n if (typeof window === \"undefined\") {\n return logger;\n }\n var clientLogger = {};\n var _loop = function _loop(level) {\n clientLogger[level] = function () {\n var _ref = (0, _asyncToGenerator2.default)(_regenerator.default.mark(function _callee(code, metadata) {\n var url, body;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) switch (_context.prev = _context.next) {\n case 0:\n _logger[level](code, metadata);\n if (level === \"error\") {\n metadata = formatError(metadata);\n }\n ;\n metadata.client = true;\n url = \"\".concat(basePath, \"/_log\");\n body = new URLSearchParams(_objectSpread({\n level: level,\n code: code\n }, metadata));\n if (!navigator.sendBeacon) {\n _context.next = 8;\n break;\n }\n return _context.abrupt(\"return\", navigator.sendBeacon(url, body));\n case 8:\n _context.next = 10;\n return fetch(url, {\n method: \"POST\",\n body: body,\n keepalive: true\n });\n case 10:\n return _context.abrupt(\"return\", _context.sent);\n case 11:\n case \"end\":\n return _context.stop();\n }\n }, _callee);\n }));\n return function (_x, _x2) {\n return _ref.apply(this, arguments);\n };\n }();\n };\n for (var level in logger) {\n _loop(level);\n }\n return clientLogger;\n } catch (_unused) {\n return _logger;\n }\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3V0aWxzL2xvZ2dlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw2QkFBNkIsbUJBQU8sQ0FBQywwSEFBOEM7QUFDbkYsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0JBQWU7QUFDZixtQkFBbUI7QUFDbkIsaUJBQWlCO0FBQ2pCLDBDQUEwQyxtQkFBTyxDQUFDLDRGQUE0QjtBQUM5RSw4Q0FBOEMsbUJBQU8sQ0FBQyw0R0FBdUM7QUFDN0YsZ0RBQWdELG1CQUFPLENBQUMsZ0hBQXlDO0FBQ2pHLGNBQWMsbUJBQU8sQ0FBQyxxRUFBZ0I7QUFDdEMseUJBQXlCLHdCQUF3QixvQ0FBb0MseUNBQXlDLGtDQUFrQywwREFBMEQsMEJBQTBCO0FBQ3BQLDRCQUE0QixnQkFBZ0Isc0JBQXNCLE9BQU8sa0RBQWtELHNEQUFzRCw0Q0FBNEMsbUpBQW1KLHFFQUFxRSxLQUFLO0FBQzFiO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUNIO0FBQ0E7QUFDQSxHQUFHO0FBQ0g7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZUFBZSxrQkFBZTtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUJBQWlCO0FBQ2pCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVc7QUFDWCxTQUFTO0FBQ1Q7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxJQUFJO0FBQ0o7QUFDQTtBQUNBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3V0aWxzL2xvZ2dlci5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcblxudmFyIF9pbnRlcm9wUmVxdWlyZURlZmF1bHQgPSByZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvaGVscGVycy9pbnRlcm9wUmVxdWlyZURlZmF1bHRcIik7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gdm9pZCAwO1xuZXhwb3J0cy5wcm94eUxvZ2dlciA9IHByb3h5TG9nZ2VyO1xuZXhwb3J0cy5zZXRMb2dnZXIgPSBzZXRMb2dnZXI7XG52YXIgX3JlZ2VuZXJhdG9yID0gX2ludGVyb3BSZXF1aXJlRGVmYXVsdChyZXF1aXJlKFwiQGJhYmVsL3J1bnRpbWUvcmVnZW5lcmF0b3JcIikpO1xudmFyIF9kZWZpbmVQcm9wZXJ0eTIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2RlZmluZVByb3BlcnR5XCIpKTtcbnZhciBfYXN5bmNUb0dlbmVyYXRvcjIgPSBfaW50ZXJvcFJlcXVpcmVEZWZhdWx0KHJlcXVpcmUoXCJAYmFiZWwvcnVudGltZS9oZWxwZXJzL2FzeW5jVG9HZW5lcmF0b3JcIikpO1xudmFyIF9lcnJvcnMgPSByZXF1aXJlKFwiLi4vY29yZS9lcnJvcnNcIik7XG5mdW5jdGlvbiBvd25LZXlzKGUsIHIpIHsgdmFyIHQgPSBPYmplY3Qua2V5cyhlKTsgaWYgKE9iamVjdC5nZXRPd25Qcm9wZXJ0eVN5bWJvbHMpIHsgdmFyIG8gPSBPYmplY3QuZ2V0T3duUHJvcGVydHlTeW1ib2xzKGUpOyByICYmIChvID0gby5maWx0ZXIoZnVuY3Rpb24gKHIpIHsgcmV0dXJuIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSwgcikuZW51bWVyYWJsZTsgfSkpLCB0LnB1c2guYXBwbHkodCwgbyk7IH0gcmV0dXJuIHQ7IH1cbmZ1bmN0aW9uIF9vYmplY3RTcHJlYWQoZSkgeyBmb3IgKHZhciByID0gMTsgciA8IGFyZ3VtZW50cy5sZW5ndGg7IHIrKykgeyB2YXIgdCA9IG51bGwgIT0gYXJndW1lbnRzW3JdID8gYXJndW1lbnRzW3JdIDoge307IHIgJSAyID8gb3duS2V5cyhPYmplY3QodCksICEwKS5mb3JFYWNoKGZ1bmN0aW9uIChyKSB7ICgwLCBfZGVmaW5lUHJvcGVydHkyLmRlZmF1bHQpKGUsIHIsIHRbcl0pOyB9KSA6IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzID8gT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZSwgT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcnModCkpIDogb3duS2V5cyhPYmplY3QodCkpLmZvckVhY2goZnVuY3Rpb24gKHIpIHsgT2JqZWN0LmRlZmluZVByb3BlcnR5KGUsIHIsIE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IodCwgcikpOyB9KTsgfSByZXR1cm4gZTsgfVxuZnVuY3Rpb24gZm9ybWF0RXJyb3Iobykge1xuICBpZiAobyBpbnN0YW5jZW9mIEVycm9yICYmICEobyBpbnN0YW5jZW9mIF9lcnJvcnMuVW5rbm93bkVycm9yKSkge1xuICAgIHJldHVybiB7XG4gICAgICBtZXNzYWdlOiBvLm1lc3NhZ2UsXG4gICAgICBzdGFjazogby5zdGFjayxcbiAgICAgIG5hbWU6IG8ubmFtZVxuICAgIH07XG4gIH1cbiAgaWYgKGhhc0Vycm9yUHJvcGVydHkobykpIHtcbiAgICB2YXIgX28kbWVzc2FnZTtcbiAgICBvLmVycm9yID0gZm9ybWF0RXJyb3Ioby5lcnJvcik7XG4gICAgby5tZXNzYWdlID0gKF9vJG1lc3NhZ2UgPSBvLm1lc3NhZ2UpICE9PSBudWxsICYmIF9vJG1lc3NhZ2UgIT09IHZvaWQgMCA/IF9vJG1lc3NhZ2UgOiBvLmVycm9yLm1lc3NhZ2U7XG4gIH1cbiAgcmV0dXJuIG87XG59XG5mdW5jdGlvbiBoYXNFcnJvclByb3BlcnR5KHgpIHtcbiAgcmV0dXJuICEhKHggIT09IG51bGwgJiYgeCAhPT0gdm9pZCAwICYmIHguZXJyb3IpO1xufVxudmFyIF9sb2dnZXIgPSB7XG4gIGVycm9yOiBmdW5jdGlvbiBlcnJvcihjb2RlLCBtZXRhZGF0YSkge1xuICAgIG1ldGFkYXRhID0gZm9ybWF0RXJyb3IobWV0YWRhdGEpO1xuICAgIGNvbnNvbGUuZXJyb3IoXCJbbmV4dC1hdXRoXVtlcnJvcl1bXCIuY29uY2F0KGNvZGUsIFwiXVwiKSwgXCJcXG5odHRwczovL25leHQtYXV0aC5qcy5vcmcvZXJyb3JzI1wiLmNvbmNhdChjb2RlLnRvTG93ZXJDYXNlKCkpLCBtZXRhZGF0YS5tZXNzYWdlLCBtZXRhZGF0YSk7XG4gIH0sXG4gIHdhcm46IGZ1bmN0aW9uIHdhcm4oY29kZSkge1xuICAgIGNvbnNvbGUud2FybihcIltuZXh0LWF1dGhdW3dhcm5dW1wiLmNvbmNhdChjb2RlLCBcIl1cIiksIFwiXFxuaHR0cHM6Ly9uZXh0LWF1dGguanMub3JnL3dhcm5pbmdzI1wiLmNvbmNhdChjb2RlLnRvTG93ZXJDYXNlKCkpKTtcbiAgfSxcbiAgZGVidWc6IGZ1bmN0aW9uIGRlYnVnKGNvZGUsIG1ldGFkYXRhKSB7XG4gICAgY29uc29sZS5sb2coXCJbbmV4dC1hdXRoXVtkZWJ1Z11bXCIuY29uY2F0KGNvZGUsIFwiXVwiKSwgbWV0YWRhdGEpO1xuICB9XG59O1xuZnVuY3Rpb24gc2V0TG9nZ2VyKCkge1xuICB2YXIgbmV3TG9nZ2VyID0gYXJndW1lbnRzLmxlbmd0aCA+IDAgJiYgYXJndW1lbnRzWzBdICE9PSB1bmRlZmluZWQgPyBhcmd1bWVudHNbMF0gOiB7fTtcbiAgdmFyIGRlYnVnID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG4gIGlmICghZGVidWcpIF9sb2dnZXIuZGVidWcgPSBmdW5jdGlvbiAoKSB7fTtcbiAgaWYgKG5ld0xvZ2dlci5lcnJvcikgX2xvZ2dlci5lcnJvciA9IG5ld0xvZ2dlci5lcnJvcjtcbiAgaWYgKG5ld0xvZ2dlci53YXJuKSBfbG9nZ2VyLndhcm4gPSBuZXdMb2dnZXIud2FybjtcbiAgaWYgKG5ld0xvZ2dlci5kZWJ1ZykgX2xvZ2dlci5kZWJ1ZyA9IG5ld0xvZ2dlci5kZWJ1Zztcbn1cbnZhciBfZGVmYXVsdCA9IGV4cG9ydHMuZGVmYXVsdCA9IF9sb2dnZXI7XG5mdW5jdGlvbiBwcm94eUxvZ2dlcigpIHtcbiAgdmFyIGxvZ2dlciA9IGFyZ3VtZW50cy5sZW5ndGggPiAwICYmIGFyZ3VtZW50c1swXSAhPT0gdW5kZWZpbmVkID8gYXJndW1lbnRzWzBdIDogX2xvZ2dlcjtcbiAgdmFyIGJhc2VQYXRoID0gYXJndW1lbnRzLmxlbmd0aCA+IDEgPyBhcmd1bWVudHNbMV0gOiB1bmRlZmluZWQ7XG4gIHRyeSB7XG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgPT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIHJldHVybiBsb2dnZXI7XG4gICAgfVxuICAgIHZhciBjbGllbnRMb2dnZXIgPSB7fTtcbiAgICB2YXIgX2xvb3AgPSBmdW5jdGlvbiBfbG9vcChsZXZlbCkge1xuICAgICAgY2xpZW50TG9nZ2VyW2xldmVsXSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgdmFyIF9yZWYgPSAoMCwgX2FzeW5jVG9HZW5lcmF0b3IyLmRlZmF1bHQpKF9yZWdlbmVyYXRvci5kZWZhdWx0Lm1hcmsoZnVuY3Rpb24gX2NhbGxlZShjb2RlLCBtZXRhZGF0YSkge1xuICAgICAgICAgIHZhciB1cmwsIGJvZHk7XG4gICAgICAgICAgcmV0dXJuIF9yZWdlbmVyYXRvci5kZWZhdWx0LndyYXAoZnVuY3Rpb24gX2NhbGxlZSQoX2NvbnRleHQpIHtcbiAgICAgICAgICAgIHdoaWxlICgxKSBzd2l0Y2ggKF9jb250ZXh0LnByZXYgPSBfY29udGV4dC5uZXh0KSB7XG4gICAgICAgICAgICAgIGNhc2UgMDpcbiAgICAgICAgICAgICAgICBfbG9nZ2VyW2xldmVsXShjb2RlLCBtZXRhZGF0YSk7XG4gICAgICAgICAgICAgICAgaWYgKGxldmVsID09PSBcImVycm9yXCIpIHtcbiAgICAgICAgICAgICAgICAgIG1ldGFkYXRhID0gZm9ybWF0RXJyb3IobWV0YWRhdGEpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA7XG4gICAgICAgICAgICAgICAgbWV0YWRhdGEuY2xpZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICB1cmwgPSBcIlwiLmNvbmNhdChiYXNlUGF0aCwgXCIvX2xvZ1wiKTtcbiAgICAgICAgICAgICAgICBib2R5ID0gbmV3IFVSTFNlYXJjaFBhcmFtcyhfb2JqZWN0U3ByZWFkKHtcbiAgICAgICAgICAgICAgICAgIGxldmVsOiBsZXZlbCxcbiAgICAgICAgICAgICAgICAgIGNvZGU6IGNvZGVcbiAgICAgICAgICAgICAgICB9LCBtZXRhZGF0YSkpO1xuICAgICAgICAgICAgICAgIGlmICghbmF2aWdhdG9yLnNlbmRCZWFjb24pIHtcbiAgICAgICAgICAgICAgICAgIF9jb250ZXh0Lm5leHQgPSA4O1xuICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBfY29udGV4dC5hYnJ1cHQoXCJyZXR1cm5cIiwgbmF2aWdhdG9yLnNlbmRCZWFjb24odXJsLCBib2R5KSk7XG4gICAgICAgICAgICAgIGNhc2UgODpcbiAgICAgICAgICAgICAgICBfY29udGV4dC5uZXh0ID0gMTA7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZldGNoKHVybCwge1xuICAgICAgICAgICAgICAgICAgbWV0aG9kOiBcIlBPU1RcIixcbiAgICAgICAgICAgICAgICAgIGJvZHk6IGJvZHksXG4gICAgICAgICAgICAgICAgICBrZWVwYWxpdmU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgY2FzZSAxMDpcbiAgICAgICAgICAgICAgICByZXR1cm4gX2NvbnRleHQuYWJydXB0KFwicmV0dXJuXCIsIF9jb250ZXh0LnNlbnQpO1xuICAgICAgICAgICAgICBjYXNlIDExOlxuICAgICAgICAgICAgICBjYXNlIFwiZW5kXCI6XG4gICAgICAgICAgICAgICAgcmV0dXJuIF9jb250ZXh0LnN0b3AoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9LCBfY2FsbGVlKTtcbiAgICAgICAgfSkpO1xuICAgICAgICByZXR1cm4gZnVuY3Rpb24gKF94LCBfeDIpIHtcbiAgICAgICAgICByZXR1cm4gX3JlZi5hcHBseSh0aGlzLCBhcmd1bWVudHMpO1xuICAgICAgICB9O1xuICAgICAgfSgpO1xuICAgIH07XG4gICAgZm9yICh2YXIgbGV2ZWwgaW4gbG9nZ2VyKSB7XG4gICAgICBfbG9vcChsZXZlbCk7XG4gICAgfVxuICAgIHJldHVybiBjbGllbnRMb2dnZXI7XG4gIH0gY2F0Y2ggKF91bnVzZWQpIHtcbiAgICByZXR1cm4gX2xvZ2dlcjtcbiAgfVxufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next-auth/utils/logger.js\n");
/***/ }),
@@ -67,6 +521,7 @@ eval("\n\nvar _interopRequireDefault = __webpack_require__(/*! @babel/runtime/he
\***************************************************/
/***/ ((__unused_webpack_module, exports) => {
+"use strict";
eval("\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nexports[\"default\"] = parseUrl;\nfunction parseUrl(url) {\n var _url2;\n const defaultUrl = new URL(\"http://localhost:3000/api/auth\");\n if (url && !url.startsWith(\"http\")) {\n url = `https://${url}`;\n }\n const _url = new URL((_url2 = url) !== null && _url2 !== void 0 ? _url2 : defaultUrl);\n const path = (_url.pathname === \"/\" ? defaultUrl.pathname : _url.pathname).replace(/\\/$/, \"\");\n const base = `${_url.origin}${path}`;\n return {\n origin: _url.origin,\n host: _url.host,\n path,\n base,\n toString: () => base\n };\n}//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC1hdXRoL3V0aWxzL3BhcnNlLXVybC5qcyIsIm1hcHBpbmdzIjoiQUFBYTs7QUFFYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixrQkFBZTtBQUNmO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLElBQUk7QUFDekI7QUFDQTtBQUNBO0FBQ0Esa0JBQWtCLFlBQVksRUFBRSxLQUFLO0FBQ3JDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0LWF1dGgvdXRpbHMvcGFyc2UtdXJsLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuXG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgdmFsdWU6IHRydWVcbn0pO1xuZXhwb3J0cy5kZWZhdWx0ID0gcGFyc2VVcmw7XG5mdW5jdGlvbiBwYXJzZVVybCh1cmwpIHtcbiAgdmFyIF91cmwyO1xuICBjb25zdCBkZWZhdWx0VXJsID0gbmV3IFVSTChcImh0dHA6Ly9sb2NhbGhvc3Q6MzAwMC9hcGkvYXV0aFwiKTtcbiAgaWYgKHVybCAmJiAhdXJsLnN0YXJ0c1dpdGgoXCJodHRwXCIpKSB7XG4gICAgdXJsID0gYGh0dHBzOi8vJHt1cmx9YDtcbiAgfVxuICBjb25zdCBfdXJsID0gbmV3IFVSTCgoX3VybDIgPSB1cmwpICE9PSBudWxsICYmIF91cmwyICE9PSB2b2lkIDAgPyBfdXJsMiA6IGRlZmF1bHRVcmwpO1xuICBjb25zdCBwYXRoID0gKF91cmwucGF0aG5hbWUgPT09IFwiL1wiID8gZGVmYXVsdFVybC5wYXRobmFtZSA6IF91cmwucGF0aG5hbWUpLnJlcGxhY2UoL1xcLyQvLCBcIlwiKTtcbiAgY29uc3QgYmFzZSA9IGAke191cmwub3JpZ2lufSR7cGF0aH1gO1xuICByZXR1cm4ge1xuICAgIG9yaWdpbjogX3VybC5vcmlnaW4sXG4gICAgaG9zdDogX3VybC5ob3N0LFxuICAgIHBhdGgsXG4gICAgYmFzZSxcbiAgICB0b1N0cmluZzogKCkgPT4gYmFzZVxuICB9O1xufSJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next-auth/utils/parse-url.js\n");
/***/ })
diff --git a/.next/server/vendor-chunks/next.js b/.next/server/vendor-chunks/next.js
index 3945f7c..2efada7 100644
--- a/.next/server/vendor-chunks/next.js
+++ b/.next/server/vendor-chunks/next.js
@@ -54,6 +54,28 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sha
/***/ }),
+/***/ "(rsc)/./node_modules/next/dist/api/headers.js":
+/*!***********************************************!*\
+ !*** ./node_modules/next/dist/api/headers.js ***!
+ \***********************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ __esModule: () => (/* reexport safe */ _server_request_cookies__WEBPACK_IMPORTED_MODULE_0__.__esModule),\n/* harmony export */ cookies: () => (/* reexport safe */ _server_request_cookies__WEBPACK_IMPORTED_MODULE_0__.cookies),\n/* harmony export */ draftMode: () => (/* reexport safe */ _server_request_draft_mode__WEBPACK_IMPORTED_MODULE_2__.draftMode),\n/* harmony export */ headers: () => (/* reexport safe */ _server_request_headers__WEBPACK_IMPORTED_MODULE_1__.headers)\n/* harmony export */ });\n/* harmony import */ var _server_request_cookies__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../server/request/cookies */ \"(rsc)/./node_modules/next/dist/server/request/cookies.js\");\n/* harmony import */ var _server_request_headers__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ../server/request/headers */ \"(rsc)/./node_modules/next/dist/server/request/headers.js\");\n/* harmony import */ var _server_request_draft_mode__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ../server/request/draft-mode */ \"(rsc)/./node_modules/next/dist/server/request/draft-mode.js\");\n\n\n\n\n//# sourceMappingURL=headers.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9oZWFkZXJzLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFBMEM7QUFDQTtBQUNHOztBQUU3QyIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9hcGkvaGVhZGVycy5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuLi9zZXJ2ZXIvcmVxdWVzdC9jb29raWVzJztcbmV4cG9ydCAqIGZyb20gJy4uL3NlcnZlci9yZXF1ZXN0L2hlYWRlcnMnO1xuZXhwb3J0ICogZnJvbSAnLi4vc2VydmVyL3JlcXVlc3QvZHJhZnQtbW9kZSc7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWhlYWRlcnMuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/api/headers.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/api/server.js":
+/*!**********************************************!*\
+ !*** ./node_modules/next/dist/api/server.js ***!
+ \**********************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../server/web/exports/index */ \"(rsc)/./node_modules/next/dist/server/web/exports/index.js\");\n/* harmony import */ var _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _server_web_exports_index__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=server.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9zZXJ2ZXIuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQTRDOztBQUU1QyIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9hcGkvc2VydmVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4uL3NlcnZlci93ZWIvZXhwb3J0cy9pbmRleCc7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPXNlcnZlci5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/api/server.js\n");
+
+/***/ }),
+
/***/ "(rsc)/./node_modules/next/dist/build/output/log.js":
/*!****************************************************!*\
!*** ./node_modules/next/dist/build/output/log.js ***!
@@ -74,6 +96,19 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
"use strict";
eval("/* eslint-disable import/no-extraneous-dependencies */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createProxy\", ({\n enumerable: true,\n get: function() {\n return createProxy;\n }\n}));\nconst _server = __webpack_require__(/*! react-server-dom-webpack/server */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server.js\");\nconst createProxy = _server.createClientModuleProxy;\n\n//# sourceMappingURL=module-proxy.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1sb2FkZXIvbW9kdWxlLXByb3h5LmpzIiwibWFwcGluZ3MiOiJBQUFBLHVEQUFvRTtBQUNwRSw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiwrQ0FBOEM7QUFDOUM7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixnQkFBZ0IsbUJBQU8sQ0FBQyxxSkFBaUM7QUFDekQ7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWxvYWRlci9tb2R1bGUtcHJveHkuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgaW1wb3J0L25vLWV4dHJhbmVvdXMtZGVwZW5kZW5jaWVzICovIFwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiY3JlYXRlUHJveHlcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGNyZWF0ZVByb3h5O1xuICAgIH1cbn0pO1xuY29uc3QgX3NlcnZlciA9IHJlcXVpcmUoXCJyZWFjdC1zZXJ2ZXItZG9tLXdlYnBhY2svc2VydmVyXCIpO1xuY29uc3QgY3JlYXRlUHJveHkgPSBfc2VydmVyLmNyZWF0ZUNsaWVudE1vZHVsZVByb3h5O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUtcHJveHkuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js\n");
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/client/app-dir/link.js":
+/*!*******************************************************!*\
+ !*** ./node_modules/next/dist/client/app-dir/link.js ***!
+ \*******************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+const { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js")
+
+module.exports = createProxy("/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/client/app-dir/link.js")
+
+
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/client/components/app-router-headers.js":
@@ -424,6 +459,16 @@ eval("(()=>{var e={318:function(e,t){(function(e,n){ true?n(t):0})(this,(functio
/***/ }),
+/***/ "(rsc)/./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js":
+/*!*******************************************************************!*\
+ !*** ./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js ***!
+ \*******************************************************************/
+/***/ ((module, exports, __webpack_require__) => {
+
+eval("var __WEBPACK_AMD_DEFINE_RESULT__;(()=>{var i={226:function(i,e){(function(o,a){\"use strict\";var r=\"1.0.35\",t=\"\",n=\"?\",s=\"function\",b=\"undefined\",w=\"object\",l=\"string\",d=\"major\",c=\"model\",u=\"name\",p=\"type\",m=\"vendor\",f=\"version\",h=\"architecture\",v=\"console\",g=\"mobile\",k=\"tablet\",x=\"smarttv\",_=\"wearable\",y=\"embedded\",q=350;var T=\"Amazon\",S=\"Apple\",z=\"ASUS\",N=\"BlackBerry\",A=\"Browser\",C=\"Chrome\",E=\"Edge\",O=\"Firefox\",U=\"Google\",j=\"Huawei\",P=\"LG\",R=\"Microsoft\",M=\"Motorola\",B=\"Opera\",V=\"Samsung\",D=\"Sharp\",I=\"Sony\",W=\"Viera\",F=\"Xiaomi\",G=\"Zebra\",H=\"Facebook\",L=\"Chromium OS\",Z=\"Mac OS\";var extend=function(i,e){var o={};for(var a in i){if(e[a]&&e[a].length%2===0){o[a]=e[a].concat(i[a])}else{o[a]=i[a]}}return o},enumerize=function(i){var e={};for(var o=0;o0){if(b.length===2){if(typeof b[1]==s){this[b[0]]=b[1].call(this,d)}else{this[b[0]]=b[1]}}else if(b.length===3){if(typeof b[1]===s&&!(b[1].exec&&b[1].test)){this[b[0]]=d?b[1].call(this,d,b[2]):a}else{this[b[0]]=d?d.replace(b[1],b[2]):a}}else if(b.length===4){this[b[0]]=d?b[3].call(this,d.replace(b[1],b[2])):a}}else{this[b]=d?d:a}}}}o+=2}},strMapper=function(i,e){for(var o in e){if(typeof e[o]===w&&e[o].length>0){for(var r=0;r2){i[c]=\"iPad\";i[p]=k}return i};this.getEngine=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.engine);return i};this.getOS=function(){var i={};i[u]=a;i[f]=a;rgxMapper.call(i,n,x.os);if(_&&!i[u]&&v&&v.platform!=\"Unknown\"){i[u]=v.platform.replace(/chrome os/i,L).replace(/macos/i,Z)}return i};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return n};this.setUA=function(i){n=typeof i===l&&i.length>q?trim(i,q):i;return this};this.setUA(n);return this};UAParser.VERSION=r;UAParser.BROWSER=enumerize([u,f,d]);UAParser.CPU=enumerize([h]);UAParser.DEVICE=enumerize([c,m,p,v,g,x,k,_,y]);UAParser.ENGINE=UAParser.OS=enumerize([u,f]);if(typeof e!==b){if(\"object\"!==b&&i.exports){e=i.exports=UAParser}e.UAParser=UAParser}else{if(\"function\"===s&&__webpack_require__.amdO){!(__WEBPACK_AMD_DEFINE_RESULT__ = (function(){return UAParser}).call(exports, __webpack_require__, exports, module),\n\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))}else if(typeof o!==b){o.UAParser=UAParser}}var Q=typeof o!==b&&(o.jQuery||o.Zepto);if(Q&&!Q.ua){var Y=new UAParser;Q.ua=Y.getResult();Q.ua.get=function(){return Y.getUA()};Q.ua.set=function(i){Y.setUA(i);var e=Y.getResult();for(var o in e){Q.ua[o]=e[o]}}}})(typeof window===\"object\"?window:this)}};var e={};function __nccwpck_require__(o){var a=e[o];if(a!==undefined){return a.exports}var r=e[o]={exports:{}};var t=true;try{i[o].call(r.exports,r,r.exports,__nccwpck_require__);t=false}finally{if(t)delete e[o]}return r.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var o=__nccwpck_require__(226);module.exports=o})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3VhLXBhcnNlci1qcy91YS1wYXJzZXIuanMiLCJtYXBwaW5ncyI6IkFBQUEsd0NBQU0sT0FBTyxrQkFBa0IsZUFBZSxhQUFhLHVPQUF1TyxxUUFBcVEseUJBQXlCLFNBQVMsZ0JBQWdCLDRCQUE0Qix1QkFBdUIsS0FBSyxXQUFXLFNBQVMsdUJBQXVCLFNBQVMsWUFBWSxXQUFXLEtBQUssMkJBQTJCLFNBQVMsbUJBQW1CLGdFQUFnRSxzQkFBc0IsdUJBQXVCLHNCQUFzQiw0REFBNEQsb0JBQW9CLGlCQUFpQix3QkFBd0IseUNBQXlDLDRCQUE0QixvQkFBb0Isc0JBQXNCLG9CQUFvQixNQUFNLHNCQUFzQixVQUFVLE1BQU0saUJBQWlCLFFBQVEsUUFBUSxXQUFXLEtBQUssU0FBUyxPQUFPLDZCQUE2QixpQkFBaUIsbUJBQW1CLDZCQUE2QixLQUFLLGlCQUFpQixzQkFBc0IsNkNBQTZDLHNDQUFzQyxLQUFLLHFDQUFxQyxzQkFBc0IscURBQXFELEtBQUssaUJBQWlCLE1BQU0seUJBQXlCLGdCQUFnQixtQ0FBbUMsWUFBWSxjQUFjLEtBQUssbUJBQW1CLG1CQUFtQixxQkFBcUIsa0JBQWtCLFVBQVUsT0FBTywrRkFBK0YsSUFBSSxzS0FBc0ssT0FBTywySkFBMkosSUFBSSx3M0JBQXczQixJQUFJLHEyQkFBcTJCLGdCQUFnQixraEJBQWtoQixHQUFHLHlWQUF5ViwyZkFBMmYscUhBQXFILGdDQUFnQyx5Q0FBeUMsZ0pBQWdKLElBQUksbURBQW1ELDRDQUE0Qyx5Q0FBeUMsMENBQTBDLDZIQUE2SCxJQUFJLFdBQVcsSUFBSSxvTUFBb00sZ0NBQWdDLFNBQVMsb0VBQW9FLDBDQUEwQyw2R0FBNkcsRUFBRSw4REFBOEQsc0JBQXNCLElBQUkscUdBQXFHLDhUQUE4VCxpQ0FBaUMsRUFBRSw4R0FBOEcsRUFBRSxpQkFBaUIseUNBQXlDLEVBQUUsVUFBVSxzS0FBc0ssSUFBSSw4REFBOEQsSUFBSSxrREFBa0QsRUFBRSxnQkFBZ0IsRUFBRSxHQUFHLGFBQWEsSUFBSSxxRkFBcUYseUpBQXlKLEVBQUUsV0FBVyxFQUFFLHlLQUF5SyxlQUFlLElBQUkscURBQXFELEVBQUUsV0FBVyxFQUFFLHlEQUF5RCxJQUFJLHFQQUFxUCxFQUFFLFlBQVksRUFBRSxzS0FBc0ssU0FBUyxpRUFBaUUsd0RBQXdELE1BQU0sZ0xBQWdMLElBQUksSUFBSSwwR0FBMEcsdUVBQXVFLDZEQUE2RCxpQ0FBaUMsR0FBRyxnTEFBZ0wsK1JBQStSLElBQUksNEJBQTRCLEVBQUUsNEJBQTRCLElBQUksMkdBQTJHLGlMQUFpTCxJQUFJLHNLQUFzSyxFQUFFLGdGQUFnRixFQUFFLHVDQUF1QyxFQUFFLDZDQUE2QyxFQUFFLHVGQUF1RixFQUFFLG1DQUFtQyxFQUFFLGdEQUFnRCxJQUFJLG9EQUFvRCxJQUFJLCtiQUErYixFQUFFLDRDQUE0QywwRUFBMEUsaUdBQWlHLGlEQUFpRCwwTUFBME0sNEdBQTRHLEVBQUUsbURBQW1ELDhGQUE4RixXQUFXLElBQUksSUFBSSwyRUFBMkUsa0ZBQWtGLGtIQUFrSCxXQUFXLHdIQUF3SCx5Q0FBeUMsUUFBUSxJQUFJLDZKQUE2SixJQUFJLGtFQUFrRSxJQUFJLDRFQUE0RSwwREFBMEQsMEVBQTBFLElBQUksRUFBRSxxWEFBcVgsSUFBSSwwRkFBMEYsc05BQXNOLElBQUksNkJBQTZCLGNBQWMsZ1hBQWdYLHFCQUFxQiw2Q0FBNkMsa0dBQWtHLFNBQVMsa0RBQWtELGdPQUFnTyxrSEFBa0gsWUFBWSwrRkFBK0Ysb1hBQW9YLElBQUksbUNBQW1DLElBQUksNlBBQTZQLDJCQUEyQixpQkFBaUIsSUFBSSxJQUFJLGdDQUFnQyxxQ0FBcUMsOENBQThDLHdDQUF3QywyQ0FBMkMsc0JBQXNCLHdCQUF3QiwyQkFBMkIsU0FBUyxPQUFPLE9BQU8sOEJBQThCLG9CQUFvQiw2Q0FBNkMsYUFBYSxVQUFVLHVCQUF1QixTQUFTLE9BQU8sMEJBQTBCLFVBQVUsMEJBQTBCLFNBQVMsT0FBTyxPQUFPLE9BQU8sNkJBQTZCLDBCQUEwQixPQUFPLDJGQUEyRixZQUFZLE9BQU8sVUFBVSwwQkFBMEIsU0FBUyxPQUFPLE9BQU8sNkJBQTZCLFVBQVUsc0JBQXNCLFNBQVMsT0FBTyxPQUFPLHlCQUF5Qix1Q0FBdUMsNERBQTRELFVBQVUsMEJBQTBCLE9BQU8sOEhBQThILHNCQUFzQixVQUFVLHVCQUF1Qix1Q0FBdUMsYUFBYSxjQUFjLGFBQWEsbUJBQW1CLG9DQUFvQyw0QkFBNEIsK0NBQStDLDZDQUE2QyxpQkFBaUIsNEJBQTRCLHFCQUFxQixvQkFBb0IsS0FBSyxHQUFHLFVBQWEsTUFBTSx3QkFBVSxFQUFFLG1DQUFRLFdBQVcsZ0JBQWdCO0FBQUEsa0dBQUUsQ0FBQyxzQkFBc0IscUJBQXFCLHdDQUF3QyxhQUFhLG1CQUFtQixtQkFBbUIsb0JBQW9CLGtCQUFrQixxQkFBcUIsV0FBVyxvQkFBb0IsZ0JBQWdCLGdCQUFnQiwwQ0FBMEMsU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUkscURBQXFELFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLGlGQUFpRiwrQkFBK0IsaUJBQWlCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3VhLXBhcnNlci1qcy91YS1wYXJzZXIuanMiXSwic291cmNlc0NvbnRlbnQiOlsiKCgpPT57dmFyIGk9ezIyNjpmdW5jdGlvbihpLGUpeyhmdW5jdGlvbihvLGEpe1widXNlIHN0cmljdFwiO3ZhciByPVwiMS4wLjM1XCIsdD1cIlwiLG49XCI/XCIscz1cImZ1bmN0aW9uXCIsYj1cInVuZGVmaW5lZFwiLHc9XCJvYmplY3RcIixsPVwic3RyaW5nXCIsZD1cIm1ham9yXCIsYz1cIm1vZGVsXCIsdT1cIm5hbWVcIixwPVwidHlwZVwiLG09XCJ2ZW5kb3JcIixmPVwidmVyc2lvblwiLGg9XCJhcmNoaXRlY3R1cmVcIix2PVwiY29uc29sZVwiLGc9XCJtb2JpbGVcIixrPVwidGFibGV0XCIseD1cInNtYXJ0dHZcIixfPVwid2VhcmFibGVcIix5PVwiZW1iZWRkZWRcIixxPTM1MDt2YXIgVD1cIkFtYXpvblwiLFM9XCJBcHBsZVwiLHo9XCJBU1VTXCIsTj1cIkJsYWNrQmVycnlcIixBPVwiQnJvd3NlclwiLEM9XCJDaHJvbWVcIixFPVwiRWRnZVwiLE89XCJGaXJlZm94XCIsVT1cIkdvb2dsZVwiLGo9XCJIdWF3ZWlcIixQPVwiTEdcIixSPVwiTWljcm9zb2Z0XCIsTT1cIk1vdG9yb2xhXCIsQj1cIk9wZXJhXCIsVj1cIlNhbXN1bmdcIixEPVwiU2hhcnBcIixJPVwiU29ueVwiLFc9XCJWaWVyYVwiLEY9XCJYaWFvbWlcIixHPVwiWmVicmFcIixIPVwiRmFjZWJvb2tcIixMPVwiQ2hyb21pdW0gT1NcIixaPVwiTWFjIE9TXCI7dmFyIGV4dGVuZD1mdW5jdGlvbihpLGUpe3ZhciBvPXt9O2Zvcih2YXIgYSBpbiBpKXtpZihlW2FdJiZlW2FdLmxlbmd0aCUyPT09MCl7b1thXT1lW2FdLmNvbmNhdChpW2FdKX1lbHNle29bYV09aVthXX19cmV0dXJuIG99LGVudW1lcml6ZT1mdW5jdGlvbihpKXt2YXIgZT17fTtmb3IodmFyIG89MDtvPGkubGVuZ3RoO28rKyl7ZVtpW29dLnRvVXBwZXJDYXNlKCldPWlbb119cmV0dXJuIGV9LGhhcz1mdW5jdGlvbihpLGUpe3JldHVybiB0eXBlb2YgaT09PWw/bG93ZXJpemUoZSkuaW5kZXhPZihsb3dlcml6ZShpKSkhPT0tMTpmYWxzZX0sbG93ZXJpemU9ZnVuY3Rpb24oaSl7cmV0dXJuIGkudG9Mb3dlckNhc2UoKX0sbWFqb3JpemU9ZnVuY3Rpb24oaSl7cmV0dXJuIHR5cGVvZiBpPT09bD9pLnJlcGxhY2UoL1teXFxkXFwuXS9nLHQpLnNwbGl0KFwiLlwiKVswXTphfSx0cmltPWZ1bmN0aW9uKGksZSl7aWYodHlwZW9mIGk9PT1sKXtpPWkucmVwbGFjZSgvXlxcc1xccyovLHQpO3JldHVybiB0eXBlb2YgZT09PWI/aTppLnN1YnN0cmluZygwLHEpfX07dmFyIHJneE1hcHBlcj1mdW5jdGlvbihpLGUpe3ZhciBvPTAscix0LG4sYixsLGQ7d2hpbGUobzxlLmxlbmd0aCYmIWwpe3ZhciBjPWVbb10sdT1lW28rMV07cj10PTA7d2hpbGUocjxjLmxlbmd0aCYmIWwpe2lmKCFjW3JdKXticmVha31sPWNbcisrXS5leGVjKGkpO2lmKCEhbCl7Zm9yKG49MDtuPHUubGVuZ3RoO24rKyl7ZD1sWysrdF07Yj11W25dO2lmKHR5cGVvZiBiPT09dyYmYi5sZW5ndGg+MCl7aWYoYi5sZW5ndGg9PT0yKXtpZih0eXBlb2YgYlsxXT09cyl7dGhpc1tiWzBdXT1iWzFdLmNhbGwodGhpcyxkKX1lbHNle3RoaXNbYlswXV09YlsxXX19ZWxzZSBpZihiLmxlbmd0aD09PTMpe2lmKHR5cGVvZiBiWzFdPT09cyYmIShiWzFdLmV4ZWMmJmJbMV0udGVzdCkpe3RoaXNbYlswXV09ZD9iWzFdLmNhbGwodGhpcyxkLGJbMl0pOmF9ZWxzZXt0aGlzW2JbMF1dPWQ/ZC5yZXBsYWNlKGJbMV0sYlsyXSk6YX19ZWxzZSBpZihiLmxlbmd0aD09PTQpe3RoaXNbYlswXV09ZD9iWzNdLmNhbGwodGhpcyxkLnJlcGxhY2UoYlsxXSxiWzJdKSk6YX19ZWxzZXt0aGlzW2JdPWQ/ZDphfX19fW8rPTJ9fSxzdHJNYXBwZXI9ZnVuY3Rpb24oaSxlKXtmb3IodmFyIG8gaW4gZSl7aWYodHlwZW9mIGVbb109PT13JiZlW29dLmxlbmd0aD4wKXtmb3IodmFyIHI9MDtyPGVbb10ubGVuZ3RoO3IrKyl7aWYoaGFzKGVbb11bcl0saSkpe3JldHVybiBvPT09bj9hOm99fX1lbHNlIGlmKGhhcyhlW29dLGkpKXtyZXR1cm4gbz09PW4/YTpvfX1yZXR1cm4gaX07dmFyICQ9e1wiMS4wXCI6XCIvOFwiLDEuMjpcIi8xXCIsMS4zOlwiLzNcIixcIjIuMFwiOlwiLzQxMlwiLFwiMi4wLjJcIjpcIi80MTZcIixcIjIuMC4zXCI6XCIvNDE3XCIsXCIyLjAuNFwiOlwiLzQxOVwiLFwiP1wiOlwiL1wifSxYPXtNRTpcIjQuOTBcIixcIk5UIDMuMTFcIjpcIk5UMy41MVwiLFwiTlQgNC4wXCI6XCJOVDQuMFwiLDJlMzpcIk5UIDUuMFwiLFhQOltcIk5UIDUuMVwiLFwiTlQgNS4yXCJdLFZpc3RhOlwiTlQgNi4wXCIsNzpcIk5UIDYuMVwiLDg6XCJOVCA2LjJcIiw4LjE6XCJOVCA2LjNcIiwxMDpbXCJOVCA2LjRcIixcIk5UIDEwLjBcIl0sUlQ6XCJBUk1cIn07dmFyIEs9e2Jyb3dzZXI6W1svXFxiKD86Y3Jtb3xjcmlvcylcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIkNocm9tZVwiXV0sWy9lZGcoPzplfGlvc3xhKT9cXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIkVkZ2VcIl1dLFsvKG9wZXJhIG1pbmkpXFwvKFstXFx3XFwuXSspL2ksLyhvcGVyYSBbbW9iaWxldGFiXXszLDZ9KVxcYi4rdmVyc2lvblxcLyhbLVxcd1xcLl0rKS9pLC8ob3BlcmEpKD86Lit2ZXJzaW9uXFwvfFtcXC8gXSspKFtcXHdcXC5dKykvaV0sW3UsZl0sWy9vcGlvc1tcXC8gXSsoW1xcd1xcLl0rKS9pXSxbZixbdSxCK1wiIE1pbmlcIl1dLFsvXFxib3ByXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsQl1dLFsvKGtpbmRsZSlcXC8oW1xcd1xcLl0rKS9pLC8obHVuYXNjYXBlfG1heHRob258bmV0ZnJvbnR8amFzbWluZXxibGF6ZXIpW1xcLyBdPyhbXFx3XFwuXSopL2ksLyhhdmFudCB8aWVtb2JpbGV8c2xpbSkoPzpicm93c2VyKT9bXFwvIF0/KFtcXHdcXC5dKikvaSwvKGJhP2lkdWJyb3dzZXIpW1xcLyBdPyhbXFx3XFwuXSspL2ksLyg/Om1zfFxcKCkoaWUpIChbXFx3XFwuXSspL2ksLyhmbG9ja3xyb2NrbWVsdHxtaWRvcml8ZXBpcGhhbnl8c2lsa3xza3lmaXJlfGJvbHR8aXJvbnx2aXZhbGRpfGlyaWRpdW18cGhhbnRvbWpzfGJvd3NlcnxxdWFya3xxdXB6aWxsYXxmYWxrb258cmVrb25xfHB1ZmZpbnxicmF2ZXx3aGFsZSg/IS4rbmF2ZXIpfHFxYnJvd3NlcmxpdGV8cXF8ZHVja2R1Y2tnbylcXC8oWy1cXHdcXC5dKykvaSwvKGhleXRhcHxvdmkpYnJvd3NlclxcLyhbXFxkXFwuXSspL2ksLyh3ZWlibylfXyhbXFxkXFwuXSspL2ldLFt1LGZdLFsvKD86XFxidWM/ID9icm93c2VyfCg/Omp1Yy4rKXVjd2ViKVtcXC8gXT8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIlVDXCIrQV1dLFsvbWljcm9tLitcXGJxYmNvcmVcXC8oW1xcd1xcLl0rKS9pLC9cXGJxYmNvcmVcXC8oW1xcd1xcLl0rKS4rbWljcm9tL2ldLFtmLFt1LFwiV2VDaGF0KFdpbikgRGVza3RvcFwiXV0sWy9taWNyb21lc3NlbmdlclxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LFwiV2VDaGF0XCJdXSxbL2tvbnF1ZXJvclxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LFwiS29ucXVlcm9yXCJdXSxbL3RyaWRlbnQuK3J2WzogXShbXFx3XFwuXXsxLDl9KVxcYi4rbGlrZSBnZWNrby9pXSxbZixbdSxcIklFXCJdXSxbL3lhKD86c2VhcmNoKT9icm93c2VyXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJZYW5kZXhcIl1dLFsvKGF2YXN0fGF2ZylcXC8oW1xcd1xcLl0rKS9pXSxbW3UsLyguKykvLFwiJDEgU2VjdXJlIFwiK0FdLGZdLFsvXFxiZm9jdXNcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxPK1wiIEZvY3VzXCJdXSxbL1xcYm9wdFxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LEIrXCIgVG91Y2hcIl1dLFsvY29jX2NvY1xcdytcXC8oW1xcd1xcLl0rKS9pXSxbZixbdSxcIkNvYyBDb2NcIl1dLFsvZG9sZmluXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJEb2xwaGluXCJdXSxbL2NvYXN0XFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsQitcIiBDb2FzdFwiXV0sWy9taXVpYnJvd3NlclxcLyhbXFx3XFwuXSspL2ldLFtmLFt1LFwiTUlVSSBcIitBXV0sWy9meGlvc1xcLyhbLVxcd1xcLl0rKS9pXSxbZixbdSxPXV0sWy9cXGJxaWh1fChxaT9obz9vP3wzNjApYnJvd3Nlci9pXSxbW3UsXCIzNjAgXCIrQV1dLFsvKG9jdWx1c3xzYW1zdW5nfHNhaWxmaXNofGh1YXdlaSlicm93c2VyXFwvKFtcXHdcXC5dKykvaV0sW1t1LC8oLispLyxcIiQxIFwiK0FdLGZdLFsvKGNvbW9kb19kcmFnb24pXFwvKFtcXHdcXC5dKykvaV0sW1t1LC9fL2csXCIgXCJdLGZdLFsvKGVsZWN0cm9uKVxcLyhbXFx3XFwuXSspIHNhZmFyaS9pLC8odGVzbGEpKD86IHF0Y2FyYnJvd3NlcnxcXC8oMjBcXGRcXGRcXC5bLVxcd1xcLl0rKSkvaSwvbT8ocXFicm93c2VyfGJhaWR1Ym94YXBwfDIzNDVFeHBsb3JlcilbXFwvIF0/KFtcXHdcXC5dKykvaV0sW3UsZl0sWy8obWV0YXNyKVtcXC8gXT8oW1xcd1xcLl0rKS9pLC8obGJicm93c2VyKS9pLC9cXFsobGlua2VkaW4pYXBwXFxdL2ldLFt1XSxbLygoPzpmYmFuXFwvZmJpb3N8ZmJfaWFiXFwvZmI0YSkoPyEuK2ZiYXYpfDtmYmF2XFwvKFtcXHdcXC5dKyk7KS9pXSxbW3UsSF0sZl0sWy8oa2FrYW8oPzp0YWxrfHN0b3J5KSlbXFwvIF0oW1xcd1xcLl0rKS9pLC8obmF2ZXIpXFwoLio/KFxcZCtcXC5bXFx3XFwuXSspLipcXCkvaSwvc2FmYXJpIChsaW5lKVxcLyhbXFx3XFwuXSspL2ksL1xcYihsaW5lKVxcLyhbXFx3XFwuXSspXFwvaWFiL2ksLyhjaHJvbWl1bXxpbnN0YWdyYW0pW1xcLyBdKFstXFx3XFwuXSspL2ldLFt1LGZdLFsvXFxiZ3NhXFwvKFtcXHdcXC5dKykgLipzYWZhcmlcXC8vaV0sW2YsW3UsXCJHU0FcIl1dLFsvbXVzaWNhbF9seSg/Oi4rYXBwXz92ZXJzaW9uXFwvfF8pKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJUaWtUb2tcIl1dLFsvaGVhZGxlc3NjaHJvbWUoPzpcXC8oW1xcd1xcLl0rKXwgKS9pXSxbZixbdSxDK1wiIEhlYWRsZXNzXCJdXSxbLyB3dlxcKS4rKGNocm9tZSlcXC8oW1xcd1xcLl0rKS9pXSxbW3UsQytcIiBXZWJWaWV3XCJdLGZdLFsvZHJvaWQuKyB2ZXJzaW9uXFwvKFtcXHdcXC5dKylcXGIuKyg/Om1vYmlsZSBzYWZhcml8c2FmYXJpKS9pXSxbZixbdSxcIkFuZHJvaWQgXCIrQV1dLFsvKGNocm9tZXxvbW5pd2VifGFyb3JhfFt0aXplbm9rYV17NX0gP2Jyb3dzZXIpXFwvdj8oW1xcd1xcLl0rKS9pXSxbdSxmXSxbL3ZlcnNpb25cXC8oW1xcd1xcLlxcLF0rKSAuKm1vYmlsZVxcL1xcdysgKHNhZmFyaSkvaV0sW2YsW3UsXCJNb2JpbGUgU2FmYXJpXCJdXSxbL3ZlcnNpb25cXC8oW1xcdyhcXC58XFwsKV0rKSAuKihtb2JpbGUgP3NhZmFyaXxzYWZhcmkpL2ldLFtmLHVdLFsvd2Via2l0Lis/KG1vYmlsZSA/c2FmYXJpfHNhZmFyaSkoXFwvW1xcd1xcLl0rKS9pXSxbdSxbZixzdHJNYXBwZXIsJF1dLFsvKHdlYmtpdHxraHRtbClcXC8oW1xcd1xcLl0rKS9pXSxbdSxmXSxbLyhuYXZpZ2F0b3J8bmV0c2NhcGVcXGQ/KVxcLyhbLVxcd1xcLl0rKS9pXSxbW3UsXCJOZXRzY2FwZVwiXSxmXSxbL21vYmlsZSB2cjsgcnY6KFtcXHdcXC5dKylcXCkuK2ZpcmVmb3gvaV0sW2YsW3UsTytcIiBSZWFsaXR5XCJdXSxbL2VraW9oZi4rKGZsb3cpXFwvKFtcXHdcXC5dKykvaSwvKHN3aWZ0Zm94KS9pLC8oaWNlZHJhZ29ufGljZXdlYXNlbHxjYW1pbm98Y2hpbWVyYXxmZW5uZWN8bWFlbW8gYnJvd3NlcnxtaW5pbW98Y29ua2Vyb3J8a2xhcilbXFwvIF0/KFtcXHdcXC5cXCtdKykvaSwvKHNlYW1vbmtleXxrLW1lbGVvbnxpY2VjYXR8aWNlYXBlfGZpcmViaXJkfHBob2VuaXh8cGFsZW1vb258YmFzaWxpc2t8d2F0ZXJmb3gpXFwvKFstXFx3XFwuXSspJC9pLC8oZmlyZWZveClcXC8oW1xcd1xcLl0rKS9pLC8obW96aWxsYSlcXC8oW1xcd1xcLl0rKSAuK3J2XFw6LitnZWNrb1xcL1xcZCsvaSwvKHBvbGFyaXN8bHlueHxkaWxsb3xpY2FifGRvcmlzfGFtYXlhfHczbXxuZXRzdXJmfHNsZWlwbmlyfG9iaWdvfG1vc2FpY3woPzpnb3xpY2V8dXApW1xcLiBdP2Jyb3dzZXIpWy1cXC8gXT92PyhbXFx3XFwuXSspL2ksLyhsaW5rcykgXFwoKFtcXHdcXC5dKykvaSwvcGFuYXNvbmljOyh2aWVyYSkvaV0sW3UsZl0sWy8oY29iYWx0KVxcLyhbXFx3XFwuXSspL2ldLFt1LFtmLC9tYXN0ZXIufGx0cy4vLFwiXCJdXV0sY3B1OltbLyg/OihhbWR8eCg/Oig/Ojg2fDY0KVstX10pP3x3b3d8d2luKTY0KVs7XFwpXS9pXSxbW2gsXCJhbWQ2NFwiXV0sWy8oaWEzMig/PTspKS9pXSxbW2gsbG93ZXJpemVdXSxbLygoPzppWzM0Nl18eCk4NilbO1xcKV0vaV0sW1toLFwiaWEzMlwiXV0sWy9cXGIoYWFyY2g2NHxhcm0odj84ZT9sP3xfPzY0KSlcXGIvaV0sW1toLFwiYXJtNjRcIl1dLFsvXFxiKGFybSg/OnZbNjddKT9odD9uP1tmbF1wPylcXGIvaV0sW1toLFwiYXJtaGZcIl1dLFsvd2luZG93cyAoY2V8bW9iaWxlKTsgcHBjOy9pXSxbW2gsXCJhcm1cIl1dLFsvKCg/OnBwY3xwb3dlcnBjKSg/OjY0KT8pKD86IG1hY3w7fFxcKSkvaV0sW1toLC9vd2VyLyx0LGxvd2VyaXplXV0sWy8oc3VuNFxcdylbO1xcKV0vaV0sW1toLFwic3BhcmNcIl1dLFsvKCg/OmF2cjMyfGlhNjQoPz07KSl8NjhrKD89XFwpKXxcXGJhcm0oPz12KD86WzEtN118WzUtN10xKWw/fDt8ZWFiaSl8KD89YXRtZWwgKWF2cnwoPzppcml4fG1pcHN8c3BhcmMpKD86NjQpP1xcYnxwYS1yaXNjKS9pXSxbW2gsbG93ZXJpemVdXV0sZGV2aWNlOltbL1xcYihzY2gtaVs4OV0wXFxkfHNody1tMzgwc3xzbS1bcHR4XVxcd3syLDR9fGd0LVtwbl1cXGR7Miw0fXxzZ2gtdDhbNTZdOXxuZXh1cyAxMCkvaV0sW2MsW20sVl0sW3Asa11dLFsvXFxiKCg/OnNbY2dwXWh8Z3R8c20pLVxcdyt8c2NbZy1dP1tcXGRdK2E/fGdhbGF4eSBuZXh1cykvaSwvc2Ftc3VuZ1stIF0oWy1cXHddKykvaSwvc2VjLShzZ2hcXHcrKS9pXSxbYyxbbSxWXSxbcCxnXV0sWy8oPzpcXC98XFwoKShpcCg/OmhvbmV8b2QpW1xcdywgXSopKD86XFwvfDspL2ldLFtjLFttLFNdLFtwLGddXSxbL1xcKChpcGFkKTtbLVxcd1xcKSw7IF0rYXBwbGUvaSwvYXBwbGVjb3JlbWVkaWFcXC9bXFx3XFwuXSsgXFwoKGlwYWQpL2ksL1xcYihpcGFkKVxcZFxcZD8sXFxkXFxkP1s7XFxdXS4raW9zL2ldLFtjLFttLFNdLFtwLGtdXSxbLyhtYWNpbnRvc2gpOy9pXSxbYyxbbSxTXV0sWy9cXGIoc2gtP1thbHR2el0/XFxkXFxkW2EtZWttXT8pL2ldLFtjLFttLERdLFtwLGddXSxbL1xcYigoPzphZ1tyc11bMjNdP3xiYWgyP3xzaHQ/fGJ0diktYT9bbHddXFxkezJ9KVxcYig/IS4rZFxcL3MpL2ldLFtjLFttLGpdLFtwLGtdXSxbLyg/Omh1YXdlaXxob25vcikoWy1cXHcgXSspWztcXCldL2ksL1xcYihuZXh1cyA2cHxcXHd7Miw0fWU/LVthdHVdP1tsbl1bXFxkeF1bMDEyMzU5Y11bYWRuXT8pXFxiKD8hLitkXFwvcykvaV0sW2MsW20sal0sW3AsZ11dLFsvXFxiKHBvY29bXFx3IF0rKSg/OiBidWl8XFwpKS9pLC9cXGI7IChcXHcrKSBidWlsZFxcL2htXFwxL2ksL1xcYihobVstXyBdP25vdGU/W18gXT8oPzpcXGRcXHcpPykgYnVpL2ksL1xcYihyZWRtaVtcXC1fIF0/KD86bm90ZXxrKT9bXFx3XyBdKykoPzogYnVpfFxcKSkvaSwvXFxiKG1pWy1fIF0/KD86YVxcZHxvbmV8b25lW18gXXBsdXN8bm90ZSBsdGV8bWF4fGNjKT9bXyBdPyg/OlxcZD9cXHc/KVtfIF0/KD86cGx1c3xzZXxsaXRlKT8pKD86IGJ1aXxcXCkpL2ldLFtbYywvXy9nLFwiIFwiXSxbbSxGXSxbcCxnXV0sWy9cXGIobWlbLV8gXT8oPzpwYWQpKD86W1xcd18gXSspKSg/OiBidWl8XFwpKS9pXSxbW2MsL18vZyxcIiBcIl0sW20sRl0sW3Asa11dLFsvOyAoXFx3KykgYnVpLisgb3Bwby9pLC9cXGIoY3BoWzEyXVxcZHszfXxwKD86YWZ8Y1thbF18ZFxcd3xlW2FyXSlbbXRdXFxkMHx4OTAwN3xhMTAxb3ApXFxiL2ldLFtjLFttLFwiT1BQT1wiXSxbcCxnXV0sWy92aXZvIChcXHcrKSg/OiBidWl8XFwpKS9pLC9cXGIodlsxMl1cXGR7M31cXHc/W2F0XSkoPzogYnVpfDspL2ldLFtjLFttLFwiVml2b1wiXSxbcCxnXV0sWy9cXGIocm14WzEyXVxcZHszfSkoPzogYnVpfDt8XFwpKS9pXSxbYyxbbSxcIlJlYWxtZVwiXSxbcCxnXV0sWy9cXGIobWlsZXN0b25lfGRyb2lkKD86WzItNHhdfCAoPzpiaW9uaWN8eDJ8cHJvfHJhenIpKT86PyggNGcpPylcXGJbXFx3IF0rYnVpbGRcXC8vaSwvXFxibW90KD86b3JvbGEpP1stIF0oXFx3KikvaSwvKCg/Om1vdG9bXFx3XFwoXFwpIF0rfHh0XFxkezMsNH18bmV4dXMgNikoPz0gYnVpfFxcKSkpL2ldLFtjLFttLE1dLFtwLGddXSxbL1xcYihtejYwXFxkfHhvb21bMiBdezAsMn0pIGJ1aWxkXFwvL2ldLFtjLFttLE1dLFtwLGtdXSxbLygoPz1sZyk/W3ZsXWtcXC0/XFxkezN9KSBidWl8IDNcXC5bLVxcdzsgXXsxMH1sZz8tKFswNmN2OV17Myw0fSkvaV0sW2MsW20sUF0sW3Asa11dLFsvKGxtKD86LT9mMTAwW252XT98LVtcXHdcXC5dKykoPz0gYnVpfFxcKSl8bmV4dXMgWzQ1XSkvaSwvXFxibGdbLWU7XFwvIF0rKCg/IWJyb3dzZXJ8bmV0Y2FzdHxhbmRyb2lkIHR2KVxcdyspL2ksL1xcYmxnLT8oW1xcZFxcd10rKSBidWkvaV0sW2MsW20sUF0sW3AsZ11dLFsvKGlkZWF0YWJbLVxcdyBdKykvaSwvbGVub3ZvID8oc1s1Nl0wMDBbLVxcd10rfHRhYig/OltcXHcgXSspfHl0Wy1cXGRcXHddezZ9fHRiWy1cXGRcXHddezZ9KS9pXSxbYyxbbSxcIkxlbm92b1wiXSxbcCxrXV0sWy8oPzptYWVtb3xub2tpYSkuKihuOTAwfGx1bWlhIFxcZCspL2ksL25va2lhWy1fIF0/KFstXFx3XFwuXSopL2ldLFtbYywvXy9nLFwiIFwiXSxbbSxcIk5va2lhXCJdLFtwLGddXSxbLyhwaXhlbCBjKVxcYi9pXSxbYyxbbSxVXSxbcCxrXV0sWy9kcm9pZC4rOyAocGl4ZWxbXFxkYXhsIF17MCw2fSkoPzogYnVpfFxcKSkvaV0sW2MsW20sVV0sW3AsZ11dLFsvZHJvaWQuKyAoYT9cXGRbMC0yXXsyfXNvfFtjLWddXFxkezR9fHNvWy1nbF1cXHcrfHhxLWFcXHdbNC03XVsxMl0pKD89IGJ1aXxcXCkuK2Nocm9tZVxcLyg/IVsxLTZdezAsMX1cXGRcXC4pKS9pXSxbYyxbbSxJXSxbcCxnXV0sWy9zb255IHRhYmxldCBbcHNdL2ksL1xcYig/OnNvbnkpP3NncFxcdysoPzogYnVpfFxcKSkvaV0sW1tjLFwiWHBlcmlhIFRhYmxldFwiXSxbbSxJXSxbcCxrXV0sWy8gKGtiMjAwNXxpbjIwWzEyXTV8YmUyMFsxMl1bNTldKVxcYi9pLC8oPzpvbmUpPyg/OnBsdXMpPyAoYVxcZDBcXGRcXGQpKD86IGJ8XFwpKS9pXSxbYyxbbSxcIk9uZVBsdXNcIl0sW3AsZ11dLFsvKGFsZXhhKXdlYm0vaSwvKGtmW2Etel17Mn13aXxhZW9bYy1yXXsyfSkoIGJ1aXxcXCkpL2ksLyhrZlthLXpdKykoIGJ1aXxcXCkpLitzaWxrXFwvL2ldLFtjLFttLFRdLFtwLGtdXSxbLygoPzpzZHxrZilbMDM0OWhpam9yc3R1d10rKSggYnVpfFxcKSkuK3NpbGtcXC8vaV0sW1tjLC8oLispL2csXCJGaXJlIFBob25lICQxXCJdLFttLFRdLFtwLGddXSxbLyhwbGF5Ym9vayk7Wy1cXHdcXCksOyBdKyhyaW0pL2ldLFtjLG0sW3Asa11dLFsvXFxiKCg/OmJiW2EtZl18c3RbaHZdKTEwMC1cXGQpL2ksL1xcKGJiMTA7IChcXHcrKS9pXSxbYyxbbSxOXSxbcCxnXV0sWy8oPzpcXGJ8YXN1c18pKHRyYW5zZm9bcHJpbWUgXXs0LDEwfSBcXHcrfGVlZXBjfHNsaWRlciBcXHcrfG5leHVzIDd8cGFkZm9uZXxwMDBbY2pdKS9pXSxbYyxbbSx6XSxbcCxrXV0sWy8gKHpbYmVzXTZbMDI3XVswMTJdW2ttXVtsc118emVuZm9uZSBcXGRcXHc/KVxcYi9pXSxbYyxbbSx6XSxbcCxnXV0sWy8obmV4dXMgOSkvaV0sW2MsW20sXCJIVENcIl0sW3Asa11dLFsvKGh0YylbLTtfIF17MSwyfShbXFx3IF0rKD89XFwpfCBidWkpfFxcdyspL2ksLyh6dGUpWy0gXShbXFx3IF0rPykoPzogYnVpfFxcL3xcXCkpL2ksLyhhbGNhdGVsfGdlZWtzcGhvbmV8bmV4aWFufHBhbmFzb25pYyg/ISg/Ojt8XFwuKSl8c29ueSg/IS1icmEpKVstXyBdPyhbLVxcd10qKS9pXSxbbSxbYywvXy9nLFwiIFwiXSxbcCxnXV0sWy9kcm9pZC4rOyAoW2FiXVsxLTddLT9bMDE3OGFdXFxkXFxkPykvaV0sW2MsW20sXCJBY2VyXCJdLFtwLGtdXSxbL2Ryb2lkLis7IChtWzEtNV0gbm90ZSkgYnVpL2ksL1xcYm16LShbLVxcd117Mix9KS9pXSxbYyxbbSxcIk1laXp1XCJdLFtwLGddXSxbLyhibGFja2JlcnJ5fGJlbnF8cGFsbSg/PVxcLSl8c29ueWVyaWNzc29ufGFjZXJ8YXN1c3xkZWxsfG1laXp1fG1vdG9yb2xhfHBvbHl0cm9uKVstXyBdPyhbLVxcd10qKS9pLC8oaHApIChbXFx3IF0rXFx3KS9pLC8oYXN1cyktPyhcXHcrKS9pLC8obWljcm9zb2Z0KTsgKGx1bWlhW1xcdyBdKykvaSwvKGxlbm92bylbLV8gXT8oWy1cXHddKykvaSwvKGpvbGxhKS9pLC8ob3BwbykgPyhbXFx3IF0rKSBidWkvaV0sW20sYyxbcCxnXV0sWy8oa29ibylcXHMoZXJlYWRlcnx0b3VjaCkvaSwvKGFyY2hvcykgKGdhbWVwYWQyPykvaSwvKGhwKS4rKHRvdWNocGFkKD8hLit0YWJsZXQpfHRhYmxldCkvaSwvKGtpbmRsZSlcXC8oW1xcd1xcLl0rKS9pLC8obm9vaylbXFx3IF0rYnVpbGRcXC8oXFx3KykvaSwvKGRlbGwpIChzdHJlYVtrcHJcXGQgXSpbXFxka29dKS9pLC8obGVbLSBdK3BhbilbLSBdKyhcXHd7MSw5fSkgYnVpL2ksLyh0cmluaXR5KVstIF0qKHRcXGR7M30pIGJ1aS9pLC8oZ2lnYXNldClbLSBdKyhxXFx3ezEsOX0pIGJ1aS9pLC8odm9kYWZvbmUpIChbXFx3IF0rKSg/OlxcKXwgYnVpKS9pXSxbbSxjLFtwLGtdXSxbLyhzdXJmYWNlIGR1bykvaV0sW2MsW20sUl0sW3Asa11dLFsvZHJvaWQgW1xcZFxcLl0rOyAoZnBcXGR1PykoPzogYnxcXCkpL2ldLFtjLFttLFwiRmFpcnBob25lXCJdLFtwLGddXSxbLyh1MzA0YWEpL2ldLFtjLFttLFwiQVQmVFwiXSxbcCxnXV0sWy9cXGJzaWUtKFxcdyopL2ldLFtjLFttLFwiU2llbWVuc1wiXSxbcCxnXV0sWy9cXGIocmN0XFx3KykgYi9pXSxbYyxbbSxcIlJDQVwiXSxbcCxrXV0sWy9cXGIodmVudWVbXFxkIF17Miw3fSkgYi9pXSxbYyxbbSxcIkRlbGxcIl0sW3Asa11dLFsvXFxiKHEoPzptdnx0YSlcXHcrKSBiL2ldLFtjLFttLFwiVmVyaXpvblwiXSxbcCxrXV0sWy9cXGIoPzpiYXJuZXNbJiBdK25vYmxlIHxibltydF0pKFtcXHdcXCsgXSopIGIvaV0sW2MsW20sXCJCYXJuZXMgJiBOb2JsZVwiXSxbcCxrXV0sWy9cXGIodG1cXGR7M31cXHcrKSBiL2ldLFtjLFttLFwiTnVWaXNpb25cIl0sW3Asa11dLFsvXFxiKGs4OCkgYi9pXSxbYyxbbSxcIlpURVwiXSxbcCxrXV0sWy9cXGIobnhcXGR7M31qKSBiL2ldLFtjLFttLFwiWlRFXCJdLFtwLGddXSxbL1xcYihnZW5cXGR7M30pIGIuKzQ5aC9pXSxbYyxbbSxcIlN3aXNzXCJdLFtwLGddXSxbL1xcYih6dXJcXGR7M30pIGIvaV0sW2MsW20sXCJTd2lzc1wiXSxbcCxrXV0sWy9cXGIoKHpla2kpP3RiLipcXGIpIGIvaV0sW2MsW20sXCJaZWtpXCJdLFtwLGtdXSxbL1xcYihbeXJdXFxkezJ9KSBiL2ksL1xcYihkcmFnb25bLSBdK3RvdWNoIHxkdCkoXFx3ezV9KSBiL2ldLFtbbSxcIkRyYWdvbiBUb3VjaFwiXSxjLFtwLGtdXSxbL1xcYihucy0/XFx3ezAsOX0pIGIvaV0sW2MsW20sXCJJbnNpZ25pYVwiXSxbcCxrXV0sWy9cXGIoKG54YXxuZXh0KS0/XFx3ezAsOX0pIGIvaV0sW2MsW20sXCJOZXh0Qm9va1wiXSxbcCxrXV0sWy9cXGIoeHRyZW1lXFxfKT8odigxWzA0NV18MlswMTVdfFszNDY5XTB8N1swNV0pKSBiL2ldLFtbbSxcIlZvaWNlXCJdLGMsW3AsZ11dLFsvXFxiKGx2dGVsXFwtKT8odjFbMTJdKSBiL2ldLFtbbSxcIkx2VGVsXCJdLGMsW3AsZ11dLFsvXFxiKHBoLTEpIC9pXSxbYyxbbSxcIkVzc2VudGlhbFwiXSxbcCxnXV0sWy9cXGIodigxMDBtZHw3MDBuYXw3MDExfDkxN2cpLipcXGIpIGIvaV0sW2MsW20sXCJFbnZpemVuXCJdLFtwLGtdXSxbL1xcYih0cmlvWy1cXHdcXC4gXSspIGIvaV0sW2MsW20sXCJNYWNoU3BlZWRcIl0sW3Asa11dLFsvXFxidHVfKDE0OTEpIGIvaV0sW2MsW20sXCJSb3RvclwiXSxbcCxrXV0sWy8oc2hpZWxkW1xcdyBdKykgYi9pXSxbYyxbbSxcIk52aWRpYVwiXSxbcCxrXV0sWy8oc3ByaW50KSAoXFx3KykvaV0sW20sYyxbcCxnXV0sWy8oa2luXFwuW29uZXR3XXszfSkvaV0sW1tjLC9cXC4vZyxcIiBcIl0sW20sUl0sW3AsZ11dLFsvZHJvaWQuKzsgKGNjNjY2Nj98ZXQ1WzE2XXxtY1syMzldWzIzXXg/fHZjOFswM114PylcXCkvaV0sW2MsW20sR10sW3Asa11dLFsvZHJvaWQuKzsgKGVjMzB8cHMyMHx0Y1syLThdXFxkW2t4XSlcXCkvaV0sW2MsW20sR10sW3AsZ11dLFsvc21hcnQtdHYuKyhzYW1zdW5nKS9pXSxbbSxbcCx4XV0sWy9oYmJ0di4rbWFwbGU7KFxcZCspL2ldLFtbYywvXi8sXCJTbWFydFRWXCJdLFttLFZdLFtwLHhdXSxbLyhudXg7IG5ldGNhc3QuK3NtYXJ0dHZ8bGcgKG5ldGNhc3RcXC50di0yMDFcXGR8YW5kcm9pZCB0dikpL2ldLFtbbSxQXSxbcCx4XV0sWy8oYXBwbGUpID90di9pXSxbbSxbYyxTK1wiIFRWXCJdLFtwLHhdXSxbL2Nya2V5L2ldLFtbYyxDK1wiY2FzdFwiXSxbbSxVXSxbcCx4XV0sWy9kcm9pZC4rYWZ0KFxcdykoIGJ1aXxcXCkpL2ldLFtjLFttLFRdLFtwLHhdXSxbL1xcKGR0dltcXCk7XS4rKGFxdW9zKS9pLC8oYXF1b3MtdHZbXFx3IF0rKVxcKS9pXSxbYyxbbSxEXSxbcCx4XV0sWy8oYnJhdmlhW1xcdyBdKykoIGJ1aXxcXCkpL2ldLFtjLFttLEldLFtwLHhdXSxbLyhtaXR2LVxcd3s1fSkgYnVpL2ldLFtjLFttLEZdLFtwLHhdXSxbL0hiYnR2LioodGVjaG5pc2F0KSAoLiopOy9pXSxbbSxjLFtwLHhdXSxbL1xcYihyb2t1KVtcXGR4XSpbXFwpXFwvXSgoPzpkdnAtKT9bXFxkXFwuXSopL2ksL2hiYnR2XFwvXFxkK1xcLlxcZCtcXC5cXGQrICtcXChbXFx3XFwrIF0qOyAqKFtcXHdcXGRdW147XSopOyhbXjtdKikvaV0sW1ttLHRyaW1dLFtjLHRyaW1dLFtwLHhdXSxbL1xcYihhbmRyb2lkIHR2fHNtYXJ0Wy0gXT90dnxvcGVyYSB0dnx0djsgcnY6KVxcYi9pXSxbW3AseF1dLFsvKG91eWEpL2ksLyhuaW50ZW5kbykgKFt3aWRzM3V0Y2hdKykvaV0sW20sYyxbcCx2XV0sWy9kcm9pZC4rOyAoc2hpZWxkKSBidWkvaV0sW2MsW20sXCJOdmlkaWFcIl0sW3Asdl1dLFsvKHBsYXlzdGF0aW9uIFszNDVwb3J0YWJsZXZpXSspL2ldLFtjLFttLEldLFtwLHZdXSxbL1xcYih4Ym94KD86IG9uZSk/KD8hOyB4Ym94KSlbXFwpOyBdL2ldLFtjLFttLFJdLFtwLHZdXSxbLygocGViYmxlKSlhcHAvaV0sW20sYyxbcCxfXV0sWy8od2F0Y2gpKD86ID9vc1ssXFwvXXxcXGQsXFxkXFwvKVtcXGRcXC5dKy9pXSxbYyxbbSxTXSxbcCxfXV0sWy9kcm9pZC4rOyAoZ2xhc3MpIFxcZC9pXSxbYyxbbSxVXSxbcCxfXV0sWy9kcm9pZC4rOyAod3Q2Mz8wezIsM30pXFwpL2ldLFtjLFttLEddLFtwLF9dXSxbLyhxdWVzdCggMnwgcHJvKT8pL2ldLFtjLFttLEhdLFtwLF9dXSxbLyh0ZXNsYSkoPzogcXRjYXJicm93c2VyfFxcL1stXFx3XFwuXSspL2ldLFttLFtwLHldXSxbLyhhZW9iYylcXGIvaV0sW2MsW20sVF0sW3AseV1dLFsvZHJvaWQgLis/OyAoW147XSs/KSg/OiBidWl8XFwpIGFwcGxldykuKz8gbW9iaWxlIHNhZmFyaS9pXSxbYyxbcCxnXV0sWy9kcm9pZCAuKz87IChbXjtdKz8pKD86IGJ1aXxcXCkgYXBwbGV3KS4rPyg/ISBtb2JpbGUpIHNhZmFyaS9pXSxbYyxbcCxrXV0sWy9cXGIoKHRhYmxldHx0YWIpWztcXC9dfGZvY3VzXFwvXFxkKD8hLittb2JpbGUpKS9pXSxbW3Asa11dLFsvKHBob25lfG1vYmlsZSg/Ols7XFwvXXwgWyBcXHdcXC9cXC5dKnNhZmFyaSl8cGRhKD89Lit3aW5kb3dzIGNlKSkvaV0sW1twLGddXSxbLyhhbmRyb2lkWy1cXHdcXC4gXXswLDl9KTsuK2J1aWwvaV0sW2MsW20sXCJHZW5lcmljXCJdXV0sZW5naW5lOltbL3dpbmRvd3MuKyBlZGdlXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsRStcIkhUTUxcIl1dLFsvd2Via2l0XFwvNTM3XFwuMzYuK2Nocm9tZVxcLyg/ITI3KShbXFx3XFwuXSspL2ldLFtmLFt1LFwiQmxpbmtcIl1dLFsvKHByZXN0bylcXC8oW1xcd1xcLl0rKS9pLC8od2Via2l0fHRyaWRlbnR8bmV0ZnJvbnR8bmV0c3VyZnxhbWF5YXxseW54fHczbXxnb2FubmEpXFwvKFtcXHdcXC5dKykvaSwvZWtpb2goZmxvdylcXC8oW1xcd1xcLl0rKS9pLC8oa2h0bWx8dGFzbWFufGxpbmtzKVtcXC8gXVxcKD8oW1xcd1xcLl0rKS9pLC8oaWNhYilbXFwvIF0oWzIzXVxcLltcXGRcXC5dKykvaSwvXFxiKGxpYndlYikvaV0sW3UsZl0sWy9ydlxcOihbXFx3XFwuXXsxLDl9KVxcYi4rKGdlY2tvKS9pXSxbZix1XV0sb3M6W1svbWljcm9zb2Z0ICh3aW5kb3dzKSAodmlzdGF8eHApL2ldLFt1LGZdLFsvKHdpbmRvd3MpIG50IDZcXC4yOyAoYXJtKS9pLC8od2luZG93cyAoPzpwaG9uZSg/OiBvcyk/fG1vYmlsZSkpW1xcLyBdPyhbXFxkXFwuXFx3IF0qKS9pLC8od2luZG93cylbXFwvIF0/KFtudGNlXFxkXFwuIF0rXFx3KSg/IS4reGJveCkvaV0sW3UsW2Ysc3RyTWFwcGVyLFhdXSxbLyh3aW4oPz0zfDl8bil8d2luIDl4ICkoW250XFxkXFwuXSspL2ldLFtbdSxcIldpbmRvd3NcIl0sW2Ysc3RyTWFwcGVyLFhdXSxbL2lwW2hvbmVhZF17Miw0fVxcYig/Oi4qb3MgKFtcXHddKykgbGlrZSBtYWN8OyBvcGVyYSkvaSwvaW9zO2Zic3ZcXC8oW1xcZFxcLl0rKS9pLC9jZm5ldHdvcmtcXC8uK2Rhcndpbi9pXSxbW2YsL18vZyxcIi5cIl0sW3UsXCJpT1NcIl1dLFsvKG1hYyBvcyB4KSA/KFtcXHdcXC4gXSopL2ksLyhtYWNpbnRvc2h8bWFjX3Bvd2VycGNcXGIpKD8hLitoYWlrdSkvaV0sW1t1LFpdLFtmLC9fL2csXCIuXCJdXSxbL2Ryb2lkIChbXFx3XFwuXSspXFxiLisoYW5kcm9pZFstIF14ODZ8aGFybW9ueW9zKS9pXSxbZix1XSxbLyhhbmRyb2lkfHdlYm9zfHFueHxiYWRhfHJpbSB0YWJsZXQgb3N8bWFlbW98bWVlZ298c2FpbGZpc2gpWy1cXC8gXT8oW1xcd1xcLl0qKS9pLC8oYmxhY2tiZXJyeSlcXHcqXFwvKFtcXHdcXC5dKikvaSwvKHRpemVufGthaW9zKVtcXC8gXShbXFx3XFwuXSspL2ksL1xcKChzZXJpZXM0MCk7L2ldLFt1LGZdLFsvXFwoYmIoMTApOy9pXSxbZixbdSxOXV0sWy8oPzpzeW1iaWFuID9vc3xzeW1ib3N8czYwKD89Oyl8c2VyaWVzNjApWy1cXC8gXT8oW1xcd1xcLl0qKS9pXSxbZixbdSxcIlN5bWJpYW5cIl1dLFsvbW96aWxsYVxcL1tcXGRcXC5dKyBcXCgoPzptb2JpbGV8dGFibGV0fHR2fG1vYmlsZTsgW1xcdyBdKyk7IHJ2Oi4rIGdlY2tvXFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsTytcIiBPU1wiXV0sWy93ZWIwczsuK3J0KHR2KS9pLC9cXGIoPzpocCk/d29zKD86YnJvd3Nlcik/XFwvKFtcXHdcXC5dKykvaV0sW2YsW3UsXCJ3ZWJPU1wiXV0sWy93YXRjaCg/OiA/b3NbLFxcL118XFxkLFxcZFxcLykoW1xcZFxcLl0rKS9pXSxbZixbdSxcIndhdGNoT1NcIl1dLFsvY3JrZXlcXC8oW1xcZFxcLl0rKS9pXSxbZixbdSxDK1wiY2FzdFwiXV0sWy8oY3JvcykgW1xcd10rKD86XFwpfCAoW1xcd1xcLl0rKVxcYikvaV0sW1t1LExdLGZdLFsvcGFuYXNvbmljOyh2aWVyYSkvaSwvKG5ldHJhbmdlKW1taC9pLC8obmV0dHYpXFwvKFxcZCtcXC5bXFx3XFwuXSspL2ksLyhuaW50ZW5kb3xwbGF5c3RhdGlvbikgKFt3aWRzMzQ1cG9ydGFibGV2dWNoXSspL2ksLyh4Ym94KTsgK3hib3ggKFteXFwpO10rKS9pLC9cXGIoam9saXxwYWxtKVxcYiA/KD86b3MpP1xcLz8oW1xcd1xcLl0qKS9pLC8obWludClbXFwvXFwoXFwpIF0/KFxcdyopL2ksLyhtYWdlaWF8dmVjdG9ybGludXgpWzsgXS9pLC8oW2t4bG5dP3VidW50dXxkZWJpYW58c3VzZXxvcGVuc3VzZXxnZW50b298YXJjaCg/PSBsaW51eCl8c2xhY2t3YXJlfGZlZG9yYXxtYW5kcml2YXxjZW50b3N8cGNsaW51eG9zfHJlZCA/aGF0fHplbndhbGt8bGlucHVzfHJhc3BiaWFufHBsYW4gOXxtaW5peHxyaXNjIG9zfGNvbnRpa2l8ZGVlcGlufG1hbmphcm98ZWxlbWVudGFyeSBvc3xzYWJheW9ufGxpbnNwaXJlKSg/OiBnbnVcXC9saW51eCk/KD86IGVudGVycHJpc2UpPyg/OlstIF1saW51eCk/KD86LWdudSk/Wy1cXC8gXT8oPyFjaHJvbXxwYWNrYWdlKShbLVxcd1xcLl0qKS9pLC8oaHVyZHxsaW51eCkgPyhbXFx3XFwuXSopL2ksLyhnbnUpID8oW1xcd1xcLl0qKS9pLC9cXGIoWy1mcmVudG9wY2doc117MCw1fWJzZHxkcmFnb25mbHkpW1xcLyBdPyg/IWFtZHxbaXgzNDZdezEsMn04NikoW1xcd1xcLl0qKS9pLC8oaGFpa3UpIChcXHcrKS9pXSxbdSxmXSxbLyhzdW5vcykgPyhbXFx3XFwuXFxkXSopL2ldLFtbdSxcIlNvbGFyaXNcIl0sZl0sWy8oKD86b3Blbik/c29sYXJpcylbLVxcLyBdPyhbXFx3XFwuXSopL2ksLyhhaXgpICgoXFxkKSg/PVxcLnxcXCl8IClbXFx3XFwuXSkqL2ksL1xcYihiZW9zfG9zXFwvMnxhbWlnYW9zfG1vcnBob3N8b3BlbnZtc3xmdWNoc2lhfGhwLXV4fHNlcmVuaXR5b3MpL2ksLyh1bml4KSA/KFtcXHdcXC5dKikvaV0sW3UsZl1dfTt2YXIgVUFQYXJzZXI9ZnVuY3Rpb24oaSxlKXtpZih0eXBlb2YgaT09PXcpe2U9aTtpPWF9aWYoISh0aGlzIGluc3RhbmNlb2YgVUFQYXJzZXIpKXtyZXR1cm4gbmV3IFVBUGFyc2VyKGksZSkuZ2V0UmVzdWx0KCl9dmFyIHI9dHlwZW9mIG8hPT1iJiZvLm5hdmlnYXRvcj9vLm5hdmlnYXRvcjphO3ZhciBuPWl8fChyJiZyLnVzZXJBZ2VudD9yLnVzZXJBZ2VudDp0KTt2YXIgdj1yJiZyLnVzZXJBZ2VudERhdGE/ci51c2VyQWdlbnREYXRhOmE7dmFyIHg9ZT9leHRlbmQoSyxlKTpLO3ZhciBfPXImJnIudXNlckFnZW50PT1uO3RoaXMuZ2V0QnJvd3Nlcj1mdW5jdGlvbigpe3ZhciBpPXt9O2lbdV09YTtpW2ZdPWE7cmd4TWFwcGVyLmNhbGwoaSxuLHguYnJvd3Nlcik7aVtkXT1tYWpvcml6ZShpW2ZdKTtpZihfJiZyJiZyLmJyYXZlJiZ0eXBlb2Ygci5icmF2ZS5pc0JyYXZlPT1zKXtpW3VdPVwiQnJhdmVcIn1yZXR1cm4gaX07dGhpcy5nZXRDUFU9ZnVuY3Rpb24oKXt2YXIgaT17fTtpW2hdPWE7cmd4TWFwcGVyLmNhbGwoaSxuLHguY3B1KTtyZXR1cm4gaX07dGhpcy5nZXREZXZpY2U9ZnVuY3Rpb24oKXt2YXIgaT17fTtpW21dPWE7aVtjXT1hO2lbcF09YTtyZ3hNYXBwZXIuY2FsbChpLG4seC5kZXZpY2UpO2lmKF8mJiFpW3BdJiZ2JiZ2Lm1vYmlsZSl7aVtwXT1nfWlmKF8mJmlbY109PVwiTWFjaW50b3NoXCImJnImJnR5cGVvZiByLnN0YW5kYWxvbmUhPT1iJiZyLm1heFRvdWNoUG9pbnRzJiZyLm1heFRvdWNoUG9pbnRzPjIpe2lbY109XCJpUGFkXCI7aVtwXT1rfXJldHVybiBpfTt0aGlzLmdldEVuZ2luZT1mdW5jdGlvbigpe3ZhciBpPXt9O2lbdV09YTtpW2ZdPWE7cmd4TWFwcGVyLmNhbGwoaSxuLHguZW5naW5lKTtyZXR1cm4gaX07dGhpcy5nZXRPUz1mdW5jdGlvbigpe3ZhciBpPXt9O2lbdV09YTtpW2ZdPWE7cmd4TWFwcGVyLmNhbGwoaSxuLHgub3MpO2lmKF8mJiFpW3VdJiZ2JiZ2LnBsYXRmb3JtIT1cIlVua25vd25cIil7aVt1XT12LnBsYXRmb3JtLnJlcGxhY2UoL2Nocm9tZSBvcy9pLEwpLnJlcGxhY2UoL21hY29zL2ksWil9cmV0dXJuIGl9O3RoaXMuZ2V0UmVzdWx0PWZ1bmN0aW9uKCl7cmV0dXJue3VhOnRoaXMuZ2V0VUEoKSxicm93c2VyOnRoaXMuZ2V0QnJvd3NlcigpLGVuZ2luZTp0aGlzLmdldEVuZ2luZSgpLG9zOnRoaXMuZ2V0T1MoKSxkZXZpY2U6dGhpcy5nZXREZXZpY2UoKSxjcHU6dGhpcy5nZXRDUFUoKX19O3RoaXMuZ2V0VUE9ZnVuY3Rpb24oKXtyZXR1cm4gbn07dGhpcy5zZXRVQT1mdW5jdGlvbihpKXtuPXR5cGVvZiBpPT09bCYmaS5sZW5ndGg+cT90cmltKGkscSk6aTtyZXR1cm4gdGhpc307dGhpcy5zZXRVQShuKTtyZXR1cm4gdGhpc307VUFQYXJzZXIuVkVSU0lPTj1yO1VBUGFyc2VyLkJST1dTRVI9ZW51bWVyaXplKFt1LGYsZF0pO1VBUGFyc2VyLkNQVT1lbnVtZXJpemUoW2hdKTtVQVBhcnNlci5ERVZJQ0U9ZW51bWVyaXplKFtjLG0scCx2LGcseCxrLF8seV0pO1VBUGFyc2VyLkVOR0lORT1VQVBhcnNlci5PUz1lbnVtZXJpemUoW3UsZl0pO2lmKHR5cGVvZiBlIT09Yil7aWYoXCJvYmplY3RcIiE9PWImJmkuZXhwb3J0cyl7ZT1pLmV4cG9ydHM9VUFQYXJzZXJ9ZS5VQVBhcnNlcj1VQVBhcnNlcn1lbHNle2lmKHR5cGVvZiBkZWZpbmU9PT1zJiZkZWZpbmUuYW1kKXtkZWZpbmUoKGZ1bmN0aW9uKCl7cmV0dXJuIFVBUGFyc2VyfSkpfWVsc2UgaWYodHlwZW9mIG8hPT1iKXtvLlVBUGFyc2VyPVVBUGFyc2VyfX12YXIgUT10eXBlb2YgbyE9PWImJihvLmpRdWVyeXx8by5aZXB0byk7aWYoUSYmIVEudWEpe3ZhciBZPW5ldyBVQVBhcnNlcjtRLnVhPVkuZ2V0UmVzdWx0KCk7US51YS5nZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gWS5nZXRVQSgpfTtRLnVhLnNldD1mdW5jdGlvbihpKXtZLnNldFVBKGkpO3ZhciBlPVkuZ2V0UmVzdWx0KCk7Zm9yKHZhciBvIGluIGUpe1EudWFbb109ZVtvXX19fX0pKHR5cGVvZiB3aW5kb3c9PT1cIm9iamVjdFwiP3dpbmRvdzp0aGlzKX19O3ZhciBlPXt9O2Z1bmN0aW9uIF9fbmNjd3Bja19yZXF1aXJlX18obyl7dmFyIGE9ZVtvXTtpZihhIT09dW5kZWZpbmVkKXtyZXR1cm4gYS5leHBvcnRzfXZhciByPWVbb109e2V4cG9ydHM6e319O3ZhciB0PXRydWU7dHJ5e2lbb10uY2FsbChyLmV4cG9ydHMscixyLmV4cG9ydHMsX19uY2N3cGNrX3JlcXVpcmVfXyk7dD1mYWxzZX1maW5hbGx5e2lmKHQpZGVsZXRlIGVbb119cmV0dXJuIHIuZXhwb3J0c31pZih0eXBlb2YgX19uY2N3cGNrX3JlcXVpcmVfXyE9PVwidW5kZWZpbmVkXCIpX19uY2N3cGNrX3JlcXVpcmVfXy5hYj1fX2Rpcm5hbWUrXCIvXCI7dmFyIG89X19uY2N3cGNrX3JlcXVpcmVfXygyMjYpO21vZHVsZS5leHBvcnRzPW99KSgpOyJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js\n");
+
+/***/ }),
+
/***/ "(rsc)/./node_modules/next/dist/lib/batcher.js":
/*!***********************************************!*\
!*** ./node_modules/next/dist/lib/batcher.js ***!
@@ -811,6 +856,28 @@ const { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/
module.exports = createProxy("/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js")
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/server/after/after.js":
+/*!******************************************************!*\
+ !*** ./node_modules/next/dist/server/after/after.js ***!
+ \******************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"after\", ({\n enumerable: true,\n get: function() {\n return after;\n }\n}));\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nfunction after(task) {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n // TODO(after): the linked docs page talks about *dynamic* APIs, which after soon won't be anymore\n throw Object.defineProperty(new Error('`after` was called outside a request scope. Read more: https://nextjs.org/docs/messages/next-dynamic-api-wrong-context'), \"__NEXT_ERROR_CODE\", {\n value: \"E468\",\n enumerable: false,\n configurable: true\n });\n }\n const { afterContext } = workStore;\n return afterContext.after(task);\n}\n\n//# sourceMappingURL=after.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hZnRlci9hZnRlci5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLHlDQUF3QztBQUN4QztBQUNBO0FBQ0E7QUFDQTtBQUNBLENBQUMsRUFBQztBQUNGLGtDQUFrQyxtQkFBTyxDQUFDLGdGQUEyQztBQUNyRjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0EsWUFBWSxlQUFlO0FBQzNCO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL2FmdGVyL2FmdGVyLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiYWZ0ZXJcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFmdGVyO1xuICAgIH1cbn0pO1xuY29uc3QgX3dvcmthc3luY3N0b3JhZ2VleHRlcm5hbCA9IHJlcXVpcmUoXCIuLi9hcHAtcmVuZGVyL3dvcmstYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmZ1bmN0aW9uIGFmdGVyKHRhc2spIHtcbiAgICBjb25zdCB3b3JrU3RvcmUgPSBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsLndvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKTtcbiAgICBpZiAoIXdvcmtTdG9yZSkge1xuICAgICAgICAvLyBUT0RPKGFmdGVyKTogdGhlIGxpbmtlZCBkb2NzIHBhZ2UgdGFsa3MgYWJvdXQgKmR5bmFtaWMqIEFQSXMsIHdoaWNoIGFmdGVyIHNvb24gd29uJ3QgYmUgYW55bW9yZVxuICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdgYWZ0ZXJgIHdhcyBjYWxsZWQgb3V0c2lkZSBhIHJlcXVlc3Qgc2NvcGUuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1keW5hbWljLWFwaS13cm9uZy1jb250ZXh0JyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgdmFsdWU6IFwiRTQ2OFwiLFxuICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIGNvbnN0IHsgYWZ0ZXJDb250ZXh0IH0gPSB3b3JrU3RvcmU7XG4gICAgcmV0dXJuIGFmdGVyQ29udGV4dC5hZnRlcih0YXNrKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YWZ0ZXIuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/after/after.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/server/after/index.js":
+/*!******************************************************!*\
+ !*** ./node_modules/next/dist/server/after/index.js ***!
+ \******************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && 0;\n_export_star(__webpack_require__(/*! ./after */ \"(rsc)/./node_modules/next/dist/server/after/after.js\"), exports);\nfunction _export_star(from, to) {\n Object.keys(from).forEach(function(k) {\n if (k !== \"default\" && !Object.prototype.hasOwnProperty.call(to, k)) {\n Object.defineProperty(to, k, {\n enumerable: true,\n get: function() {\n return from[k];\n }\n });\n }\n });\n return from;\n}\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9hZnRlci9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLEtBQUssQ0FBNEI7QUFDakMsYUFBYSxtQkFBTyxDQUFDLHFFQUFTO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQSxLQUFLO0FBQ0w7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvYWZ0ZXIvaW5kZXguanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIF9fZXhwb3J0KHJlcXVpcmUoXCIuL2FmdGVyXCIpKTtcbl9leHBvcnRfc3RhcihyZXF1aXJlKFwiLi9hZnRlclwiKSwgZXhwb3J0cyk7XG5mdW5jdGlvbiBfZXhwb3J0X3N0YXIoZnJvbSwgdG8pIHtcbiAgICBPYmplY3Qua2V5cyhmcm9tKS5mb3JFYWNoKGZ1bmN0aW9uKGspIHtcbiAgICAgICAgaWYgKGsgIT09IFwiZGVmYXVsdFwiICYmICFPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwodG8sIGspKSB7XG4gICAgICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkodG8sIGssIHtcbiAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICAgICAgICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBmcm9tW2tdO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfSk7XG4gICAgcmV0dXJuIGZyb207XG59XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWluZGV4LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/after/index.js\n");
+
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/server/api-utils/get-cookie-parser.js":
@@ -1253,6 +1320,39 @@ eval("/* eslint-disable no-redeclare */ \nObject.defineProperty(exports, \"__esM
/***/ }),
+/***/ "(rsc)/./node_modules/next/dist/server/request/connection.js":
+/*!*************************************************************!*\
+ !*** ./node_modules/next/dist/server/request/connection.js ***!
+ \*************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"connection\", ({\n enumerable: true,\n get: function() {\n return connection;\n }\n}));\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/request/utils.js\");\nfunction connection() {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workStore) {\n if (workUnitStore && workUnitStore.phase === 'after' && !(0, _utils.isRequestAPICallableInsideAfter)()) {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"connection\" inside \"after(...)\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual Request, but \"after(...)\" executes after the request, so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`), \"__NEXT_ERROR_CODE\", {\n value: \"E186\",\n enumerable: false,\n configurable: true\n });\n }\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // headers object without tracking\n return Promise.resolve(undefined);\n }\n if (workUnitStore) {\n if (workUnitStore.type === 'cache') {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"connection\" inside \"use cache\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E111\",\n enumerable: false,\n configurable: true\n });\n } else if (workUnitStore.type === 'unstable-cache') {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"connection\" inside a function cached with \"unstable_cache(...)\". The \\`connection()\\` function is used to indicate the subsequent code must only run when there is an actual Request, but caches must be able to be produced before a Request so this function is not allowed in this scope. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E1\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (workStore.dynamicShouldError) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`connection\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E562\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore) {\n if (workUnitStore.type === 'prerender' || workUnitStore.type === 'prerender-client') {\n // dynamicIO Prerender\n // We return a promise that never resolves to allow the prender to stall at this point\n return (0, _dynamicrenderingutils.makeHangingPromise)(workUnitStore.renderSignal, '`connection()`');\n } else if (workUnitStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n // We use React's postpone API to interrupt rendering here to create a dynamic hole\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, 'connection', workUnitStore.dynamicTracking);\n } else if (workUnitStore.type === 'prerender-legacy') {\n // Legacy Prerender\n // We throw an error here to interrupt prerendering to mark the route as dynamic\n (0, _dynamicrendering.throwToInterruptStaticGeneration)('connection', workStore, workUnitStore);\n }\n }\n // We fall through to the dynamic context below but we still track dynamic access\n // because in dev we can still error for things like using headers inside a cache context\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workStore, workUnitStore);\n }\n return Promise.resolve(undefined);\n} //# sourceMappingURL=connection.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L2Nvbm5lY3Rpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs4Q0FnQmdCQTs7O2VBQUFBOzs7c0RBaEJpQjswREFDSTs4Q0FLOUI7cURBQytCO21EQUNIO21DQUNhO0FBT3pDLFNBQVNBO0lBQ2QsTUFBTUMsWUFBWUMsMEJBQUFBLGdCQUFnQixDQUFDQyxRQUFRO0lBQzNDLE1BQU1DLGdCQUFnQkMsOEJBQUFBLG9CQUFvQixDQUFDRixRQUFRO0lBRW5ELElBQUlGLFdBQVc7UUFDYixJQUNFRyxpQkFDQUEsY0FBY0UsS0FBSyxLQUFLLFdBQ3hCLENBQUNDLENBQUFBLEdBQUFBLE9BQUFBLCtCQUFBQSxLQUNEO1lBQ0EsTUFBTSxxQkFFTCxDQUZLLElBQUlDLE1BQ1IsQ0FBQyxNQUFNLEVBQUVQLFVBQVVRLEtBQUssQ0FBQyw2VUFBNlUsQ0FBQyxHQURuVzt1QkFBQTs0QkFBQTs4QkFBQTtZQUVOO1FBQ0Y7UUFFQSxJQUFJUixVQUFVUyxXQUFXLEVBQUU7WUFDekIscUZBQXFGO1lBQ3JGLGtDQUFrQztZQUNsQyxPQUFPQyxRQUFRQyxPQUFPLENBQUNDO1FBQ3pCO1FBRUEsSUFBSVQsZUFBZTtZQUNqQixJQUFJQSxjQUFjVSxJQUFJLEtBQUssU0FBUztnQkFDbEMsTUFBTSxxQkFFTCxDQUZLLElBQUlOLE1BQ1IsQ0FBQyxNQUFNLEVBQUVQLFVBQVVRLEtBQUssQ0FBQyxpVkFBaVYsQ0FBQyxHQUR2VzsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFFTjtZQUNGLE9BQU8sSUFBSUwsY0FBY1UsSUFBSSxLQUFLLGtCQUFrQjtnQkFDbEQsTUFBTSxxQkFFTCxDQUZLLElBQUlOLE1BQ1IsQ0FBQyxNQUFNLEVBQUVQLFVBQVVRLEtBQUssQ0FBQywwWEFBMFgsQ0FBQyxHQURoWjsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFFTjtZQUNGO1FBQ0Y7UUFDQSxJQUFJUixVQUFVYyxrQkFBa0IsRUFBRTtZQUNoQyxNQUFNLHFCQUVMLENBRkssSUFBSUMseUJBQUFBLHFCQUFxQixDQUM3QixDQUFDLE1BQU0sRUFBRWYsVUFBVVEsS0FBSyxDQUFDLG9OQUFvTixDQUFDLEdBRDFPO3VCQUFBOzRCQUFBOzhCQUFBO1lBRU47UUFDRjtRQUVBLElBQUlMLGVBQWU7WUFDakIsSUFDRUEsY0FBY1UsSUFBSSxLQUFLLGVBQ3ZCVixjQUFjVSxJQUFJLEtBQUssb0JBQ3ZCO2dCQUNBLHNCQUFzQjtnQkFDdEIsc0ZBQXNGO2dCQUN0RixPQUFPRyxDQUFBQSxHQUFBQSx1QkFBQUEsa0JBQUFBLEVBQW1CYixjQUFjYyxZQUFZLEVBQUU7WUFDeEQsT0FBTyxJQUFJZCxjQUFjVSxJQUFJLEtBQUssaUJBQWlCO2dCQUNqRCwrQkFBK0I7Z0JBQy9CLG1GQUFtRjtnQkFDbkZLLENBQUFBLEdBQUFBLGtCQUFBQSxvQkFBQUEsRUFDRWxCLFVBQVVRLEtBQUssRUFDZixjQUNBTCxjQUFjZ0IsZUFBZTtZQUVqQyxPQUFPLElBQUloQixjQUFjVSxJQUFJLEtBQUssb0JBQW9CO2dCQUNwRCxtQkFBbUI7Z0JBQ25CLGdGQUFnRjtnQkFDaEZPLENBQUFBLEdBQUFBLGtCQUFBQSxnQ0FBQUEsRUFBaUMsY0FBY3BCLFdBQVdHO1lBQzVEO1FBQ0Y7UUFDQSxpRkFBaUY7UUFDakYseUZBQXlGO1FBQ3pGa0IsQ0FBQUEsR0FBQUEsa0JBQUFBLCtCQUFBQSxFQUFnQ3JCLFdBQVdHO0lBQzdDO0lBRUEsT0FBT08sUUFBUUMsT0FBTyxDQUFDQztBQUN6QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NlcnZlci9yZXF1ZXN0L2Nvbm5lY3Rpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgd29ya0FzeW5jU3RvcmFnZSB9IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgd29ya1VuaXRBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHtcbiAgcG9zdHBvbmVXaXRoVHJhY2tpbmcsXG4gIHRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uLFxuICB0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyLFxufSBmcm9tICcuLi9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nJ1xuaW1wb3J0IHsgU3RhdGljR2VuQmFpbG91dEVycm9yIH0gZnJvbSAnLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dCdcbmltcG9ydCB7IG1ha2VIYW5naW5nUHJvbWlzZSB9IGZyb20gJy4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzJ1xuaW1wb3J0IHsgaXNSZXF1ZXN0QVBJQ2FsbGFibGVJbnNpZGVBZnRlciB9IGZyb20gJy4vdXRpbHMnXG5cbi8qKlxuICogVGhpcyBmdW5jdGlvbiBhbGxvd3MgeW91IHRvIGluZGljYXRlIHRoYXQgeW91IHJlcXVpcmUgYW4gYWN0dWFsIHVzZXIgUmVxdWVzdCBiZWZvcmUgY29udGludWluZy5cbiAqXG4gKiBEdXJpbmcgcHJlcmVuZGVyaW5nIGl0IHdpbGwgbmV2ZXIgcmVzb2x2ZSBhbmQgZHVyaW5nIHJlbmRlcmluZyBpdCByZXNvbHZlcyBpbW1lZGlhdGVseS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvbm5lY3Rpb24oKTogUHJvbWlzZTx2b2lkPiB7XG4gIGNvbnN0IHdvcmtTdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuXG4gIGlmICh3b3JrU3RvcmUpIHtcbiAgICBpZiAoXG4gICAgICB3b3JrVW5pdFN0b3JlICYmXG4gICAgICB3b3JrVW5pdFN0b3JlLnBoYXNlID09PSAnYWZ0ZXInICYmXG4gICAgICAhaXNSZXF1ZXN0QVBJQ2FsbGFibGVJbnNpZGVBZnRlcigpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBSb3V0ZSAke3dvcmtTdG9yZS5yb3V0ZX0gdXNlZCBcImNvbm5lY3Rpb25cIiBpbnNpZGUgXCJhZnRlciguLi4pXCIuIFRoZSBcXGBjb25uZWN0aW9uKClcXGAgZnVuY3Rpb24gaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGUgc3Vic2VxdWVudCBjb2RlIG11c3Qgb25seSBydW4gd2hlbiB0aGVyZSBpcyBhbiBhY3R1YWwgUmVxdWVzdCwgYnV0IFwiYWZ0ZXIoLi4uKVwiIGV4ZWN1dGVzIGFmdGVyIHRoZSByZXF1ZXN0LCBzbyB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgc2NvcGUuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvY2FuYXJ5L2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9hZnRlcmBcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAod29ya1N0b3JlLmZvcmNlU3RhdGljKSB7XG4gICAgICAvLyBXaGVuIHVzaW5nIGZvcmNlU3RhdGljIHdlIG92ZXJyaWRlIGFsbCBvdGhlciBsb2dpYyBhbmQgYWx3YXlzIGp1c3QgcmV0dXJuIGFuIGVtcHR5XG4gICAgICAvLyBoZWFkZXJzIG9iamVjdCB3aXRob3V0IHRyYWNraW5nXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVmaW5lZClcbiAgICB9XG5cbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ2NhY2hlJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFJvdXRlICR7d29ya1N0b3JlLnJvdXRlfSB1c2VkIFwiY29ubmVjdGlvblwiIGluc2lkZSBcInVzZSBjYWNoZVwiLiBUaGUgXFxgY29ubmVjdGlvbigpXFxgIGZ1bmN0aW9uIGlzIHVzZWQgdG8gaW5kaWNhdGUgdGhlIHN1YnNlcXVlbnQgY29kZSBtdXN0IG9ubHkgcnVuIHdoZW4gdGhlcmUgaXMgYW4gYWN0dWFsIFJlcXVlc3QsIGJ1dCBjYWNoZXMgbXVzdCBiZSBhYmxlIHRvIGJlIHByb2R1Y2VkIGJlZm9yZSBhIFJlcXVlc3Qgc28gdGhpcyBmdW5jdGlvbiBpcyBub3QgYWxsb3dlZCBpbiB0aGlzIHNjb3BlLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcmVxdWVzdC1pbi11c2UtY2FjaGVgXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAndW5zdGFibGUtY2FjaGUnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXCJjb25uZWN0aW9uXCIgaW5zaWRlIGEgZnVuY3Rpb24gY2FjaGVkIHdpdGggXCJ1bnN0YWJsZV9jYWNoZSguLi4pXCIuIFRoZSBcXGBjb25uZWN0aW9uKClcXGAgZnVuY3Rpb24gaXMgdXNlZCB0byBpbmRpY2F0ZSB0aGUgc3Vic2VxdWVudCBjb2RlIG11c3Qgb25seSBydW4gd2hlbiB0aGVyZSBpcyBhbiBhY3R1YWwgUmVxdWVzdCwgYnV0IGNhY2hlcyBtdXN0IGJlIGFibGUgdG8gYmUgcHJvZHVjZWQgYmVmb3JlIGEgUmVxdWVzdCBzbyB0aGlzIGZ1bmN0aW9uIGlzIG5vdCBhbGxvd2VkIGluIHRoaXMgc2NvcGUuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL3Vuc3RhYmxlX2NhY2hlYFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICAgIGlmICh3b3JrU3RvcmUuZHluYW1pY1Nob3VsZEVycm9yKSB7XG4gICAgICB0aHJvdyBuZXcgU3RhdGljR2VuQmFpbG91dEVycm9yKFxuICAgICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCBcXGBjb25uZWN0aW9uXFxgLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgIGlmIChcbiAgICAgICAgd29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyJyB8fFxuICAgICAgICB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdwcmVyZW5kZXItY2xpZW50J1xuICAgICAgKSB7XG4gICAgICAgIC8vIGR5bmFtaWNJTyBQcmVyZW5kZXJcbiAgICAgICAgLy8gV2UgcmV0dXJuIGEgcHJvbWlzZSB0aGF0IG5ldmVyIHJlc29sdmVzIHRvIGFsbG93IHRoZSBwcmVuZGVyIHRvIHN0YWxsIGF0IHRoaXMgcG9pbnRcbiAgICAgICAgcmV0dXJuIG1ha2VIYW5naW5nUHJvbWlzZSh3b3JrVW5pdFN0b3JlLnJlbmRlclNpZ25hbCwgJ2Bjb25uZWN0aW9uKClgJylcbiAgICAgIH0gZWxzZSBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLXBwcicpIHtcbiAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gZHluYW1pY0lPKVxuICAgICAgICAvLyBXZSB1c2UgUmVhY3QncyBwb3N0cG9uZSBBUEkgdG8gaW50ZXJydXB0IHJlbmRlcmluZyBoZXJlIHRvIGNyZWF0ZSBhIGR5bmFtaWMgaG9sZVxuICAgICAgICBwb3N0cG9uZVdpdGhUcmFja2luZyhcbiAgICAgICAgICB3b3JrU3RvcmUucm91dGUsXG4gICAgICAgICAgJ2Nvbm5lY3Rpb24nLFxuICAgICAgICAgIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAncHJlcmVuZGVyLWxlZ2FjeScpIHtcbiAgICAgICAgLy8gTGVnYWN5IFByZXJlbmRlclxuICAgICAgICAvLyBXZSB0aHJvdyBhbiBlcnJvciBoZXJlIHRvIGludGVycnVwdCBwcmVyZW5kZXJpbmcgdG8gbWFyayB0aGUgcm91dGUgYXMgZHluYW1pY1xuICAgICAgICB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbignY29ubmVjdGlvbicsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSlcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gV2UgZmFsbCB0aHJvdWdoIHRvIHRoZSBkeW5hbWljIGNvbnRleHQgYmVsb3cgYnV0IHdlIHN0aWxsIHRyYWNrIGR5bmFtaWMgYWNjZXNzXG4gICAgLy8gYmVjYXVzZSBpbiBkZXYgd2UgY2FuIHN0aWxsIGVycm9yIGZvciB0aGluZ3MgbGlrZSB1c2luZyBoZWFkZXJzIGluc2lkZSBhIGNhY2hlIGNvbnRleHRcbiAgICB0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyKHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSlcbiAgfVxuXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUodW5kZWZpbmVkKVxufVxuIl0sIm5hbWVzIjpbImNvbm5lY3Rpb24iLCJ3b3JrU3RvcmUiLCJ3b3JrQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJ3b3JrVW5pdFN0b3JlIiwid29ya1VuaXRBc3luY1N0b3JhZ2UiLCJwaGFzZSIsImlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIiLCJFcnJvciIsInJvdXRlIiwiZm9yY2VTdGF0aWMiLCJQcm9taXNlIiwicmVzb2x2ZSIsInVuZGVmaW5lZCIsInR5cGUiLCJkeW5hbWljU2hvdWxkRXJyb3IiLCJTdGF0aWNHZW5CYWlsb3V0RXJyb3IiLCJtYWtlSGFuZ2luZ1Byb21pc2UiLCJyZW5kZXJTaWduYWwiLCJwb3N0cG9uZVdpdGhUcmFja2luZyIsImR5bmFtaWNUcmFja2luZyIsInRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uIiwidHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/connection.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/server/request/cookies.js":
+/*!**********************************************************!*\
+ !*** ./node_modules/next/dist/server/request/cookies.js ***!
+ \**********************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"cookies\", ({\n enumerable: true,\n get: function() {\n return cookies;\n }\n}));\nconst _requestcookies = __webpack_require__(/*! ../web/spec-extension/adapters/request-cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js\");\nconst _cookies = __webpack_require__(/*! ../web/spec-extension/cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/request/utils.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nfunction cookies() {\n const callingExpression = 'cookies';\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workStore) {\n if (workUnitStore && workUnitStore.phase === 'after' && !(0, _utils.isRequestAPICallableInsideAfter)()) {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"cookies\" inside \"after(...)\". This is not supported. If you need this data inside an \"after\" callback, use \"cookies\" outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`), \"__NEXT_ERROR_CODE\", {\n value: \"E88\",\n enumerable: false,\n configurable: true\n });\n }\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // cookies object without tracking\n const underlyingCookies = createEmptyCookies();\n return makeUntrackedExoticCookies(underlyingCookies);\n }\n if (workUnitStore) {\n if (workUnitStore.type === 'cache') {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"cookies\" inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \"cookies\" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E398\",\n enumerable: false,\n configurable: true\n });\n } else if (workUnitStore.type === 'unstable-cache') {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"cookies\" inside a function cached with \"unstable_cache(...)\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \"cookies\" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E157\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (workStore.dynamicShouldError) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`cookies\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E549\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n return makeHangingCookies(workUnitStore);\n case 'prerender-client':\n const exportName = '`cookies`';\n throw Object.defineProperty(new _invarianterror.InvariantError(`${exportName} must not be used within a client component. Next.js should be preventing ${exportName} from being included in client components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E693\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-ppr':\n // PPR Prerender (no dynamicIO)\n // We are prerendering with PPR. We need track dynamic access here eagerly\n // to keep continuity with how cookies has worked in PPR without dynamicIO.\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, callingExpression, workUnitStore.dynamicTracking);\n break;\n case 'prerender-legacy':\n // Legacy Prerender\n // We track dynamic access here so we don't need to wrap the cookies in\n // individual property access tracking.\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(callingExpression, workStore, workUnitStore);\n break;\n default:\n }\n }\n // We fall through to the dynamic context below but we still track dynamic access\n // because in dev we can still error for things like using cookies inside a cache context\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workStore, workUnitStore);\n }\n // cookies is being called in a dynamic context\n const requestStore = (0, _workunitasyncstorageexternal.getExpectedRequestStore)(callingExpression);\n let underlyingCookies;\n if ((0, _requestcookies.areCookiesMutableInCurrentPhase)(requestStore)) {\n // We can't conditionally return different types here based on the context.\n // To avoid confusion, we always return the readonly type here.\n underlyingCookies = requestStore.userspaceMutableCookies;\n } else {\n underlyingCookies = requestStore.cookies;\n }\n if ( true && !(workStore == null ? void 0 : workStore.isPrefetchRequest)) {\n if (false) {}\n return makeUntrackedExoticCookiesWithDevWarnings(underlyingCookies, workStore == null ? void 0 : workStore.route);\n } else {\n return makeUntrackedExoticCookies(underlyingCookies);\n }\n}\nfunction createEmptyCookies() {\n return _requestcookies.RequestCookiesAdapter.seal(new _cookies.RequestCookies(new Headers({})));\n}\nconst CachedCookies = new WeakMap();\nfunction makeHangingCookies(prerenderStore) {\n const cachedPromise = CachedCookies.get(prerenderStore);\n if (cachedPromise) {\n return cachedPromise;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`cookies()`');\n CachedCookies.set(prerenderStore, promise);\n return promise;\n}\nfunction makeUntrackedExoticCookies(underlyingCookies) {\n const cachedCookies = CachedCookies.get(underlyingCookies);\n if (cachedCookies) {\n return cachedCookies;\n }\n const promise = Promise.resolve(underlyingCookies);\n CachedCookies.set(underlyingCookies, promise);\n Object.defineProperties(promise, {\n [Symbol.iterator]: {\n value: underlyingCookies[Symbol.iterator] ? underlyingCookies[Symbol.iterator].bind(underlyingCookies) : // but that's already a hard thing to debug so we may as well implement it consistently. The biggest problem with\n // implementing this in this way is the underlying cookie type is a ResponseCookie and not a RequestCookie and so it\n // has extra properties not available on RequestCookie instances.\n polyfilledResponseCookiesIterator.bind(underlyingCookies)\n },\n size: {\n get () {\n return underlyingCookies.size;\n }\n },\n get: {\n value: underlyingCookies.get.bind(underlyingCookies)\n },\n getAll: {\n value: underlyingCookies.getAll.bind(underlyingCookies)\n },\n has: {\n value: underlyingCookies.has.bind(underlyingCookies)\n },\n set: {\n value: underlyingCookies.set.bind(underlyingCookies)\n },\n delete: {\n value: underlyingCookies.delete.bind(underlyingCookies)\n },\n clear: {\n value: typeof underlyingCookies.clear === 'function' ? underlyingCookies.clear.bind(underlyingCookies) : // but that's already a hard thing to debug so we may as well implement it consistently. The biggest problem with\n // implementing this in this way is the underlying cookie type is a ResponseCookie and not a RequestCookie and so it\n // has extra properties not available on RequestCookie instances.\n polyfilledResponseCookiesClear.bind(underlyingCookies, promise)\n },\n toString: {\n value: underlyingCookies.toString.bind(underlyingCookies)\n }\n });\n return promise;\n}\nfunction makeUntrackedExoticCookiesWithDevWarnings(underlyingCookies, route) {\n const cachedCookies = CachedCookies.get(underlyingCookies);\n if (cachedCookies) {\n return cachedCookies;\n }\n const promise = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingCookies)));\n CachedCookies.set(underlyingCookies, promise);\n Object.defineProperties(promise, {\n [Symbol.iterator]: {\n value: function() {\n const expression = '`...cookies()` or similar iteration';\n syncIODev(route, expression);\n return underlyingCookies[Symbol.iterator] ? underlyingCookies[Symbol.iterator].apply(underlyingCookies, arguments) : // but that's already a hard thing to debug so we may as well implement it consistently. The biggest problem with\n // implementing this in this way is the underlying cookie type is a ResponseCookie and not a RequestCookie and so it\n // has extra properties not available on RequestCookie instances.\n polyfilledResponseCookiesIterator.call(underlyingCookies);\n },\n writable: false\n },\n size: {\n get () {\n const expression = '`cookies().size`';\n syncIODev(route, expression);\n return underlyingCookies.size;\n }\n },\n get: {\n value: function get() {\n let expression;\n if (arguments.length === 0) {\n expression = '`cookies().get()`';\n } else {\n expression = `\\`cookies().get(${describeNameArg(arguments[0])})\\``;\n }\n syncIODev(route, expression);\n return underlyingCookies.get.apply(underlyingCookies, arguments);\n },\n writable: false\n },\n getAll: {\n value: function getAll() {\n let expression;\n if (arguments.length === 0) {\n expression = '`cookies().getAll()`';\n } else {\n expression = `\\`cookies().getAll(${describeNameArg(arguments[0])})\\``;\n }\n syncIODev(route, expression);\n return underlyingCookies.getAll.apply(underlyingCookies, arguments);\n },\n writable: false\n },\n has: {\n value: function get() {\n let expression;\n if (arguments.length === 0) {\n expression = '`cookies().has()`';\n } else {\n expression = `\\`cookies().has(${describeNameArg(arguments[0])})\\``;\n }\n syncIODev(route, expression);\n return underlyingCookies.has.apply(underlyingCookies, arguments);\n },\n writable: false\n },\n set: {\n value: function set() {\n let expression;\n if (arguments.length === 0) {\n expression = '`cookies().set()`';\n } else {\n const arg = arguments[0];\n if (arg) {\n expression = `\\`cookies().set(${describeNameArg(arg)}, ...)\\``;\n } else {\n expression = '`cookies().set(...)`';\n }\n }\n syncIODev(route, expression);\n return underlyingCookies.set.apply(underlyingCookies, arguments);\n },\n writable: false\n },\n delete: {\n value: function() {\n let expression;\n if (arguments.length === 0) {\n expression = '`cookies().delete()`';\n } else if (arguments.length === 1) {\n expression = `\\`cookies().delete(${describeNameArg(arguments[0])})\\``;\n } else {\n expression = `\\`cookies().delete(${describeNameArg(arguments[0])}, ...)\\``;\n }\n syncIODev(route, expression);\n return underlyingCookies.delete.apply(underlyingCookies, arguments);\n },\n writable: false\n },\n clear: {\n value: function clear() {\n const expression = '`cookies().clear()`';\n syncIODev(route, expression);\n // @ts-ignore clear is defined in RequestCookies implementation but not in the type\n return typeof underlyingCookies.clear === 'function' ? underlyingCookies.clear.apply(underlyingCookies, arguments) : // but that's already a hard thing to debug so we may as well implement it consistently. The biggest problem with\n // implementing this in this way is the underlying cookie type is a ResponseCookie and not a RequestCookie and so it\n // has extra properties not available on RequestCookie instances.\n polyfilledResponseCookiesClear.call(underlyingCookies, promise);\n },\n writable: false\n },\n toString: {\n value: function toString() {\n const expression = '`cookies().toString()` or implicit casting';\n syncIODev(route, expression);\n return underlyingCookies.toString.apply(underlyingCookies, arguments);\n },\n writable: false\n }\n });\n return promise;\n}\n// Similar to `makeUntrackedExoticCookiesWithDevWarnings`, but just logging the\n// sync access without actually defining the cookies properties on the promise.\nfunction makeUntrackedCookiesWithDevWarnings(underlyingCookies, route) {\n const cachedCookies = CachedCookies.get(underlyingCookies);\n if (cachedCookies) {\n return cachedCookies;\n }\n const promise = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingCookies)));\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n switch(prop){\n case Symbol.iterator:\n {\n warnForSyncAccess(route, '`...cookies()` or similar iteration');\n break;\n }\n case 'size':\n case 'get':\n case 'getAll':\n case 'has':\n case 'set':\n case 'delete':\n case 'clear':\n case 'toString':\n {\n warnForSyncAccess(route, `\\`cookies().${prop}\\``);\n break;\n }\n default:\n {\n // We only warn for well-defined properties of the cookies object.\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n });\n CachedCookies.set(underlyingCookies, proxiedPromise);\n return proxiedPromise;\n}\nfunction describeNameArg(arg) {\n return typeof arg === 'object' && arg !== null && typeof arg.name === 'string' ? `'${arg.name}'` : typeof arg === 'string' ? `'${arg}'` : '...';\n}\nfunction syncIODev(route, expression) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore && workUnitStore.type === 'request' && workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore;\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(requestStore);\n }\n // In all cases we warn normally\n warnForSyncAccess(route, expression);\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createCookiesAccessError);\nfunction createCookiesAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`cookies()\\` should be awaited before using its value. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E223\",\n enumerable: false,\n configurable: true\n });\n}\nfunction polyfilledResponseCookiesIterator() {\n return this.getAll().map((c)=>[\n c.name,\n c\n ]).values();\n}\nfunction polyfilledResponseCookiesClear(returnable) {\n for (const cookie of this.getAll()){\n this.delete(cookie.name);\n }\n return returnable;\n} //# sourceMappingURL=cookies.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L2Nvb2tpZXMuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0FrRGdCQTs7O2VBQUFBOzs7NENBN0NUO3FDQUN3QjtzREFDRTswREFJMUI7OENBTUE7cURBRStCO21EQUNIO3NFQUN5Qjt1Q0FDMUI7bUNBQ2M7NENBQ2pCO3FDQUNBO0FBeUJ4QixTQUFTQTtJQUNkLE1BQU1DLG9CQUFvQjtJQUMxQixNQUFNQyxZQUFZQywwQkFBQUEsZ0JBQWdCLENBQUNDLFFBQVE7SUFDM0MsTUFBTUMsZ0JBQWdCQyw4QkFBQUEsb0JBQW9CLENBQUNGLFFBQVE7SUFFbkQsSUFBSUYsV0FBVztRQUNiLElBQ0VHLGlCQUNBQSxjQUFjRSxLQUFLLEtBQUssV0FDeEIsQ0FBQ0MsQ0FBQUEsR0FBQUEsT0FBQUEsK0JBQStCLEtBQ2hDO1lBQ0EsTUFBTSxxQkFHTCxDQUhLLElBQUlDLE1BQ1IsQ0FDQyxNQUFNLEVBQUVQLFVBQVVRLEtBQUssQ0FBQywrQkFEK0IsME1BQzBNLENBQUMsR0FGL1A7dUJBQUE7NEJBQUE7OEJBQUE7WUFHTjtRQUNGO1FBRUEsSUFBSVIsVUFBVVMsV0FBVyxFQUFFO1lBQ3pCLHFGQUFxRjtZQUNyRixrQ0FBa0M7WUFDbEMsTUFBTUMsb0JBQW9CQztZQUMxQixPQUFPQywyQkFBMkJGO1FBQ3BDO1FBRUEsSUFBSVAsZUFBZTtZQUNqQixJQUFJQSxjQUFjVSxJQUFJLEtBQUssU0FBUztnQkFDbEMsTUFBTSxxQkFFTCxDQUZLLElBQUlOLE1BQ1IsQ0FBQyxNQUFNLEVBQUVQLFVBQVVRLEtBQUssQ0FBQywwVUFBMFUsQ0FBQyxHQURoVzsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFFTjtZQUNGLE9BQU8sSUFBSUwsY0FBY1UsSUFBSSxLQUFLLGtCQUFrQjtnQkFDbEQsTUFBTSxxQkFFTCxDQUZLLElBQUlOLE1BQ1IsQ0FBQyxNQUFNLEVBQUVQLFVBQVVRLEtBQUssQ0FBQyxtWEFBbVgsQ0FBQyxHQUR6WTsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFFTjtZQUNGO1FBQ0Y7UUFDQSxJQUFJUixVQUFVYyxrQkFBa0IsRUFBRTtZQUNoQyxNQUFNLHFCQUVMLENBRkssSUFBSUMseUJBQUFBLHFCQUFxQixDQUM3QixDQUFDLE1BQU0sRUFBRWYsVUFBVVEsS0FBSyxDQUFDLGlOQUFpTixDQUFDLEdBRHZPO3VCQUFBOzRCQUFBOzhCQUFBO1lBRU47UUFDRjtRQUVBLElBQUlMLGVBQWU7WUFDakIsT0FBUUEsY0FBY1UsSUFBSTtnQkFDeEIsS0FBSztvQkFDSCxPQUFPRyxtQkFBbUJiO2dCQUM1QixLQUFLO29CQUNILE1BQU1jLGFBQWE7b0JBQ25CLE1BQU0scUJBRUwsQ0FGSyxJQUFJQyxnQkFBQUEsY0FBYyxDQUN0QixHQUFHRCxXQUFXLDBFQUEwRSxFQUFFQSxXQUFXLCtFQUErRSxDQUFDLEdBRGpMOytCQUFBO29DQUFBO3NDQUFBO29CQUVOO2dCQUNGLEtBQUs7b0JBQ0gsK0JBQStCO29CQUMvQiwwRUFBMEU7b0JBQzFFLDJFQUEyRTtvQkFDM0VFLENBQUFBLEdBQUFBLGtCQUFBQSxvQkFBb0IsRUFDbEJuQixVQUFVUSxLQUFLLEVBQ2ZULG1CQUNBSSxjQUFjaUIsZUFBZTtvQkFFL0I7Z0JBQ0YsS0FBSztvQkFDSCxtQkFBbUI7b0JBQ25CLHVFQUF1RTtvQkFDdkUsdUNBQXVDO29CQUN2Q0MsQ0FBQUEsR0FBQUEsa0JBQUFBLGdDQUFBQSxFQUNFdEIsbUJBQ0FDLFdBQ0FHO29CQUVGO2dCQUNGO1lBRUY7UUFDRjtRQUNBLGlGQUFpRjtRQUNqRix5RkFBeUY7UUFDekZtQixDQUFBQSxHQUFBQSxrQkFBQUEsK0JBQUFBLEVBQWdDdEIsV0FBV0c7SUFDN0M7SUFFQSwrQ0FBK0M7SUFFL0MsTUFBTW9CLGVBQWVDLENBQUFBLEdBQUFBLDhCQUFBQSx1QkFBQUEsRUFBd0J6QjtJQUU3QyxJQUFJVztJQUVKLElBQUllLENBQUFBLEdBQUFBLGdCQUFBQSwrQkFBQUEsRUFBZ0NGLGVBQWU7UUFDakQsMkVBQTJFO1FBQzNFLCtEQUErRDtRQUMvRGIsb0JBQ0VhLGFBQWFHLHVCQUF1QjtJQUN4QyxPQUFPO1FBQ0xoQixvQkFBb0JhLGFBQWF6QixPQUFPO0lBQzFDO0lBRUEsSUFBSTZCLEtBQW9CLElBQXNCLEVBQUMzQixhQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxVQUFXOEIsaUJBQUFBLEdBQW1CO1FBQzNFLElBQUlILEtBQTZCLEVBQUUsRUFLbEM7UUFFRCxPQUFPTSwwQ0FDTHZCLG1CQUNBVixhQUFBQSxPQUFBQSxLQUFBQSxJQUFBQSxVQUFXUSxLQUFLO0lBRXBCLE9BQU87UUFDTCxPQUFPSSwyQkFBMkJGO0lBQ3BDO0FBQ0Y7QUFFQSxTQUFTQztJQUNQLE9BQU91QixnQkFBQUEscUJBQXFCLENBQUNDLElBQUksQ0FBQyxJQUFJQyxTQUFBQSxjQUFjLENBQUMsSUFBSUMsUUFBUSxDQUFDO0FBQ3BFO0FBR0EsTUFBTUMsZ0JBQWdCLElBQUlDO0FBSzFCLFNBQVN2QixtQkFDUHdCLGNBQW9DO0lBRXBDLE1BQU1DLGdCQUFnQkgsY0FBY0ksR0FBRyxDQUFDRjtJQUN4QyxJQUFJQyxlQUFlO1FBQ2pCLE9BQU9BO0lBQ1Q7SUFFQSxNQUFNRSxVQUFVQyxDQUFBQSxHQUFBQSx1QkFBQUEsa0JBQUFBLEVBQ2RKLGVBQWVLLFlBQVksRUFDM0I7SUFFRlAsY0FBY1EsR0FBRyxDQUFDTixnQkFBZ0JHO0lBRWxDLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTL0IsMkJBQ1BGLGlCQUF5QztJQUV6QyxNQUFNcUMsZ0JBQWdCVCxjQUFjSSxHQUFHLENBQUNoQztJQUN4QyxJQUFJcUMsZUFBZTtRQUNqQixPQUFPQTtJQUNUO0lBRUEsTUFBTUosVUFBVUssUUFBUUMsT0FBTyxDQUFDdkM7SUFDaEM0QixjQUFjUSxHQUFHLENBQUNwQyxtQkFBbUJpQztJQUVyQ08sT0FBT0MsZ0JBQWdCLENBQUNSLFNBQVM7UUFDL0IsQ0FBQ1MsT0FBT0MsUUFBUSxDQUFDLEVBQUU7WUFDakJDLE9BQU81QyxpQkFBaUIsQ0FBQzBDLE9BQU9DLFFBQVEsQ0FBQyxHQUNyQzNDLGlCQUFpQixDQUFDMEMsT0FBT0MsUUFBUSxDQUFDLENBQUNFLElBQUksQ0FBQzdDLHFCQUd4QyxxR0FEcUcsWUFDWTtZQUNqSCxvSEFBb0g7WUFDcEgsaUVBQWlFO1lBQ2pFOEMsa0NBQWtDRCxJQUFJLENBQUM3QztRQUM3QztRQUNBK0MsTUFBTTtZQUNKZjtnQkFDRSxPQUFPaEMsa0JBQWtCK0MsSUFBSTtZQUMvQjtRQUNGO1FBQ0FmLEtBQUs7WUFDSFksT0FBTzVDLGtCQUFrQmdDLEdBQUcsQ0FBQ2EsSUFBSSxDQUFDN0M7UUFDcEM7UUFDQWdELFFBQVE7WUFDTkosT0FBTzVDLGtCQUFrQmdELE1BQU0sQ0FBQ0gsSUFBSSxDQUFDN0M7UUFDdkM7UUFDQWlELEtBQUs7WUFDSEwsT0FBTzVDLGtCQUFrQmlELEdBQUcsQ0FBQ0osSUFBSSxDQUFDN0M7UUFDcEM7UUFDQW9DLEtBQUs7WUFDSFEsT0FBTzVDLGtCQUFrQm9DLEdBQUcsQ0FBQ1MsSUFBSSxDQUFDN0M7UUFDcEM7UUFDQWtELFFBQVE7WUFDTk4sT0FBTzVDLGtCQUFrQmtELE1BQU0sQ0FBQ0wsSUFBSSxDQUFDN0M7UUFDdkM7UUFDQW1ELE9BQU87WUFDTFAsT0FDRSxPQUNPNUMsa0JBQWtCbUQsS0FBSyxLQUFLLGFBRS9CbkQsa0JBQWtCbUQsS0FBSyxDQUFDTixJQUFJLENBQUM3QyxZQUh3RCxTQU1yRixxR0FEcUcsWUFDWTtZQUNqSCxvSEFBb0g7WUFDcEgsaUVBQWlFO1lBQ2pFb0QsK0JBQStCUCxJQUFJLENBQUM3QyxtQkFBbUJpQztRQUMvRDtRQUNBb0IsVUFBVTtZQUNSVCxPQUFPNUMsa0JBQWtCcUQsUUFBUSxDQUFDUixJQUFJLENBQUM3QztRQUN6QztJQUNGO0lBRUEsT0FBT2lDO0FBQ1Q7QUFFQSxTQUFTViwwQ0FDUHZCLGlCQUF5QyxFQUN6Q0YsS0FBYztJQUVkLE1BQU11QyxnQkFBZ0JULGNBQWNJLEdBQUcsQ0FBQ2hDO0lBQ3hDLElBQUlxQyxlQUFlO1FBQ2pCLE9BQU9BO0lBQ1Q7SUFFQSxNQUFNSixVQUFVLElBQUlLLFFBQWdDLENBQUNDLFVBQ25EZSxDQUFBQSxHQUFBQSxXQUFBQSxpQkFBQUEsRUFBa0IsSUFBTWYsUUFBUXZDO0lBRWxDNEIsY0FBY1EsR0FBRyxDQUFDcEMsbUJBQW1CaUM7SUFFckNPLE9BQU9DLGdCQUFnQixDQUFDUixTQUFTO1FBQy9CLENBQUNTLE9BQU9DLFFBQVEsQ0FBQyxFQUFFO1lBQ2pCQyxPQUFPO2dCQUNMLE1BQU1XLGFBQWE7Z0JBQ25CQyxVQUFVMUQsT0FBT3lEO2dCQUNqQixPQUFPdkQsaUJBQWlCLENBQUMwQyxPQUFPQyxRQUFRLENBQUMsR0FDckMzQyxpQkFBaUIsQ0FBQzBDLE9BQU9DLFFBQVEsQ0FBQyxDQUFDYyxLQUFLLENBQ3RDekQsbUJBQ0EwRCxhQUlGLHFHQURxRyxZQUNZO2dCQUNqSCxvSEFBb0g7Z0JBQ3BILGlFQUFpRTtnQkFDakVaLGtDQUFrQ2EsSUFBSSxDQUFDM0Q7WUFDN0M7WUFDQTRELFVBQVU7UUFDWjtRQUNBYixNQUFNO1lBQ0pmO2dCQUNFLE1BQU11QixhQUFhO2dCQUNuQkMsVUFBVTFELE9BQU95RDtnQkFDakIsT0FBT3ZELGtCQUFrQitDLElBQUk7WUFDL0I7UUFDRjtRQUNBZixLQUFLO1lBQ0hZLE9BQU8sU0FBU1o7Z0JBQ2QsSUFBSXVCO2dCQUNKLElBQUlHLFVBQVVHLE1BQU0sS0FBSyxHQUFHO29CQUMxQk4sYUFBYTtnQkFDZixPQUFPO29CQUNMQSxhQUFhLENBQUMsZ0JBQWdCLEVBQUVPLGdCQUFnQkosU0FBUyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUM7Z0JBQ3BFO2dCQUNBRixVQUFVMUQsT0FBT3lEO2dCQUNqQixPQUFPdkQsa0JBQWtCZ0MsR0FBRyxDQUFDeUIsS0FBSyxDQUFDekQsbUJBQW1CMEQ7WUFDeEQ7WUFDQUUsVUFBVTtRQUNaO1FBQ0FaLFFBQVE7WUFDTkosT0FBTyxTQUFTSTtnQkFDZCxJQUFJTztnQkFDSixJQUFJRyxVQUFVRyxNQUFNLEtBQUssR0FBRztvQkFDMUJOLGFBQWE7Z0JBQ2YsT0FBTztvQkFDTEEsYUFBYSxDQUFDLG1CQUFtQixFQUFFTyxnQkFBZ0JKLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDO2dCQUN2RTtnQkFDQUYsVUFBVTFELE9BQU95RDtnQkFDakIsT0FBT3ZELGtCQUFrQmdELE1BQU0sQ0FBQ1MsS0FBSyxDQUNuQ3pELG1CQUNBMEQ7WUFFSjtZQUNBRSxVQUFVO1FBQ1o7UUFDQVgsS0FBSztZQUNITCxPQUFPLFNBQVNaO2dCQUNkLElBQUl1QjtnQkFDSixJQUFJRyxVQUFVRyxNQUFNLEtBQUssR0FBRztvQkFDMUJOLGFBQWE7Z0JBQ2YsT0FBTztvQkFDTEEsYUFBYSxDQUFDLGdCQUFnQixFQUFFTyxnQkFBZ0JKLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDO2dCQUNwRTtnQkFDQUYsVUFBVTFELE9BQU95RDtnQkFDakIsT0FBT3ZELGtCQUFrQmlELEdBQUcsQ0FBQ1EsS0FBSyxDQUFDekQsbUJBQW1CMEQ7WUFDeEQ7WUFDQUUsVUFBVTtRQUNaO1FBQ0F4QixLQUFLO1lBQ0hRLE9BQU8sU0FBU1I7Z0JBQ2QsSUFBSW1CO2dCQUNKLElBQUlHLFVBQVVHLE1BQU0sS0FBSyxHQUFHO29CQUMxQk4sYUFBYTtnQkFDZixPQUFPO29CQUNMLE1BQU1RLE1BQU1MLFNBQVMsQ0FBQyxFQUFFO29CQUN4QixJQUFJSyxLQUFLO3dCQUNQUixhQUFhLENBQUMsZ0JBQWdCLEVBQUVPLGdCQUFnQkMsS0FBSyxRQUFRLENBQUM7b0JBQ2hFLE9BQU87d0JBQ0xSLGFBQWE7b0JBQ2Y7Z0JBQ0Y7Z0JBQ0FDLFVBQVUxRCxPQUFPeUQ7Z0JBQ2pCLE9BQU92RCxrQkFBa0JvQyxHQUFHLENBQUNxQixLQUFLLENBQUN6RCxtQkFBbUIwRDtZQUN4RDtZQUNBRSxVQUFVO1FBQ1o7UUFDQVYsUUFBUTtZQUNOTixPQUFPO2dCQUNMLElBQUlXO2dCQUNKLElBQUlHLFVBQVVHLE1BQU0sS0FBSyxHQUFHO29CQUMxQk4sYUFBYTtnQkFDZixPQUFPLElBQUlHLFVBQVVHLE1BQU0sS0FBSyxHQUFHO29CQUNqQ04sYUFBYSxDQUFDLG1CQUFtQixFQUFFTyxnQkFBZ0JKLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDO2dCQUN2RSxPQUFPO29CQUNMSCxhQUFhLENBQUMsbUJBQW1CLEVBQUVPLGdCQUFnQkosU0FBUyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUM7Z0JBQzVFO2dCQUNBRixVQUFVMUQsT0FBT3lEO2dCQUNqQixPQUFPdkQsa0JBQWtCa0QsTUFBTSxDQUFDTyxLQUFLLENBQ25DekQsbUJBQ0EwRDtZQUVKO1lBQ0FFLFVBQVU7UUFDWjtRQUNBVCxPQUFPO1lBQ0xQLE9BQU8sU0FBU087Z0JBQ2QsTUFBTUksYUFBYTtnQkFDbkJDLFVBQVUxRCxPQUFPeUQ7Z0JBQ2pCLG1GQUFtRjtnQkFDbkYsT0FBTyxPQUFPdkQsa0JBQWtCbUQsS0FBSyxLQUFLLGFBRXRDbkQsa0JBQWtCbUQsS0FBSyxDQUFDTSxLQUFLLENBQUN6RCxtQkFBbUIwRCxhQUVqRCxxR0FBcUcsWUFDWTtnQkFDakgsb0hBQW9IO2dCQUNwSCxpRUFBaUU7Z0JBQ2pFTiwrQkFBK0JPLElBQUksQ0FBQzNELG1CQUFtQmlDO1lBQzdEO1lBQ0EyQixVQUFVO1FBQ1o7UUFDQVAsVUFBVTtZQUNSVCxPQUFPLFNBQVNTO2dCQUNkLE1BQU1FLGFBQWE7Z0JBQ25CQyxVQUFVMUQsT0FBT3lEO2dCQUNqQixPQUFPdkQsa0JBQWtCcUQsUUFBUSxDQUFDSSxLQUFLLENBQ3JDekQsbUJBQ0EwRDtZQUVKO1lBQ0FFLFVBQVU7UUFDWjtJQUNGO0lBRUEsT0FBTzNCO0FBQ1Q7QUFFQSwrRUFBK0U7QUFDL0UsK0VBQStFO0FBQy9FLFNBQVNYLG9DQUNQdEIsaUJBQXlDLEVBQ3pDRixLQUFjO0lBRWQsTUFBTXVDLGdCQUFnQlQsY0FBY0ksR0FBRyxDQUFDaEM7SUFDeEMsSUFBSXFDLGVBQWU7UUFDakIsT0FBT0E7SUFDVDtJQUVBLE1BQU1KLFVBQVUsSUFBSUssUUFBZ0MsQ0FBQ0MsVUFDbkRlLENBQUFBLEdBQUFBLFdBQUFBLGlCQUFBQSxFQUFrQixJQUFNZixRQUFRdkM7SUFHbEMsTUFBTWdFLGlCQUFpQixJQUFJQyxNQUFNaEMsU0FBUztRQUN4Q0QsS0FBSWtDLE1BQU0sRUFBRUMsSUFBSSxFQUFFQyxRQUFRO1lBQ3hCLE9BQVFEO2dCQUNOLEtBQUt6QixPQUFPQyxRQUFRO29CQUFFO3dCQUNwQjBCLGtCQUFrQnZFLE9BQU87d0JBQ3pCO29CQUNGO2dCQUNBLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztvQkFBWTt3QkFDZnVFLGtCQUFrQnZFLE9BQU8sQ0FBQyxZQUFZLEVBQUVxRSxLQUFLLEVBQUUsQ0FBQzt3QkFDaEQ7b0JBQ0Y7Z0JBQ0E7b0JBQVM7b0JBQ1Asa0VBQWtFO29CQUNwRTtZQUNGO1lBRUEsT0FBT0csU0FBQUEsY0FBYyxDQUFDdEMsR0FBRyxDQUFDa0MsUUFBUUMsTUFBTUM7UUFDMUM7SUFDRjtJQUVBeEMsY0FBY1EsR0FBRyxDQUFDcEMsbUJBQW1CZ0U7SUFFckMsT0FBT0E7QUFDVDtBQUVBLFNBQVNGLGdCQUFnQkMsR0FBWTtJQUNuQyxPQUFPLE9BQU9BLFFBQVEsWUFDcEJBLFFBQVEsUUFDUixPQUFRQSxJQUFZUSxJQUFJLEtBQUssV0FDM0IsQ0FBQyxDQUFDLEVBQUdSLElBQVlRLElBQUksQ0FBQyxDQUFDLENBQUMsR0FDeEIsT0FBT1IsUUFBUSxXQUNiLENBQUMsQ0FBQyxFQUFFQSxJQUFJLENBQUMsQ0FBQyxHQUNWO0FBQ1I7QUFFQSxTQUFTUCxVQUFVMUQsS0FBeUIsRUFBRXlELFVBQWtCO0lBQzlELE1BQU05RCxnQkFBZ0JDLDhCQUFBQSxvQkFBb0IsQ0FBQ0YsUUFBUTtJQUNuRCxJQUNFQyxpQkFDQUEsY0FBY1UsSUFBSSxLQUFLLGFBQ3ZCVixjQUFjK0UsY0FBYyxLQUFLLE1BQ2pDO1FBQ0Esd0VBQXdFO1FBQ3hFLGdFQUFnRTtRQUNoRSxNQUFNM0QsZUFBZXBCO1FBQ3JCZ0YsQ0FBQUEsR0FBQUEsa0JBQUFBLHNDQUFBQSxFQUF1QzVEO0lBQ3pDO0lBQ0EsZ0NBQWdDO0lBQ2hDd0Qsa0JBQWtCdkUsT0FBT3lEO0FBQzNCO0FBRUEsTUFBTWMsb0JBQW9CSyxDQUFBQSxHQUFBQSwwQ0FBQUEsMkNBQUFBLEVBQ3hCQztBQUdGLFNBQVNBLHlCQUNQN0UsS0FBeUIsRUFDekJ5RCxVQUFrQjtJQUVsQixNQUFNcUIsU0FBUzlFLFFBQVEsQ0FBQyxPQUFPLEVBQUVBLE1BQU0sRUFBRSxDQUFDLEdBQUc7SUFDN0MsT0FBTyxxQkFJTixDQUpNLElBQUlELE1BQ1QsR0FBRytFLE9BQU8sS0FBSyxFQUFFckIsV0FBVyxFQUFFLENBQUMsR0FDN0IsQ0FBQyx3REFBd0QsQ0FBQyxHQUMxRCxDQUFDLDhEQUE4RCxDQUFDLEdBSDdEO2VBQUE7b0JBQUE7c0JBQUE7SUFJUDtBQUNGO0FBRUEsU0FBU1Q7SUFHUCxPQUFPLElBQUksQ0FBQ0UsTUFBTSxHQUNmNkIsR0FBRyxDQUFDLENBQUNDLElBQU07WUFBQ0EsRUFBRVAsSUFBSTtZQUFFTztTQUFFLEVBQ3RCQyxNQUFNO0FBQ1g7QUFFQSxTQUFTM0IsK0JBRVA0QixVQUEyQztJQUUzQyxLQUFLLE1BQU1DLFVBQVUsSUFBSSxDQUFDakMsTUFBTSxHQUFJO1FBQ2xDLElBQUksQ0FBQ0UsTUFBTSxDQUFDK0IsT0FBT1YsSUFBSTtJQUN6QjtJQUNBLE9BQU9TO0FBQ1QiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9zZXJ2ZXIvcmVxdWVzdC9jb29raWVzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIHR5cGUgUmVhZG9ubHlSZXF1ZXN0Q29va2llcyxcbiAgdHlwZSBSZXNwb25zZUNvb2tpZXMsXG4gIGFyZUNvb2tpZXNNdXRhYmxlSW5DdXJyZW50UGhhc2UsXG4gIFJlcXVlc3RDb29raWVzQWRhcHRlcixcbn0gZnJvbSAnLi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL3JlcXVlc3QtY29va2llcydcbmltcG9ydCB7IFJlcXVlc3RDb29raWVzIH0gZnJvbSAnLi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2Nvb2tpZXMnXG5pbXBvcnQgeyB3b3JrQXN5bmNTdG9yYWdlIH0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5pbXBvcnQge1xuICB3b3JrVW5pdEFzeW5jU3RvcmFnZSxcbiAgdHlwZSBQcmVyZW5kZXJTdG9yZU1vZGVybixcbn0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB7XG4gIHBvc3Rwb25lV2l0aFRyYWNraW5nLFxuICB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbixcbiAgdHJhY2tEeW5hbWljRGF0YUluRHluYW1pY1JlbmRlcixcbiAgdHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYsXG59IGZyb20gJy4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmcnXG5pbXBvcnQgeyBnZXRFeHBlY3RlZFJlcXVlc3RTdG9yZSB9IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5pbXBvcnQgeyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IgfSBmcm9tICcuLi8uLi9jbGllbnQvY29tcG9uZW50cy9zdGF0aWMtZ2VuZXJhdGlvbi1iYWlsb3V0J1xuaW1wb3J0IHsgbWFrZUhhbmdpbmdQcm9taXNlIH0gZnJvbSAnLi4vZHluYW1pYy1yZW5kZXJpbmctdXRpbHMnXG5pbXBvcnQgeyBjcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2IH0gZnJvbSAnLi4vY3JlYXRlLWRlZHVwZWQtYnktY2FsbHNpdGUtc2VydmVyLWVycm9yLWxvZ2dlcidcbmltcG9ydCB7IHNjaGVkdWxlSW1tZWRpYXRlIH0gZnJvbSAnLi4vLi4vbGliL3NjaGVkdWxlcidcbmltcG9ydCB7IGlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIgfSBmcm9tICcuL3V0aWxzJ1xuaW1wb3J0IHsgSW52YXJpYW50RXJyb3IgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2ludmFyaWFudC1lcnJvcidcbmltcG9ydCB7IFJlZmxlY3RBZGFwdGVyIH0gZnJvbSAnLi4vd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL3JlZmxlY3QnXG5cbi8qKlxuICogSW4gdGhpcyB2ZXJzaW9uIG9mIE5leHQuanMgYGNvb2tpZXMoKWAgcmV0dXJucyBhIFByb21pc2UgaG93ZXZlciB5b3UgY2FuIHN0aWxsIHJlZmVyZW5jZSB0aGUgcHJvcGVydGllcyBvZiB0aGUgdW5kZXJseWluZyBjb29raWVzIG9iamVjdFxuICogc3luY2hyb25vdXNseSB0byBmYWNpbGl0YXRlIG1pZ3JhdGlvbi4gVGhlIGBVbnNhZmVVbndyYXBwZWRDb29raWVzYCB0eXBlIGlzIGFkZGVkIHRvIHlvdXIgY29kZSBieSBhIGNvZGVtb2QgdGhhdCBhdHRlbXB0cyB0byBhdXRvbWF0aWNhbGx5XG4gKiB1cGRhdGVzIGNhbGxzaXRlcyB0byByZWZsZWN0IHRoZSBuZXcgUHJvbWlzZSByZXR1cm4gdHlwZS4gVGhlcmUgYXJlIHNvbWUgY2FzZXMgd2hlcmUgYGNvb2tpZXMoKWAgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkLCBuYW1lbHlcbiAqIHdoZW4gaXQgaXMgdXNlZCBpbnNpZGUgYSBzeW5jaHJvbm91cyBmdW5jdGlvbiBhbmQgd2UgY2FuJ3QgYmUgc3VyZSB0aGUgZnVuY3Rpb24gY2FuIGJlIG1hZGUgYXN5bmMgYXV0b21hdGljYWxseS4gSW4gdGhlc2UgY2FzZXMgd2UgYWRkIGFuXG4gKiBleHBsaWNpdCB0eXBlIGNhc2UgdG8gYFVuc2FmZVVud3JhcHBlZENvb2tpZXNgIHRvIGVuYWJsZSB0eXBlc2NyaXB0IHRvIGFsbG93IGZvciB0aGUgc3luY2hyb25vdXMgdXNhZ2Ugb25seSB3aGVyZSBpdCBpcyBhY3R1YWxseSBuZWNlc3NhcnkuXG4gKlxuICogWW91IHNob3VsZCBzaG91bGQgdXBkYXRlIHRoZXNlIGNhbGxzaXRlcyB0byBlaXRoZXIgYmUgYXN5bmMgZnVuY3Rpb25zIHdoZXJlIHRoZSBgY29va2llcygpYCB2YWx1ZSBjYW4gYmUgYXdhaXRlZCBvciB5b3Ugc2hvdWxkIGNhbGwgYGNvb2tpZXMoKWBcbiAqIGZyb20gb3V0c2lkZSBhbmQgYXdhaXQgdGhlIHJldHVybiB2YWx1ZSBiZWZvcmUgcGFzc2luZyBpdCBpbnRvIHRoaXMgZnVuY3Rpb24uXG4gKlxuICogWW91IGNhbiBmaW5kIGluc3RhbmNlcyB0aGF0IHJlcXVpcmUgbWFudWFsIG1pZ3JhdGlvbiBieSBzZWFyY2hpbmcgZm9yIGBVbnNhZmVVbndyYXBwZWRDb29raWVzYCBpbiB5b3VyIGNvZGViYXNlIG9yIGJ5IHNlYXJjaCBmb3IgYSBjb21tZW50IHRoYXRcbiAqIHN0YXJ0cyB3aXRoIGBAbmV4dC1jb2RlbW9kLWVycm9yYC5cbiAqXG4gKiBJbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIE5leHQuanMgYGNvb2tpZXMoKWAgd2lsbCBvbmx5IHJldHVybiBhIFByb21pc2UgYW5kIHlvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIGFjY2VzcyB0aGUgdW5kZXJseWluZyBjb29raWVzIG9iamVjdCBkaXJlY3RseVxuICogd2l0aG91dCBhd2FpdGluZyB0aGUgcmV0dXJuIHZhbHVlIGZpcnN0LiBXaGVuIHRoaXMgY2hhbmdlIGhhcHBlbnMgdGhlIHR5cGUgYFVuc2FmZVVud3JhcHBlZENvb2tpZXNgIHdpbGwgYmUgdXBkYXRlZCB0byByZWZsZWN0IHRoYXQgaXMgaXQgbm8gbG9uZ2VyXG4gKiB1c2FibGUuXG4gKlxuICogVGhpcyB0eXBlIGlzIG1hcmtlZCBkZXByZWNhdGVkIHRvIGhlbHAgaWRlbnRpZnkgaXQgYXMgdGFyZ2V0IGZvciByZWZhY3RvcmluZyBhd2F5LlxuICpcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCB0eXBlIFVuc2FmZVVud3JhcHBlZENvb2tpZXMgPSBSZWFkb25seVJlcXVlc3RDb29raWVzXG5cbmV4cG9ydCBmdW5jdGlvbiBjb29raWVzKCk6IFByb21pc2U8UmVhZG9ubHlSZXF1ZXN0Q29va2llcz4ge1xuICBjb25zdCBjYWxsaW5nRXhwcmVzc2lvbiA9ICdjb29raWVzJ1xuICBjb25zdCB3b3JrU3RvcmUgPSB3b3JrQXN5bmNTdG9yYWdlLmdldFN0b3JlKClcbiAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IHdvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKClcblxuICBpZiAod29ya1N0b3JlKSB7XG4gICAgaWYgKFxuICAgICAgd29ya1VuaXRTdG9yZSAmJlxuICAgICAgd29ya1VuaXRTdG9yZS5waGFzZSA9PT0gJ2FmdGVyJyAmJlxuICAgICAgIWlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIoKVxuICAgICkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAvLyBUT0RPKGFmdGVyKTogY2xhcmlmeSB0aGF0IHRoaXMgb25seSBhcHBsaWVzIHRvIHBhZ2VzP1xuICAgICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXCJjb29raWVzXCIgaW5zaWRlIFwiYWZ0ZXIoLi4uKVwiLiBUaGlzIGlzIG5vdCBzdXBwb3J0ZWQuIElmIHlvdSBuZWVkIHRoaXMgZGF0YSBpbnNpZGUgYW4gXCJhZnRlclwiIGNhbGxiYWNrLCB1c2UgXCJjb29raWVzXCIgb3V0c2lkZSBvZiB0aGUgY2FsbGJhY2suIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvY2FuYXJ5L2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy9hZnRlcmBcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAod29ya1N0b3JlLmZvcmNlU3RhdGljKSB7XG4gICAgICAvLyBXaGVuIHVzaW5nIGZvcmNlU3RhdGljIHdlIG92ZXJyaWRlIGFsbCBvdGhlciBsb2dpYyBhbmQgYWx3YXlzIGp1c3QgcmV0dXJuIGFuIGVtcHR5XG4gICAgICAvLyBjb29raWVzIG9iamVjdCB3aXRob3V0IHRyYWNraW5nXG4gICAgICBjb25zdCB1bmRlcmx5aW5nQ29va2llcyA9IGNyZWF0ZUVtcHR5Q29va2llcygpXG4gICAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY0Nvb2tpZXModW5kZXJseWluZ0Nvb2tpZXMpXG4gICAgfVxuXG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdjYWNoZScpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBSb3V0ZSAke3dvcmtTdG9yZS5yb3V0ZX0gdXNlZCBcImNvb2tpZXNcIiBpbnNpZGUgXCJ1c2UgY2FjaGVcIi4gQWNjZXNzaW5nIER5bmFtaWMgZGF0YSBzb3VyY2VzIGluc2lkZSBhIGNhY2hlIHNjb3BlIGlzIG5vdCBzdXBwb3J0ZWQuIElmIHlvdSBuZWVkIHRoaXMgZGF0YSBpbnNpZGUgYSBjYWNoZWQgZnVuY3Rpb24gdXNlIFwiY29va2llc1wiIG91dHNpZGUgb2YgdGhlIGNhY2hlZCBmdW5jdGlvbiBhbmQgcGFzcyB0aGUgcmVxdWlyZWQgZHluYW1pYyBkYXRhIGluIGFzIGFuIGFyZ3VtZW50LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcmVxdWVzdC1pbi11c2UtY2FjaGVgXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAndW5zdGFibGUtY2FjaGUnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgUm91dGUgJHt3b3JrU3RvcmUucm91dGV9IHVzZWQgXCJjb29raWVzXCIgaW5zaWRlIGEgZnVuY3Rpb24gY2FjaGVkIHdpdGggXCJ1bnN0YWJsZV9jYWNoZSguLi4pXCIuIEFjY2Vzc2luZyBEeW5hbWljIGRhdGEgc291cmNlcyBpbnNpZGUgYSBjYWNoZSBzY29wZSBpcyBub3Qgc3VwcG9ydGVkLiBJZiB5b3UgbmVlZCB0aGlzIGRhdGEgaW5zaWRlIGEgY2FjaGVkIGZ1bmN0aW9uIHVzZSBcImNvb2tpZXNcIiBvdXRzaWRlIG9mIHRoZSBjYWNoZWQgZnVuY3Rpb24gYW5kIHBhc3MgdGhlIHJlcXVpcmVkIGR5bmFtaWMgZGF0YSBpbiBhcyBhbiBhcmd1bWVudC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdW5zdGFibGVfY2FjaGVgXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKHdvcmtTdG9yZS5keW5hbWljU2hvdWxkRXJyb3IpIHtcbiAgICAgIHRocm93IG5ldyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IoXG4gICAgICAgIGBSb3V0ZSAke3dvcmtTdG9yZS5yb3V0ZX0gd2l0aCBcXGBkeW5hbWljID0gXCJlcnJvclwiXFxgIGNvdWxkbid0IGJlIHJlbmRlcmVkIHN0YXRpY2FsbHkgYmVjYXVzZSBpdCB1c2VkIFxcYGNvb2tpZXNcXGAuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vcmVuZGVyaW5nL3N0YXRpYy1hbmQtZHluYW1pYyNkeW5hbWljLXJlbmRlcmluZ2BcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICAgICAgICByZXR1cm4gbWFrZUhhbmdpbmdDb29raWVzKHdvcmtVbml0U3RvcmUpXG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1jbGllbnQnOlxuICAgICAgICAgIGNvbnN0IGV4cG9ydE5hbWUgPSAnYGNvb2tpZXNgJ1xuICAgICAgICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcihcbiAgICAgICAgICAgIGAke2V4cG9ydE5hbWV9IG11c3Qgbm90IGJlIHVzZWQgd2l0aGluIGEgY2xpZW50IGNvbXBvbmVudC4gTmV4dC5qcyBzaG91bGQgYmUgcHJldmVudGluZyAke2V4cG9ydE5hbWV9IGZyb20gYmVpbmcgaW5jbHVkZWQgaW4gY2xpZW50IGNvbXBvbmVudHMgc3RhdGljYWxseSwgYnV0IGRpZCBub3QgaW4gdGhpcyBjYXNlLmBcbiAgICAgICAgICApXG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGR5bmFtaWNJTylcbiAgICAgICAgICAvLyBXZSBhcmUgcHJlcmVuZGVyaW5nIHdpdGggUFBSLiBXZSBuZWVkIHRyYWNrIGR5bmFtaWMgYWNjZXNzIGhlcmUgZWFnZXJseVxuICAgICAgICAgIC8vIHRvIGtlZXAgY29udGludWl0eSB3aXRoIGhvdyBjb29raWVzIGhhcyB3b3JrZWQgaW4gUFBSIHdpdGhvdXQgZHluYW1pY0lPLlxuICAgICAgICAgIHBvc3Rwb25lV2l0aFRyYWNraW5nKFxuICAgICAgICAgICAgd29ya1N0b3JlLnJvdXRlLFxuICAgICAgICAgICAgY2FsbGluZ0V4cHJlc3Npb24sXG4gICAgICAgICAgICB3b3JrVW5pdFN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICAgICAgICAgIClcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgLy8gV2UgdHJhY2sgZHluYW1pYyBhY2Nlc3MgaGVyZSBzbyB3ZSBkb24ndCBuZWVkIHRvIHdyYXAgdGhlIGNvb2tpZXMgaW5cbiAgICAgICAgICAvLyBpbmRpdmlkdWFsIHByb3BlcnR5IGFjY2VzcyB0cmFja2luZy5cbiAgICAgICAgICB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbihcbiAgICAgICAgICAgIGNhbGxpbmdFeHByZXNzaW9uLFxuICAgICAgICAgICAgd29ya1N0b3JlLFxuICAgICAgICAgICAgd29ya1VuaXRTdG9yZVxuICAgICAgICAgIClcbiAgICAgICAgICBicmVha1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBmYWxsdGhyb3VnaFxuICAgICAgfVxuICAgIH1cbiAgICAvLyBXZSBmYWxsIHRocm91Z2ggdG8gdGhlIGR5bmFtaWMgY29udGV4dCBiZWxvdyBidXQgd2Ugc3RpbGwgdHJhY2sgZHluYW1pYyBhY2Nlc3NcbiAgICAvLyBiZWNhdXNlIGluIGRldiB3ZSBjYW4gc3RpbGwgZXJyb3IgZm9yIHRoaW5ncyBsaWtlIHVzaW5nIGNvb2tpZXMgaW5zaWRlIGEgY2FjaGUgY29udGV4dFxuICAgIHRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXIod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlKVxuICB9XG5cbiAgLy8gY29va2llcyBpcyBiZWluZyBjYWxsZWQgaW4gYSBkeW5hbWljIGNvbnRleHRcblxuICBjb25zdCByZXF1ZXN0U3RvcmUgPSBnZXRFeHBlY3RlZFJlcXVlc3RTdG9yZShjYWxsaW5nRXhwcmVzc2lvbilcblxuICBsZXQgdW5kZXJseWluZ0Nvb2tpZXM6IFJlYWRvbmx5UmVxdWVzdENvb2tpZXNcblxuICBpZiAoYXJlQ29va2llc011dGFibGVJbkN1cnJlbnRQaGFzZShyZXF1ZXN0U3RvcmUpKSB7XG4gICAgLy8gV2UgY2FuJ3QgY29uZGl0aW9uYWxseSByZXR1cm4gZGlmZmVyZW50IHR5cGVzIGhlcmUgYmFzZWQgb24gdGhlIGNvbnRleHQuXG4gICAgLy8gVG8gYXZvaWQgY29uZnVzaW9uLCB3ZSBhbHdheXMgcmV0dXJuIHRoZSByZWFkb25seSB0eXBlIGhlcmUuXG4gICAgdW5kZXJseWluZ0Nvb2tpZXMgPVxuICAgICAgcmVxdWVzdFN0b3JlLnVzZXJzcGFjZU11dGFibGVDb29raWVzIGFzIHVua25vd24gYXMgUmVhZG9ubHlSZXF1ZXN0Q29va2llc1xuICB9IGVsc2Uge1xuICAgIHVuZGVybHlpbmdDb29raWVzID0gcmVxdWVzdFN0b3JlLmNvb2tpZXNcbiAgfVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50JyAmJiAhd29ya1N0b3JlPy5pc1ByZWZldGNoUmVxdWVzdCkge1xuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfRFlOQU1JQ19JTykge1xuICAgICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRDb29raWVzV2l0aERldldhcm5pbmdzKFxuICAgICAgICB1bmRlcmx5aW5nQ29va2llcyxcbiAgICAgICAgd29ya1N0b3JlPy5yb3V0ZVxuICAgICAgKVxuICAgIH1cblxuICAgIHJldHVybiBtYWtlVW50cmFja2VkRXhvdGljQ29va2llc1dpdGhEZXZXYXJuaW5ncyhcbiAgICAgIHVuZGVybHlpbmdDb29raWVzLFxuICAgICAgd29ya1N0b3JlPy5yb3V0ZVxuICAgIClcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY0Nvb2tpZXModW5kZXJseWluZ0Nvb2tpZXMpXG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlRW1wdHlDb29raWVzKCk6IFJlYWRvbmx5UmVxdWVzdENvb2tpZXMge1xuICByZXR1cm4gUmVxdWVzdENvb2tpZXNBZGFwdGVyLnNlYWwobmV3IFJlcXVlc3RDb29raWVzKG5ldyBIZWFkZXJzKHt9KSkpXG59XG5cbmludGVyZmFjZSBDYWNoZUxpZmV0aW1lIHt9XG5jb25zdCBDYWNoZWRDb29raWVzID0gbmV3IFdlYWtNYXA8XG4gIENhY2hlTGlmZXRpbWUsXG4gIFByb21pc2U8UmVhZG9ubHlSZXF1ZXN0Q29va2llcz5cbj4oKVxuXG5mdW5jdGlvbiBtYWtlSGFuZ2luZ0Nvb2tpZXMoXG4gIHByZXJlbmRlclN0b3JlOiBQcmVyZW5kZXJTdG9yZU1vZGVyblxuKTogUHJvbWlzZTxSZWFkb25seVJlcXVlc3RDb29raWVzPiB7XG4gIGNvbnN0IGNhY2hlZFByb21pc2UgPSBDYWNoZWRDb29raWVzLmdldChwcmVyZW5kZXJTdG9yZSlcbiAgaWYgKGNhY2hlZFByb21pc2UpIHtcbiAgICByZXR1cm4gY2FjaGVkUHJvbWlzZVxuICB9XG5cbiAgY29uc3QgcHJvbWlzZSA9IG1ha2VIYW5naW5nUHJvbWlzZTxSZWFkb25seVJlcXVlc3RDb29raWVzPihcbiAgICBwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsXG4gICAgJ2Bjb29raWVzKClgJ1xuICApXG4gIENhY2hlZENvb2tpZXMuc2V0KHByZXJlbmRlclN0b3JlLCBwcm9taXNlKVxuXG4gIHJldHVybiBwcm9taXNlXG59XG5cbmZ1bmN0aW9uIG1ha2VVbnRyYWNrZWRFeG90aWNDb29raWVzKFxuICB1bmRlcmx5aW5nQ29va2llczogUmVhZG9ubHlSZXF1ZXN0Q29va2llc1xuKTogUHJvbWlzZTxSZWFkb25seVJlcXVlc3RDb29raWVzPiB7XG4gIGNvbnN0IGNhY2hlZENvb2tpZXMgPSBDYWNoZWRDb29raWVzLmdldCh1bmRlcmx5aW5nQ29va2llcylcbiAgaWYgKGNhY2hlZENvb2tpZXMpIHtcbiAgICByZXR1cm4gY2FjaGVkQ29va2llc1xuICB9XG5cbiAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZSh1bmRlcmx5aW5nQ29va2llcylcbiAgQ2FjaGVkQ29va2llcy5zZXQodW5kZXJseWluZ0Nvb2tpZXMsIHByb21pc2UpXG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocHJvbWlzZSwge1xuICAgIFtTeW1ib2wuaXRlcmF0b3JdOiB7XG4gICAgICB2YWx1ZTogdW5kZXJseWluZ0Nvb2tpZXNbU3ltYm9sLml0ZXJhdG9yXVxuICAgICAgICA/IHVuZGVybHlpbmdDb29raWVzW1N5bWJvbC5pdGVyYXRvcl0uYmluZCh1bmRlcmx5aW5nQ29va2llcylcbiAgICAgICAgOiAvLyBUT0RPIHRoaXMgaXMgYSBwb2x5ZmlsbCBmb3Igd2hlbiB0aGUgdW5kZXJseWluZyB0eXBlIGlzIFJlc3BvbnNlQ29va2llc1xuICAgICAgICAgIC8vIFdlIHNob3VsZCByZW1vdmUgdGhpcyBhbmQgdW5pZnkgb3VyIGNvb2tpZXMgdHlwZXMuIFdlIGNvdWxkIGp1c3QgbGV0IHRoaXMgY29udGludWUgdG8gdGhyb3cgbGF6aWx5XG4gICAgICAgICAgLy8gYnV0IHRoYXQncyBhbHJlYWR5IGEgaGFyZCB0aGluZyB0byBkZWJ1ZyBzbyB3ZSBtYXkgYXMgd2VsbCBpbXBsZW1lbnQgaXQgY29uc2lzdGVudGx5LiBUaGUgYmlnZ2VzdCBwcm9ibGVtIHdpdGhcbiAgICAgICAgICAvLyBpbXBsZW1lbnRpbmcgdGhpcyBpbiB0aGlzIHdheSBpcyB0aGUgdW5kZXJseWluZyBjb29raWUgdHlwZSBpcyBhIFJlc3BvbnNlQ29va2llIGFuZCBub3QgYSBSZXF1ZXN0Q29va2llIGFuZCBzbyBpdFxuICAgICAgICAgIC8vIGhhcyBleHRyYSBwcm9wZXJ0aWVzIG5vdCBhdmFpbGFibGUgb24gUmVxdWVzdENvb2tpZSBpbnN0YW5jZXMuXG4gICAgICAgICAgcG9seWZpbGxlZFJlc3BvbnNlQ29va2llc0l0ZXJhdG9yLmJpbmQodW5kZXJseWluZ0Nvb2tpZXMpLFxuICAgIH0sXG4gICAgc2l6ZToge1xuICAgICAgZ2V0KCk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiB1bmRlcmx5aW5nQ29va2llcy5zaXplXG4gICAgICB9LFxuICAgIH0sXG4gICAgZ2V0OiB7XG4gICAgICB2YWx1ZTogdW5kZXJseWluZ0Nvb2tpZXMuZ2V0LmJpbmQodW5kZXJseWluZ0Nvb2tpZXMpLFxuICAgIH0sXG4gICAgZ2V0QWxsOiB7XG4gICAgICB2YWx1ZTogdW5kZXJseWluZ0Nvb2tpZXMuZ2V0QWxsLmJpbmQodW5kZXJseWluZ0Nvb2tpZXMpLFxuICAgIH0sXG4gICAgaGFzOiB7XG4gICAgICB2YWx1ZTogdW5kZXJseWluZ0Nvb2tpZXMuaGFzLmJpbmQodW5kZXJseWluZ0Nvb2tpZXMpLFxuICAgIH0sXG4gICAgc2V0OiB7XG4gICAgICB2YWx1ZTogdW5kZXJseWluZ0Nvb2tpZXMuc2V0LmJpbmQodW5kZXJseWluZ0Nvb2tpZXMpLFxuICAgIH0sXG4gICAgZGVsZXRlOiB7XG4gICAgICB2YWx1ZTogdW5kZXJseWluZ0Nvb2tpZXMuZGVsZXRlLmJpbmQodW5kZXJseWluZ0Nvb2tpZXMpLFxuICAgIH0sXG4gICAgY2xlYXI6IHtcbiAgICAgIHZhbHVlOlxuICAgICAgICAvLyBAdHMtZXhwZWN0LWVycm9yIGNsZWFyIGlzIGRlZmluZWQgaW4gUmVxdWVzdENvb2tpZXMgaW1wbGVtZW50YXRpb24gYnV0IG5vdCBpbiB0aGUgdHlwZVxuICAgICAgICB0eXBlb2YgdW5kZXJseWluZ0Nvb2tpZXMuY2xlYXIgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICA/IC8vIEB0cy1leHBlY3QtZXJyb3IgY2xlYXIgaXMgZGVmaW5lZCBpbiBSZXF1ZXN0Q29va2llcyBpbXBsZW1lbnRhdGlvbiBidXQgbm90IGluIHRoZSB0eXBlXG4gICAgICAgICAgICB1bmRlcmx5aW5nQ29va2llcy5jbGVhci5iaW5kKHVuZGVybHlpbmdDb29raWVzKVxuICAgICAgICAgIDogLy8gVE9ETyB0aGlzIGlzIGEgcG9seWZpbGwgZm9yIHdoZW4gdGhlIHVuZGVybHlpbmcgdHlwZSBpcyBSZXNwb25zZUNvb2tpZXNcbiAgICAgICAgICAgIC8vIFdlIHNob3VsZCByZW1vdmUgdGhpcyBhbmQgdW5pZnkgb3VyIGNvb2tpZXMgdHlwZXMuIFdlIGNvdWxkIGp1c3QgbGV0IHRoaXMgY29udGludWUgdG8gdGhyb3cgbGF6aWx5XG4gICAgICAgICAgICAvLyBidXQgdGhhdCdzIGFscmVhZHkgYSBoYXJkIHRoaW5nIHRvIGRlYnVnIHNvIHdlIG1heSBhcyB3ZWxsIGltcGxlbWVudCBpdCBjb25zaXN0ZW50bHkuIFRoZSBiaWdnZXN0IHByb2JsZW0gd2l0aFxuICAgICAgICAgICAgLy8gaW1wbGVtZW50aW5nIHRoaXMgaW4gdGhpcyB3YXkgaXMgdGhlIHVuZGVybHlpbmcgY29va2llIHR5cGUgaXMgYSBSZXNwb25zZUNvb2tpZSBhbmQgbm90IGEgUmVxdWVzdENvb2tpZSBhbmQgc28gaXRcbiAgICAgICAgICAgIC8vIGhhcyBleHRyYSBwcm9wZXJ0aWVzIG5vdCBhdmFpbGFibGUgb24gUmVxdWVzdENvb2tpZSBpbnN0YW5jZXMuXG4gICAgICAgICAgICBwb2x5ZmlsbGVkUmVzcG9uc2VDb29raWVzQ2xlYXIuYmluZCh1bmRlcmx5aW5nQ29va2llcywgcHJvbWlzZSksXG4gICAgfSxcbiAgICB0b1N0cmluZzoge1xuICAgICAgdmFsdWU6IHVuZGVybHlpbmdDb29raWVzLnRvU3RyaW5nLmJpbmQodW5kZXJseWluZ0Nvb2tpZXMpLFxuICAgIH0sXG4gIH0gc2F0aXNmaWVzIENvb2tpZUV4dGVuc2lvbnMpXG5cbiAgcmV0dXJuIHByb21pc2Vcbn1cblxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZEV4b3RpY0Nvb2tpZXNXaXRoRGV2V2FybmluZ3MoXG4gIHVuZGVybHlpbmdDb29raWVzOiBSZWFkb25seVJlcXVlc3RDb29raWVzLFxuICByb3V0ZT86IHN0cmluZ1xuKTogUHJvbWlzZTxSZWFkb25seVJlcXVlc3RDb29raWVzPiB7XG4gIGNvbnN0IGNhY2hlZENvb2tpZXMgPSBDYWNoZWRDb29raWVzLmdldCh1bmRlcmx5aW5nQ29va2llcylcbiAgaWYgKGNhY2hlZENvb2tpZXMpIHtcbiAgICByZXR1cm4gY2FjaGVkQ29va2llc1xuICB9XG5cbiAgY29uc3QgcHJvbWlzZSA9IG5ldyBQcm9taXNlPFJlYWRvbmx5UmVxdWVzdENvb2tpZXM+KChyZXNvbHZlKSA9PlxuICAgIHNjaGVkdWxlSW1tZWRpYXRlKCgpID0+IHJlc29sdmUodW5kZXJseWluZ0Nvb2tpZXMpKVxuICApXG4gIENhY2hlZENvb2tpZXMuc2V0KHVuZGVybHlpbmdDb29raWVzLCBwcm9taXNlKVxuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHByb21pc2UsIHtcbiAgICBbU3ltYm9sLml0ZXJhdG9yXToge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgLi4uY29va2llcygpYCBvciBzaW1pbGFyIGl0ZXJhdGlvbidcbiAgICAgICAgc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uKVxuICAgICAgICByZXR1cm4gdW5kZXJseWluZ0Nvb2tpZXNbU3ltYm9sLml0ZXJhdG9yXVxuICAgICAgICAgID8gdW5kZXJseWluZ0Nvb2tpZXNbU3ltYm9sLml0ZXJhdG9yXS5hcHBseShcbiAgICAgICAgICAgICAgdW5kZXJseWluZ0Nvb2tpZXMsXG4gICAgICAgICAgICAgIGFyZ3VtZW50cyBhcyBhbnlcbiAgICAgICAgICAgIClcbiAgICAgICAgICA6IC8vIFRPRE8gdGhpcyBpcyBhIHBvbHlmaWxsIGZvciB3aGVuIHRoZSB1bmRlcmx5aW5nIHR5cGUgaXMgUmVzcG9uc2VDb29raWVzXG4gICAgICAgICAgICAvLyBXZSBzaG91bGQgcmVtb3ZlIHRoaXMgYW5kIHVuaWZ5IG91ciBjb29raWVzIHR5cGVzLiBXZSBjb3VsZCBqdXN0IGxldCB0aGlzIGNvbnRpbnVlIHRvIHRocm93IGxhemlseVxuICAgICAgICAgICAgLy8gYnV0IHRoYXQncyBhbHJlYWR5IGEgaGFyZCB0aGluZyB0byBkZWJ1ZyBzbyB3ZSBtYXkgYXMgd2VsbCBpbXBsZW1lbnQgaXQgY29uc2lzdGVudGx5LiBUaGUgYmlnZ2VzdCBwcm9ibGVtIHdpdGhcbiAgICAgICAgICAgIC8vIGltcGxlbWVudGluZyB0aGlzIGluIHRoaXMgd2F5IGlzIHRoZSB1bmRlcmx5aW5nIGNvb2tpZSB0eXBlIGlzIGEgUmVzcG9uc2VDb29raWUgYW5kIG5vdCBhIFJlcXVlc3RDb29raWUgYW5kIHNvIGl0XG4gICAgICAgICAgICAvLyBoYXMgZXh0cmEgcHJvcGVydGllcyBub3QgYXZhaWxhYmxlIG9uIFJlcXVlc3RDb29raWUgaW5zdGFuY2VzLlxuICAgICAgICAgICAgcG9seWZpbGxlZFJlc3BvbnNlQ29va2llc0l0ZXJhdG9yLmNhbGwodW5kZXJseWluZ0Nvb2tpZXMpXG4gICAgICB9LFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIH0sXG4gICAgc2l6ZToge1xuICAgICAgZ2V0KCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYGNvb2tpZXMoKS5zaXplYCdcbiAgICAgICAgc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uKVxuICAgICAgICByZXR1cm4gdW5kZXJseWluZ0Nvb2tpZXMuc2l6ZVxuICAgICAgfSxcbiAgICB9LFxuICAgIGdldDoge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICAgICAgbGV0IGV4cHJlc3Npb246IHN0cmluZ1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGV4cHJlc3Npb24gPSAnYGNvb2tpZXMoKS5nZXQoKWAnXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgZXhwcmVzc2lvbiA9IGBcXGBjb29raWVzKCkuZ2V0KCR7ZGVzY3JpYmVOYW1lQXJnKGFyZ3VtZW50c1swXSl9KVxcYGBcbiAgICAgICAgfVxuICAgICAgICBzeW5jSU9EZXYocm91dGUsIGV4cHJlc3Npb24pXG4gICAgICAgIHJldHVybiB1bmRlcmx5aW5nQ29va2llcy5nZXQuYXBwbHkodW5kZXJseWluZ0Nvb2tpZXMsIGFyZ3VtZW50cyBhcyBhbnkpXG4gICAgICB9LFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIH0sXG4gICAgZ2V0QWxsOiB7XG4gICAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0QWxsKCkge1xuICAgICAgICBsZXQgZXhwcmVzc2lvbjogc3RyaW5nXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgZXhwcmVzc2lvbiA9ICdgY29va2llcygpLmdldEFsbCgpYCdcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBleHByZXNzaW9uID0gYFxcYGNvb2tpZXMoKS5nZXRBbGwoJHtkZXNjcmliZU5hbWVBcmcoYXJndW1lbnRzWzBdKX0pXFxgYFxuICAgICAgICB9XG4gICAgICAgIHN5bmNJT0Rldihyb3V0ZSwgZXhwcmVzc2lvbilcbiAgICAgICAgcmV0dXJuIHVuZGVybHlpbmdDb29raWVzLmdldEFsbC5hcHBseShcbiAgICAgICAgICB1bmRlcmx5aW5nQ29va2llcyxcbiAgICAgICAgICBhcmd1bWVudHMgYXMgYW55XG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgICB3cml0YWJsZTogZmFsc2UsXG4gICAgfSxcbiAgICBoYXM6IHtcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICAgIGxldCBleHByZXNzaW9uOiBzdHJpbmdcbiAgICAgICAgaWYgKGFyZ3VtZW50cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICBleHByZXNzaW9uID0gJ2Bjb29raWVzKCkuaGFzKClgJ1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGV4cHJlc3Npb24gPSBgXFxgY29va2llcygpLmhhcygke2Rlc2NyaWJlTmFtZUFyZyhhcmd1bWVudHNbMF0pfSlcXGBgXG4gICAgICAgIH1cbiAgICAgICAgc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uKVxuICAgICAgICByZXR1cm4gdW5kZXJseWluZ0Nvb2tpZXMuaGFzLmFwcGx5KHVuZGVybHlpbmdDb29raWVzLCBhcmd1bWVudHMgYXMgYW55KVxuICAgICAgfSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICB9LFxuICAgIHNldDoge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHNldCgpIHtcbiAgICAgICAgbGV0IGV4cHJlc3Npb246IHN0cmluZ1xuICAgICAgICBpZiAoYXJndW1lbnRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIGV4cHJlc3Npb24gPSAnYGNvb2tpZXMoKS5zZXQoKWAnXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgYXJnID0gYXJndW1lbnRzWzBdXG4gICAgICAgICAgaWYgKGFyZykge1xuICAgICAgICAgICAgZXhwcmVzc2lvbiA9IGBcXGBjb29raWVzKCkuc2V0KCR7ZGVzY3JpYmVOYW1lQXJnKGFyZyl9LCAuLi4pXFxgYFxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBleHByZXNzaW9uID0gJ2Bjb29raWVzKCkuc2V0KC4uLilgJ1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBzeW5jSU9EZXYocm91dGUsIGV4cHJlc3Npb24pXG4gICAgICAgIHJldHVybiB1bmRlcmx5aW5nQ29va2llcy5zZXQuYXBwbHkodW5kZXJseWluZ0Nvb2tpZXMsIGFyZ3VtZW50cyBhcyBhbnkpXG4gICAgICB9LFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIH0sXG4gICAgZGVsZXRlOiB7XG4gICAgICB2YWx1ZTogZnVuY3Rpb24gKCkge1xuICAgICAgICBsZXQgZXhwcmVzc2lvbjogc3RyaW5nXG4gICAgICAgIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgZXhwcmVzc2lvbiA9ICdgY29va2llcygpLmRlbGV0ZSgpYCdcbiAgICAgICAgfSBlbHNlIGlmIChhcmd1bWVudHMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgZXhwcmVzc2lvbiA9IGBcXGBjb29raWVzKCkuZGVsZXRlKCR7ZGVzY3JpYmVOYW1lQXJnKGFyZ3VtZW50c1swXSl9KVxcYGBcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBleHByZXNzaW9uID0gYFxcYGNvb2tpZXMoKS5kZWxldGUoJHtkZXNjcmliZU5hbWVBcmcoYXJndW1lbnRzWzBdKX0sIC4uLilcXGBgXG4gICAgICAgIH1cbiAgICAgICAgc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uKVxuICAgICAgICByZXR1cm4gdW5kZXJseWluZ0Nvb2tpZXMuZGVsZXRlLmFwcGx5KFxuICAgICAgICAgIHVuZGVybHlpbmdDb29raWVzLFxuICAgICAgICAgIGFyZ3VtZW50cyBhcyBhbnlcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICB9LFxuICAgIGNsZWFyOiB7XG4gICAgICB2YWx1ZTogZnVuY3Rpb24gY2xlYXIoKSB7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYGNvb2tpZXMoKS5jbGVhcigpYCdcbiAgICAgICAgc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uKVxuICAgICAgICAvLyBAdHMtaWdub3JlIGNsZWFyIGlzIGRlZmluZWQgaW4gUmVxdWVzdENvb2tpZXMgaW1wbGVtZW50YXRpb24gYnV0IG5vdCBpbiB0aGUgdHlwZVxuICAgICAgICByZXR1cm4gdHlwZW9mIHVuZGVybHlpbmdDb29raWVzLmNsZWFyID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgPyAvLyBAdHMtaWdub3JlIGNsZWFyIGlzIGRlZmluZWQgaW4gUmVxdWVzdENvb2tpZXMgaW1wbGVtZW50YXRpb24gYnV0IG5vdCBpbiB0aGUgdHlwZVxuICAgICAgICAgICAgdW5kZXJseWluZ0Nvb2tpZXMuY2xlYXIuYXBwbHkodW5kZXJseWluZ0Nvb2tpZXMsIGFyZ3VtZW50cylcbiAgICAgICAgICA6IC8vIFRPRE8gdGhpcyBpcyBhIHBvbHlmaWxsIGZvciB3aGVuIHRoZSB1bmRlcmx5aW5nIHR5cGUgaXMgUmVzcG9uc2VDb29raWVzXG4gICAgICAgICAgICAvLyBXZSBzaG91bGQgcmVtb3ZlIHRoaXMgYW5kIHVuaWZ5IG91ciBjb29raWVzIHR5cGVzLiBXZSBjb3VsZCBqdXN0IGxldCB0aGlzIGNvbnRpbnVlIHRvIHRocm93IGxhemlseVxuICAgICAgICAgICAgLy8gYnV0IHRoYXQncyBhbHJlYWR5IGEgaGFyZCB0aGluZyB0byBkZWJ1ZyBzbyB3ZSBtYXkgYXMgd2VsbCBpbXBsZW1lbnQgaXQgY29uc2lzdGVudGx5LiBUaGUgYmlnZ2VzdCBwcm9ibGVtIHdpdGhcbiAgICAgICAgICAgIC8vIGltcGxlbWVudGluZyB0aGlzIGluIHRoaXMgd2F5IGlzIHRoZSB1bmRlcmx5aW5nIGNvb2tpZSB0eXBlIGlzIGEgUmVzcG9uc2VDb29raWUgYW5kIG5vdCBhIFJlcXVlc3RDb29raWUgYW5kIHNvIGl0XG4gICAgICAgICAgICAvLyBoYXMgZXh0cmEgcHJvcGVydGllcyBub3QgYXZhaWxhYmxlIG9uIFJlcXVlc3RDb29raWUgaW5zdGFuY2VzLlxuICAgICAgICAgICAgcG9seWZpbGxlZFJlc3BvbnNlQ29va2llc0NsZWFyLmNhbGwodW5kZXJseWluZ0Nvb2tpZXMsIHByb21pc2UpXG4gICAgICB9LFxuICAgICAgd3JpdGFibGU6IGZhbHNlLFxuICAgIH0sXG4gICAgdG9TdHJpbmc6IHtcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiB0b1N0cmluZygpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgY29va2llcygpLnRvU3RyaW5nKClgIG9yIGltcGxpY2l0IGNhc3RpbmcnXG4gICAgICAgIHN5bmNJT0Rldihyb3V0ZSwgZXhwcmVzc2lvbilcbiAgICAgICAgcmV0dXJuIHVuZGVybHlpbmdDb29raWVzLnRvU3RyaW5nLmFwcGx5KFxuICAgICAgICAgIHVuZGVybHlpbmdDb29raWVzLFxuICAgICAgICAgIGFyZ3VtZW50cyBhcyBhbnlcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICAgIHdyaXRhYmxlOiBmYWxzZSxcbiAgICB9LFxuICB9IHNhdGlzZmllcyBDb29raWVFeHRlbnNpb25zKVxuXG4gIHJldHVybiBwcm9taXNlXG59XG5cbi8vIFNpbWlsYXIgdG8gYG1ha2VVbnRyYWNrZWRFeG90aWNDb29raWVzV2l0aERldldhcm5pbmdzYCwgYnV0IGp1c3QgbG9nZ2luZyB0aGVcbi8vIHN5bmMgYWNjZXNzIHdpdGhvdXQgYWN0dWFsbHkgZGVmaW5pbmcgdGhlIGNvb2tpZXMgcHJvcGVydGllcyBvbiB0aGUgcHJvbWlzZS5cbmZ1bmN0aW9uIG1ha2VVbnRyYWNrZWRDb29raWVzV2l0aERldldhcm5pbmdzKFxuICB1bmRlcmx5aW5nQ29va2llczogUmVhZG9ubHlSZXF1ZXN0Q29va2llcyxcbiAgcm91dGU/OiBzdHJpbmdcbik6IFByb21pc2U8UmVhZG9ubHlSZXF1ZXN0Q29va2llcz4ge1xuICBjb25zdCBjYWNoZWRDb29raWVzID0gQ2FjaGVkQ29va2llcy5nZXQodW5kZXJseWluZ0Nvb2tpZXMpXG4gIGlmIChjYWNoZWRDb29raWVzKSB7XG4gICAgcmV0dXJuIGNhY2hlZENvb2tpZXNcbiAgfVxuXG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxSZWFkb25seVJlcXVlc3RDb29raWVzPigocmVzb2x2ZSkgPT5cbiAgICBzY2hlZHVsZUltbWVkaWF0ZSgoKSA9PiByZXNvbHZlKHVuZGVybHlpbmdDb29raWVzKSlcbiAgKVxuXG4gIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgc3dpdGNoIChwcm9wKSB7XG4gICAgICAgIGNhc2UgU3ltYm9sLml0ZXJhdG9yOiB7XG4gICAgICAgICAgd2FybkZvclN5bmNBY2Nlc3Mocm91dGUsICdgLi4uY29va2llcygpYCBvciBzaW1pbGFyIGl0ZXJhdGlvbicpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdzaXplJzpcbiAgICAgICAgY2FzZSAnZ2V0JzpcbiAgICAgICAgY2FzZSAnZ2V0QWxsJzpcbiAgICAgICAgY2FzZSAnaGFzJzpcbiAgICAgICAgY2FzZSAnc2V0JzpcbiAgICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgY2FzZSAnY2xlYXInOlxuICAgICAgICBjYXNlICd0b1N0cmluZyc6IHtcbiAgICAgICAgICB3YXJuRm9yU3luY0FjY2Vzcyhyb3V0ZSwgYFxcYGNvb2tpZXMoKS4ke3Byb3B9XFxgYClcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAvLyBXZSBvbmx5IHdhcm4gZm9yIHdlbGwtZGVmaW5lZCBwcm9wZXJ0aWVzIG9mIHRoZSBjb29raWVzIG9iamVjdC5cbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpXG4gICAgfSxcbiAgfSlcblxuICBDYWNoZWRDb29raWVzLnNldCh1bmRlcmx5aW5nQ29va2llcywgcHJveGllZFByb21pc2UpXG5cbiAgcmV0dXJuIHByb3hpZWRQcm9taXNlXG59XG5cbmZ1bmN0aW9uIGRlc2NyaWJlTmFtZUFyZyhhcmc6IHVua25vd24pIHtcbiAgcmV0dXJuIHR5cGVvZiBhcmcgPT09ICdvYmplY3QnICYmXG4gICAgYXJnICE9PSBudWxsICYmXG4gICAgdHlwZW9mIChhcmcgYXMgYW55KS5uYW1lID09PSAnc3RyaW5nJ1xuICAgID8gYCckeyhhcmcgYXMgYW55KS5uYW1lfSdgXG4gICAgOiB0eXBlb2YgYXJnID09PSAnc3RyaW5nJ1xuICAgICAgPyBgJyR7YXJnfSdgXG4gICAgICA6ICcuLi4nXG59XG5cbmZ1bmN0aW9uIHN5bmNJT0Rldihyb3V0ZTogc3RyaW5nIHwgdW5kZWZpbmVkLCBleHByZXNzaW9uOiBzdHJpbmcpIHtcbiAgY29uc3Qgd29ya1VuaXRTdG9yZSA9IHdvcmtVbml0QXN5bmNTdG9yYWdlLmdldFN0b3JlKClcbiAgaWYgKFxuICAgIHdvcmtVbml0U3RvcmUgJiZcbiAgICB3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICdyZXF1ZXN0JyAmJlxuICAgIHdvcmtVbml0U3RvcmUucHJlcmVuZGVyUGhhc2UgPT09IHRydWVcbiAgKSB7XG4gICAgLy8gV2hlbiB3ZSdyZSByZW5kZXJpbmcgZHluYW1pY2FsbHkgaW4gZGV2IHdlIG5lZWQgdG8gYWR2YW5jZSBvdXQgb2YgdGhlXG4gICAgLy8gUHJlcmVuZGVyIGVudmlyb25tZW50IHdoZW4gd2UgcmVhZCBSZXF1ZXN0IGRhdGEgc3luY2hyb25vdXNseVxuICAgIGNvbnN0IHJlcXVlc3RTdG9yZSA9IHdvcmtVbml0U3RvcmVcbiAgICB0cmFja1N5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3NJbkRldihyZXF1ZXN0U3RvcmUpXG4gIH1cbiAgLy8gSW4gYWxsIGNhc2VzIHdlIHdhcm4gbm9ybWFsbHlcbiAgd2FybkZvclN5bmNBY2Nlc3Mocm91dGUsIGV4cHJlc3Npb24pXG59XG5cbmNvbnN0IHdhcm5Gb3JTeW5jQWNjZXNzID0gY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldihcbiAgY3JlYXRlQ29va2llc0FjY2Vzc0Vycm9yXG4pXG5cbmZ1bmN0aW9uIGNyZWF0ZUNvb2tpZXNBY2Nlc3NFcnJvcihcbiAgcm91dGU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pIHtcbiAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnXG4gIHJldHVybiBuZXcgRXJyb3IoXG4gICAgYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArXG4gICAgICBgXFxgY29va2llcygpXFxgIHNob3VsZCBiZSBhd2FpdGVkIGJlZm9yZSB1c2luZyBpdHMgdmFsdWUuIGAgK1xuICAgICAgYExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYFxuICApXG59XG5cbmZ1bmN0aW9uIHBvbHlmaWxsZWRSZXNwb25zZUNvb2tpZXNJdGVyYXRvcihcbiAgdGhpczogUmVzcG9uc2VDb29raWVzXG4pOiBSZXR1cm5UeXBlPFJlYWRvbmx5UmVxdWVzdENvb2tpZXNbdHlwZW9mIFN5bWJvbC5pdGVyYXRvcl0+IHtcbiAgcmV0dXJuIHRoaXMuZ2V0QWxsKClcbiAgICAubWFwKChjKSA9PiBbYy5uYW1lLCBjXSBhcyBbc3RyaW5nLCBhbnldKVxuICAgIC52YWx1ZXMoKVxufVxuXG5mdW5jdGlvbiBwb2x5ZmlsbGVkUmVzcG9uc2VDb29raWVzQ2xlYXIoXG4gIHRoaXM6IFJlc3BvbnNlQ29va2llcyxcbiAgcmV0dXJuYWJsZTogUHJvbWlzZTxSZWFkb25seVJlcXVlc3RDb29raWVzPlxuKTogdHlwZW9mIHJldHVybmFibGUge1xuICBmb3IgKGNvbnN0IGNvb2tpZSBvZiB0aGlzLmdldEFsbCgpKSB7XG4gICAgdGhpcy5kZWxldGUoY29va2llLm5hbWUpXG4gIH1cbiAgcmV0dXJuIHJldHVybmFibGVcbn1cblxudHlwZSBDb29raWVFeHRlbnNpb25zID0ge1xuICBbSyBpbiBrZXlvZiBSZWFkb25seVJlcXVlc3RDb29raWVzIHwgJ2NsZWFyJ106IHVua25vd25cbn1cbiJdLCJuYW1lcyI6WyJjb29raWVzIiwiY2FsbGluZ0V4cHJlc3Npb24iLCJ3b3JrU3RvcmUiLCJ3b3JrQXN5bmNTdG9yYWdlIiwiZ2V0U3RvcmUiLCJ3b3JrVW5pdFN0b3JlIiwid29ya1VuaXRBc3luY1N0b3JhZ2UiLCJwaGFzZSIsImlzUmVxdWVzdEFQSUNhbGxhYmxlSW5zaWRlQWZ0ZXIiLCJFcnJvciIsInJvdXRlIiwiZm9yY2VTdGF0aWMiLCJ1bmRlcmx5aW5nQ29va2llcyIsImNyZWF0ZUVtcHR5Q29va2llcyIsIm1ha2VVbnRyYWNrZWRFeG90aWNDb29raWVzIiwidHlwZSIsImR5bmFtaWNTaG91bGRFcnJvciIsIlN0YXRpY0dlbkJhaWxvdXRFcnJvciIsIm1ha2VIYW5naW5nQ29va2llcyIsImV4cG9ydE5hbWUiLCJJbnZhcmlhbnRFcnJvciIsInBvc3Rwb25lV2l0aFRyYWNraW5nIiwiZHluYW1pY1RyYWNraW5nIiwidGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24iLCJ0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyIiwicmVxdWVzdFN0b3JlIiwiZ2V0RXhwZWN0ZWRSZXF1ZXN0U3RvcmUiLCJhcmVDb29raWVzTXV0YWJsZUluQ3VycmVudFBoYXNlIiwidXNlcnNwYWNlTXV0YWJsZUNvb2tpZXMiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJpc1ByZWZldGNoUmVxdWVzdCIsIl9fTkVYVF9EWU5BTUlDX0lPIiwibWFrZVVudHJhY2tlZENvb2tpZXNXaXRoRGV2V2FybmluZ3MiLCJtYWtlVW50cmFja2VkRXhvdGljQ29va2llc1dpdGhEZXZXYXJuaW5ncyIsIlJlcXVlc3RDb29raWVzQWRhcHRlciIsInNlYWwiLCJSZXF1ZXN0Q29va2llcyIsIkhlYWRlcnMiLCJDYWNoZWRDb29raWVzIiwiV2Vha01hcCIsInByZXJlbmRlclN0b3JlIiwiY2FjaGVkUHJvbWlzZSIsImdldCIsInByb21pc2UiLCJtYWtlSGFuZ2luZ1Byb21pc2UiLCJyZW5kZXJTaWduYWwiLCJzZXQiLCJjYWNoZWRDb29raWVzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiU3ltYm9sIiwiaXRlcmF0b3IiLCJ2YWx1ZSIsImJpbmQiLCJwb2x5ZmlsbGVkUmVzcG9uc2VDb29raWVzSXRlcmF0b3IiLCJzaXplIiwiZ2V0QWxsIiwiaGFzIiwiZGVsZXRlIiwiY2xlYXIiLCJwb2x5ZmlsbGVkUmVzcG9uc2VDb29raWVzQ2xlYXIiLCJ0b1N0cmluZyIsInNjaGVkdWxlSW1tZWRpYXRlIiwiZXhwcmVzc2lvbiIsInN5bmNJT0RldiIsImFwcGx5IiwiYXJndW1lbnRzIiwiY2FsbCIsIndyaXRhYmxlIiwibGVuZ3RoIiwiZGVzY3JpYmVOYW1lQXJnIiwiYXJnIiwicHJveGllZFByb21pc2UiLCJQcm94eSIsInRhcmdldCIsInByb3AiLCJyZWNlaXZlciIsIndhcm5Gb3JTeW5jQWNjZXNzIiwiUmVmbGVjdEFkYXB0ZXIiLCJuYW1lIiwicHJlcmVuZGVyUGhhc2UiLCJ0cmFja1N5bmNocm9ub3VzUmVxdWVzdERhdGFBY2Nlc3NJbkRldiIsImNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYiLCJjcmVhdGVDb29raWVzQWNjZXNzRXJyb3IiLCJwcmVmaXgiLCJtYXAiLCJjIiwidmFsdWVzIiwicmV0dXJuYWJsZSIsImNvb2tpZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/cookies.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/server/request/draft-mode.js":
+/*!*************************************************************!*\
+ !*** ./node_modules/next/dist/server/request/draft-mode.js ***!
+ \*************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"draftMode\", ({\n enumerable: true,\n get: function() {\n return draftMode;\n }\n}));\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _hooksservercontext = __webpack_require__(/*! ../../client/components/hooks-server-context */ \"(rsc)/./node_modules/next/dist/client/components/hooks-server-context.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nfunction draftMode() {\n const callingExpression = 'draftMode';\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (!workStore || !workUnitStore) {\n (0, _workunitasyncstorageexternal.throwForMissingRequestStore)(callingExpression);\n }\n switch(workUnitStore.type){\n case 'request':\n return createOrGetCachedDraftMode(workUnitStore.draftMode, workStore);\n case 'cache':\n case 'unstable-cache':\n // Inside of `\"use cache\"` or `unstable_cache`, draft mode is available if\n // the outmost work unit store is a request store, and if draft mode is\n // enabled.\n const draftModeProvider = (0, _workunitasyncstorageexternal.getDraftModeProviderForCacheScope)(workStore, workUnitStore);\n if (draftModeProvider) {\n return createOrGetCachedDraftMode(draftModeProvider, workStore);\n }\n // Otherwise, we fall through to providing an empty draft mode.\n // eslint-disable-next-line no-fallthrough\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n // Return empty draft mode\n return createOrGetCachedDraftMode(null, workStore);\n default:\n const _exhaustiveCheck = workUnitStore;\n return _exhaustiveCheck;\n }\n}\nfunction createOrGetCachedDraftMode(draftModeProvider, workStore) {\n const cacheKey = draftModeProvider ?? NullDraftMode;\n const cachedDraftMode = CachedDraftModes.get(cacheKey);\n if (cachedDraftMode) {\n return cachedDraftMode;\n }\n let promise;\n if ( true && !(workStore == null ? void 0 : workStore.isPrefetchRequest)) {\n const route = workStore == null ? void 0 : workStore.route;\n if (false) {}\n promise = createExoticDraftModeWithDevWarnings(draftModeProvider, route);\n } else {\n if (false) {}\n promise = createExoticDraftMode(draftModeProvider);\n }\n CachedDraftModes.set(cacheKey, promise);\n return promise;\n}\nconst NullDraftMode = {};\nconst CachedDraftModes = new WeakMap();\nfunction createExoticDraftMode(underlyingProvider) {\n const instance = new DraftMode(underlyingProvider);\n const promise = Promise.resolve(instance);\n Object.defineProperty(promise, 'isEnabled', {\n get () {\n return instance.isEnabled;\n },\n enumerable: true,\n configurable: true\n });\n promise.enable = instance.enable.bind(instance);\n promise.disable = instance.disable.bind(instance);\n return promise;\n}\nfunction createExoticDraftModeWithDevWarnings(underlyingProvider, route) {\n const instance = new DraftMode(underlyingProvider);\n const promise = Promise.resolve(instance);\n Object.defineProperty(promise, 'isEnabled', {\n get () {\n const expression = '`draftMode().isEnabled`';\n syncIODev(route, expression);\n return instance.isEnabled;\n },\n enumerable: true,\n configurable: true\n });\n Object.defineProperty(promise, 'enable', {\n value: function get() {\n const expression = '`draftMode().enable()`';\n syncIODev(route, expression);\n return instance.enable.apply(instance, arguments);\n }\n });\n Object.defineProperty(promise, 'disable', {\n value: function get() {\n const expression = '`draftMode().disable()`';\n syncIODev(route, expression);\n return instance.disable.apply(instance, arguments);\n }\n });\n return promise;\n}\n// Similar to `createExoticDraftModeWithDevWarnings`, but just logging the sync\n// access without actually defining the draftMode properties on the promise.\nfunction createDraftModeWithDevWarnings(underlyingProvider, route) {\n const instance = new DraftMode(underlyingProvider);\n const promise = Promise.resolve(instance);\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n switch(prop){\n case 'isEnabled':\n warnForSyncAccess(route, `\\`draftMode().${prop}\\``);\n break;\n case 'enable':\n case 'disable':\n {\n warnForSyncAccess(route, `\\`draftMode().${prop}()\\``);\n break;\n }\n default:\n {\n // We only warn for well-defined properties of the draftMode object.\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n });\n return proxiedPromise;\n}\nclass DraftMode {\n constructor(provider){\n this._provider = provider;\n }\n get isEnabled() {\n if (this._provider !== null) {\n return this._provider.isEnabled;\n }\n return false;\n }\n enable() {\n // We have a store we want to track dynamic data access to ensure we\n // don't statically generate routes that manipulate draft mode.\n trackDynamicDraftMode('draftMode().enable()');\n if (this._provider !== null) {\n this._provider.enable();\n }\n }\n disable() {\n trackDynamicDraftMode('draftMode().disable()');\n if (this._provider !== null) {\n this._provider.disable();\n }\n }\n}\nfunction syncIODev(route, expression) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore && workUnitStore.type === 'request' && workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore;\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(requestStore);\n }\n // In all cases we warn normally\n warnForSyncAccess(route, expression);\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createDraftModeAccessError);\nfunction createDraftModeAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`draftMode()\\` should be awaited before using its value. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E377\",\n enumerable: false,\n configurable: true\n });\n}\nfunction trackDynamicDraftMode(expression) {\n const store = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (store) {\n // We have a store we want to track dynamic data access to ensure we\n // don't statically generate routes that manipulate draft mode.\n if (workUnitStore) {\n if (workUnitStore.type === 'cache') {\n throw Object.defineProperty(new Error(`Route ${store.route} used \"${expression}\" inside \"use cache\". The enabled status of draftMode can be read in caches but you must not enable or disable draftMode inside a cache. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E246\",\n enumerable: false,\n configurable: true\n });\n } else if (workUnitStore.type === 'unstable-cache') {\n throw Object.defineProperty(new Error(`Route ${store.route} used \"${expression}\" inside a function cached with \"unstable_cache(...)\". The enabled status of draftMode can be read in caches but you must not enable or disable draftMode inside a cache. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E259\",\n enumerable: false,\n configurable: true\n });\n } else if (workUnitStore.phase === 'after') {\n throw Object.defineProperty(new Error(`Route ${store.route} used \"${expression}\" inside \\`after\\`. The enabled status of draftMode can be read inside \\`after\\` but you cannot enable or disable draftMode. See more info here: https://nextjs.org/docs/app/api-reference/functions/after`), \"__NEXT_ERROR_CODE\", {\n value: \"E348\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (store.dynamicShouldError) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${store.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E553\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n // dynamicIO Prerender\n const error = Object.defineProperty(new Error(`Route ${store.route} used ${expression} without first calling \\`await connection()\\`. See more info here: https://nextjs.org/docs/messages/next-prerender-sync-headers`), \"__NEXT_ERROR_CODE\", {\n value: \"E126\",\n enumerable: false,\n configurable: true\n });\n (0, _dynamicrendering.abortAndThrowOnSynchronousRequestDataAccess)(store.route, expression, error, workUnitStore);\n break;\n case 'prerender-client':\n const exportName = '`draftMode`';\n throw Object.defineProperty(new _invarianterror.InvariantError(`${exportName} must not be used within a client component. Next.js should be preventing ${exportName} from being included in client components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E693\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-ppr':\n // PPR Prerender\n (0, _dynamicrendering.postponeWithTracking)(store.route, expression, workUnitStore.dynamicTracking);\n break;\n case 'prerender-legacy':\n // legacy Prerender\n workUnitStore.revalidate = 0;\n const err = Object.defineProperty(new _hooksservercontext.DynamicServerError(`Route ${store.route} couldn't be rendered statically because it used \\`${expression}\\`. See more info here: https://nextjs.org/docs/messages/dynamic-server-error`), \"__NEXT_ERROR_CODE\", {\n value: \"E558\",\n enumerable: false,\n configurable: true\n });\n store.dynamicUsageDescription = expression;\n store.dynamicUsageStack = err.stack;\n throw err;\n case 'request':\n if (true) {\n workUnitStore.usedDynamic = true;\n }\n break;\n default:\n }\n }\n }\n} //# sourceMappingURL=draft-mode.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L2RyYWZ0LW1vZGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs2Q0E4Q2dCQTs7O2VBQUFBOzs7MERBM0NUO3NEQU9BOzhDQU1BO3NFQUNxRDtxREFDdEI7Z0RBQ0g7NENBQ0o7cUNBQ0E7QUF5QnhCLFNBQVNBO0lBQ2QsTUFBTUMsb0JBQW9CO0lBQzFCLE1BQU1DLFlBQVlDLDBCQUFBQSxnQkFBZ0IsQ0FBQ0MsUUFBUTtJQUMzQyxNQUFNQyxnQkFBZ0JDLDhCQUFBQSxvQkFBb0IsQ0FBQ0YsUUFBUTtJQUVuRCxJQUFJLENBQUNGLGFBQWEsQ0FBQ0csZUFBZTtRQUNoQ0UsQ0FBQUEsR0FBQUEsOEJBQUFBLDJCQUFBQSxFQUE0Qk47SUFDOUI7SUFFQSxPQUFRSSxjQUFjRyxJQUFJO1FBQ3hCLEtBQUs7WUFDSCxPQUFPQywyQkFBMkJKLGNBQWNMLFNBQVMsRUFBRUU7UUFFN0QsS0FBSztRQUNMLEtBQUs7WUFDSCwwRUFBMEU7WUFDMUUsdUVBQXVFO1lBQ3ZFLFdBQVc7WUFDWCxNQUFNUSxvQkFBb0JDLENBQUFBLEdBQUFBLDhCQUFBQSxpQ0FBQUEsRUFDeEJULFdBQ0FHO1lBR0YsSUFBSUssbUJBQW1CO2dCQUNyQixPQUFPRCwyQkFBMkJDLG1CQUFtQlI7WUFDdkQ7UUFFRiwrREFBK0Q7UUFDL0QsMENBQTBDO1FBQzFDLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7WUFDSCwwQkFBMEI7WUFDMUIsT0FBT08sMkJBQTJCLE1BQU1QO1FBRTFDO1lBQ0UsTUFBTVUsbUJBQTBCUDtZQUNoQyxPQUFPTztJQUNYO0FBQ0Y7QUFFQSxTQUFTSCwyQkFDUEMsaUJBQTJDLEVBQzNDUixTQUFnQztJQUVoQyxNQUFNVyxXQUFXSCxxQkFBcUJJO0lBQ3RDLE1BQU1DLGtCQUFrQkMsaUJBQWlCQyxHQUFHLENBQUNKO0lBRTdDLElBQUlFLGlCQUFpQjtRQUNuQixPQUFPQTtJQUNUO0lBRUEsSUFBSUc7SUFFSixJQUFJQyxLQUFvQixJQUFzQixFQUFDakIsYUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsVUFBV29CLGlCQUFBQSxHQUFtQjtRQUMzRSxNQUFNQyxRQUFRckIsYUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsVUFBV3FCLEtBQUs7UUFFOUIsSUFBSUosS0FBNkIsRUFBRSxFQUVsQztRQUVERCxVQUFVUSxxQ0FBcUNoQixtQkFBbUJhO0lBQ3BFLE9BQU87UUFDTCxJQUFJSixLQUE2QixFQUFFLEVBRWxDO1FBRURELFVBQVVZLHNCQUFzQnBCO0lBQ2xDO0lBRUFNLGlCQUFpQmUsR0FBRyxDQUFDbEIsVUFBVUs7SUFFL0IsT0FBT0E7QUFDVDtBQUdBLE1BQU1KLGdCQUFnQixDQUFDO0FBQ3ZCLE1BQU1FLG1CQUFtQixJQUFJZ0I7QUFFN0IsU0FBU0Ysc0JBQ1BHLGtCQUE0QztJQUU1QyxNQUFNQyxXQUFXLElBQUlMLFVBQVVJO0lBQy9CLE1BQU1mLFVBQVVTLFFBQVFDLE9BQU8sQ0FBQ007SUFFaENDLE9BQU9DLGNBQWMsQ0FBQ2xCLFNBQVMsYUFBYTtRQUMxQ0Q7WUFDRSxPQUFPaUIsU0FBU0csU0FBUztRQUMzQjtRQUNBQyxZQUFZO1FBQ1pDLGNBQWM7SUFDaEI7SUFDRXJCLFFBQWdCc0IsTUFBTSxHQUFHTixTQUFTTSxNQUFNLENBQUNDLElBQUksQ0FBQ1A7SUFDOUNoQixRQUFnQndCLE9BQU8sR0FBR1IsU0FBU1EsT0FBTyxDQUFDRCxJQUFJLENBQUNQO0lBRWxELE9BQU9oQjtBQUNUO0FBRUEsU0FBU1EscUNBQ1BPLGtCQUE0QyxFQUM1Q1YsS0FBeUI7SUFFekIsTUFBTVcsV0FBVyxJQUFJTCxVQUFVSTtJQUMvQixNQUFNZixVQUFVUyxRQUFRQyxPQUFPLENBQUNNO0lBRWhDQyxPQUFPQyxjQUFjLENBQUNsQixTQUFTLGFBQWE7UUFDMUNEO1lBQ0UsTUFBTTBCLGFBQWE7WUFDbkJDLFVBQVVyQixPQUFPb0I7WUFDakIsT0FBT1QsU0FBU0csU0FBUztRQUMzQjtRQUNBQyxZQUFZO1FBQ1pDLGNBQWM7SUFDaEI7SUFFQUosT0FBT0MsY0FBYyxDQUFDbEIsU0FBUyxVQUFVO1FBQ3ZDMkIsT0FBTyxTQUFTNUI7WUFDZCxNQUFNMEIsYUFBYTtZQUNuQkMsVUFBVXJCLE9BQU9vQjtZQUNqQixPQUFPVCxTQUFTTSxNQUFNLENBQUNNLEtBQUssQ0FBQ1osVUFBVWE7UUFDekM7SUFDRjtJQUVBWixPQUFPQyxjQUFjLENBQUNsQixTQUFTLFdBQVc7UUFDeEMyQixPQUFPLFNBQVM1QjtZQUNkLE1BQU0wQixhQUFhO1lBQ25CQyxVQUFVckIsT0FBT29CO1lBQ2pCLE9BQU9ULFNBQVNRLE9BQU8sQ0FBQ0ksS0FBSyxDQUFDWixVQUFVYTtRQUMxQztJQUNGO0lBRUEsT0FBTzdCO0FBQ1Q7QUFFQSwrRUFBK0U7QUFDL0UsNEVBQTRFO0FBQzVFLFNBQVNPLCtCQUNQUSxrQkFBNEMsRUFDNUNWLEtBQXlCO0lBRXpCLE1BQU1XLFdBQVcsSUFBSUwsVUFBVUk7SUFDL0IsTUFBTWYsVUFBVVMsUUFBUUMsT0FBTyxDQUFDTTtJQUVoQyxNQUFNYyxpQkFBaUIsSUFBSUMsTUFBTS9CLFNBQVM7UUFDeENELEtBQUlpQyxNQUFNLEVBQUVDLElBQUksRUFBRUMsUUFBUTtZQUN4QixPQUFRRDtnQkFDTixLQUFLO29CQUNIRSxrQkFBa0I5QixPQUFPLENBQUMsY0FBYyxFQUFFNEIsS0FBSyxFQUFFLENBQUM7b0JBQ2xEO2dCQUNGLEtBQUs7Z0JBQ0wsS0FBSztvQkFBVzt3QkFDZEUsa0JBQWtCOUIsT0FBTyxDQUFDLGNBQWMsRUFBRTRCLEtBQUssSUFBSSxDQUFDO3dCQUNwRDtvQkFDRjtnQkFDQTtvQkFBUztvQkFDUCxvRUFBb0U7b0JBQ3RFO1lBQ0Y7WUFFQSxPQUFPRyxTQUFBQSxjQUFjLENBQUNyQyxHQUFHLENBQUNpQyxRQUFRQyxNQUFNQztRQUMxQztJQUNGO0lBRUEsT0FBT0o7QUFDVDtBQUVBLE1BQU1uQjtJQU1KMEIsWUFBWUMsUUFBa0MsQ0FBRTtRQUM5QyxJQUFJLENBQUNDLFNBQVMsR0FBR0Q7SUFDbkI7SUFDQSxJQUFJbkIsWUFBWTtRQUNkLElBQUksSUFBSSxDQUFDb0IsU0FBUyxLQUFLLE1BQU07WUFDM0IsT0FBTyxJQUFJLENBQUNBLFNBQVMsQ0FBQ3BCLFNBQVM7UUFDakM7UUFDQSxPQUFPO0lBQ1Q7SUFDT0csU0FBUztRQUNkLG9FQUFvRTtRQUNwRSwrREFBK0Q7UUFDL0RrQixzQkFBc0I7UUFDdEIsSUFBSSxJQUFJLENBQUNELFNBQVMsS0FBSyxNQUFNO1lBQzNCLElBQUksQ0FBQ0EsU0FBUyxDQUFDakIsTUFBTTtRQUN2QjtJQUNGO0lBQ09FLFVBQVU7UUFDZmdCLHNCQUFzQjtRQUN0QixJQUFJLElBQUksQ0FBQ0QsU0FBUyxLQUFLLE1BQU07WUFDM0IsSUFBSSxDQUFDQSxTQUFTLENBQUNmLE9BQU87UUFDeEI7SUFDRjtBQUNGO0FBRUEsU0FBU0UsVUFBVXJCLEtBQXlCLEVBQUVvQixVQUFrQjtJQUM5RCxNQUFNdEMsZ0JBQWdCQyw4QkFBQUEsb0JBQW9CLENBQUNGLFFBQVE7SUFDbkQsSUFDRUMsaUJBQ0FBLGNBQWNHLElBQUksS0FBSyxhQUN2QkgsY0FBY3NELGNBQWMsS0FBSyxNQUNqQztRQUNBLHdFQUF3RTtRQUN4RSxnRUFBZ0U7UUFDaEUsTUFBTUMsZUFBZXZEO1FBQ3JCd0QsQ0FBQUEsR0FBQUEsa0JBQUFBLHNDQUFBQSxFQUF1Q0Q7SUFDekM7SUFDQSxnQ0FBZ0M7SUFDaENQLGtCQUFrQjlCLE9BQU9vQjtBQUMzQjtBQUVBLE1BQU1VLG9CQUFvQlMsQ0FBQUEsR0FBQUEsMENBQUFBLDJDQUFBQSxFQUN4QkM7QUFHRixTQUFTQSwyQkFDUHhDLEtBQXlCLEVBQ3pCb0IsVUFBa0I7SUFFbEIsTUFBTXFCLFNBQVN6QyxRQUFRLENBQUMsT0FBTyxFQUFFQSxNQUFNLEVBQUUsQ0FBQyxHQUFHO0lBQzdDLE9BQU8scUJBSU4sQ0FKTSxJQUFJMEMsTUFDVCxHQUFHRCxPQUFPLEtBQUssRUFBRXJCLFdBQVcsRUFBRSxDQUFDLEdBQzdCLENBQUMsMERBQTBELENBQUMsR0FDNUQsQ0FBQyw4REFBOEQsQ0FBQyxHQUg3RDtlQUFBO29CQUFBO3NCQUFBO0lBSVA7QUFDRjtBQUVBLFNBQVNlLHNCQUFzQmYsVUFBa0I7SUFDL0MsTUFBTXVCLFFBQVEvRCwwQkFBQUEsZ0JBQWdCLENBQUNDLFFBQVE7SUFDdkMsTUFBTUMsZ0JBQWdCQyw4QkFBQUEsb0JBQW9CLENBQUNGLFFBQVE7SUFDbkQsSUFBSThELE9BQU87UUFDVCxvRUFBb0U7UUFDcEUsK0RBQStEO1FBQy9ELElBQUk3RCxlQUFlO1lBQ2pCLElBQUlBLGNBQWNHLElBQUksS0FBSyxTQUFTO2dCQUNsQyxNQUFNLHFCQUVMLENBRkssSUFBSXlELE1BQ1IsQ0FBQyxNQUFNLEVBQUVDLE1BQU0zQyxLQUFLLENBQUMsT0FBTyxFQUFFb0IsV0FBVyx1TkFBdU4sQ0FBQyxHQUQ3UDsyQkFBQTtnQ0FBQTtrQ0FBQTtnQkFFTjtZQUNGLE9BQU8sSUFBSXRDLGNBQWNHLElBQUksS0FBSyxrQkFBa0I7Z0JBQ2xELE1BQU0scUJBRUwsQ0FGSyxJQUFJeUQsTUFDUixDQUFDLE1BQU0sRUFBRUMsTUFBTTNDLEtBQUssQ0FBQyxPQUFPLEVBQUVvQixXQUFXLGdRQUFnUSxDQUFDLEdBRHRTOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUVOO1lBQ0YsT0FBTyxJQUFJdEMsY0FBYzhELEtBQUssS0FBSyxTQUFTO2dCQUMxQyxNQUFNLHFCQUVMLENBRkssSUFBSUYsTUFDUixDQUFDLE1BQU0sRUFBRUMsTUFBTTNDLEtBQUssQ0FBQyxPQUFPLEVBQUVvQixXQUFXLDBNQUEwTSxDQUFDLEdBRGhQOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUVOO1lBQ0Y7UUFDRjtRQUVBLElBQUl1QixNQUFNRSxrQkFBa0IsRUFBRTtZQUM1QixNQUFNLHFCQUVMLENBRkssSUFBSUMseUJBQUFBLHFCQUFxQixDQUM3QixDQUFDLE1BQU0sRUFBRUgsTUFBTTNDLEtBQUssQ0FBQyw4RUFBOEUsRUFBRW9CLFdBQVcsNEhBQTRILENBQUMsR0FEek87dUJBQUE7NEJBQUE7OEJBQUE7WUFFTjtRQUNGO1FBRUEsSUFBSXRDLGVBQWU7WUFDakIsT0FBUUEsY0FBY0csSUFBSTtnQkFDeEIsS0FBSztvQkFDSCxzQkFBc0I7b0JBQ3RCLE1BQU04RCxRQUFRLHFCQUViLENBRmEsSUFBSUwsTUFDaEIsQ0FBQyxNQUFNLEVBQUVDLE1BQU0zQyxLQUFLLENBQUMsTUFBTSxFQUFFb0IsV0FBVywrSEFBK0gsQ0FBQyxHQUQ1SjsrQkFBQTtvQ0FBQTtzQ0FBQTtvQkFFZDtvQkFDQTRCLENBQUFBLEdBQUFBLGtCQUFBQSwyQ0FBQUEsRUFDRUwsTUFBTTNDLEtBQUssRUFDWG9CLFlBQ0EyQixPQUNBakU7b0JBRUY7Z0JBQ0YsS0FBSztvQkFDSCxNQUFNbUUsYUFBYTtvQkFDbkIsTUFBTSxxQkFFTCxDQUZLLElBQUlDLGdCQUFBQSxjQUFjLENBQ3RCLEdBQUdELFdBQVcsMEVBQTBFLEVBQUVBLFdBQVcsK0VBQStFLENBQUMsR0FEakw7K0JBQUE7b0NBQUE7c0NBQUE7b0JBRU47Z0JBQ0YsS0FBSztvQkFDSCxnQkFBZ0I7b0JBQ2hCRSxDQUFBQSxHQUFBQSxrQkFBQUEsb0JBQUFBLEVBQ0VSLE1BQU0zQyxLQUFLLEVBQ1hvQixZQUNBdEMsY0FBY3NFLGVBQWU7b0JBRS9CO2dCQUNGLEtBQUs7b0JBQ0gsbUJBQW1CO29CQUNuQnRFLGNBQWN1RSxVQUFVLEdBQUc7b0JBRTNCLE1BQU1DLE1BQU0scUJBRVgsQ0FGVyxJQUFJQyxvQkFBQUEsa0JBQWtCLENBQ2hDLENBQUMsTUFBTSxFQUFFWixNQUFNM0MsS0FBSyxDQUFDLG1EQUFtRCxFQUFFb0IsV0FBVyw2RUFBNkUsQ0FBQyxHQUR6SjsrQkFBQTtvQ0FBQTtzQ0FBQTtvQkFFWjtvQkFDQXVCLE1BQU1hLHVCQUF1QixHQUFHcEM7b0JBQ2hDdUIsTUFBTWMsaUJBQWlCLEdBQUdILElBQUlJLEtBQUs7b0JBRW5DLE1BQU1KO2dCQUNSLEtBQUs7b0JBQ0gsSUF0VWtELElBc1UxQixFQUFvQjt3QkFDMUN4RSxjQUFjNkUsV0FBVyxHQUFHO29CQUM5QjtvQkFDQTtnQkFDRjtZQUVGO1FBQ0Y7SUFDRjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2VydmVyL3JlcXVlc3QvZHJhZnQtbW9kZS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBnZXREcmFmdE1vZGVQcm92aWRlckZvckNhY2hlU2NvcGUsXG4gIHRocm93Rm9yTWlzc2luZ1JlcXVlc3RTdG9yZSxcbn0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcblxuaW1wb3J0IHR5cGUgeyBEcmFmdE1vZGVQcm92aWRlciB9IGZyb20gJy4uL2FzeW5jLXN0b3JhZ2UvZHJhZnQtbW9kZS1wcm92aWRlcidcblxuaW1wb3J0IHtcbiAgd29ya0FzeW5jU3RvcmFnZSxcbiAgdHlwZSBXb3JrU3RvcmUsXG59IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgd29ya1VuaXRBc3luY1N0b3JhZ2UgfSBmcm9tICcuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHtcbiAgYWJvcnRBbmRUaHJvd09uU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2VzcyxcbiAgcG9zdHBvbmVXaXRoVHJhY2tpbmcsXG4gIHRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2LFxufSBmcm9tICcuLi9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nJ1xuaW1wb3J0IHsgY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldiB9IGZyb20gJy4uL2NyZWF0ZS1kZWR1cGVkLWJ5LWNhbGxzaXRlLXNlcnZlci1lcnJvci1sb2dnZXInXG5pbXBvcnQgeyBTdGF0aWNHZW5CYWlsb3V0RXJyb3IgfSBmcm9tICcuLi8uLi9jbGllbnQvY29tcG9uZW50cy9zdGF0aWMtZ2VuZXJhdGlvbi1iYWlsb3V0J1xuaW1wb3J0IHsgRHluYW1pY1NlcnZlckVycm9yIH0gZnJvbSAnLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvaG9va3Mtc2VydmVyLWNvbnRleHQnXG5pbXBvcnQgeyBJbnZhcmlhbnRFcnJvciB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvaW52YXJpYW50LWVycm9yJ1xuaW1wb3J0IHsgUmVmbGVjdEFkYXB0ZXIgfSBmcm9tICcuLi93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdCdcblxuLyoqXG4gKiBJbiB0aGlzIHZlcnNpb24gb2YgTmV4dC5qcyBgZHJhZnRNb2RlKClgIHJldHVybnMgYSBQcm9taXNlIGhvd2V2ZXIgeW91IGNhbiBzdGlsbCByZWZlcmVuY2UgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHVuZGVybHlpbmcgZHJhZnRNb2RlIG9iamVjdFxuICogc3luY2hyb25vdXNseSB0byBmYWNpbGl0YXRlIG1pZ3JhdGlvbi4gVGhlIGBVbnNhZmVVbndyYXBwZWREcmFmdE1vZGVgIHR5cGUgaXMgYWRkZWQgdG8geW91ciBjb2RlIGJ5IGEgY29kZW1vZCB0aGF0IGF0dGVtcHRzIHRvIGF1dG9tYXRpY2FsbHlcbiAqIHVwZGF0ZXMgY2FsbHNpdGVzIHRvIHJlZmxlY3QgdGhlIG5ldyBQcm9taXNlIHJldHVybiB0eXBlLiBUaGVyZSBhcmUgc29tZSBjYXNlcyB3aGVyZSBgZHJhZnRNb2RlKClgIGNhbm5vdCBiZSBhdXRvbWF0aWNhbGx5IGNvbnZlcnRlZCwgbmFtZWx5XG4gKiB3aGVuIGl0IGlzIHVzZWQgaW5zaWRlIGEgc3luY2hyb25vdXMgZnVuY3Rpb24gYW5kIHdlIGNhbid0IGJlIHN1cmUgdGhlIGZ1bmN0aW9uIGNhbiBiZSBtYWRlIGFzeW5jIGF1dG9tYXRpY2FsbHkuIEluIHRoZXNlIGNhc2VzIHdlIGFkZCBhblxuICogZXhwbGljaXQgdHlwZSBjYXNlIHRvIGBVbnNhZmVVbndyYXBwZWREcmFmdE1vZGVgIHRvIGVuYWJsZSB0eXBlc2NyaXB0IHRvIGFsbG93IGZvciB0aGUgc3luY2hyb25vdXMgdXNhZ2Ugb25seSB3aGVyZSBpdCBpcyBhY3R1YWxseSBuZWNlc3NhcnkuXG4gKlxuICogWW91IHNob3VsZCBzaG91bGQgdXBkYXRlIHRoZXNlIGNhbGxzaXRlcyB0byBlaXRoZXIgYmUgYXN5bmMgZnVuY3Rpb25zIHdoZXJlIHRoZSBgZHJhZnRNb2RlKClgIHZhbHVlIGNhbiBiZSBhd2FpdGVkIG9yIHlvdSBzaG91bGQgY2FsbCBgZHJhZnRNb2RlKClgXG4gKiBmcm9tIG91dHNpZGUgYW5kIGF3YWl0IHRoZSByZXR1cm4gdmFsdWUgYmVmb3JlIHBhc3NpbmcgaXQgaW50byB0aGlzIGZ1bmN0aW9uLlxuICpcbiAqIFlvdSBjYW4gZmluZCBpbnN0YW5jZXMgdGhhdCByZXF1aXJlIG1hbnVhbCBtaWdyYXRpb24gYnkgc2VhcmNoaW5nIGZvciBgVW5zYWZlVW53cmFwcGVkRHJhZnRNb2RlYCBpbiB5b3VyIGNvZGViYXNlIG9yIGJ5IHNlYXJjaCBmb3IgYSBjb21tZW50IHRoYXRcbiAqIHN0YXJ0cyB3aXRoIGBAbmV4dC1jb2RlbW9kLWVycm9yYC5cbiAqXG4gKiBJbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIE5leHQuanMgYGRyYWZ0TW9kZSgpYCB3aWxsIG9ubHkgcmV0dXJuIGEgUHJvbWlzZSBhbmQgeW91IHdpbGwgbm90IGJlIGFibGUgdG8gYWNjZXNzIHRoZSB1bmRlcmx5aW5nIGRyYWZ0TW9kZSBvYmplY3QgZGlyZWN0bHlcbiAqIHdpdGhvdXQgYXdhaXRpbmcgdGhlIHJldHVybiB2YWx1ZSBmaXJzdC4gV2hlbiB0aGlzIGNoYW5nZSBoYXBwZW5zIHRoZSB0eXBlIGBVbnNhZmVVbndyYXBwZWREcmFmdE1vZGVgIHdpbGwgYmUgdXBkYXRlZCB0byByZWZsZWN0IHRoYXQgaXMgaXQgbm8gbG9uZ2VyXG4gKiB1c2FibGUuXG4gKlxuICogVGhpcyB0eXBlIGlzIG1hcmtlZCBkZXByZWNhdGVkIHRvIGhlbHAgaWRlbnRpZnkgaXQgYXMgdGFyZ2V0IGZvciByZWZhY3RvcmluZyBhd2F5LlxuICpcbiAqIEBkZXByZWNhdGVkXG4gKi9cbmV4cG9ydCB0eXBlIFVuc2FmZVVud3JhcHBlZERyYWZ0TW9kZSA9IERyYWZ0TW9kZVxuXG5leHBvcnQgZnVuY3Rpb24gZHJhZnRNb2RlKCk6IFByb21pc2U8RHJhZnRNb2RlPiB7XG4gIGNvbnN0IGNhbGxpbmdFeHByZXNzaW9uID0gJ2RyYWZ0TW9kZSdcbiAgY29uc3Qgd29ya1N0b3JlID0gd29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIGNvbnN0IHdvcmtVbml0U3RvcmUgPSB3b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG5cbiAgaWYgKCF3b3JrU3RvcmUgfHwgIXdvcmtVbml0U3RvcmUpIHtcbiAgICB0aHJvd0Zvck1pc3NpbmdSZXF1ZXN0U3RvcmUoY2FsbGluZ0V4cHJlc3Npb24pXG4gIH1cblxuICBzd2l0Y2ggKHdvcmtVbml0U3RvcmUudHlwZSkge1xuICAgIGNhc2UgJ3JlcXVlc3QnOlxuICAgICAgcmV0dXJuIGNyZWF0ZU9yR2V0Q2FjaGVkRHJhZnRNb2RlKHdvcmtVbml0U3RvcmUuZHJhZnRNb2RlLCB3b3JrU3RvcmUpXG5cbiAgICBjYXNlICdjYWNoZSc6XG4gICAgY2FzZSAndW5zdGFibGUtY2FjaGUnOlxuICAgICAgLy8gSW5zaWRlIG9mIGBcInVzZSBjYWNoZVwiYCBvciBgdW5zdGFibGVfY2FjaGVgLCBkcmFmdCBtb2RlIGlzIGF2YWlsYWJsZSBpZlxuICAgICAgLy8gdGhlIG91dG1vc3Qgd29yayB1bml0IHN0b3JlIGlzIGEgcmVxdWVzdCBzdG9yZSwgYW5kIGlmIGRyYWZ0IG1vZGUgaXNcbiAgICAgIC8vIGVuYWJsZWQuXG4gICAgICBjb25zdCBkcmFmdE1vZGVQcm92aWRlciA9IGdldERyYWZ0TW9kZVByb3ZpZGVyRm9yQ2FjaGVTY29wZShcbiAgICAgICAgd29ya1N0b3JlLFxuICAgICAgICB3b3JrVW5pdFN0b3JlXG4gICAgICApXG5cbiAgICAgIGlmIChkcmFmdE1vZGVQcm92aWRlcikge1xuICAgICAgICByZXR1cm4gY3JlYXRlT3JHZXRDYWNoZWREcmFmdE1vZGUoZHJhZnRNb2RlUHJvdmlkZXIsIHdvcmtTdG9yZSlcbiAgICAgIH1cblxuICAgIC8vIE90aGVyd2lzZSwgd2UgZmFsbCB0aHJvdWdoIHRvIHByb3ZpZGluZyBhbiBlbXB0eSBkcmFmdCBtb2RlLlxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1mYWxsdGhyb3VnaFxuICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgY2FzZSAncHJlcmVuZGVyLWxlZ2FjeSc6XG4gICAgICAvLyBSZXR1cm4gZW1wdHkgZHJhZnQgbW9kZVxuICAgICAgcmV0dXJuIGNyZWF0ZU9yR2V0Q2FjaGVkRHJhZnRNb2RlKG51bGwsIHdvcmtTdG9yZSlcblxuICAgIGRlZmF1bHQ6XG4gICAgICBjb25zdCBfZXhoYXVzdGl2ZUNoZWNrOiBuZXZlciA9IHdvcmtVbml0U3RvcmVcbiAgICAgIHJldHVybiBfZXhoYXVzdGl2ZUNoZWNrXG4gIH1cbn1cblxuZnVuY3Rpb24gY3JlYXRlT3JHZXRDYWNoZWREcmFmdE1vZGUoXG4gIGRyYWZ0TW9kZVByb3ZpZGVyOiBEcmFmdE1vZGVQcm92aWRlciB8IG51bGwsXG4gIHdvcmtTdG9yZTogV29ya1N0b3JlIHwgdW5kZWZpbmVkXG4pOiBQcm9taXNlPERyYWZ0TW9kZT4ge1xuICBjb25zdCBjYWNoZUtleSA9IGRyYWZ0TW9kZVByb3ZpZGVyID8/IE51bGxEcmFmdE1vZGVcbiAgY29uc3QgY2FjaGVkRHJhZnRNb2RlID0gQ2FjaGVkRHJhZnRNb2Rlcy5nZXQoY2FjaGVLZXkpXG5cbiAgaWYgKGNhY2hlZERyYWZ0TW9kZSkge1xuICAgIHJldHVybiBjYWNoZWREcmFmdE1vZGVcbiAgfVxuXG4gIGxldCBwcm9taXNlOiBQcm9taXNlPERyYWZ0TW9kZT5cblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgIXdvcmtTdG9yZT8uaXNQcmVmZXRjaFJlcXVlc3QpIHtcbiAgICBjb25zdCByb3V0ZSA9IHdvcmtTdG9yZT8ucm91dGVcblxuICAgIGlmIChwcm9jZXNzLmVudi5fX05FWFRfRFlOQU1JQ19JTykge1xuICAgICAgcmV0dXJuIGNyZWF0ZURyYWZ0TW9kZVdpdGhEZXZXYXJuaW5ncyhkcmFmdE1vZGVQcm92aWRlciwgcm91dGUpXG4gICAgfVxuXG4gICAgcHJvbWlzZSA9IGNyZWF0ZUV4b3RpY0RyYWZ0TW9kZVdpdGhEZXZXYXJuaW5ncyhkcmFmdE1vZGVQcm92aWRlciwgcm91dGUpXG4gIH0gZWxzZSB7XG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9EWU5BTUlDX0lPKSB7XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKG5ldyBEcmFmdE1vZGUoZHJhZnRNb2RlUHJvdmlkZXIpKVxuICAgIH1cblxuICAgIHByb21pc2UgPSBjcmVhdGVFeG90aWNEcmFmdE1vZGUoZHJhZnRNb2RlUHJvdmlkZXIpXG4gIH1cblxuICBDYWNoZWREcmFmdE1vZGVzLnNldChjYWNoZUtleSwgcHJvbWlzZSlcblxuICByZXR1cm4gcHJvbWlzZVxufVxuXG5pbnRlcmZhY2UgQ2FjaGVMaWZldGltZSB7fVxuY29uc3QgTnVsbERyYWZ0TW9kZSA9IHt9XG5jb25zdCBDYWNoZWREcmFmdE1vZGVzID0gbmV3IFdlYWtNYXA8Q2FjaGVMaWZldGltZSwgUHJvbWlzZTxEcmFmdE1vZGU+PigpXG5cbmZ1bmN0aW9uIGNyZWF0ZUV4b3RpY0RyYWZ0TW9kZShcbiAgdW5kZXJseWluZ1Byb3ZpZGVyOiBudWxsIHwgRHJhZnRNb2RlUHJvdmlkZXJcbik6IFByb21pc2U8RHJhZnRNb2RlPiB7XG4gIGNvbnN0IGluc3RhbmNlID0gbmV3IERyYWZ0TW9kZSh1bmRlcmx5aW5nUHJvdmlkZXIpXG4gIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoaW5zdGFuY2UpXG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsICdpc0VuYWJsZWQnLCB7XG4gICAgZ2V0KCkge1xuICAgICAgcmV0dXJuIGluc3RhbmNlLmlzRW5hYmxlZFxuICAgIH0sXG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBjb25maWd1cmFibGU6IHRydWUsXG4gIH0pXG4gIDsocHJvbWlzZSBhcyBhbnkpLmVuYWJsZSA9IGluc3RhbmNlLmVuYWJsZS5iaW5kKGluc3RhbmNlKVxuICA7KHByb21pc2UgYXMgYW55KS5kaXNhYmxlID0gaW5zdGFuY2UuZGlzYWJsZS5iaW5kKGluc3RhbmNlKVxuXG4gIHJldHVybiBwcm9taXNlXG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUV4b3RpY0RyYWZ0TW9kZVdpdGhEZXZXYXJuaW5ncyhcbiAgdW5kZXJseWluZ1Byb3ZpZGVyOiBudWxsIHwgRHJhZnRNb2RlUHJvdmlkZXIsXG4gIHJvdXRlOiB1bmRlZmluZWQgfCBzdHJpbmdcbik6IFByb21pc2U8RHJhZnRNb2RlPiB7XG4gIGNvbnN0IGluc3RhbmNlID0gbmV3IERyYWZ0TW9kZSh1bmRlcmx5aW5nUHJvdmlkZXIpXG4gIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUoaW5zdGFuY2UpXG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsICdpc0VuYWJsZWQnLCB7XG4gICAgZ2V0KCkge1xuICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgZHJhZnRNb2RlKCkuaXNFbmFibGVkYCdcbiAgICAgIHN5bmNJT0Rldihyb3V0ZSwgZXhwcmVzc2lvbilcbiAgICAgIHJldHVybiBpbnN0YW5jZS5pc0VuYWJsZWRcbiAgICB9LFxuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgY29uZmlndXJhYmxlOiB0cnVlLFxuICB9KVxuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9taXNlLCAnZW5hYmxlJywge1xuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICBjb25zdCBleHByZXNzaW9uID0gJ2BkcmFmdE1vZGUoKS5lbmFibGUoKWAnXG4gICAgICBzeW5jSU9EZXYocm91dGUsIGV4cHJlc3Npb24pXG4gICAgICByZXR1cm4gaW5zdGFuY2UuZW5hYmxlLmFwcGx5KGluc3RhbmNlLCBhcmd1bWVudHMgYXMgYW55KVxuICAgIH0sXG4gIH0pXG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb21pc2UsICdkaXNhYmxlJywge1xuICAgIHZhbHVlOiBmdW5jdGlvbiBnZXQoKSB7XG4gICAgICBjb25zdCBleHByZXNzaW9uID0gJ2BkcmFmdE1vZGUoKS5kaXNhYmxlKClgJ1xuICAgICAgc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uKVxuICAgICAgcmV0dXJuIGluc3RhbmNlLmRpc2FibGUuYXBwbHkoaW5zdGFuY2UsIGFyZ3VtZW50cyBhcyBhbnkpXG4gICAgfSxcbiAgfSlcblxuICByZXR1cm4gcHJvbWlzZVxufVxuXG4vLyBTaW1pbGFyIHRvIGBjcmVhdGVFeG90aWNEcmFmdE1vZGVXaXRoRGV2V2FybmluZ3NgLCBidXQganVzdCBsb2dnaW5nIHRoZSBzeW5jXG4vLyBhY2Nlc3Mgd2l0aG91dCBhY3R1YWxseSBkZWZpbmluZyB0aGUgZHJhZnRNb2RlIHByb3BlcnRpZXMgb24gdGhlIHByb21pc2UuXG5mdW5jdGlvbiBjcmVhdGVEcmFmdE1vZGVXaXRoRGV2V2FybmluZ3MoXG4gIHVuZGVybHlpbmdQcm92aWRlcjogbnVsbCB8IERyYWZ0TW9kZVByb3ZpZGVyLFxuICByb3V0ZTogdW5kZWZpbmVkIHwgc3RyaW5nXG4pOiBQcm9taXNlPERyYWZ0TW9kZT4ge1xuICBjb25zdCBpbnN0YW5jZSA9IG5ldyBEcmFmdE1vZGUodW5kZXJseWluZ1Byb3ZpZGVyKVxuICBjb25zdCBwcm9taXNlID0gUHJvbWlzZS5yZXNvbHZlKGluc3RhbmNlKVxuXG4gIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgc3dpdGNoIChwcm9wKSB7XG4gICAgICAgIGNhc2UgJ2lzRW5hYmxlZCc6XG4gICAgICAgICAgd2FybkZvclN5bmNBY2Nlc3Mocm91dGUsIGBcXGBkcmFmdE1vZGUoKS4ke3Byb3B9XFxgYClcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdlbmFibGUnOlxuICAgICAgICBjYXNlICdkaXNhYmxlJzoge1xuICAgICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKHJvdXRlLCBgXFxgZHJhZnRNb2RlKCkuJHtwcm9wfSgpXFxgYClcbiAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICAgIGRlZmF1bHQ6IHtcbiAgICAgICAgICAvLyBXZSBvbmx5IHdhcm4gZm9yIHdlbGwtZGVmaW5lZCBwcm9wZXJ0aWVzIG9mIHRoZSBkcmFmdE1vZGUgb2JqZWN0LlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBSZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcilcbiAgICB9LFxuICB9KVxuXG4gIHJldHVybiBwcm94aWVkUHJvbWlzZVxufVxuXG5jbGFzcyBEcmFmdE1vZGUge1xuICAvKipcbiAgICogQGludGVybmFsIC0gdGhpcyBkZWNsYXJhdGlvbiBpcyBzdHJpcHBlZCB2aWEgYHRzYyAtLXN0cmlwSW50ZXJuYWxgXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IF9wcm92aWRlcjogbnVsbCB8IERyYWZ0TW9kZVByb3ZpZGVyXG5cbiAgY29uc3RydWN0b3IocHJvdmlkZXI6IG51bGwgfCBEcmFmdE1vZGVQcm92aWRlcikge1xuICAgIHRoaXMuX3Byb3ZpZGVyID0gcHJvdmlkZXJcbiAgfVxuICBnZXQgaXNFbmFibGVkKCkge1xuICAgIGlmICh0aGlzLl9wcm92aWRlciAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIHRoaXMuX3Byb3ZpZGVyLmlzRW5hYmxlZFxuICAgIH1cbiAgICByZXR1cm4gZmFsc2VcbiAgfVxuICBwdWJsaWMgZW5hYmxlKCkge1xuICAgIC8vIFdlIGhhdmUgYSBzdG9yZSB3ZSB3YW50IHRvIHRyYWNrIGR5bmFtaWMgZGF0YSBhY2Nlc3MgdG8gZW5zdXJlIHdlXG4gICAgLy8gZG9uJ3Qgc3RhdGljYWxseSBnZW5lcmF0ZSByb3V0ZXMgdGhhdCBtYW5pcHVsYXRlIGRyYWZ0IG1vZGUuXG4gICAgdHJhY2tEeW5hbWljRHJhZnRNb2RlKCdkcmFmdE1vZGUoKS5lbmFibGUoKScpXG4gICAgaWYgKHRoaXMuX3Byb3ZpZGVyICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl9wcm92aWRlci5lbmFibGUoKVxuICAgIH1cbiAgfVxuICBwdWJsaWMgZGlzYWJsZSgpIHtcbiAgICB0cmFja0R5bmFtaWNEcmFmdE1vZGUoJ2RyYWZ0TW9kZSgpLmRpc2FibGUoKScpXG4gICAgaWYgKHRoaXMuX3Byb3ZpZGVyICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl9wcm92aWRlci5kaXNhYmxlKClcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gc3luY0lPRGV2KHJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWQsIGV4cHJlc3Npb246IHN0cmluZykge1xuICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBpZiAoXG4gICAgd29ya1VuaXRTdG9yZSAmJlxuICAgIHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ3JlcXVlc3QnICYmXG4gICAgd29ya1VuaXRTdG9yZS5wcmVyZW5kZXJQaGFzZSA9PT0gdHJ1ZVxuICApIHtcbiAgICAvLyBXaGVuIHdlJ3JlIHJlbmRlcmluZyBkeW5hbWljYWxseSBpbiBkZXYgd2UgbmVlZCB0byBhZHZhbmNlIG91dCBvZiB0aGVcbiAgICAvLyBQcmVyZW5kZXIgZW52aXJvbm1lbnQgd2hlbiB3ZSByZWFkIFJlcXVlc3QgZGF0YSBzeW5jaHJvbm91c2x5XG4gICAgY29uc3QgcmVxdWVzdFN0b3JlID0gd29ya1VuaXRTdG9yZVxuICAgIHRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2KHJlcXVlc3RTdG9yZSlcbiAgfVxuICAvLyBJbiBhbGwgY2FzZXMgd2Ugd2FybiBub3JtYWxseVxuICB3YXJuRm9yU3luY0FjY2Vzcyhyb3V0ZSwgZXhwcmVzc2lvbilcbn1cblxuY29uc3Qgd2FybkZvclN5bmNBY2Nlc3MgPSBjcmVhdGVEZWR1cGVkQnlDYWxsc2l0ZVNlcnZlckVycm9yTG9nZ2VyRGV2KFxuICBjcmVhdGVEcmFmdE1vZGVBY2Nlc3NFcnJvclxuKVxuXG5mdW5jdGlvbiBjcmVhdGVEcmFmdE1vZGVBY2Nlc3NFcnJvcihcbiAgcm91dGU6IHN0cmluZyB8IHVuZGVmaW5lZCxcbiAgZXhwcmVzc2lvbjogc3RyaW5nXG4pIHtcbiAgY29uc3QgcHJlZml4ID0gcm91dGUgPyBgUm91dGUgXCIke3JvdXRlfVwiIGAgOiAnVGhpcyByb3V0ZSAnXG4gIHJldHVybiBuZXcgRXJyb3IoXG4gICAgYCR7cHJlZml4fXVzZWQgJHtleHByZXNzaW9ufS4gYCArXG4gICAgICBgXFxgZHJhZnRNb2RlKClcXGAgc2hvdWxkIGJlIGF3YWl0ZWQgYmVmb3JlIHVzaW5nIGl0cyB2YWx1ZS4gYCArXG4gICAgICBgTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3luYy1keW5hbWljLWFwaXNgXG4gIClcbn1cblxuZnVuY3Rpb24gdHJhY2tEeW5hbWljRHJhZnRNb2RlKGV4cHJlc3Npb246IHN0cmluZykge1xuICBjb25zdCBzdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBpZiAoc3RvcmUpIHtcbiAgICAvLyBXZSBoYXZlIGEgc3RvcmUgd2Ugd2FudCB0byB0cmFjayBkeW5hbWljIGRhdGEgYWNjZXNzIHRvIGVuc3VyZSB3ZVxuICAgIC8vIGRvbid0IHN0YXRpY2FsbHkgZ2VuZXJhdGUgcm91dGVzIHRoYXQgbWFuaXB1bGF0ZSBkcmFmdCBtb2RlLlxuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICBpZiAod29ya1VuaXRTdG9yZS50eXBlID09PSAnY2FjaGUnKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICBgUm91dGUgJHtzdG9yZS5yb3V0ZX0gdXNlZCBcIiR7ZXhwcmVzc2lvbn1cIiBpbnNpZGUgXCJ1c2UgY2FjaGVcIi4gVGhlIGVuYWJsZWQgc3RhdHVzIG9mIGRyYWZ0TW9kZSBjYW4gYmUgcmVhZCBpbiBjYWNoZXMgYnV0IHlvdSBtdXN0IG5vdCBlbmFibGUgb3IgZGlzYWJsZSBkcmFmdE1vZGUgaW5zaWRlIGEgY2FjaGUuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1yZXF1ZXN0LWluLXVzZS1jYWNoZWBcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICd1bnN0YWJsZS1jYWNoZScpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBSb3V0ZSAke3N0b3JlLnJvdXRlfSB1c2VkIFwiJHtleHByZXNzaW9ufVwiIGluc2lkZSBhIGZ1bmN0aW9uIGNhY2hlZCB3aXRoIFwidW5zdGFibGVfY2FjaGUoLi4uKVwiLiBUaGUgZW5hYmxlZCBzdGF0dXMgb2YgZHJhZnRNb2RlIGNhbiBiZSByZWFkIGluIGNhY2hlcyBidXQgeW91IG11c3Qgbm90IGVuYWJsZSBvciBkaXNhYmxlIGRyYWZ0TW9kZSBpbnNpZGUgYSBjYWNoZS4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvdW5zdGFibGVfY2FjaGVgXG4gICAgICAgIClcbiAgICAgIH0gZWxzZSBpZiAod29ya1VuaXRTdG9yZS5waGFzZSA9PT0gJ2FmdGVyJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFJvdXRlICR7c3RvcmUucm91dGV9IHVzZWQgXCIke2V4cHJlc3Npb259XCIgaW5zaWRlIFxcYGFmdGVyXFxgLiBUaGUgZW5hYmxlZCBzdGF0dXMgb2YgZHJhZnRNb2RlIGNhbiBiZSByZWFkIGluc2lkZSBcXGBhZnRlclxcYCBidXQgeW91IGNhbm5vdCBlbmFibGUgb3IgZGlzYWJsZSBkcmFmdE1vZGUuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvZnVuY3Rpb25zL2FmdGVyYFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHN0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihcbiAgICAgICAgYFJvdXRlICR7c3RvcmUucm91dGV9IHdpdGggXFxgZHluYW1pYyA9IFwiZXJyb3JcIlxcYCBjb3VsZG4ndCBiZSByZW5kZXJlZCBzdGF0aWNhbGx5IGJlY2F1c2UgaXQgdXNlZCBcXGAke2V4cHJlc3Npb259XFxgLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9idWlsZGluZy15b3VyLWFwcGxpY2F0aW9uL3JlbmRlcmluZy9zdGF0aWMtYW5kLWR5bmFtaWMjZHluYW1pYy1yZW5kZXJpbmdgXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHdvcmtVbml0U3RvcmUpIHtcbiAgICAgIHN3aXRjaCAod29ya1VuaXRTdG9yZS50eXBlKSB7XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgLy8gZHluYW1pY0lPIFByZXJlbmRlclxuICAgICAgICAgIGNvbnN0IGVycm9yID0gbmV3IEVycm9yKFxuICAgICAgICAgICAgYFJvdXRlICR7c3RvcmUucm91dGV9IHVzZWQgJHtleHByZXNzaW9ufSB3aXRob3V0IGZpcnN0IGNhbGxpbmcgXFxgYXdhaXQgY29ubmVjdGlvbigpXFxgLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtcHJlcmVuZGVyLXN5bmMtaGVhZGVyc2BcbiAgICAgICAgICApXG4gICAgICAgICAgYWJvcnRBbmRUaHJvd09uU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2VzcyhcbiAgICAgICAgICAgIHN0b3JlLnJvdXRlLFxuICAgICAgICAgICAgZXhwcmVzc2lvbixcbiAgICAgICAgICAgIGVycm9yLFxuICAgICAgICAgICAgd29ya1VuaXRTdG9yZVxuICAgICAgICAgIClcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICAgICAgICBjb25zdCBleHBvcnROYW1lID0gJ2BkcmFmdE1vZGVgJ1xuICAgICAgICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcihcbiAgICAgICAgICAgIGAke2V4cG9ydE5hbWV9IG11c3Qgbm90IGJlIHVzZWQgd2l0aGluIGEgY2xpZW50IGNvbXBvbmVudC4gTmV4dC5qcyBzaG91bGQgYmUgcHJldmVudGluZyAke2V4cG9ydE5hbWV9IGZyb20gYmVpbmcgaW5jbHVkZWQgaW4gY2xpZW50IGNvbXBvbmVudHMgc3RhdGljYWxseSwgYnV0IGRpZCBub3QgaW4gdGhpcyBjYXNlLmBcbiAgICAgICAgICApXG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1wcHInOlxuICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXJcbiAgICAgICAgICBwb3N0cG9uZVdpdGhUcmFja2luZyhcbiAgICAgICAgICAgIHN0b3JlLnJvdXRlLFxuICAgICAgICAgICAgZXhwcmVzc2lvbixcbiAgICAgICAgICAgIHdvcmtVbml0U3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgICAgICAgKVxuICAgICAgICAgIGJyZWFrXG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlci1sZWdhY3knOlxuICAgICAgICAgIC8vIGxlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICB3b3JrVW5pdFN0b3JlLnJldmFsaWRhdGUgPSAwXG5cbiAgICAgICAgICBjb25zdCBlcnIgPSBuZXcgRHluYW1pY1NlcnZlckVycm9yKFxuICAgICAgICAgICAgYFJvdXRlICR7c3RvcmUucm91dGV9IGNvdWxkbid0IGJlIHJlbmRlcmVkIHN0YXRpY2FsbHkgYmVjYXVzZSBpdCB1c2VkIFxcYCR7ZXhwcmVzc2lvbn1cXGAuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZHluYW1pYy1zZXJ2ZXItZXJyb3JgXG4gICAgICAgICAgKVxuICAgICAgICAgIHN0b3JlLmR5bmFtaWNVc2FnZURlc2NyaXB0aW9uID0gZXhwcmVzc2lvblxuICAgICAgICAgIHN0b3JlLmR5bmFtaWNVc2FnZVN0YWNrID0gZXJyLnN0YWNrXG5cbiAgICAgICAgICB0aHJvdyBlcnJcbiAgICAgICAgY2FzZSAncmVxdWVzdCc6XG4gICAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICB3b3JrVW5pdFN0b3JlLnVzZWREeW5hbWljID0gdHJ1ZVxuICAgICAgICAgIH1cbiAgICAgICAgICBicmVha1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBmYWxsdGhyb3VnaFxuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl0sIm5hbWVzIjpbImRyYWZ0TW9kZSIsImNhbGxpbmdFeHByZXNzaW9uIiwid29ya1N0b3JlIiwid29ya0FzeW5jU3RvcmFnZSIsImdldFN0b3JlIiwid29ya1VuaXRTdG9yZSIsIndvcmtVbml0QXN5bmNTdG9yYWdlIiwidGhyb3dGb3JNaXNzaW5nUmVxdWVzdFN0b3JlIiwidHlwZSIsImNyZWF0ZU9yR2V0Q2FjaGVkRHJhZnRNb2RlIiwiZHJhZnRNb2RlUHJvdmlkZXIiLCJnZXREcmFmdE1vZGVQcm92aWRlckZvckNhY2hlU2NvcGUiLCJfZXhoYXVzdGl2ZUNoZWNrIiwiY2FjaGVLZXkiLCJOdWxsRHJhZnRNb2RlIiwiY2FjaGVkRHJhZnRNb2RlIiwiQ2FjaGVkRHJhZnRNb2RlcyIsImdldCIsInByb21pc2UiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJpc1ByZWZldGNoUmVxdWVzdCIsInJvdXRlIiwiX19ORVhUX0RZTkFNSUNfSU8iLCJjcmVhdGVEcmFmdE1vZGVXaXRoRGV2V2FybmluZ3MiLCJjcmVhdGVFeG90aWNEcmFmdE1vZGVXaXRoRGV2V2FybmluZ3MiLCJQcm9taXNlIiwicmVzb2x2ZSIsIkRyYWZ0TW9kZSIsImNyZWF0ZUV4b3RpY0RyYWZ0TW9kZSIsInNldCIsIldlYWtNYXAiLCJ1bmRlcmx5aW5nUHJvdmlkZXIiLCJpbnN0YW5jZSIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiaXNFbmFibGVkIiwiZW51bWVyYWJsZSIsImNvbmZpZ3VyYWJsZSIsImVuYWJsZSIsImJpbmQiLCJkaXNhYmxlIiwiZXhwcmVzc2lvbiIsInN5bmNJT0RldiIsInZhbHVlIiwiYXBwbHkiLCJhcmd1bWVudHMiLCJwcm94aWVkUHJvbWlzZSIsIlByb3h5IiwidGFyZ2V0IiwicHJvcCIsInJlY2VpdmVyIiwid2FybkZvclN5bmNBY2Nlc3MiLCJSZWZsZWN0QWRhcHRlciIsImNvbnN0cnVjdG9yIiwicHJvdmlkZXIiLCJfcHJvdmlkZXIiLCJ0cmFja0R5bmFtaWNEcmFmdE1vZGUiLCJwcmVyZW5kZXJQaGFzZSIsInJlcXVlc3RTdG9yZSIsInRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2IiwiY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldiIsImNyZWF0ZURyYWZ0TW9kZUFjY2Vzc0Vycm9yIiwicHJlZml4IiwiRXJyb3IiLCJzdG9yZSIsInBoYXNlIiwiZHluYW1pY1Nob3VsZEVycm9yIiwiU3RhdGljR2VuQmFpbG91dEVycm9yIiwiZXJyb3IiLCJhYm9ydEFuZFRocm93T25TeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzIiwiZXhwb3J0TmFtZSIsIkludmFyaWFudEVycm9yIiwicG9zdHBvbmVXaXRoVHJhY2tpbmciLCJkeW5hbWljVHJhY2tpbmciLCJyZXZhbGlkYXRlIiwiZXJyIiwiRHluYW1pY1NlcnZlckVycm9yIiwiZHluYW1pY1VzYWdlRGVzY3JpcHRpb24iLCJkeW5hbWljVXNhZ2VTdGFjayIsInN0YWNrIiwidXNlZER5bmFtaWMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/draft-mode.js\n");
+
+/***/ }),
+
/***/ "(rsc)/./node_modules/next/dist/server/request/fallback-params.js":
/*!******************************************************************!*\
!*** ./node_modules/next/dist/server/request/fallback-params.js ***!
@@ -1264,6 +1364,17 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
/***/ }),
+/***/ "(rsc)/./node_modules/next/dist/server/request/headers.js":
+/*!**********************************************************!*\
+ !*** ./node_modules/next/dist/server/request/headers.js ***!
+ \**********************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"headers\", ({\n enumerable: true,\n get: function() {\n return headers;\n }\n}));\nconst _headers = __webpack_require__(/*! ../web/spec-extension/adapters/headers */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/headers.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _staticgenerationbailout = __webpack_require__(/*! ../../client/components/static-generation-bailout */ \"(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _creatededupedbycallsiteservererrorlogger = __webpack_require__(/*! ../create-deduped-by-callsite-server-error-logger */ \"(rsc)/./node_modules/next/dist/server/create-deduped-by-callsite-server-error-logger.js\");\nconst _scheduler = __webpack_require__(/*! ../../lib/scheduler */ \"(rsc)/./node_modules/next/dist/lib/scheduler.js\");\nconst _utils = __webpack_require__(/*! ./utils */ \"(rsc)/./node_modules/next/dist/server/request/utils.js\");\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _reflect = __webpack_require__(/*! ../web/spec-extension/adapters/reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nfunction headers() {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workStore) {\n if (workUnitStore && workUnitStore.phase === 'after' && !(0, _utils.isRequestAPICallableInsideAfter)()) {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"headers\" inside \"after(...)\". This is not supported. If you need this data inside an \"after\" callback, use \"headers\" outside of the callback. See more info here: https://nextjs.org/docs/canary/app/api-reference/functions/after`), \"__NEXT_ERROR_CODE\", {\n value: \"E367\",\n enumerable: false,\n configurable: true\n });\n }\n if (workStore.forceStatic) {\n // When using forceStatic we override all other logic and always just return an empty\n // headers object without tracking\n const underlyingHeaders = _headers.HeadersAdapter.seal(new Headers({}));\n return makeUntrackedExoticHeaders(underlyingHeaders);\n }\n if (workUnitStore) {\n if (workUnitStore.type === 'cache') {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"headers\" inside \"use cache\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \"headers\" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/messages/next-request-in-use-cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E304\",\n enumerable: false,\n configurable: true\n });\n } else if (workUnitStore.type === 'unstable-cache') {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \"headers\" inside a function cached with \"unstable_cache(...)\". Accessing Dynamic data sources inside a cache scope is not supported. If you need this data inside a cached function use \"headers\" outside of the cached function and pass the required dynamic data in as an argument. See more info here: https://nextjs.org/docs/app/api-reference/functions/unstable_cache`), \"__NEXT_ERROR_CODE\", {\n value: \"E127\",\n enumerable: false,\n configurable: true\n });\n }\n }\n if (workStore.dynamicShouldError) {\n throw Object.defineProperty(new _staticgenerationbailout.StaticGenBailoutError(`Route ${workStore.route} with \\`dynamic = \"error\"\\` couldn't be rendered statically because it used \\`headers\\`. See more info here: https://nextjs.org/docs/app/building-your-application/rendering/static-and-dynamic#dynamic-rendering`), \"__NEXT_ERROR_CODE\", {\n value: \"E525\",\n enumerable: false,\n configurable: true\n });\n }\n if (workUnitStore) {\n switch(workUnitStore.type){\n case 'prerender':\n return makeHangingHeaders(workUnitStore);\n case 'prerender-client':\n const exportName = '`headers`';\n throw Object.defineProperty(new _invarianterror.InvariantError(`${exportName} must not be used within a client component. Next.js should be preventing ${exportName} from being included in client components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E693\",\n enumerable: false,\n configurable: true\n });\n case 'prerender-ppr':\n // PPR Prerender (no dynamicIO)\n // We are prerendering with PPR. We need track dynamic access here eagerly\n // to keep continuity with how headers has worked in PPR without dynamicIO.\n // TODO consider switching the semantic to throw on property access instead\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, 'headers', workUnitStore.dynamicTracking);\n break;\n case 'prerender-legacy':\n // Legacy Prerender\n // We are in a legacy static generation mode while prerendering\n // We track dynamic access here so we don't need to wrap the headers in\n // individual property access tracking.\n (0, _dynamicrendering.throwToInterruptStaticGeneration)('headers', workStore, workUnitStore);\n break;\n default:\n }\n }\n // We fall through to the dynamic context below but we still track dynamic access\n // because in dev we can still error for things like using headers inside a cache context\n (0, _dynamicrendering.trackDynamicDataInDynamicRender)(workStore, workUnitStore);\n }\n const requestStore = (0, _workunitasyncstorageexternal.getExpectedRequestStore)('headers');\n if ( true && !(workStore == null ? void 0 : workStore.isPrefetchRequest)) {\n if (false) {}\n return makeUntrackedExoticHeadersWithDevWarnings(requestStore.headers, workStore == null ? void 0 : workStore.route);\n } else {\n return makeUntrackedExoticHeaders(requestStore.headers);\n }\n}\nconst CachedHeaders = new WeakMap();\nfunction makeHangingHeaders(prerenderStore) {\n const cachedHeaders = CachedHeaders.get(prerenderStore);\n if (cachedHeaders) {\n return cachedHeaders;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`headers()`');\n CachedHeaders.set(prerenderStore, promise);\n return promise;\n}\nfunction makeUntrackedExoticHeaders(underlyingHeaders) {\n const cachedHeaders = CachedHeaders.get(underlyingHeaders);\n if (cachedHeaders) {\n return cachedHeaders;\n }\n const promise = Promise.resolve(underlyingHeaders);\n CachedHeaders.set(underlyingHeaders, promise);\n Object.defineProperties(promise, {\n append: {\n value: underlyingHeaders.append.bind(underlyingHeaders)\n },\n delete: {\n value: underlyingHeaders.delete.bind(underlyingHeaders)\n },\n get: {\n value: underlyingHeaders.get.bind(underlyingHeaders)\n },\n has: {\n value: underlyingHeaders.has.bind(underlyingHeaders)\n },\n set: {\n value: underlyingHeaders.set.bind(underlyingHeaders)\n },\n getSetCookie: {\n value: underlyingHeaders.getSetCookie.bind(underlyingHeaders)\n },\n forEach: {\n value: underlyingHeaders.forEach.bind(underlyingHeaders)\n },\n keys: {\n value: underlyingHeaders.keys.bind(underlyingHeaders)\n },\n values: {\n value: underlyingHeaders.values.bind(underlyingHeaders)\n },\n entries: {\n value: underlyingHeaders.entries.bind(underlyingHeaders)\n },\n [Symbol.iterator]: {\n value: underlyingHeaders[Symbol.iterator].bind(underlyingHeaders)\n }\n });\n return promise;\n}\nfunction makeUntrackedExoticHeadersWithDevWarnings(underlyingHeaders, route) {\n const cachedHeaders = CachedHeaders.get(underlyingHeaders);\n if (cachedHeaders) {\n return cachedHeaders;\n }\n const promise = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingHeaders)));\n CachedHeaders.set(underlyingHeaders, promise);\n Object.defineProperties(promise, {\n append: {\n value: function append() {\n const expression = `\\`headers().append(${describeNameArg(arguments[0])}, ...)\\``;\n syncIODev(route, expression);\n return underlyingHeaders.append.apply(underlyingHeaders, arguments);\n }\n },\n delete: {\n value: function _delete() {\n const expression = `\\`headers().delete(${describeNameArg(arguments[0])})\\``;\n syncIODev(route, expression);\n return underlyingHeaders.delete.apply(underlyingHeaders, arguments);\n }\n },\n get: {\n value: function get() {\n const expression = `\\`headers().get(${describeNameArg(arguments[0])})\\``;\n syncIODev(route, expression);\n return underlyingHeaders.get.apply(underlyingHeaders, arguments);\n }\n },\n has: {\n value: function has() {\n const expression = `\\`headers().has(${describeNameArg(arguments[0])})\\``;\n syncIODev(route, expression);\n return underlyingHeaders.has.apply(underlyingHeaders, arguments);\n }\n },\n set: {\n value: function set() {\n const expression = `\\`headers().set(${describeNameArg(arguments[0])}, ...)\\``;\n syncIODev(route, expression);\n return underlyingHeaders.set.apply(underlyingHeaders, arguments);\n }\n },\n getSetCookie: {\n value: function getSetCookie() {\n const expression = '`headers().getSetCookie()`';\n syncIODev(route, expression);\n return underlyingHeaders.getSetCookie.apply(underlyingHeaders, arguments);\n }\n },\n forEach: {\n value: function forEach() {\n const expression = '`headers().forEach(...)`';\n syncIODev(route, expression);\n return underlyingHeaders.forEach.apply(underlyingHeaders, arguments);\n }\n },\n keys: {\n value: function keys() {\n const expression = '`headers().keys()`';\n syncIODev(route, expression);\n return underlyingHeaders.keys.apply(underlyingHeaders, arguments);\n }\n },\n values: {\n value: function values() {\n const expression = '`headers().values()`';\n syncIODev(route, expression);\n return underlyingHeaders.values.apply(underlyingHeaders, arguments);\n }\n },\n entries: {\n value: function entries() {\n const expression = '`headers().entries()`';\n syncIODev(route, expression);\n return underlyingHeaders.entries.apply(underlyingHeaders, arguments);\n }\n },\n [Symbol.iterator]: {\n value: function() {\n const expression = '`...headers()` or similar iteration';\n syncIODev(route, expression);\n return underlyingHeaders[Symbol.iterator].apply(underlyingHeaders, arguments);\n }\n }\n });\n return promise;\n}\n// Similar to `makeUntrackedExoticHeadersWithDevWarnings`, but just logging the\n// sync access without actually defining the headers properties on the promise.\nfunction makeUntrackedHeadersWithDevWarnings(underlyingHeaders, route) {\n const cachedHeaders = CachedHeaders.get(underlyingHeaders);\n if (cachedHeaders) {\n return cachedHeaders;\n }\n const promise = new Promise((resolve)=>(0, _scheduler.scheduleImmediate)(()=>resolve(underlyingHeaders)));\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n switch(prop){\n case Symbol.iterator:\n {\n warnForSyncAccess(route, '`...headers()` or similar iteration');\n break;\n }\n case 'append':\n case 'delete':\n case 'get':\n case 'has':\n case 'set':\n case 'getSetCookie':\n case 'forEach':\n case 'keys':\n case 'values':\n case 'entries':\n {\n warnForSyncAccess(route, `\\`headers().${prop}\\``);\n break;\n }\n default:\n {\n // We only warn for well-defined properties of the headers object.\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n });\n CachedHeaders.set(underlyingHeaders, proxiedPromise);\n return proxiedPromise;\n}\nfunction describeNameArg(arg) {\n return typeof arg === 'string' ? `'${arg}'` : '...';\n}\nfunction syncIODev(route, expression) {\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (workUnitStore && workUnitStore.type === 'request' && workUnitStore.prerenderPhase === true) {\n // When we're rendering dynamically in dev we need to advance out of the\n // Prerender environment when we read Request data synchronously\n const requestStore = workUnitStore;\n (0, _dynamicrendering.trackSynchronousRequestDataAccessInDev)(requestStore);\n }\n // In all cases we warn normally\n warnForSyncAccess(route, expression);\n}\nconst warnForSyncAccess = (0, _creatededupedbycallsiteservererrorlogger.createDedupedByCallsiteServerErrorLoggerDev)(createHeadersAccessError);\nfunction createHeadersAccessError(route, expression) {\n const prefix = route ? `Route \"${route}\" ` : 'This route ';\n return Object.defineProperty(new Error(`${prefix}used ${expression}. ` + `\\`headers()\\` should be awaited before using its value. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`), \"__NEXT_ERROR_CODE\", {\n value: \"E277\",\n enumerable: false,\n configurable: true\n });\n} //# sourceMappingURL=headers.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L2hlYWRlcnMuanMiLCJtYXBwaW5ncyI6Ijs7OzsyQ0F3RGdCQTs7O2VBQUFBOzs7cUNBckRUO3NEQUMwQjswREFDTzs4Q0FVakM7O21EQUU0QjtzRUFDeUI7dUNBQzFCO21DQUNjOzRDQUNqQjtxQ0FDQTtBQWtDeEIsU0FBU0E7SUFDZCxNQUFNQyxZQUFZQywwQkFBQUEsZ0JBQWdCLENBQUNDLFFBQVE7SUFDM0MsTUFBTUMsZ0JBQWdCQyw4QkFBQUEsb0JBQW9CLENBQUNGLFFBQVE7SUFFbkQsSUFBSUYsV0FBVztRQUNiLElBQ0VHLGlCQUNBQSxjQUFjRSxLQUFLLEtBQUssV0FDeEIsQ0FBQ0MsQ0FBQUEsR0FBQUEsT0FBQUEsK0JBQUFBLEtBQ0Q7WUFDQSxNQUFNLHFCQUVMLENBRkssSUFBSUMsTUFDUixDQUFDLE1BQU0sRUFBRVAsVUFBVVEsS0FBSyxDQUFDLHlPQUF5TyxDQUFDLEdBRC9QO3VCQUFBOzRCQUFBOzhCQUFBO1lBRU47UUFDRjtRQUVBLElBQUlSLFVBQVVTLFdBQVcsRUFBRTtZQUN6QixxRkFBcUY7WUFDckYsa0NBQWtDO1lBQ2xDLE1BQU1DLG9CQUFvQkMsU0FBQUEsY0FBYyxDQUFDQyxJQUFJLENBQUMsSUFBSUMsUUFBUSxDQUFDO1lBQzNELE9BQU9DLDJCQUEyQko7UUFDcEM7UUFFQSxJQUFJUCxlQUFlO1lBQ2pCLElBQUlBLGNBQWNZLElBQUksS0FBSyxTQUFTO2dCQUNsQyxNQUFNLHFCQUVMLENBRkssSUFBSVIsTUFDUixDQUFDLE1BQU0sRUFBRVAsVUFBVVEsS0FBSyxDQUFDLDBVQUEwVSxDQUFDLEdBRGhXOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUVOO1lBQ0YsT0FBTyxJQUFJTCxjQUFjWSxJQUFJLEtBQUssa0JBQWtCO2dCQUNsRCxNQUFNLHFCQUVMLENBRkssSUFBSVIsTUFDUixDQUFDLE1BQU0sRUFBRVAsVUFBVVEsS0FBSyxDQUFDLG1YQUFtWCxDQUFDLEdBRHpZOzJCQUFBO2dDQUFBO2tDQUFBO2dCQUVOO1lBQ0Y7UUFDRjtRQUNBLElBQUlSLFVBQVVnQixrQkFBa0IsRUFBRTtZQUNoQyxNQUFNLHFCQUVMLENBRkssSUFBSUMseUJBQUFBLHFCQUFxQixDQUM3QixDQUFDLE1BQU0sRUFBRWpCLFVBQVVRLEtBQUssQ0FBQyxpTkFBaU4sQ0FBQyxHQUR2Tzt1QkFBQTs0QkFBQTs4QkFBQTtZQUVOO1FBQ0Y7UUFFQSxJQUFJTCxlQUFlO1lBQ2pCLE9BQVFBLGNBQWNZLElBQUk7Z0JBQ3hCLEtBQUs7b0JBQ0gsT0FBT0csbUJBQW1CZjtnQkFDNUIsS0FBSztvQkFDSCxNQUFNZ0IsYUFBYTtvQkFDbkIsTUFBTSxxQkFFTCxDQUZLLElBQUlDLGdCQUFBQSxjQUFjLENBQ3RCLEdBQUdELFdBQVcsMEVBQTBFLEVBQUVBLFdBQVcsK0VBQStFLENBQUMsR0FEakw7K0JBQUE7b0NBQUE7c0NBQUE7b0JBRU47Z0JBQ0YsS0FBSztvQkFDSCwrQkFBK0I7b0JBQy9CLDBFQUEwRTtvQkFDMUUsMkVBQTJFO29CQUMzRSwyRUFBMkU7b0JBQzNFRSxDQUFBQSxHQUFBQSxrQkFBQUEsb0JBQUFBLEVBQ0VyQixVQUFVUSxLQUFLLEVBQ2YsV0FDQUwsY0FBY21CLGVBQWU7b0JBRS9CO2dCQUNGLEtBQUs7b0JBQ0gsbUJBQW1CO29CQUNuQiwrREFBK0Q7b0JBQy9ELHVFQUF1RTtvQkFDdkUsdUNBQXVDO29CQUN2Q0MsQ0FBQUEsR0FBQUEsa0JBQUFBLGdDQUFBQSxFQUFpQyxXQUFXdkIsV0FBV0c7b0JBQ3ZEO2dCQUNGO1lBRUY7UUFDRjtRQUNBLGlGQUFpRjtRQUNqRix5RkFBeUY7UUFDekZxQixDQUFBQSxHQUFBQSxrQkFBQUEsK0JBQUFBLEVBQWdDeEIsV0FBV0c7SUFDN0M7SUFFQSxNQUFNc0IsZUFBZUMsQ0FBQUEsR0FBQUEsOEJBQUFBLHVCQUFBQSxFQUF3QjtJQUM3QyxJQUFJQyxLQUFvQixJQUFzQixFQUFDM0IsYUFBQUEsT0FBQUEsS0FBQUEsSUFBQUEsVUFBVzhCLGlCQUFpQixHQUFFO1FBQzNFLElBQUlILEtBQTZCLEVBQUUsRUFLbEM7UUFFRCxPQUFPTSwwQ0FDTFIsYUFBYTFCLE9BQU8sRUFDcEJDLGFBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFVBQVdRLEtBQUs7SUFFcEIsT0FBTztRQUNMLE9BQU9NLDJCQUEyQlcsYUFBYTFCLE9BQU87SUFDeEQ7QUFDRjtBQUdBLE1BQU1tQyxnQkFBZ0IsSUFBSUM7QUFFMUIsU0FBU2pCLG1CQUNQa0IsY0FBb0M7SUFFcEMsTUFBTUMsZ0JBQWdCSCxjQUFjSSxHQUFHLENBQUNGO0lBQ3hDLElBQUlDLGVBQWU7UUFDakIsT0FBT0E7SUFDVDtJQUVBLE1BQU1FLFVBQVVDLENBQUFBLEdBQUFBLHVCQUFBQSxrQkFBQUEsRUFDZEosZUFBZUssWUFBWSxFQUMzQjtJQUVGUCxjQUFjUSxHQUFHLENBQUNOLGdCQUFnQkc7SUFFbEMsT0FBT0E7QUFDVDtBQUVBLFNBQVN6QiwyQkFDUEosaUJBQWtDO0lBRWxDLE1BQU0yQixnQkFBZ0JILGNBQWNJLEdBQUcsQ0FBQzVCO0lBQ3hDLElBQUkyQixlQUFlO1FBQ2pCLE9BQU9BO0lBQ1Q7SUFFQSxNQUFNRSxVQUFVSSxRQUFRQyxPQUFPLENBQUNsQztJQUNoQ3dCLGNBQWNRLEdBQUcsQ0FBQ2hDLG1CQUFtQjZCO0lBRXJDTSxPQUFPQyxnQkFBZ0IsQ0FBQ1AsU0FBUztRQUMvQlEsUUFBUTtZQUNOQyxPQUFPdEMsa0JBQWtCcUMsTUFBTSxDQUFDRSxJQUFJLENBQUN2QztRQUN2QztRQUNBd0MsUUFBUTtZQUNORixPQUFPdEMsa0JBQWtCd0MsTUFBTSxDQUFDRCxJQUFJLENBQUN2QztRQUN2QztRQUNBNEIsS0FBSztZQUNIVSxPQUFPdEMsa0JBQWtCNEIsR0FBRyxDQUFDVyxJQUFJLENBQUN2QztRQUNwQztRQUNBeUMsS0FBSztZQUNISCxPQUFPdEMsa0JBQWtCeUMsR0FBRyxDQUFDRixJQUFJLENBQUN2QztRQUNwQztRQUNBZ0MsS0FBSztZQUNITSxPQUFPdEMsa0JBQWtCZ0MsR0FBRyxDQUFDTyxJQUFJLENBQUN2QztRQUNwQztRQUNBMEMsY0FBYztZQUNaSixPQUFPdEMsa0JBQWtCMEMsWUFBWSxDQUFDSCxJQUFJLENBQUN2QztRQUM3QztRQUNBMkMsU0FBUztZQUNQTCxPQUFPdEMsa0JBQWtCMkMsT0FBTyxDQUFDSixJQUFJLENBQUN2QztRQUN4QztRQUNBNEMsTUFBTTtZQUNKTixPQUFPdEMsa0JBQWtCNEMsSUFBSSxDQUFDTCxJQUFJLENBQUN2QztRQUNyQztRQUNBNkMsUUFBUTtZQUNOUCxPQUFPdEMsa0JBQWtCNkMsTUFBTSxDQUFDTixJQUFJLENBQUN2QztRQUN2QztRQUNBOEMsU0FBUztZQUNQUixPQUFPdEMsa0JBQWtCOEMsT0FBTyxDQUFDUCxJQUFJLENBQUN2QztRQUN4QztRQUNBLENBQUMrQyxPQUFPQyxRQUFRLENBQUMsRUFBRTtZQUNqQlYsT0FBT3RDLGlCQUFpQixDQUFDK0MsT0FBT0MsUUFBUSxDQUFDLENBQUNULElBQUksQ0FBQ3ZDO1FBQ2pEO0lBQ0Y7SUFFQSxPQUFPNkI7QUFDVDtBQUVBLFNBQVNOLDBDQUNQdkIsaUJBQWtDLEVBQ2xDRixLQUFjO0lBRWQsTUFBTTZCLGdCQUFnQkgsY0FBY0ksR0FBRyxDQUFDNUI7SUFDeEMsSUFBSTJCLGVBQWU7UUFDakIsT0FBT0E7SUFDVDtJQUVBLE1BQU1FLFVBQVUsSUFBSUksUUFBeUIsQ0FBQ0MsVUFDNUNlLENBQUFBLEdBQUFBLFdBQUFBLGlCQUFBQSxFQUFrQixJQUFNZixRQUFRbEM7SUFHbEN3QixjQUFjUSxHQUFHLENBQUNoQyxtQkFBbUI2QjtJQUVyQ00sT0FBT0MsZ0JBQWdCLENBQUNQLFNBQVM7UUFDL0JRLFFBQVE7WUFDTkMsT0FBTyxTQUFTRDtnQkFDZCxNQUFNYSxhQUFhLENBQUMsbUJBQW1CLEVBQUVDLGdCQUFnQkMsU0FBUyxDQUFDLEVBQUUsRUFBRSxRQUFRLENBQUM7Z0JBQ2hGQyxVQUFVdkQsT0FBT29EO2dCQUNqQixPQUFPbEQsa0JBQWtCcUMsTUFBTSxDQUFDaUIsS0FBSyxDQUNuQ3RELG1CQUNBb0Q7WUFFSjtRQUNGO1FBQ0FaLFFBQVE7WUFDTkYsT0FBTyxTQUFTaUI7Z0JBQ2QsTUFBTUwsYUFBYSxDQUFDLG1CQUFtQixFQUFFQyxnQkFBZ0JDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsR0FBRyxDQUFDO2dCQUMzRUMsVUFBVXZELE9BQU9vRDtnQkFDakIsT0FBT2xELGtCQUFrQndDLE1BQU0sQ0FBQ2MsS0FBSyxDQUNuQ3RELG1CQUNBb0Q7WUFFSjtRQUNGO1FBQ0F4QixLQUFLO1lBQ0hVLE9BQU8sU0FBU1Y7Z0JBQ2QsTUFBTXNCLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRUMsZ0JBQWdCQyxTQUFTLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQztnQkFDeEVDLFVBQVV2RCxPQUFPb0Q7Z0JBQ2pCLE9BQU9sRCxrQkFBa0I0QixHQUFHLENBQUMwQixLQUFLLENBQUN0RCxtQkFBbUJvRDtZQUN4RDtRQUNGO1FBQ0FYLEtBQUs7WUFDSEgsT0FBTyxTQUFTRztnQkFDZCxNQUFNUyxhQUFhLENBQUMsZ0JBQWdCLEVBQUVDLGdCQUFnQkMsU0FBUyxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUM7Z0JBQ3hFQyxVQUFVdkQsT0FBT29EO2dCQUNqQixPQUFPbEQsa0JBQWtCeUMsR0FBRyxDQUFDYSxLQUFLLENBQUN0RCxtQkFBbUJvRDtZQUN4RDtRQUNGO1FBQ0FwQixLQUFLO1lBQ0hNLE9BQU8sU0FBU047Z0JBQ2QsTUFBTWtCLGFBQWEsQ0FBQyxnQkFBZ0IsRUFBRUMsZ0JBQWdCQyxTQUFTLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQztnQkFDN0VDLFVBQVV2RCxPQUFPb0Q7Z0JBQ2pCLE9BQU9sRCxrQkFBa0JnQyxHQUFHLENBQUNzQixLQUFLLENBQUN0RCxtQkFBbUJvRDtZQUN4RDtRQUNGO1FBQ0FWLGNBQWM7WUFDWkosT0FBTyxTQUFTSTtnQkFDZCxNQUFNUSxhQUFhO2dCQUNuQkcsVUFBVXZELE9BQU9vRDtnQkFDakIsT0FBT2xELGtCQUFrQjBDLFlBQVksQ0FBQ1ksS0FBSyxDQUN6Q3RELG1CQUNBb0Q7WUFFSjtRQUNGO1FBQ0FULFNBQVM7WUFDUEwsT0FBTyxTQUFTSztnQkFDZCxNQUFNTyxhQUFhO2dCQUNuQkcsVUFBVXZELE9BQU9vRDtnQkFDakIsT0FBT2xELGtCQUFrQjJDLE9BQU8sQ0FBQ1csS0FBSyxDQUNwQ3RELG1CQUNBb0Q7WUFFSjtRQUNGO1FBQ0FSLE1BQU07WUFDSk4sT0FBTyxTQUFTTTtnQkFDZCxNQUFNTSxhQUFhO2dCQUNuQkcsVUFBVXZELE9BQU9vRDtnQkFDakIsT0FBT2xELGtCQUFrQjRDLElBQUksQ0FBQ1UsS0FBSyxDQUFDdEQsbUJBQW1Cb0Q7WUFDekQ7UUFDRjtRQUNBUCxRQUFRO1lBQ05QLE9BQU8sU0FBU087Z0JBQ2QsTUFBTUssYUFBYTtnQkFDbkJHLFVBQVV2RCxPQUFPb0Q7Z0JBQ2pCLE9BQU9sRCxrQkFBa0I2QyxNQUFNLENBQUNTLEtBQUssQ0FDbkN0RCxtQkFDQW9EO1lBRUo7UUFDRjtRQUNBTixTQUFTO1lBQ1BSLE9BQU8sU0FBU1E7Z0JBQ2QsTUFBTUksYUFBYTtnQkFDbkJHLFVBQVV2RCxPQUFPb0Q7Z0JBQ2pCLE9BQU9sRCxrQkFBa0I4QyxPQUFPLENBQUNRLEtBQUssQ0FDcEN0RCxtQkFDQW9EO1lBRUo7UUFDRjtRQUNBLENBQUNMLE9BQU9DLFFBQVEsQ0FBQyxFQUFFO1lBQ2pCVixPQUFPO2dCQUNMLE1BQU1ZLGFBQWE7Z0JBQ25CRyxVQUFVdkQsT0FBT29EO2dCQUNqQixPQUFPbEQsaUJBQWlCLENBQUMrQyxPQUFPQyxRQUFRLENBQUMsQ0FBQ00sS0FBSyxDQUM3Q3RELG1CQUNBb0Q7WUFFSjtRQUNGO0lBQ0Y7SUFFQSxPQUFPdkI7QUFDVDtBQUVBLCtFQUErRTtBQUMvRSwrRUFBK0U7QUFDL0UsU0FBU1Asb0NBQ1B0QixpQkFBa0MsRUFDbENGLEtBQWM7SUFFZCxNQUFNNkIsZ0JBQWdCSCxjQUFjSSxHQUFHLENBQUM1QjtJQUN4QyxJQUFJMkIsZUFBZTtRQUNqQixPQUFPQTtJQUNUO0lBRUEsTUFBTUUsVUFBVSxJQUFJSSxRQUF5QixDQUFDQyxVQUM1Q2UsQ0FBQUEsR0FBQUEsV0FBQUEsaUJBQUFBLEVBQWtCLElBQU1mLFFBQVFsQztJQUdsQyxNQUFNd0QsaUJBQWlCLElBQUlDLE1BQU01QixTQUFTO1FBQ3hDRCxLQUFJOEIsTUFBTSxFQUFFQyxJQUFJLEVBQUVDLFFBQVE7WUFDeEIsT0FBUUQ7Z0JBQ04sS0FBS1osT0FBT0MsUUFBUTtvQkFBRTt3QkFDcEJhLGtCQUFrQi9ELE9BQU87d0JBQ3pCO29CQUNGO2dCQUNBLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7Z0JBQ0wsS0FBSztnQkFDTCxLQUFLO2dCQUNMLEtBQUs7b0JBQVc7d0JBQ2QrRCxrQkFBa0IvRCxPQUFPLENBQUMsWUFBWSxFQUFFNkQsS0FBSyxFQUFFLENBQUM7d0JBQ2hEO29CQUNGO2dCQUNBO29CQUFTO29CQUNQLGtFQUFrRTtvQkFDcEU7WUFDRjtZQUVBLE9BQU9HLFNBQUFBLGNBQWMsQ0FBQ2xDLEdBQUcsQ0FBQzhCLFFBQVFDLE1BQU1DO1FBQzFDO0lBQ0Y7SUFFQXBDLGNBQWNRLEdBQUcsQ0FBQ2hDLG1CQUFtQndEO0lBRXJDLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTTCxnQkFBZ0JZLEdBQVk7SUFDbkMsT0FBTyxPQUFPQSxRQUFRLFdBQVcsQ0FBQyxDQUFDLEVBQUVBLElBQUksQ0FBQyxDQUFDLEdBQUc7QUFDaEQ7QUFFQSxTQUFTVixVQUFVdkQsS0FBeUIsRUFBRW9ELFVBQWtCO0lBQzlELE1BQU16RCxnQkFBZ0JDLDhCQUFBQSxvQkFBb0IsQ0FBQ0YsUUFBUTtJQUNuRCxJQUNFQyxpQkFDQUEsY0FBY1ksSUFBSSxLQUFLLGFBQ3ZCWixjQUFjdUUsY0FBYyxLQUFLLE1BQ2pDO1FBQ0Esd0VBQXdFO1FBQ3hFLGdFQUFnRTtRQUNoRSxNQUFNakQsZUFBZXRCO1FBQ3JCd0UsQ0FBQUEsR0FBQUEsa0JBQUFBLHNDQUFBQSxFQUF1Q2xEO0lBQ3pDO0lBQ0EsZ0NBQWdDO0lBQ2hDOEMsa0JBQWtCL0QsT0FBT29EO0FBQzNCO0FBRUEsTUFBTVcsb0JBQW9CSyxDQUFBQSxHQUFBQSwwQ0FBQUEsMkNBQUFBLEVBQ3hCQztBQUdGLFNBQVNBLHlCQUNQckUsS0FBeUIsRUFDekJvRCxVQUFrQjtJQUVsQixNQUFNa0IsU0FBU3RFLFFBQVEsQ0FBQyxPQUFPLEVBQUVBLE1BQU0sRUFBRSxDQUFDLEdBQUc7SUFDN0MsT0FBTyxxQkFJTixDQUpNLElBQUlELE1BQ1QsR0FBR3VFLE9BQU8sS0FBSyxFQUFFbEIsV0FBVyxFQUFFLENBQUMsR0FDN0IsQ0FBQyx3REFBd0QsQ0FBQyxHQUMxRCxDQUFDLDhEQUE4RCxDQUFDLEdBSDdEO2VBQUE7b0JBQUE7c0JBQUE7SUFJUDtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2VydmVyL3JlcXVlc3QvaGVhZGVycy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBIZWFkZXJzQWRhcHRlcixcbiAgdHlwZSBSZWFkb25seUhlYWRlcnMsXG59IGZyb20gJy4uL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9oZWFkZXJzJ1xuaW1wb3J0IHsgd29ya0FzeW5jU3RvcmFnZSB9IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHsgZ2V0RXhwZWN0ZWRSZXF1ZXN0U3RvcmUgfSBmcm9tICcuLi9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsJ1xuaW1wb3J0IHtcbiAgd29ya1VuaXRBc3luY1N0b3JhZ2UsXG4gIHR5cGUgUHJlcmVuZGVyU3RvcmVNb2Rlcm4sXG59IGZyb20gJy4uL2FwcC1yZW5kZXIvd29yay11bml0LWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5pbXBvcnQge1xuICBwb3N0cG9uZVdpdGhUcmFja2luZyxcbiAgdGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24sXG4gIHRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXIsXG4gIHRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2LFxufSBmcm9tICcuLi9hcHAtcmVuZGVyL2R5bmFtaWMtcmVuZGVyaW5nJ1xuaW1wb3J0IHsgU3RhdGljR2VuQmFpbG91dEVycm9yIH0gZnJvbSAnLi4vLi4vY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dCdcbmltcG9ydCB7IG1ha2VIYW5naW5nUHJvbWlzZSB9IGZyb20gJy4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzJ1xuaW1wb3J0IHsgY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldiB9IGZyb20gJy4uL2NyZWF0ZS1kZWR1cGVkLWJ5LWNhbGxzaXRlLXNlcnZlci1lcnJvci1sb2dnZXInXG5pbXBvcnQgeyBzY2hlZHVsZUltbWVkaWF0ZSB9IGZyb20gJy4uLy4uL2xpYi9zY2hlZHVsZXInXG5pbXBvcnQgeyBpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyIH0gZnJvbSAnLi91dGlscydcbmltcG9ydCB7IEludmFyaWFudEVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3InXG5pbXBvcnQgeyBSZWZsZWN0QWRhcHRlciB9IGZyb20gJy4uL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0J1xuXG4vKipcbiAqIEluIHRoaXMgdmVyc2lvbiBvZiBOZXh0LmpzIGBoZWFkZXJzKClgIHJldHVybnMgYSBQcm9taXNlIGhvd2V2ZXIgeW91IGNhbiBzdGlsbCByZWZlcmVuY2UgdGhlIHByb3BlcnRpZXMgb2YgdGhlIHVuZGVybHlpbmcgSGVhZGVycyBpbnN0YW5jZVxuICogc3luY2hyb25vdXNseSB0byBmYWNpbGl0YXRlIG1pZ3JhdGlvbi4gVGhlIGBVbnNhZmVVbndyYXBwZWRIZWFkZXJzYCB0eXBlIGlzIGFkZGVkIHRvIHlvdXIgY29kZSBieSBhIGNvZGVtb2QgdGhhdCBhdHRlbXB0cyB0byBhdXRvbWF0aWNhbGx5XG4gKiB1cGRhdGVzIGNhbGxzaXRlcyB0byByZWZsZWN0IHRoZSBuZXcgUHJvbWlzZSByZXR1cm4gdHlwZS4gVGhlcmUgYXJlIHNvbWUgY2FzZXMgd2hlcmUgYGhlYWRlcnMoKWAgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkLCBuYW1lbHlcbiAqIHdoZW4gaXQgaXMgdXNlZCBpbnNpZGUgYSBzeW5jaHJvbm91cyBmdW5jdGlvbiBhbmQgd2UgY2FuJ3QgYmUgc3VyZSB0aGUgZnVuY3Rpb24gY2FuIGJlIG1hZGUgYXN5bmMgYXV0b21hdGljYWxseS4gSW4gdGhlc2UgY2FzZXMgd2UgYWRkIGFuXG4gKiBleHBsaWNpdCB0eXBlIGNhc2UgdG8gYFVuc2FmZVVud3JhcHBlZEhlYWRlcnNgIHRvIGVuYWJsZSB0eXBlc2NyaXB0IHRvIGFsbG93IGZvciB0aGUgc3luY2hyb25vdXMgdXNhZ2Ugb25seSB3aGVyZSBpdCBpcyBhY3R1YWxseSBuZWNlc3NhcnkuXG4gKlxuICogWW91IHNob3VsZCBzaG91bGQgdXBkYXRlIHRoZXNlIGNhbGxzaXRlcyB0byBlaXRoZXIgYmUgYXN5bmMgZnVuY3Rpb25zIHdoZXJlIHRoZSBgaGVhZGVycygpYCB2YWx1ZSBjYW4gYmUgYXdhaXRlZCBvciB5b3Ugc2hvdWxkIGNhbGwgYGhlYWRlcnMoKWBcbiAqIGZyb20gb3V0c2lkZSBhbmQgYXdhaXQgdGhlIHJldHVybiB2YWx1ZSBiZWZvcmUgcGFzc2luZyBpdCBpbnRvIHRoaXMgZnVuY3Rpb24uXG4gKlxuICogWW91IGNhbiBmaW5kIGluc3RhbmNlcyB0aGF0IHJlcXVpcmUgbWFudWFsIG1pZ3JhdGlvbiBieSBzZWFyY2hpbmcgZm9yIGBVbnNhZmVVbndyYXBwZWRIZWFkZXJzYCBpbiB5b3VyIGNvZGViYXNlIG9yIGJ5IHNlYXJjaCBmb3IgYSBjb21tZW50IHRoYXRcbiAqIHN0YXJ0cyB3aXRoIGBAbmV4dC1jb2RlbW9kLWVycm9yYC5cbiAqXG4gKiBJbiBhIGZ1dHVyZSB2ZXJzaW9uIG9mIE5leHQuanMgYGhlYWRlcnMoKWAgd2lsbCBvbmx5IHJldHVybiBhIFByb21pc2UgYW5kIHlvdSB3aWxsIG5vdCBiZSBhYmxlIHRvIGFjY2VzcyB0aGUgdW5kZXJseWluZyBIZWFkZXJzIGluc3RhbmNlXG4gKiB3aXRob3V0IGF3YWl0aW5nIHRoZSByZXR1cm4gdmFsdWUgZmlyc3QuIFdoZW4gdGhpcyBjaGFuZ2UgaGFwcGVucyB0aGUgdHlwZSBgVW5zYWZlVW53cmFwcGVkSGVhZGVyc2Agd2lsbCBiZSB1cGRhdGVkIHRvIHJlZmxlY3QgdGhhdCBpcyBpdCBubyBsb25nZXJcbiAqIHVzYWJsZS5cbiAqXG4gKiBUaGlzIHR5cGUgaXMgbWFya2VkIGRlcHJlY2F0ZWQgdG8gaGVscCBpZGVudGlmeSBpdCBhcyB0YXJnZXQgZm9yIHJlZmFjdG9yaW5nIGF3YXkuXG4gKlxuICogQGRlcHJlY2F0ZWRcbiAqL1xuZXhwb3J0IHR5cGUgVW5zYWZlVW53cmFwcGVkSGVhZGVycyA9IFJlYWRvbmx5SGVhZGVyc1xuXG4vKipcbiAqIFRoaXMgZnVuY3Rpb24gYWxsb3dzIHlvdSB0byByZWFkIHRoZSBIVFRQIGluY29taW5nIHJlcXVlc3QgaGVhZGVycyBpblxuICogW1NlcnZlciBDb21wb25lbnRzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc2VydmVyLWNvbXBvbmVudHMpLFxuICogW1NlcnZlciBBY3Rpb25zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9kYXRhLWZldGNoaW5nL3NlcnZlci1hY3Rpb25zLWFuZC1tdXRhdGlvbnMpLFxuICogW1JvdXRlIEhhbmRsZXJzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL3JvdXRlLWhhbmRsZXJzKSBhbmRcbiAqIFtNaWRkbGV3YXJlXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yb3V0aW5nL21pZGRsZXdhcmUpLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgRG9jczogYGhlYWRlcnNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvaGVhZGVycylcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGhlYWRlcnMoKTogUHJvbWlzZTxSZWFkb25seUhlYWRlcnM+IHtcbiAgY29uc3Qgd29ya1N0b3JlID0gd29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIGNvbnN0IHdvcmtVbml0U3RvcmUgPSB3b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG5cbiAgaWYgKHdvcmtTdG9yZSkge1xuICAgIGlmIChcbiAgICAgIHdvcmtVbml0U3RvcmUgJiZcbiAgICAgIHdvcmtVbml0U3RvcmUucGhhc2UgPT09ICdhZnRlcicgJiZcbiAgICAgICFpc1JlcXVlc3RBUElDYWxsYWJsZUluc2lkZUFmdGVyKClcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFJvdXRlICR7d29ya1N0b3JlLnJvdXRlfSB1c2VkIFwiaGVhZGVyc1wiIGluc2lkZSBcImFmdGVyKC4uLilcIi4gVGhpcyBpcyBub3Qgc3VwcG9ydGVkLiBJZiB5b3UgbmVlZCB0aGlzIGRhdGEgaW5zaWRlIGFuIFwiYWZ0ZXJcIiBjYWxsYmFjaywgdXNlIFwiaGVhZGVyc1wiIG91dHNpZGUgb2YgdGhlIGNhbGxiYWNrLiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2NhbmFyeS9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvYWZ0ZXJgXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHdvcmtTdG9yZS5mb3JjZVN0YXRpYykge1xuICAgICAgLy8gV2hlbiB1c2luZyBmb3JjZVN0YXRpYyB3ZSBvdmVycmlkZSBhbGwgb3RoZXIgbG9naWMgYW5kIGFsd2F5cyBqdXN0IHJldHVybiBhbiBlbXB0eVxuICAgICAgLy8gaGVhZGVycyBvYmplY3Qgd2l0aG91dCB0cmFja2luZ1xuICAgICAgY29uc3QgdW5kZXJseWluZ0hlYWRlcnMgPSBIZWFkZXJzQWRhcHRlci5zZWFsKG5ldyBIZWFkZXJzKHt9KSlcbiAgICAgIHJldHVybiBtYWtlVW50cmFja2VkRXhvdGljSGVhZGVycyh1bmRlcmx5aW5nSGVhZGVycylcbiAgICB9XG5cbiAgICBpZiAod29ya1VuaXRTdG9yZSkge1xuICAgICAgaWYgKHdvcmtVbml0U3RvcmUudHlwZSA9PT0gJ2NhY2hlJykge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYFJvdXRlICR7d29ya1N0b3JlLnJvdXRlfSB1c2VkIFwiaGVhZGVyc1wiIGluc2lkZSBcInVzZSBjYWNoZVwiLiBBY2Nlc3NpbmcgRHluYW1pYyBkYXRhIHNvdXJjZXMgaW5zaWRlIGEgY2FjaGUgc2NvcGUgaXMgbm90IHN1cHBvcnRlZC4gSWYgeW91IG5lZWQgdGhpcyBkYXRhIGluc2lkZSBhIGNhY2hlZCBmdW5jdGlvbiB1c2UgXCJoZWFkZXJzXCIgb3V0c2lkZSBvZiB0aGUgY2FjaGVkIGZ1bmN0aW9uIGFuZCBwYXNzIHRoZSByZXF1aXJlZCBkeW5hbWljIGRhdGEgaW4gYXMgYW4gYXJndW1lbnQuIFNlZSBtb3JlIGluZm8gaGVyZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1yZXF1ZXN0LWluLXVzZS1jYWNoZWBcbiAgICAgICAgKVxuICAgICAgfSBlbHNlIGlmICh3b3JrVW5pdFN0b3JlLnR5cGUgPT09ICd1bnN0YWJsZS1jYWNoZScpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgIGBSb3V0ZSAke3dvcmtTdG9yZS5yb3V0ZX0gdXNlZCBcImhlYWRlcnNcIiBpbnNpZGUgYSBmdW5jdGlvbiBjYWNoZWQgd2l0aCBcInVuc3RhYmxlX2NhY2hlKC4uLilcIi4gQWNjZXNzaW5nIER5bmFtaWMgZGF0YSBzb3VyY2VzIGluc2lkZSBhIGNhY2hlIHNjb3BlIGlzIG5vdCBzdXBwb3J0ZWQuIElmIHlvdSBuZWVkIHRoaXMgZGF0YSBpbnNpZGUgYSBjYWNoZWQgZnVuY3Rpb24gdXNlIFwiaGVhZGVyc1wiIG91dHNpZGUgb2YgdGhlIGNhY2hlZCBmdW5jdGlvbiBhbmQgcGFzcyB0aGUgcmVxdWlyZWQgZHluYW1pYyBkYXRhIGluIGFzIGFuIGFyZ3VtZW50LiBTZWUgbW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwcC9hcGktcmVmZXJlbmNlL2Z1bmN0aW9ucy91bnN0YWJsZV9jYWNoZWBcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAod29ya1N0b3JlLmR5bmFtaWNTaG91bGRFcnJvcikge1xuICAgICAgdGhyb3cgbmV3IFN0YXRpY0dlbkJhaWxvdXRFcnJvcihcbiAgICAgICAgYFJvdXRlICR7d29ya1N0b3JlLnJvdXRlfSB3aXRoIFxcYGR5bmFtaWMgPSBcImVycm9yXCJcXGAgY291bGRuJ3QgYmUgcmVuZGVyZWQgc3RhdGljYWxseSBiZWNhdXNlIGl0IHVzZWQgXFxgaGVhZGVyc1xcYC4gU2VlIG1vcmUgaW5mbyBoZXJlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi9yZW5kZXJpbmcvc3RhdGljLWFuZC1keW5hbWljI2R5bmFtaWMtcmVuZGVyaW5nYFxuICAgICAgKVxuICAgIH1cblxuICAgIGlmICh3b3JrVW5pdFN0b3JlKSB7XG4gICAgICBzd2l0Y2ggKHdvcmtVbml0U3RvcmUudHlwZSkge1xuICAgICAgICBjYXNlICdwcmVyZW5kZXInOlxuICAgICAgICAgIHJldHVybiBtYWtlSGFuZ2luZ0hlYWRlcnMod29ya1VuaXRTdG9yZSlcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgY29uc3QgZXhwb3J0TmFtZSA9ICdgaGVhZGVyc2AnXG4gICAgICAgICAgdGhyb3cgbmV3IEludmFyaWFudEVycm9yKFxuICAgICAgICAgICAgYCR7ZXhwb3J0TmFtZX0gbXVzdCBub3QgYmUgdXNlZCB3aXRoaW4gYSBjbGllbnQgY29tcG9uZW50LiBOZXh0LmpzIHNob3VsZCBiZSBwcmV2ZW50aW5nICR7ZXhwb3J0TmFtZX0gZnJvbSBiZWluZyBpbmNsdWRlZCBpbiBjbGllbnQgY29tcG9uZW50cyBzdGF0aWNhbGx5LCBidXQgZGlkIG5vdCBpbiB0aGlzIGNhc2UuYFxuICAgICAgICAgIClcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLXBwcic6XG4gICAgICAgICAgLy8gUFBSIFByZXJlbmRlciAobm8gZHluYW1pY0lPKVxuICAgICAgICAgIC8vIFdlIGFyZSBwcmVyZW5kZXJpbmcgd2l0aCBQUFIuIFdlIG5lZWQgdHJhY2sgZHluYW1pYyBhY2Nlc3MgaGVyZSBlYWdlcmx5XG4gICAgICAgICAgLy8gdG8ga2VlcCBjb250aW51aXR5IHdpdGggaG93IGhlYWRlcnMgaGFzIHdvcmtlZCBpbiBQUFIgd2l0aG91dCBkeW5hbWljSU8uXG4gICAgICAgICAgLy8gVE9ETyBjb25zaWRlciBzd2l0Y2hpbmcgdGhlIHNlbWFudGljIHRvIHRocm93IG9uIHByb3BlcnR5IGFjY2VzcyBpbnN0ZWFkXG4gICAgICAgICAgcG9zdHBvbmVXaXRoVHJhY2tpbmcoXG4gICAgICAgICAgICB3b3JrU3RvcmUucm91dGUsXG4gICAgICAgICAgICAnaGVhZGVycycsXG4gICAgICAgICAgICB3b3JrVW5pdFN0b3JlLmR5bmFtaWNUcmFja2luZ1xuICAgICAgICAgIClcbiAgICAgICAgICBicmVha1xuICAgICAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgICAgICAvLyBMZWdhY3kgUHJlcmVuZGVyXG4gICAgICAgICAgLy8gV2UgYXJlIGluIGEgbGVnYWN5IHN0YXRpYyBnZW5lcmF0aW9uIG1vZGUgd2hpbGUgcHJlcmVuZGVyaW5nXG4gICAgICAgICAgLy8gV2UgdHJhY2sgZHluYW1pYyBhY2Nlc3MgaGVyZSBzbyB3ZSBkb24ndCBuZWVkIHRvIHdyYXAgdGhlIGhlYWRlcnMgaW5cbiAgICAgICAgICAvLyBpbmRpdmlkdWFsIHByb3BlcnR5IGFjY2VzcyB0cmFja2luZy5cbiAgICAgICAgICB0aHJvd1RvSW50ZXJydXB0U3RhdGljR2VuZXJhdGlvbignaGVhZGVycycsIHdvcmtTdG9yZSwgd29ya1VuaXRTdG9yZSlcbiAgICAgICAgICBicmVha1xuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAvLyBmYWxsdGhyb3VnaFxuICAgICAgfVxuICAgIH1cbiAgICAvLyBXZSBmYWxsIHRocm91Z2ggdG8gdGhlIGR5bmFtaWMgY29udGV4dCBiZWxvdyBidXQgd2Ugc3RpbGwgdHJhY2sgZHluYW1pYyBhY2Nlc3NcbiAgICAvLyBiZWNhdXNlIGluIGRldiB3ZSBjYW4gc3RpbGwgZXJyb3IgZm9yIHRoaW5ncyBsaWtlIHVzaW5nIGhlYWRlcnMgaW5zaWRlIGEgY2FjaGUgY29udGV4dFxuICAgIHRyYWNrRHluYW1pY0RhdGFJbkR5bmFtaWNSZW5kZXIod29ya1N0b3JlLCB3b3JrVW5pdFN0b3JlKVxuICB9XG5cbiAgY29uc3QgcmVxdWVzdFN0b3JlID0gZ2V0RXhwZWN0ZWRSZXF1ZXN0U3RvcmUoJ2hlYWRlcnMnKVxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiYgIXdvcmtTdG9yZT8uaXNQcmVmZXRjaFJlcXVlc3QpIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0RZTkFNSUNfSU8pIHtcbiAgICAgIHJldHVybiBtYWtlVW50cmFja2VkSGVhZGVyc1dpdGhEZXZXYXJuaW5ncyhcbiAgICAgICAgcmVxdWVzdFN0b3JlLmhlYWRlcnMsXG4gICAgICAgIHdvcmtTdG9yZT8ucm91dGVcbiAgICAgIClcbiAgICB9XG5cbiAgICByZXR1cm4gbWFrZVVudHJhY2tlZEV4b3RpY0hlYWRlcnNXaXRoRGV2V2FybmluZ3MoXG4gICAgICByZXF1ZXN0U3RvcmUuaGVhZGVycyxcbiAgICAgIHdvcmtTdG9yZT8ucm91dGVcbiAgICApXG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIG1ha2VVbnRyYWNrZWRFeG90aWNIZWFkZXJzKHJlcXVlc3RTdG9yZS5oZWFkZXJzKVxuICB9XG59XG5cbmludGVyZmFjZSBDYWNoZUxpZmV0aW1lIHt9XG5jb25zdCBDYWNoZWRIZWFkZXJzID0gbmV3IFdlYWtNYXA8Q2FjaGVMaWZldGltZSwgUHJvbWlzZTxSZWFkb25seUhlYWRlcnM+PigpXG5cbmZ1bmN0aW9uIG1ha2VIYW5naW5nSGVhZGVycyhcbiAgcHJlcmVuZGVyU3RvcmU6IFByZXJlbmRlclN0b3JlTW9kZXJuXG4pOiBQcm9taXNlPFJlYWRvbmx5SGVhZGVycz4ge1xuICBjb25zdCBjYWNoZWRIZWFkZXJzID0gQ2FjaGVkSGVhZGVycy5nZXQocHJlcmVuZGVyU3RvcmUpXG4gIGlmIChjYWNoZWRIZWFkZXJzKSB7XG4gICAgcmV0dXJuIGNhY2hlZEhlYWRlcnNcbiAgfVxuXG4gIGNvbnN0IHByb21pc2UgPSBtYWtlSGFuZ2luZ1Byb21pc2U8UmVhZG9ubHlIZWFkZXJzPihcbiAgICBwcmVyZW5kZXJTdG9yZS5yZW5kZXJTaWduYWwsXG4gICAgJ2BoZWFkZXJzKClgJ1xuICApXG4gIENhY2hlZEhlYWRlcnMuc2V0KHByZXJlbmRlclN0b3JlLCBwcm9taXNlKVxuXG4gIHJldHVybiBwcm9taXNlXG59XG5cbmZ1bmN0aW9uIG1ha2VVbnRyYWNrZWRFeG90aWNIZWFkZXJzKFxuICB1bmRlcmx5aW5nSGVhZGVyczogUmVhZG9ubHlIZWFkZXJzXG4pOiBQcm9taXNlPFJlYWRvbmx5SGVhZGVycz4ge1xuICBjb25zdCBjYWNoZWRIZWFkZXJzID0gQ2FjaGVkSGVhZGVycy5nZXQodW5kZXJseWluZ0hlYWRlcnMpXG4gIGlmIChjYWNoZWRIZWFkZXJzKSB7XG4gICAgcmV0dXJuIGNhY2hlZEhlYWRlcnNcbiAgfVxuXG4gIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ0hlYWRlcnMpXG4gIENhY2hlZEhlYWRlcnMuc2V0KHVuZGVybHlpbmdIZWFkZXJzLCBwcm9taXNlKVxuXG4gIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHByb21pc2UsIHtcbiAgICBhcHBlbmQ6IHtcbiAgICAgIHZhbHVlOiB1bmRlcmx5aW5nSGVhZGVycy5hcHBlbmQuYmluZCh1bmRlcmx5aW5nSGVhZGVycyksXG4gICAgfSxcbiAgICBkZWxldGU6IHtcbiAgICAgIHZhbHVlOiB1bmRlcmx5aW5nSGVhZGVycy5kZWxldGUuYmluZCh1bmRlcmx5aW5nSGVhZGVycyksXG4gICAgfSxcbiAgICBnZXQ6IHtcbiAgICAgIHZhbHVlOiB1bmRlcmx5aW5nSGVhZGVycy5nZXQuYmluZCh1bmRlcmx5aW5nSGVhZGVycyksXG4gICAgfSxcbiAgICBoYXM6IHtcbiAgICAgIHZhbHVlOiB1bmRlcmx5aW5nSGVhZGVycy5oYXMuYmluZCh1bmRlcmx5aW5nSGVhZGVycyksXG4gICAgfSxcbiAgICBzZXQ6IHtcbiAgICAgIHZhbHVlOiB1bmRlcmx5aW5nSGVhZGVycy5zZXQuYmluZCh1bmRlcmx5aW5nSGVhZGVycyksXG4gICAgfSxcbiAgICBnZXRTZXRDb29raWU6IHtcbiAgICAgIHZhbHVlOiB1bmRlcmx5aW5nSGVhZGVycy5nZXRTZXRDb29raWUuYmluZCh1bmRlcmx5aW5nSGVhZGVycyksXG4gICAgfSxcbiAgICBmb3JFYWNoOiB7XG4gICAgICB2YWx1ZTogdW5kZXJseWluZ0hlYWRlcnMuZm9yRWFjaC5iaW5kKHVuZGVybHlpbmdIZWFkZXJzKSxcbiAgICB9LFxuICAgIGtleXM6IHtcbiAgICAgIHZhbHVlOiB1bmRlcmx5aW5nSGVhZGVycy5rZXlzLmJpbmQodW5kZXJseWluZ0hlYWRlcnMpLFxuICAgIH0sXG4gICAgdmFsdWVzOiB7XG4gICAgICB2YWx1ZTogdW5kZXJseWluZ0hlYWRlcnMudmFsdWVzLmJpbmQodW5kZXJseWluZ0hlYWRlcnMpLFxuICAgIH0sXG4gICAgZW50cmllczoge1xuICAgICAgdmFsdWU6IHVuZGVybHlpbmdIZWFkZXJzLmVudHJpZXMuYmluZCh1bmRlcmx5aW5nSGVhZGVycyksXG4gICAgfSxcbiAgICBbU3ltYm9sLml0ZXJhdG9yXToge1xuICAgICAgdmFsdWU6IHVuZGVybHlpbmdIZWFkZXJzW1N5bWJvbC5pdGVyYXRvcl0uYmluZCh1bmRlcmx5aW5nSGVhZGVycyksXG4gICAgfSxcbiAgfSBzYXRpc2ZpZXMgSGVhZGVyc0V4dGVuc2lvbnMpXG5cbiAgcmV0dXJuIHByb21pc2Vcbn1cblxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZEV4b3RpY0hlYWRlcnNXaXRoRGV2V2FybmluZ3MoXG4gIHVuZGVybHlpbmdIZWFkZXJzOiBSZWFkb25seUhlYWRlcnMsXG4gIHJvdXRlPzogc3RyaW5nXG4pOiBQcm9taXNlPFJlYWRvbmx5SGVhZGVycz4ge1xuICBjb25zdCBjYWNoZWRIZWFkZXJzID0gQ2FjaGVkSGVhZGVycy5nZXQodW5kZXJseWluZ0hlYWRlcnMpXG4gIGlmIChjYWNoZWRIZWFkZXJzKSB7XG4gICAgcmV0dXJuIGNhY2hlZEhlYWRlcnNcbiAgfVxuXG4gIGNvbnN0IHByb21pc2UgPSBuZXcgUHJvbWlzZTxSZWFkb25seUhlYWRlcnM+KChyZXNvbHZlKSA9PlxuICAgIHNjaGVkdWxlSW1tZWRpYXRlKCgpID0+IHJlc29sdmUodW5kZXJseWluZ0hlYWRlcnMpKVxuICApXG5cbiAgQ2FjaGVkSGVhZGVycy5zZXQodW5kZXJseWluZ0hlYWRlcnMsIHByb21pc2UpXG5cbiAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMocHJvbWlzZSwge1xuICAgIGFwcGVuZDoge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGFwcGVuZCgpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGBcXGBoZWFkZXJzKCkuYXBwZW5kKCR7ZGVzY3JpYmVOYW1lQXJnKGFyZ3VtZW50c1swXSl9LCAuLi4pXFxgYFxuICAgICAgICBzeW5jSU9EZXYocm91dGUsIGV4cHJlc3Npb24pXG4gICAgICAgIHJldHVybiB1bmRlcmx5aW5nSGVhZGVycy5hcHBlbmQuYXBwbHkoXG4gICAgICAgICAgdW5kZXJseWluZ0hlYWRlcnMsXG4gICAgICAgICAgYXJndW1lbnRzIGFzIGFueVxuICAgICAgICApXG4gICAgICB9LFxuICAgIH0sXG4gICAgZGVsZXRlOiB7XG4gICAgICB2YWx1ZTogZnVuY3Rpb24gX2RlbGV0ZSgpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGBcXGBoZWFkZXJzKCkuZGVsZXRlKCR7ZGVzY3JpYmVOYW1lQXJnKGFyZ3VtZW50c1swXSl9KVxcYGBcbiAgICAgICAgc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uKVxuICAgICAgICByZXR1cm4gdW5kZXJseWluZ0hlYWRlcnMuZGVsZXRlLmFwcGx5KFxuICAgICAgICAgIHVuZGVybHlpbmdIZWFkZXJzLFxuICAgICAgICAgIGFyZ3VtZW50cyBhcyBhbnlcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICB9LFxuICAgIGdldDoge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGdldCgpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGBcXGBoZWFkZXJzKCkuZ2V0KCR7ZGVzY3JpYmVOYW1lQXJnKGFyZ3VtZW50c1swXSl9KVxcYGBcbiAgICAgICAgc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uKVxuICAgICAgICByZXR1cm4gdW5kZXJseWluZ0hlYWRlcnMuZ2V0LmFwcGx5KHVuZGVybHlpbmdIZWFkZXJzLCBhcmd1bWVudHMgYXMgYW55KVxuICAgICAgfSxcbiAgICB9LFxuICAgIGhhczoge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGhhcygpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGBcXGBoZWFkZXJzKCkuaGFzKCR7ZGVzY3JpYmVOYW1lQXJnKGFyZ3VtZW50c1swXSl9KVxcYGBcbiAgICAgICAgc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uKVxuICAgICAgICByZXR1cm4gdW5kZXJseWluZ0hlYWRlcnMuaGFzLmFwcGx5KHVuZGVybHlpbmdIZWFkZXJzLCBhcmd1bWVudHMgYXMgYW55KVxuICAgICAgfSxcbiAgICB9LFxuICAgIHNldDoge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIHNldCgpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGBcXGBoZWFkZXJzKCkuc2V0KCR7ZGVzY3JpYmVOYW1lQXJnKGFyZ3VtZW50c1swXSl9LCAuLi4pXFxgYFxuICAgICAgICBzeW5jSU9EZXYocm91dGUsIGV4cHJlc3Npb24pXG4gICAgICAgIHJldHVybiB1bmRlcmx5aW5nSGVhZGVycy5zZXQuYXBwbHkodW5kZXJseWluZ0hlYWRlcnMsIGFyZ3VtZW50cyBhcyBhbnkpXG4gICAgICB9LFxuICAgIH0sXG4gICAgZ2V0U2V0Q29va2llOiB7XG4gICAgICB2YWx1ZTogZnVuY3Rpb24gZ2V0U2V0Q29va2llKCkge1xuICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2BoZWFkZXJzKCkuZ2V0U2V0Q29va2llKClgJ1xuICAgICAgICBzeW5jSU9EZXYocm91dGUsIGV4cHJlc3Npb24pXG4gICAgICAgIHJldHVybiB1bmRlcmx5aW5nSGVhZGVycy5nZXRTZXRDb29raWUuYXBwbHkoXG4gICAgICAgICAgdW5kZXJseWluZ0hlYWRlcnMsXG4gICAgICAgICAgYXJndW1lbnRzIGFzIGFueVxuICAgICAgICApXG4gICAgICB9LFxuICAgIH0sXG4gICAgZm9yRWFjaDoge1xuICAgICAgdmFsdWU6IGZ1bmN0aW9uIGZvckVhY2goKSB7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYGhlYWRlcnMoKS5mb3JFYWNoKC4uLilgJ1xuICAgICAgICBzeW5jSU9EZXYocm91dGUsIGV4cHJlc3Npb24pXG4gICAgICAgIHJldHVybiB1bmRlcmx5aW5nSGVhZGVycy5mb3JFYWNoLmFwcGx5KFxuICAgICAgICAgIHVuZGVybHlpbmdIZWFkZXJzLFxuICAgICAgICAgIGFyZ3VtZW50cyBhcyBhbnlcbiAgICAgICAgKVxuICAgICAgfSxcbiAgICB9LFxuICAgIGtleXM6IHtcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiBrZXlzKCkge1xuICAgICAgICBjb25zdCBleHByZXNzaW9uID0gJ2BoZWFkZXJzKCkua2V5cygpYCdcbiAgICAgICAgc3luY0lPRGV2KHJvdXRlLCBleHByZXNzaW9uKVxuICAgICAgICByZXR1cm4gdW5kZXJseWluZ0hlYWRlcnMua2V5cy5hcHBseSh1bmRlcmx5aW5nSGVhZGVycywgYXJndW1lbnRzIGFzIGFueSlcbiAgICAgIH0sXG4gICAgfSxcbiAgICB2YWx1ZXM6IHtcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiB2YWx1ZXMoKSB7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYGhlYWRlcnMoKS52YWx1ZXMoKWAnXG4gICAgICAgIHN5bmNJT0Rldihyb3V0ZSwgZXhwcmVzc2lvbilcbiAgICAgICAgcmV0dXJuIHVuZGVybHlpbmdIZWFkZXJzLnZhbHVlcy5hcHBseShcbiAgICAgICAgICB1bmRlcmx5aW5nSGVhZGVycyxcbiAgICAgICAgICBhcmd1bWVudHMgYXMgYW55XG4gICAgICAgIClcbiAgICAgIH0sXG4gICAgfSxcbiAgICBlbnRyaWVzOiB7XG4gICAgICB2YWx1ZTogZnVuY3Rpb24gZW50cmllcygpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9ICdgaGVhZGVycygpLmVudHJpZXMoKWAnXG4gICAgICAgIHN5bmNJT0Rldihyb3V0ZSwgZXhwcmVzc2lvbilcbiAgICAgICAgcmV0dXJuIHVuZGVybHlpbmdIZWFkZXJzLmVudHJpZXMuYXBwbHkoXG4gICAgICAgICAgdW5kZXJseWluZ0hlYWRlcnMsXG4gICAgICAgICAgYXJndW1lbnRzIGFzIGFueVxuICAgICAgICApXG4gICAgICB9LFxuICAgIH0sXG4gICAgW1N5bWJvbC5pdGVyYXRvcl06IHtcbiAgICAgIHZhbHVlOiBmdW5jdGlvbiAoKSB7XG4gICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSAnYC4uLmhlYWRlcnMoKWAgb3Igc2ltaWxhciBpdGVyYXRpb24nXG4gICAgICAgIHN5bmNJT0Rldihyb3V0ZSwgZXhwcmVzc2lvbilcbiAgICAgICAgcmV0dXJuIHVuZGVybHlpbmdIZWFkZXJzW1N5bWJvbC5pdGVyYXRvcl0uYXBwbHkoXG4gICAgICAgICAgdW5kZXJseWluZ0hlYWRlcnMsXG4gICAgICAgICAgYXJndW1lbnRzIGFzIGFueVxuICAgICAgICApXG4gICAgICB9LFxuICAgIH0sXG4gIH0gc2F0aXNmaWVzIEhlYWRlcnNFeHRlbnNpb25zKVxuXG4gIHJldHVybiBwcm9taXNlXG59XG5cbi8vIFNpbWlsYXIgdG8gYG1ha2VVbnRyYWNrZWRFeG90aWNIZWFkZXJzV2l0aERldldhcm5pbmdzYCwgYnV0IGp1c3QgbG9nZ2luZyB0aGVcbi8vIHN5bmMgYWNjZXNzIHdpdGhvdXQgYWN0dWFsbHkgZGVmaW5pbmcgdGhlIGhlYWRlcnMgcHJvcGVydGllcyBvbiB0aGUgcHJvbWlzZS5cbmZ1bmN0aW9uIG1ha2VVbnRyYWNrZWRIZWFkZXJzV2l0aERldldhcm5pbmdzKFxuICB1bmRlcmx5aW5nSGVhZGVyczogUmVhZG9ubHlIZWFkZXJzLFxuICByb3V0ZT86IHN0cmluZ1xuKTogUHJvbWlzZTxSZWFkb25seUhlYWRlcnM+IHtcbiAgY29uc3QgY2FjaGVkSGVhZGVycyA9IENhY2hlZEhlYWRlcnMuZ2V0KHVuZGVybHlpbmdIZWFkZXJzKVxuICBpZiAoY2FjaGVkSGVhZGVycykge1xuICAgIHJldHVybiBjYWNoZWRIZWFkZXJzXG4gIH1cblxuICBjb25zdCBwcm9taXNlID0gbmV3IFByb21pc2U8UmVhZG9ubHlIZWFkZXJzPigocmVzb2x2ZSkgPT5cbiAgICBzY2hlZHVsZUltbWVkaWF0ZSgoKSA9PiByZXNvbHZlKHVuZGVybHlpbmdIZWFkZXJzKSlcbiAgKVxuXG4gIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgc3dpdGNoIChwcm9wKSB7XG4gICAgICAgIGNhc2UgU3ltYm9sLml0ZXJhdG9yOiB7XG4gICAgICAgICAgd2FybkZvclN5bmNBY2Nlc3Mocm91dGUsICdgLi4uaGVhZGVycygpYCBvciBzaW1pbGFyIGl0ZXJhdGlvbicpXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBjYXNlICdhcHBlbmQnOlxuICAgICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICBjYXNlICdnZXQnOlxuICAgICAgICBjYXNlICdoYXMnOlxuICAgICAgICBjYXNlICdzZXQnOlxuICAgICAgICBjYXNlICdnZXRTZXRDb29raWUnOlxuICAgICAgICBjYXNlICdmb3JFYWNoJzpcbiAgICAgICAgY2FzZSAna2V5cyc6XG4gICAgICAgIGNhc2UgJ3ZhbHVlcyc6XG4gICAgICAgIGNhc2UgJ2VudHJpZXMnOiB7XG4gICAgICAgICAgd2FybkZvclN5bmNBY2Nlc3Mocm91dGUsIGBcXGBoZWFkZXJzKCkuJHtwcm9wfVxcYGApXG4gICAgICAgICAgYnJlYWtcbiAgICAgICAgfVxuICAgICAgICBkZWZhdWx0OiB7XG4gICAgICAgICAgLy8gV2Ugb25seSB3YXJuIGZvciB3ZWxsLWRlZmluZWQgcHJvcGVydGllcyBvZiB0aGUgaGVhZGVycyBvYmplY3QuXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKVxuICAgIH0sXG4gIH0pXG5cbiAgQ2FjaGVkSGVhZGVycy5zZXQodW5kZXJseWluZ0hlYWRlcnMsIHByb3hpZWRQcm9taXNlKVxuXG4gIHJldHVybiBwcm94aWVkUHJvbWlzZVxufVxuXG5mdW5jdGlvbiBkZXNjcmliZU5hbWVBcmcoYXJnOiB1bmtub3duKSB7XG4gIHJldHVybiB0eXBlb2YgYXJnID09PSAnc3RyaW5nJyA/IGAnJHthcmd9J2AgOiAnLi4uJ1xufVxuXG5mdW5jdGlvbiBzeW5jSU9EZXYocm91dGU6IHN0cmluZyB8IHVuZGVmaW5lZCwgZXhwcmVzc2lvbjogc3RyaW5nKSB7XG4gIGNvbnN0IHdvcmtVbml0U3RvcmUgPSB3b3JrVW5pdEFzeW5jU3RvcmFnZS5nZXRTdG9yZSgpXG4gIGlmIChcbiAgICB3b3JrVW5pdFN0b3JlICYmXG4gICAgd29ya1VuaXRTdG9yZS50eXBlID09PSAncmVxdWVzdCcgJiZcbiAgICB3b3JrVW5pdFN0b3JlLnByZXJlbmRlclBoYXNlID09PSB0cnVlXG4gICkge1xuICAgIC8vIFdoZW4gd2UncmUgcmVuZGVyaW5nIGR5bmFtaWNhbGx5IGluIGRldiB3ZSBuZWVkIHRvIGFkdmFuY2Ugb3V0IG9mIHRoZVxuICAgIC8vIFByZXJlbmRlciBlbnZpcm9ubWVudCB3aGVuIHdlIHJlYWQgUmVxdWVzdCBkYXRhIHN5bmNocm9ub3VzbHlcbiAgICBjb25zdCByZXF1ZXN0U3RvcmUgPSB3b3JrVW5pdFN0b3JlXG4gICAgdHJhY2tTeW5jaHJvbm91c1JlcXVlc3REYXRhQWNjZXNzSW5EZXYocmVxdWVzdFN0b3JlKVxuICB9XG4gIC8vIEluIGFsbCBjYXNlcyB3ZSB3YXJuIG5vcm1hbGx5XG4gIHdhcm5Gb3JTeW5jQWNjZXNzKHJvdXRlLCBleHByZXNzaW9uKVxufVxuXG5jb25zdCB3YXJuRm9yU3luY0FjY2VzcyA9IGNyZWF0ZURlZHVwZWRCeUNhbGxzaXRlU2VydmVyRXJyb3JMb2dnZXJEZXYoXG4gIGNyZWF0ZUhlYWRlcnNBY2Nlc3NFcnJvclxuKVxuXG5mdW5jdGlvbiBjcmVhdGVIZWFkZXJzQWNjZXNzRXJyb3IoXG4gIHJvdXRlOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIGV4cHJlc3Npb246IHN0cmluZ1xuKSB7XG4gIGNvbnN0IHByZWZpeCA9IHJvdXRlID8gYFJvdXRlIFwiJHtyb3V0ZX1cIiBgIDogJ1RoaXMgcm91dGUgJ1xuICByZXR1cm4gbmV3IEVycm9yKFxuICAgIGAke3ByZWZpeH11c2VkICR7ZXhwcmVzc2lvbn0uIGAgK1xuICAgICAgYFxcYGhlYWRlcnMoKVxcYCBzaG91bGQgYmUgYXdhaXRlZCBiZWZvcmUgdXNpbmcgaXRzIHZhbHVlLiBgICtcbiAgICAgIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2BcbiAgKVxufVxuXG50eXBlIEhlYWRlcnNFeHRlbnNpb25zID0ge1xuICBbSyBpbiBrZXlvZiBSZWFkb25seUhlYWRlcnNdOiB1bmtub3duXG59XG4iXSwibmFtZXMiOlsiaGVhZGVycyIsIndvcmtTdG9yZSIsIndvcmtBc3luY1N0b3JhZ2UiLCJnZXRTdG9yZSIsIndvcmtVbml0U3RvcmUiLCJ3b3JrVW5pdEFzeW5jU3RvcmFnZSIsInBoYXNlIiwiaXNSZXF1ZXN0QVBJQ2FsbGFibGVJbnNpZGVBZnRlciIsIkVycm9yIiwicm91dGUiLCJmb3JjZVN0YXRpYyIsInVuZGVybHlpbmdIZWFkZXJzIiwiSGVhZGVyc0FkYXB0ZXIiLCJzZWFsIiwiSGVhZGVycyIsIm1ha2VVbnRyYWNrZWRFeG90aWNIZWFkZXJzIiwidHlwZSIsImR5bmFtaWNTaG91bGRFcnJvciIsIlN0YXRpY0dlbkJhaWxvdXRFcnJvciIsIm1ha2VIYW5naW5nSGVhZGVycyIsImV4cG9ydE5hbWUiLCJJbnZhcmlhbnRFcnJvciIsInBvc3Rwb25lV2l0aFRyYWNraW5nIiwiZHluYW1pY1RyYWNraW5nIiwidGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24iLCJ0cmFja0R5bmFtaWNEYXRhSW5EeW5hbWljUmVuZGVyIiwicmVxdWVzdFN0b3JlIiwiZ2V0RXhwZWN0ZWRSZXF1ZXN0U3RvcmUiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJpc1ByZWZldGNoUmVxdWVzdCIsIl9fTkVYVF9EWU5BTUlDX0lPIiwibWFrZVVudHJhY2tlZEhlYWRlcnNXaXRoRGV2V2FybmluZ3MiLCJtYWtlVW50cmFja2VkRXhvdGljSGVhZGVyc1dpdGhEZXZXYXJuaW5ncyIsIkNhY2hlZEhlYWRlcnMiLCJXZWFrTWFwIiwicHJlcmVuZGVyU3RvcmUiLCJjYWNoZWRIZWFkZXJzIiwiZ2V0IiwicHJvbWlzZSIsIm1ha2VIYW5naW5nUHJvbWlzZSIsInJlbmRlclNpZ25hbCIsInNldCIsIlByb21pc2UiLCJyZXNvbHZlIiwiT2JqZWN0IiwiZGVmaW5lUHJvcGVydGllcyIsImFwcGVuZCIsInZhbHVlIiwiYmluZCIsImRlbGV0ZSIsImhhcyIsImdldFNldENvb2tpZSIsImZvckVhY2giLCJrZXlzIiwidmFsdWVzIiwiZW50cmllcyIsIlN5bWJvbCIsIml0ZXJhdG9yIiwic2NoZWR1bGVJbW1lZGlhdGUiLCJleHByZXNzaW9uIiwiZGVzY3JpYmVOYW1lQXJnIiwiYXJndW1lbnRzIiwic3luY0lPRGV2IiwiYXBwbHkiLCJfZGVsZXRlIiwicHJveGllZFByb21pc2UiLCJQcm94eSIsInRhcmdldCIsInByb3AiLCJyZWNlaXZlciIsIndhcm5Gb3JTeW5jQWNjZXNzIiwiUmVmbGVjdEFkYXB0ZXIiLCJhcmciLCJwcmVyZW5kZXJQaGFzZSIsInRyYWNrU3luY2hyb25vdXNSZXF1ZXN0RGF0YUFjY2Vzc0luRGV2IiwiY3JlYXRlRGVkdXBlZEJ5Q2FsbHNpdGVTZXJ2ZXJFcnJvckxvZ2dlckRldiIsImNyZWF0ZUhlYWRlcnNBY2Nlc3NFcnJvciIsInByZWZpeCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/headers.js\n");
+
+/***/ }),
+
/***/ "(rsc)/./node_modules/next/dist/server/request/params.js":
/*!*********************************************************!*\
!*** ./node_modules/next/dist/server/request/params.js ***!
@@ -1286,6 +1397,17 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
/***/ }),
+/***/ "(rsc)/./node_modules/next/dist/server/request/root-params.js":
+/*!**************************************************************!*\
+ !*** ./node_modules/next/dist/server/request/root-params.js ***!
+ \**************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"unstable_rootParams\", ({\n enumerable: true,\n get: function() {\n return unstable_rootParams;\n }\n}));\nconst _invarianterror = __webpack_require__(/*! ../../shared/lib/invariant-error */ \"(rsc)/./node_modules/next/dist/shared/lib/invariant-error.js\");\nconst _dynamicrendering = __webpack_require__(/*! ../app-render/dynamic-rendering */ \"(rsc)/./node_modules/next/dist/server/app-render/dynamic-rendering.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nconst _dynamicrenderingutils = __webpack_require__(/*! ../dynamic-rendering-utils */ \"(rsc)/./node_modules/next/dist/server/dynamic-rendering-utils.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(rsc)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst CachedParams = new WeakMap();\nasync function unstable_rootParams() {\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (!workStore) {\n throw Object.defineProperty(new _invarianterror.InvariantError('Missing workStore in unstable_rootParams'), \"__NEXT_ERROR_CODE\", {\n value: \"E615\",\n enumerable: false,\n configurable: true\n });\n }\n const workUnitStore = _workunitasyncstorageexternal.workUnitAsyncStorage.getStore();\n if (!workUnitStore) {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \\`unstable_rootParams()\\` in Pages Router. This API is only available within App Router.`), \"__NEXT_ERROR_CODE\", {\n value: \"E641\",\n enumerable: false,\n configurable: true\n });\n }\n switch(workUnitStore.type){\n case 'unstable-cache':\n case 'cache':\n {\n throw Object.defineProperty(new Error(`Route ${workStore.route} used \\`unstable_rootParams()\\` inside \\`\"use cache\"\\` or \\`unstable_cache\\`. Support for this API inside cache scopes is planned for a future version of Next.js.`), \"__NEXT_ERROR_CODE\", {\n value: \"E642\",\n enumerable: false,\n configurable: true\n });\n }\n case 'prerender':\n case 'prerender-client':\n case 'prerender-ppr':\n case 'prerender-legacy':\n return createPrerenderRootParams(workUnitStore.rootParams, workStore, workUnitStore);\n default:\n return Promise.resolve(workUnitStore.rootParams);\n }\n}\nfunction createPrerenderRootParams(underlyingParams, workStore, prerenderStore) {\n const fallbackParams = workStore.fallbackRouteParams;\n if (fallbackParams) {\n let hasSomeFallbackParams = false;\n for(const key in underlyingParams){\n if (fallbackParams.has(key)) {\n hasSomeFallbackParams = true;\n break;\n }\n }\n if (hasSomeFallbackParams) {\n // params need to be treated as dynamic because we have at least one fallback param\n switch(prerenderStore.type){\n case 'prerender':\n // We are in a dynamicIO prerender\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const promise = (0, _dynamicrenderingutils.makeHangingPromise)(prerenderStore.renderSignal, '`unstable_rootParams`');\n CachedParams.set(underlyingParams, promise);\n return promise;\n case 'prerender-client':\n const exportName = '`unstable_rootParams`';\n throw Object.defineProperty(new _invarianterror.InvariantError(`${exportName} must not be used within a client component. Next.js should be preventing ${exportName} from being included in client components statically, but did not in this case.`), \"__NEXT_ERROR_CODE\", {\n value: \"E693\",\n enumerable: false,\n configurable: true\n });\n default:\n // remaining cases are prerender-ppr and prerender-legacy\n // We aren't in a dynamicIO prerender but we do have fallback params at this\n // level so we need to make an erroring params object which will postpone\n // if you access the fallback params\n return makeErroringRootParams(underlyingParams, fallbackParams, workStore, prerenderStore);\n }\n }\n }\n // We don't have any fallback params so we have an entirely static safe params object\n return Promise.resolve(underlyingParams);\n}\nfunction makeErroringRootParams(underlyingParams, fallbackParams, workStore, prerenderStore) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n const augmentedUnderlying = {\n ...underlyingParams\n };\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(augmentedUnderlying);\n CachedParams.set(underlyingParams, promise);\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n if (fallbackParams.has(prop)) {\n Object.defineProperty(augmentedUnderlying, prop, {\n get () {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('unstable_rootParams', prop);\n // In most dynamic APIs we also throw if `dynamic = \"error\"` however\n // for params is only dynamic when we're generating a fallback shell\n // and even when `dynamic = \"error\"` we still support generating dynamic\n // fallback shells\n // TODO remove this comment when dynamicIO is the default since there\n // will be no `dynamic = \"error\"`\n if (prerenderStore.type === 'prerender-ppr') {\n // PPR Prerender (no dynamicIO)\n (0, _dynamicrendering.postponeWithTracking)(workStore.route, expression, prerenderStore.dynamicTracking);\n } else {\n // Legacy Prerender\n (0, _dynamicrendering.throwToInterruptStaticGeneration)(expression, workStore, prerenderStore);\n }\n },\n enumerable: true\n });\n } else {\n ;\n promise[prop] = underlyingParams[prop];\n }\n }\n });\n return promise;\n} //# sourceMappingURL=root-params.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yZXF1ZXN0L3Jvb3QtcGFyYW1zLmpzIiwibWFwcGluZ3MiOiI7Ozs7dURBMEJzQkE7OztlQUFBQTs7OzRDQTFCUzs4Q0FJeEI7c0RBSUE7MERBTUE7bURBQzRCOzBDQU01QjtBQUdQLE1BQU1DLGVBQWUsSUFBSUM7QUFFbEIsZUFBZUY7SUFDcEIsTUFBTUcsWUFBWUMsMEJBQUFBLGdCQUFnQixDQUFDQyxRQUFRO0lBQzNDLElBQUksQ0FBQ0YsV0FBVztRQUNkLE1BQU0scUJBQThELENBQTlELElBQUlHLGdCQUFBQSxjQUFjLENBQUMsNkNBQW5CO21CQUFBO3dCQUFBOzBCQUFBO1FBQTZEO0lBQ3JFO0lBRUEsTUFBTUMsZ0JBQWdCQyw4QkFBQUEsb0JBQW9CLENBQUNILFFBQVE7SUFFbkQsSUFBSSxDQUFDRSxlQUFlO1FBQ2xCLE1BQU0scUJBRUwsQ0FGSyxJQUFJRSxNQUNSLENBQUMsTUFBTSxFQUFFTixVQUFVTyxLQUFLLENBQUMsOEZBQThGLENBQUMsR0FEcEg7bUJBQUE7d0JBQUE7MEJBQUE7UUFFTjtJQUNGO0lBRUEsT0FBUUgsY0FBY0ksSUFBSTtRQUN4QixLQUFLO1FBQ0wsS0FBSztZQUFTO2dCQUNaLE1BQU0scUJBRUwsQ0FGSyxJQUFJRixNQUNSLENBQUMsTUFBTSxFQUFFTixVQUFVTyxLQUFLLENBQUMsa0tBQWtLLENBQUMsR0FEeEw7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtRQUNBLEtBQUs7UUFDTCxLQUFLO1FBQ0wsS0FBSztRQUNMLEtBQUs7WUFDSCxPQUFPRSwwQkFDTEwsY0FBY00sVUFBVSxFQUN4QlYsV0FDQUk7UUFFSjtZQUNFLE9BQU9PLFFBQVFDLE9BQU8sQ0FBQ1IsY0FBY00sVUFBVTtJQUNuRDtBQUNGO0FBRUEsU0FBU0QsMEJBQ1BJLGdCQUF3QixFQUN4QmIsU0FBb0IsRUFDcEJjLGNBQThCO0lBRTlCLE1BQU1DLGlCQUFpQmYsVUFBVWdCLG1CQUFtQjtJQUNwRCxJQUFJRCxnQkFBZ0I7UUFDbEIsSUFBSUUsd0JBQXdCO1FBQzVCLElBQUssTUFBTUMsT0FBT0wsaUJBQWtCO1lBQ2xDLElBQUlFLGVBQWVJLEdBQUcsQ0FBQ0QsTUFBTTtnQkFDM0JELHdCQUF3QjtnQkFDeEI7WUFDRjtRQUNGO1FBRUEsSUFBSUEsdUJBQXVCO1lBQ3pCLG1GQUFtRjtZQUNuRixPQUFRSCxlQUFlTixJQUFJO2dCQUN6QixLQUFLO29CQUNILGtDQUFrQztvQkFDbEMsTUFBTVksZUFBZXRCLGFBQWF1QixHQUFHLENBQUNSO29CQUN0QyxJQUFJTyxjQUFjO3dCQUNoQixPQUFPQTtvQkFDVDtvQkFFQSxNQUFNRSxVQUFVQyxDQUFBQSxHQUFBQSx1QkFBQUEsa0JBQUFBLEVBQ2RULGVBQWVVLFlBQVksRUFDM0I7b0JBRUYxQixhQUFhMkIsR0FBRyxDQUFDWixrQkFBa0JTO29CQUVuQyxPQUFPQTtnQkFDVCxLQUFLO29CQUNILE1BQU1JLGFBQWE7b0JBQ25CLE1BQU0scUJBRUwsQ0FGSyxJQUFJdkIsZ0JBQUFBLGNBQWMsQ0FDdEIsR0FBR3VCLFdBQVcsMEVBQTBFLEVBQUVBLFdBQVcsK0VBQStFLENBQUMsR0FEakw7K0JBQUE7b0NBQUE7c0NBQUE7b0JBRU47Z0JBQ0Y7b0JBQ0UseURBQXlEO29CQUN6RCw0RUFBNEU7b0JBQzVFLHlFQUF5RTtvQkFDekUsb0NBQW9DO29CQUNwQyxPQUFPQyx1QkFDTGQsa0JBQ0FFLGdCQUNBZixXQUNBYztZQUVOO1FBQ0Y7SUFDRjtJQUVBLHFGQUFxRjtJQUNyRixPQUFPSCxRQUFRQyxPQUFPLENBQUNDO0FBQ3pCO0FBRUEsU0FBU2MsdUJBQ1BkLGdCQUF3QixFQUN4QkUsY0FBbUMsRUFDbkNmLFNBQW9CLEVBQ3BCYyxjQUF3RDtJQUV4RCxNQUFNTSxlQUFldEIsYUFBYXVCLEdBQUcsQ0FBQ1I7SUFDdEMsSUFBSU8sY0FBYztRQUNoQixPQUFPQTtJQUNUO0lBRUEsTUFBTVEsc0JBQXNCO1FBQUUsR0FBR2YsZ0JBQWdCO0lBQUM7SUFFbEQsNERBQTREO0lBQzVELGtFQUFrRTtJQUNsRSxxRUFBcUU7SUFDckUsTUFBTVMsVUFBVVgsUUFBUUMsT0FBTyxDQUFDZ0I7SUFDaEM5QixhQUFhMkIsR0FBRyxDQUFDWixrQkFBa0JTO0lBRW5DTyxPQUFPQyxJQUFJLENBQUNqQixrQkFBa0JrQixPQUFPLENBQUMsQ0FBQ0M7UUFDckMsSUFBSUMsY0FBQUEsbUJBQW1CLENBQUNkLEdBQUcsQ0FBQ2EsT0FBTztRQUNqQyxrRUFBa0U7UUFDbEUsa0VBQWtFO1FBQ3BFLE9BQU87WUFDTCxJQUFJakIsZUFBZUksR0FBRyxDQUFDYSxPQUFPO2dCQUM1QkgsT0FBT0ssY0FBYyxDQUFDTixxQkFBcUJJLE1BQU07b0JBQy9DWDt3QkFDRSxNQUFNYyxhQUFhQyxDQUFBQSxHQUFBQSxjQUFBQSw0QkFBQUEsRUFDakIsdUJBQ0FKO3dCQUVGLG9FQUFvRTt3QkFDcEUsb0VBQW9FO3dCQUNwRSx3RUFBd0U7d0JBQ3hFLGtCQUFrQjt3QkFDbEIscUVBQXFFO3dCQUNyRSxpQ0FBaUM7d0JBQ2pDLElBQUlsQixlQUFlTixJQUFJLEtBQUssaUJBQWlCOzRCQUMzQywrQkFBK0I7NEJBQy9CNkIsQ0FBQUEsR0FBQUEsa0JBQUFBLG9CQUFBQSxFQUNFckMsVUFBVU8sS0FBSyxFQUNmNEIsWUFDQXJCLGVBQWV3QixlQUFlO3dCQUVsQyxPQUFPOzRCQUNMLG1CQUFtQjs0QkFDbkJDLENBQUFBLEdBQUFBLGtCQUFBQSxnQ0FBQUEsRUFDRUosWUFDQW5DLFdBQ0FjO3dCQUVKO29CQUNGO29CQUNBMEIsWUFBWTtnQkFDZDtZQUNGLE9BQU87O2dCQUNIbEIsT0FBZSxDQUFDVSxLQUFLLEdBQUduQixnQkFBZ0IsQ0FBQ21CLEtBQUs7WUFDbEQ7UUFDRjtJQUNGO0lBRUEsT0FBT1Y7QUFDVCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NlcnZlci9yZXF1ZXN0L3Jvb3QtcGFyYW1zLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEludmFyaWFudEVycm9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9pbnZhcmlhbnQtZXJyb3InXG5pbXBvcnQge1xuICBwb3N0cG9uZVdpdGhUcmFja2luZyxcbiAgdGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24sXG59IGZyb20gJy4uL2FwcC1yZW5kZXIvZHluYW1pYy1yZW5kZXJpbmcnXG5pbXBvcnQge1xuICB3b3JrQXN5bmNTdG9yYWdlLFxuICB0eXBlIFdvcmtTdG9yZSxcbn0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLWFzeW5jLXN0b3JhZ2UuZXh0ZXJuYWwnXG5pbXBvcnQge1xuICB3b3JrVW5pdEFzeW5jU3RvcmFnZSxcbiAgdHlwZSBQcmVyZW5kZXJTdG9yZSxcbiAgdHlwZSBQcmVyZW5kZXJTdG9yZUxlZ2FjeSxcbiAgdHlwZSBQcmVyZW5kZXJTdG9yZVBQUixcbn0gZnJvbSAnLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbCdcbmltcG9ydCB7IG1ha2VIYW5naW5nUHJvbWlzZSB9IGZyb20gJy4uL2R5bmFtaWMtcmVuZGVyaW5nLXV0aWxzJ1xuaW1wb3J0IHR5cGUgeyBGYWxsYmFja1JvdXRlUGFyYW1zIH0gZnJvbSAnLi9mYWxsYmFjay1wYXJhbXMnXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4vcGFyYW1zJ1xuaW1wb3J0IHtcbiAgZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcyxcbiAgd2VsbEtub3duUHJvcGVydGllcyxcbn0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi91dGlscy9yZWZsZWN0LXV0aWxzJ1xuXG5pbnRlcmZhY2UgQ2FjaGVMaWZldGltZSB7fVxuY29uc3QgQ2FjaGVkUGFyYW1zID0gbmV3IFdlYWtNYXA8Q2FjaGVMaWZldGltZSwgUHJvbWlzZTxQYXJhbXM+PigpXG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiB1bnN0YWJsZV9yb290UGFyYW1zKCk6IFByb21pc2U8UGFyYW1zPiB7XG4gIGNvbnN0IHdvcmtTdG9yZSA9IHdvcmtBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuICBpZiAoIXdvcmtTdG9yZSkge1xuICAgIHRocm93IG5ldyBJbnZhcmlhbnRFcnJvcignTWlzc2luZyB3b3JrU3RvcmUgaW4gdW5zdGFibGVfcm9vdFBhcmFtcycpXG4gIH1cblxuICBjb25zdCB3b3JrVW5pdFN0b3JlID0gd29ya1VuaXRBc3luY1N0b3JhZ2UuZ2V0U3RvcmUoKVxuXG4gIGlmICghd29ya1VuaXRTdG9yZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgIGBSb3V0ZSAke3dvcmtTdG9yZS5yb3V0ZX0gdXNlZCBcXGB1bnN0YWJsZV9yb290UGFyYW1zKClcXGAgaW4gUGFnZXMgUm91dGVyLiBUaGlzIEFQSSBpcyBvbmx5IGF2YWlsYWJsZSB3aXRoaW4gQXBwIFJvdXRlci5gXG4gICAgKVxuICB9XG5cbiAgc3dpdGNoICh3b3JrVW5pdFN0b3JlLnR5cGUpIHtcbiAgICBjYXNlICd1bnN0YWJsZS1jYWNoZSc6XG4gICAgY2FzZSAnY2FjaGUnOiB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBSb3V0ZSAke3dvcmtTdG9yZS5yb3V0ZX0gdXNlZCBcXGB1bnN0YWJsZV9yb290UGFyYW1zKClcXGAgaW5zaWRlIFxcYFwidXNlIGNhY2hlXCJcXGAgb3IgXFxgdW5zdGFibGVfY2FjaGVcXGAuIFN1cHBvcnQgZm9yIHRoaXMgQVBJIGluc2lkZSBjYWNoZSBzY29wZXMgaXMgcGxhbm5lZCBmb3IgYSBmdXR1cmUgdmVyc2lvbiBvZiBOZXh0LmpzLmBcbiAgICAgIClcbiAgICB9XG4gICAgY2FzZSAncHJlcmVuZGVyJzpcbiAgICBjYXNlICdwcmVyZW5kZXItY2xpZW50JzpcbiAgICBjYXNlICdwcmVyZW5kZXItcHByJzpcbiAgICBjYXNlICdwcmVyZW5kZXItbGVnYWN5JzpcbiAgICAgIHJldHVybiBjcmVhdGVQcmVyZW5kZXJSb290UGFyYW1zKFxuICAgICAgICB3b3JrVW5pdFN0b3JlLnJvb3RQYXJhbXMsXG4gICAgICAgIHdvcmtTdG9yZSxcbiAgICAgICAgd29ya1VuaXRTdG9yZVxuICAgICAgKVxuICAgIGRlZmF1bHQ6XG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHdvcmtVbml0U3RvcmUucm9vdFBhcmFtcylcbiAgfVxufVxuXG5mdW5jdGlvbiBjcmVhdGVQcmVyZW5kZXJSb290UGFyYW1zKFxuICB1bmRlcmx5aW5nUGFyYW1zOiBQYXJhbXMsXG4gIHdvcmtTdG9yZTogV29ya1N0b3JlLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVcbik6IFByb21pc2U8UGFyYW1zPiB7XG4gIGNvbnN0IGZhbGxiYWNrUGFyYW1zID0gd29ya1N0b3JlLmZhbGxiYWNrUm91dGVQYXJhbXNcbiAgaWYgKGZhbGxiYWNrUGFyYW1zKSB7XG4gICAgbGV0IGhhc1NvbWVGYWxsYmFja1BhcmFtcyA9IGZhbHNlXG4gICAgZm9yIChjb25zdCBrZXkgaW4gdW5kZXJseWluZ1BhcmFtcykge1xuICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zLmhhcyhrZXkpKSB7XG4gICAgICAgIGhhc1NvbWVGYWxsYmFja1BhcmFtcyA9IHRydWVcbiAgICAgICAgYnJlYWtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBpZiAoaGFzU29tZUZhbGxiYWNrUGFyYW1zKSB7XG4gICAgICAvLyBwYXJhbXMgbmVlZCB0byBiZSB0cmVhdGVkIGFzIGR5bmFtaWMgYmVjYXVzZSB3ZSBoYXZlIGF0IGxlYXN0IG9uZSBmYWxsYmFjayBwYXJhbVxuICAgICAgc3dpdGNoIChwcmVyZW5kZXJTdG9yZS50eXBlKSB7XG4gICAgICAgIGNhc2UgJ3ByZXJlbmRlcic6XG4gICAgICAgICAgLy8gV2UgYXJlIGluIGEgZHluYW1pY0lPIHByZXJlbmRlclxuICAgICAgICAgIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcylcbiAgICAgICAgICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgICAgICAgICByZXR1cm4gY2FjaGVkUGFyYW1zXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgY29uc3QgcHJvbWlzZSA9IG1ha2VIYW5naW5nUHJvbWlzZTxQYXJhbXM+KFxuICAgICAgICAgICAgcHJlcmVuZGVyU3RvcmUucmVuZGVyU2lnbmFsLFxuICAgICAgICAgICAgJ2B1bnN0YWJsZV9yb290UGFyYW1zYCdcbiAgICAgICAgICApXG4gICAgICAgICAgQ2FjaGVkUGFyYW1zLnNldCh1bmRlcmx5aW5nUGFyYW1zLCBwcm9taXNlKVxuXG4gICAgICAgICAgcmV0dXJuIHByb21pc2VcbiAgICAgICAgY2FzZSAncHJlcmVuZGVyLWNsaWVudCc6XG4gICAgICAgICAgY29uc3QgZXhwb3J0TmFtZSA9ICdgdW5zdGFibGVfcm9vdFBhcmFtc2AnXG4gICAgICAgICAgdGhyb3cgbmV3IEludmFyaWFudEVycm9yKFxuICAgICAgICAgICAgYCR7ZXhwb3J0TmFtZX0gbXVzdCBub3QgYmUgdXNlZCB3aXRoaW4gYSBjbGllbnQgY29tcG9uZW50LiBOZXh0LmpzIHNob3VsZCBiZSBwcmV2ZW50aW5nICR7ZXhwb3J0TmFtZX0gZnJvbSBiZWluZyBpbmNsdWRlZCBpbiBjbGllbnQgY29tcG9uZW50cyBzdGF0aWNhbGx5LCBidXQgZGlkIG5vdCBpbiB0aGlzIGNhc2UuYFxuICAgICAgICAgIClcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAvLyByZW1haW5pbmcgY2FzZXMgYXJlIHByZXJlbmRlci1wcHIgYW5kIHByZXJlbmRlci1sZWdhY3lcbiAgICAgICAgICAvLyBXZSBhcmVuJ3QgaW4gYSBkeW5hbWljSU8gcHJlcmVuZGVyIGJ1dCB3ZSBkbyBoYXZlIGZhbGxiYWNrIHBhcmFtcyBhdCB0aGlzXG4gICAgICAgICAgLy8gbGV2ZWwgc28gd2UgbmVlZCB0byBtYWtlIGFuIGVycm9yaW5nIHBhcmFtcyBvYmplY3Qgd2hpY2ggd2lsbCBwb3N0cG9uZVxuICAgICAgICAgIC8vIGlmIHlvdSBhY2Nlc3MgdGhlIGZhbGxiYWNrIHBhcmFtc1xuICAgICAgICAgIHJldHVybiBtYWtlRXJyb3JpbmdSb290UGFyYW1zKFxuICAgICAgICAgICAgdW5kZXJseWluZ1BhcmFtcyxcbiAgICAgICAgICAgIGZhbGxiYWNrUGFyYW1zLFxuICAgICAgICAgICAgd29ya1N0b3JlLFxuICAgICAgICAgICAgcHJlcmVuZGVyU3RvcmVcbiAgICAgICAgICApXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gV2UgZG9uJ3QgaGF2ZSBhbnkgZmFsbGJhY2sgcGFyYW1zIHNvIHdlIGhhdmUgYW4gZW50aXJlbHkgc3RhdGljIHNhZmUgcGFyYW1zIG9iamVjdFxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHVuZGVybHlpbmdQYXJhbXMpXG59XG5cbmZ1bmN0aW9uIG1ha2VFcnJvcmluZ1Jvb3RQYXJhbXMoXG4gIHVuZGVybHlpbmdQYXJhbXM6IFBhcmFtcyxcbiAgZmFsbGJhY2tQYXJhbXM6IEZhbGxiYWNrUm91dGVQYXJhbXMsXG4gIHdvcmtTdG9yZTogV29ya1N0b3JlLFxuICBwcmVyZW5kZXJTdG9yZTogUHJlcmVuZGVyU3RvcmVQUFIgfCBQcmVyZW5kZXJTdG9yZUxlZ2FjeVxuKTogUHJvbWlzZTxQYXJhbXM+IHtcbiAgY29uc3QgY2FjaGVkUGFyYW1zID0gQ2FjaGVkUGFyYW1zLmdldCh1bmRlcmx5aW5nUGFyYW1zKVxuICBpZiAoY2FjaGVkUGFyYW1zKSB7XG4gICAgcmV0dXJuIGNhY2hlZFBhcmFtc1xuICB9XG5cbiAgY29uc3QgYXVnbWVudGVkVW5kZXJseWluZyA9IHsgLi4udW5kZXJseWluZ1BhcmFtcyB9XG5cbiAgLy8gV2UgZG9uJ3QgdXNlIG1ha2VSZXNvbHZlZFJlYWN0UHJvbWlzZSBoZXJlIGJlY2F1c2UgcGFyYW1zXG4gIC8vIHN1cHBvcnRzIGNvcHlpbmcgd2l0aCBzcHJlYWQgYW5kIHdlIGRvbid0IHdhbnQgdG8gdW5uZWNlc3NhcmlseVxuICAvLyBpbnN0cnVtZW50IHRoZSBwcm9taXNlIHdpdGggc3ByZWFkYWJsZSBwcm9wZXJ0aWVzIG9mIFJlYWN0UHJvbWlzZS5cbiAgY29uc3QgcHJvbWlzZSA9IFByb21pc2UucmVzb2x2ZShhdWdtZW50ZWRVbmRlcmx5aW5nKVxuICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb21pc2UpXG5cbiAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCkgPT4ge1xuICAgIGlmICh3ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZhbGxiYWNrUGFyYW1zLmhhcyhwcm9wKSkge1xuICAgICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoYXVnbWVudGVkVW5kZXJseWluZywgcHJvcCwge1xuICAgICAgICAgIGdldCgpIHtcbiAgICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBkZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKFxuICAgICAgICAgICAgICAndW5zdGFibGVfcm9vdFBhcmFtcycsXG4gICAgICAgICAgICAgIHByb3BcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC8vIEluIG1vc3QgZHluYW1pYyBBUElzIHdlIGFsc28gdGhyb3cgaWYgYGR5bmFtaWMgPSBcImVycm9yXCJgIGhvd2V2ZXJcbiAgICAgICAgICAgIC8vIGZvciBwYXJhbXMgaXMgb25seSBkeW5hbWljIHdoZW4gd2UncmUgZ2VuZXJhdGluZyBhIGZhbGxiYWNrIHNoZWxsXG4gICAgICAgICAgICAvLyBhbmQgZXZlbiB3aGVuIGBkeW5hbWljID0gXCJlcnJvclwiYCB3ZSBzdGlsbCBzdXBwb3J0IGdlbmVyYXRpbmcgZHluYW1pY1xuICAgICAgICAgICAgLy8gZmFsbGJhY2sgc2hlbGxzXG4gICAgICAgICAgICAvLyBUT0RPIHJlbW92ZSB0aGlzIGNvbW1lbnQgd2hlbiBkeW5hbWljSU8gaXMgdGhlIGRlZmF1bHQgc2luY2UgdGhlcmVcbiAgICAgICAgICAgIC8vIHdpbGwgYmUgbm8gYGR5bmFtaWMgPSBcImVycm9yXCJgXG4gICAgICAgICAgICBpZiAocHJlcmVuZGVyU3RvcmUudHlwZSA9PT0gJ3ByZXJlbmRlci1wcHInKSB7XG4gICAgICAgICAgICAgIC8vIFBQUiBQcmVyZW5kZXIgKG5vIGR5bmFtaWNJTylcbiAgICAgICAgICAgICAgcG9zdHBvbmVXaXRoVHJhY2tpbmcoXG4gICAgICAgICAgICAgICAgd29ya1N0b3JlLnJvdXRlLFxuICAgICAgICAgICAgICAgIGV4cHJlc3Npb24sXG4gICAgICAgICAgICAgICAgcHJlcmVuZGVyU3RvcmUuZHluYW1pY1RyYWNraW5nXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIC8vIExlZ2FjeSBQcmVyZW5kZXJcbiAgICAgICAgICAgICAgdGhyb3dUb0ludGVycnVwdFN0YXRpY0dlbmVyYXRpb24oXG4gICAgICAgICAgICAgICAgZXhwcmVzc2lvbixcbiAgICAgICAgICAgICAgICB3b3JrU3RvcmUsXG4gICAgICAgICAgICAgICAgcHJlcmVuZGVyU3RvcmVcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIDsocHJvbWlzZSBhcyBhbnkpW3Byb3BdID0gdW5kZXJseWluZ1BhcmFtc1twcm9wXVxuICAgICAgfVxuICAgIH1cbiAgfSlcblxuICByZXR1cm4gcHJvbWlzZVxufVxuIl0sIm5hbWVzIjpbInVuc3RhYmxlX3Jvb3RQYXJhbXMiLCJDYWNoZWRQYXJhbXMiLCJXZWFrTWFwIiwid29ya1N0b3JlIiwid29ya0FzeW5jU3RvcmFnZSIsImdldFN0b3JlIiwiSW52YXJpYW50RXJyb3IiLCJ3b3JrVW5pdFN0b3JlIiwid29ya1VuaXRBc3luY1N0b3JhZ2UiLCJFcnJvciIsInJvdXRlIiwidHlwZSIsImNyZWF0ZVByZXJlbmRlclJvb3RQYXJhbXMiLCJyb290UGFyYW1zIiwiUHJvbWlzZSIsInJlc29sdmUiLCJ1bmRlcmx5aW5nUGFyYW1zIiwicHJlcmVuZGVyU3RvcmUiLCJmYWxsYmFja1BhcmFtcyIsImZhbGxiYWNrUm91dGVQYXJhbXMiLCJoYXNTb21lRmFsbGJhY2tQYXJhbXMiLCJrZXkiLCJoYXMiLCJjYWNoZWRQYXJhbXMiLCJnZXQiLCJwcm9taXNlIiwibWFrZUhhbmdpbmdQcm9taXNlIiwicmVuZGVyU2lnbmFsIiwic2V0IiwiZXhwb3J0TmFtZSIsIm1ha2VFcnJvcmluZ1Jvb3RQYXJhbXMiLCJhdWdtZW50ZWRVbmRlcmx5aW5nIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJwcm9wIiwid2VsbEtub3duUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiZXhwcmVzc2lvbiIsImRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MiLCJwb3N0cG9uZVdpdGhUcmFja2luZyIsImR5bmFtaWNUcmFja2luZyIsInRocm93VG9JbnRlcnJ1cHRTdGF0aWNHZW5lcmF0aW9uIiwiZW51bWVyYWJsZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/request/root-params.js\n");
+
+/***/ }),
+
/***/ "(rsc)/./node_modules/next/dist/server/request/search-params.js":
/*!****************************************************************!*\
!*** ./node_modules/next/dist/server/request/search-params.js ***!
@@ -1418,6 +1540,17 @@ eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr
/***/ }),
+/***/ "(rsc)/./node_modules/next/dist/server/route-modules/app-route/module.compiled.js":
+/*!**********************************************************************************!*\
+ !*** ./node_modules/next/dist/server/route-modules/app-route/module.compiled.js ***!
+ \**********************************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+eval("\nif (false) {} else {\n if (false) {} else {\n if (true) {\n if (false) {} else {\n module.exports = __webpack_require__(/*! next/dist/compiled/next-server/app-route.runtime.dev.js */ \"next/dist/compiled/next-server/app-route.runtime.dev.js\");\n }\n } else {}\n }\n}\n\n//# sourceMappingURL=module.compiled.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1yb3V0ZS9tb2R1bGUuY29tcGlsZWQuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYixJQUFJLEtBQW1DLEVBQUUsRUFFeEMsQ0FBQztBQUNGLFFBQVEsS0FBcUMsRUFBRSxFQWMxQyxDQUFDO0FBQ04sWUFBWSxJQUFzQztBQUNsRCxnQkFBZ0IsS0FBcUIsRUFBRSxFQUUxQixDQUFDO0FBQ2QsZ0JBQWdCLDhKQUFtRjtBQUNuRztBQUNBLFVBQVUsS0FBSyxFQU1OO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcm91dGUvbW9kdWxlLmNvbXBpbGVkLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuaWYgKHByb2Nlc3MuZW52Lk5FWFRfUlVOVElNRSA9PT0gJ2VkZ2UnKSB7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3Qvc2VydmVyL3JvdXRlLW1vZHVsZXMvYXBwLXJvdXRlL21vZHVsZS5qcycpO1xufSBlbHNlIHtcbiAgICBpZiAocHJvY2Vzcy5lbnYuX19ORVhUX0VYUEVSSU1FTlRBTF9SRUFDVCkge1xuICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcm91dGUtdHVyYm8tZXhwZXJpbWVudGFsLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1yb3V0ZS1leHBlcmltZW50YWwucnVudGltZS5kZXYuanMnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcm91dGUtdHVyYm8tZXhwZXJpbWVudGFsLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJ25leHQvZGlzdC9jb21waWxlZC9uZXh0LXNlcnZlci9hcHAtcm91dGUtZXhwZXJpbWVudGFsLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnKSB7XG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuVFVSQk9QQUNLKSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXJvdXRlLXR1cmJvLnJ1bnRpbWUuZGV2LmpzJyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1yb3V0ZS5ydW50aW1lLmRldi5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKHByb2Nlc3MuZW52LlRVUkJPUEFDSykge1xuICAgICAgICAgICAgICAgIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnbmV4dC9kaXN0L2NvbXBpbGVkL25leHQtc2VydmVyL2FwcC1yb3V0ZS10dXJiby5ydW50aW1lLnByb2QuanMnKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgbW9kdWxlLmV4cG9ydHMgPSByZXF1aXJlKCduZXh0L2Rpc3QvY29tcGlsZWQvbmV4dC1zZXJ2ZXIvYXBwLXJvdXRlLnJ1bnRpbWUucHJvZC5qcycpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1tb2R1bGUuY29tcGlsZWQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/route-modules/app-route/module.compiled.js\n");
+
+/***/ }),
+
/***/ "(rsc)/./node_modules/next/dist/server/send-payload.js":
/*!*******************************************************!*\
!*** ./node_modules/next/dist/server/send-payload.js ***!
@@ -1429,6 +1562,17 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
/***/ }),
+/***/ "(rsc)/./node_modules/next/dist/server/send-response.js":
+/*!********************************************************!*\
+ !*** ./node_modules/next/dist/server/send-response.js ***!
+ \********************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"sendResponse\", ({\n enumerable: true,\n get: function() {\n return sendResponse;\n }\n}));\nconst _helpers = __webpack_require__(/*! ./base-http/helpers */ \"(rsc)/./node_modules/next/dist/server/base-http/helpers.js\");\nconst _pipereadable = __webpack_require__(/*! ./pipe-readable */ \"(rsc)/./node_modules/next/dist/server/pipe-readable.js\");\nconst _utils = __webpack_require__(/*! ./web/utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nasync function sendResponse(req, res, response, waitUntil) {\n if (// The type check here ensures that `req` is correctly typed, and the\n // environment variable check provides dead code elimination.\n true && (0, _helpers.isNodeNextResponse)(res)) {\n var // Copy over the response headers.\n _response_headers;\n // Copy over the response status.\n res.statusCode = response.status;\n res.statusMessage = response.statusText;\n // TODO: this is not spec-compliant behavior and we should not restrict\n // headers that are allowed to appear many times.\n //\n // See:\n // https://github.com/vercel/next.js/pull/70127\n const headersWithMultipleValuesAllowed = [\n // can add more headers to this list if needed\n 'set-cookie',\n 'www-authenticate',\n 'proxy-authenticate',\n 'vary'\n ];\n (_response_headers = response.headers) == null ? void 0 : _response_headers.forEach((value, name)=>{\n // `x-middleware-set-cookie` is an internal header not needed for the response\n if (name.toLowerCase() === 'x-middleware-set-cookie') {\n return;\n }\n // The append handling is special cased for `set-cookie`.\n if (name.toLowerCase() === 'set-cookie') {\n // TODO: (wyattjoh) replace with native response iteration when we can upgrade undici\n for (const cookie of (0, _utils.splitCookiesString)(value)){\n res.appendHeader(name, cookie);\n }\n } else {\n // only append the header if it is either not present in the outbound response\n // or if the header supports multiple values\n const isHeaderPresent = typeof res.getHeader(name) !== 'undefined';\n if (headersWithMultipleValuesAllowed.includes(name.toLowerCase()) || !isHeaderPresent) {\n res.appendHeader(name, value);\n }\n }\n });\n /**\n * The response can't be directly piped to the underlying response. The\n * following is duplicated from the edge runtime handler.\n *\n * See packages/next/server/next-server.ts\n */ const { originalResponse } = res;\n // A response body must not be sent for HEAD requests. See https://httpwg.org/specs/rfc9110.html#HEAD\n if (response.body && req.method !== 'HEAD') {\n await (0, _pipereadable.pipeToNodeResponse)(response.body, originalResponse, waitUntil);\n } else {\n originalResponse.end();\n }\n }\n}\n\n//# sourceMappingURL=send-response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9zZW5kLXJlc3BvbnNlLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsZ0RBQStDO0FBQy9DO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsaUJBQWlCLG1CQUFPLENBQUMsdUZBQXFCO0FBQzlDLHNCQUFzQixtQkFBTyxDQUFDLCtFQUFpQjtBQUMvQyxlQUFlLG1CQUFPLENBQUMsdUVBQWE7QUFDcEM7QUFDQTtBQUNBO0FBQ0EsSUFBSSxLQUFtQztBQUN2QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGNBQWM7QUFDZDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsZ0JBQWdCLG1CQUFtQjtBQUNuQztBQUNBO0FBQ0E7QUFDQSxVQUFVO0FBQ1Y7QUFDQTtBQUNBO0FBQ0E7O0FBRUEiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3NlbmQtcmVzcG9uc2UuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJzZW5kUmVzcG9uc2VcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHNlbmRSZXNwb25zZTtcbiAgICB9XG59KTtcbmNvbnN0IF9oZWxwZXJzID0gcmVxdWlyZShcIi4vYmFzZS1odHRwL2hlbHBlcnNcIik7XG5jb25zdCBfcGlwZXJlYWRhYmxlID0gcmVxdWlyZShcIi4vcGlwZS1yZWFkYWJsZVwiKTtcbmNvbnN0IF91dGlscyA9IHJlcXVpcmUoXCIuL3dlYi91dGlsc1wiKTtcbmFzeW5jIGZ1bmN0aW9uIHNlbmRSZXNwb25zZShyZXEsIHJlcywgcmVzcG9uc2UsIHdhaXRVbnRpbCkge1xuICAgIGlmICgvLyBUaGUgdHlwZSBjaGVjayBoZXJlIGVuc3VyZXMgdGhhdCBgcmVxYCBpcyBjb3JyZWN0bHkgdHlwZWQsIGFuZCB0aGVcbiAgICAvLyBlbnZpcm9ubWVudCB2YXJpYWJsZSBjaGVjayBwcm92aWRlcyBkZWFkIGNvZGUgZWxpbWluYXRpb24uXG4gICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZScgJiYgKDAsIF9oZWxwZXJzLmlzTm9kZU5leHRSZXNwb25zZSkocmVzKSkge1xuICAgICAgICB2YXIgLy8gQ29weSBvdmVyIHRoZSByZXNwb25zZSBoZWFkZXJzLlxuICAgICAgICBfcmVzcG9uc2VfaGVhZGVycztcbiAgICAgICAgLy8gQ29weSBvdmVyIHRoZSByZXNwb25zZSBzdGF0dXMuXG4gICAgICAgIHJlcy5zdGF0dXNDb2RlID0gcmVzcG9uc2Uuc3RhdHVzO1xuICAgICAgICByZXMuc3RhdHVzTWVzc2FnZSA9IHJlc3BvbnNlLnN0YXR1c1RleHQ7XG4gICAgICAgIC8vIFRPRE86IHRoaXMgaXMgbm90IHNwZWMtY29tcGxpYW50IGJlaGF2aW9yIGFuZCB3ZSBzaG91bGQgbm90IHJlc3RyaWN0XG4gICAgICAgIC8vIGhlYWRlcnMgdGhhdCBhcmUgYWxsb3dlZCB0byBhcHBlYXIgbWFueSB0aW1lcy5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gU2VlOlxuICAgICAgICAvLyBodHRwczovL2dpdGh1Yi5jb20vdmVyY2VsL25leHQuanMvcHVsbC83MDEyN1xuICAgICAgICBjb25zdCBoZWFkZXJzV2l0aE11bHRpcGxlVmFsdWVzQWxsb3dlZCA9IFtcbiAgICAgICAgICAgIC8vIGNhbiBhZGQgbW9yZSBoZWFkZXJzIHRvIHRoaXMgbGlzdCBpZiBuZWVkZWRcbiAgICAgICAgICAgICdzZXQtY29va2llJyxcbiAgICAgICAgICAgICd3d3ctYXV0aGVudGljYXRlJyxcbiAgICAgICAgICAgICdwcm94eS1hdXRoZW50aWNhdGUnLFxuICAgICAgICAgICAgJ3ZhcnknXG4gICAgICAgIF07XG4gICAgICAgIChfcmVzcG9uc2VfaGVhZGVycyA9IHJlc3BvbnNlLmhlYWRlcnMpID09IG51bGwgPyB2b2lkIDAgOiBfcmVzcG9uc2VfaGVhZGVycy5mb3JFYWNoKCh2YWx1ZSwgbmFtZSk9PntcbiAgICAgICAgICAgIC8vIGB4LW1pZGRsZXdhcmUtc2V0LWNvb2tpZWAgaXMgYW4gaW50ZXJuYWwgaGVhZGVyIG5vdCBuZWVkZWQgZm9yIHRoZSByZXNwb25zZVxuICAgICAgICAgICAgaWYgKG5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3gtbWlkZGxld2FyZS1zZXQtY29va2llJykge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRoZSBhcHBlbmQgaGFuZGxpbmcgaXMgc3BlY2lhbCBjYXNlZCBmb3IgYHNldC1jb29raWVgLlxuICAgICAgICAgICAgaWYgKG5hbWUudG9Mb3dlckNhc2UoKSA9PT0gJ3NldC1jb29raWUnKSB7XG4gICAgICAgICAgICAgICAgLy8gVE9ETzogKHd5YXR0am9oKSByZXBsYWNlIHdpdGggbmF0aXZlIHJlc3BvbnNlIGl0ZXJhdGlvbiB3aGVuIHdlIGNhbiB1cGdyYWRlIHVuZGljaVxuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29va2llIG9mICgwLCBfdXRpbHMuc3BsaXRDb29raWVzU3RyaW5nKSh2YWx1ZSkpe1xuICAgICAgICAgICAgICAgICAgICByZXMuYXBwZW5kSGVhZGVyKG5hbWUsIGNvb2tpZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAvLyBvbmx5IGFwcGVuZCB0aGUgaGVhZGVyIGlmIGl0IGlzIGVpdGhlciBub3QgcHJlc2VudCBpbiB0aGUgb3V0Ym91bmQgcmVzcG9uc2VcbiAgICAgICAgICAgICAgICAvLyBvciBpZiB0aGUgaGVhZGVyIHN1cHBvcnRzIG11bHRpcGxlIHZhbHVlc1xuICAgICAgICAgICAgICAgIGNvbnN0IGlzSGVhZGVyUHJlc2VudCA9IHR5cGVvZiByZXMuZ2V0SGVhZGVyKG5hbWUpICE9PSAndW5kZWZpbmVkJztcbiAgICAgICAgICAgICAgICBpZiAoaGVhZGVyc1dpdGhNdWx0aXBsZVZhbHVlc0FsbG93ZWQuaW5jbHVkZXMobmFtZS50b0xvd2VyQ2FzZSgpKSB8fCAhaXNIZWFkZXJQcmVzZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRIZWFkZXIobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIC8qKlxuICAgICAqIFRoZSByZXNwb25zZSBjYW4ndCBiZSBkaXJlY3RseSBwaXBlZCB0byB0aGUgdW5kZXJseWluZyByZXNwb25zZS4gVGhlXG4gICAgICogZm9sbG93aW5nIGlzIGR1cGxpY2F0ZWQgZnJvbSB0aGUgZWRnZSBydW50aW1lIGhhbmRsZXIuXG4gICAgICpcbiAgICAgKiBTZWUgcGFja2FnZXMvbmV4dC9zZXJ2ZXIvbmV4dC1zZXJ2ZXIudHNcbiAgICAgKi8gY29uc3QgeyBvcmlnaW5hbFJlc3BvbnNlIH0gPSByZXM7XG4gICAgICAgIC8vIEEgcmVzcG9uc2UgYm9keSBtdXN0IG5vdCBiZSBzZW50IGZvciBIRUFEIHJlcXVlc3RzLiBTZWUgaHR0cHM6Ly9odHRwd2cub3JnL3NwZWNzL3JmYzkxMTAuaHRtbCNIRUFEXG4gICAgICAgIGlmIChyZXNwb25zZS5ib2R5ICYmIHJlcS5tZXRob2QgIT09ICdIRUFEJykge1xuICAgICAgICAgICAgYXdhaXQgKDAsIF9waXBlcmVhZGFibGUucGlwZVRvTm9kZVJlc3BvbnNlKShyZXNwb25zZS5ib2R5LCBvcmlnaW5hbFJlc3BvbnNlLCB3YWl0VW50aWwpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgb3JpZ2luYWxSZXNwb25zZS5lbmQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9c2VuZC1yZXNwb25zZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/send-response.js\n");
+
+/***/ }),
+
/***/ "(rsc)/./node_modules/next/dist/server/server-utils.js":
/*!*******************************************************!*\
!*** ./node_modules/next/dist/server/server-utils.js ***!
@@ -1484,6 +1628,17 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
/***/ }),
+/***/ "(rsc)/./node_modules/next/dist/server/web/exports/index.js":
+/*!************************************************************!*\
+ !*** ./node_modules/next/dist/server/web/exports/index.js ***!
+ \************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("// Alias index file of next/server for edge runtime for tree-shaking purpose\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n ImageResponse: function() {\n return _imageresponse.ImageResponse;\n },\n NextRequest: function() {\n return _request.NextRequest;\n },\n NextResponse: function() {\n return _response.NextResponse;\n },\n URLPattern: function() {\n return _urlpattern.URLPattern;\n },\n after: function() {\n return _after.after;\n },\n connection: function() {\n return _connection.connection;\n },\n unstable_rootParams: function() {\n return _rootparams.unstable_rootParams;\n },\n userAgent: function() {\n return _useragent.userAgent;\n },\n userAgentFromString: function() {\n return _useragent.userAgentFromString;\n }\n});\nconst _imageresponse = __webpack_require__(/*! ../spec-extension/image-response */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/image-response.js\");\nconst _request = __webpack_require__(/*! ../spec-extension/request */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js\");\nconst _response = __webpack_require__(/*! ../spec-extension/response */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/response.js\");\nconst _useragent = __webpack_require__(/*! ../spec-extension/user-agent */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/user-agent.js\");\nconst _urlpattern = __webpack_require__(/*! ../spec-extension/url-pattern */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/url-pattern.js\");\nconst _after = __webpack_require__(/*! ../../after */ \"(rsc)/./node_modules/next/dist/server/after/index.js\");\nconst _connection = __webpack_require__(/*! ../../request/connection */ \"(rsc)/./node_modules/next/dist/server/request/connection.js\");\nconst _rootparams = __webpack_require__(/*! ../../request/root-params */ \"(rsc)/./node_modules/next/dist/server/request/root-params.js\");\n\n//# sourceMappingURL=index.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvZXhwb3J0cy9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQVVMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDO0FBQ0QsdUJBQXVCLG1CQUFPLENBQUMsb0hBQWtDO0FBQ2pFLGlCQUFpQixtQkFBTyxDQUFDLHNHQUEyQjtBQUNwRCxrQkFBa0IsbUJBQU8sQ0FBQyx3R0FBNEI7QUFDdEQsbUJBQW1CLG1CQUFPLENBQUMsNEdBQThCO0FBQ3pELG9CQUFvQixtQkFBTyxDQUFDLDhHQUErQjtBQUMzRCxlQUFlLG1CQUFPLENBQUMseUVBQWE7QUFDcEMsb0JBQW9CLG1CQUFPLENBQUMsNkZBQTBCO0FBQ3RELG9CQUFvQixtQkFBTyxDQUFDLCtGQUEyQjs7QUFFdkQiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9leHBvcnRzL2luZGV4LmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIEFsaWFzIGluZGV4IGZpbGUgb2YgbmV4dC9zZXJ2ZXIgZm9yIGVkZ2UgcnVudGltZSBmb3IgdHJlZS1zaGFraW5nIHB1cnBvc2VcblwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgSW1hZ2VSZXNwb25zZTogbnVsbCxcbiAgICBOZXh0UmVxdWVzdDogbnVsbCxcbiAgICBOZXh0UmVzcG9uc2U6IG51bGwsXG4gICAgVVJMUGF0dGVybjogbnVsbCxcbiAgICBhZnRlcjogbnVsbCxcbiAgICBjb25uZWN0aW9uOiBudWxsLFxuICAgIHVuc3RhYmxlX3Jvb3RQYXJhbXM6IG51bGwsXG4gICAgdXNlckFnZW50OiBudWxsLFxuICAgIHVzZXJBZ2VudEZyb21TdHJpbmc6IG51bGxcbn0pO1xuZnVuY3Rpb24gX2V4cG9ydCh0YXJnZXQsIGFsbCkge1xuICAgIGZvcih2YXIgbmFtZSBpbiBhbGwpT2JqZWN0LmRlZmluZVByb3BlcnR5KHRhcmdldCwgbmFtZSwge1xuICAgICAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgICAgICBnZXQ6IGFsbFtuYW1lXVxuICAgIH0pO1xufVxuX2V4cG9ydChleHBvcnRzLCB7XG4gICAgSW1hZ2VSZXNwb25zZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfaW1hZ2VyZXNwb25zZS5JbWFnZVJlc3BvbnNlO1xuICAgIH0sXG4gICAgTmV4dFJlcXVlc3Q6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3JlcXVlc3QuTmV4dFJlcXVlc3Q7XG4gICAgfSxcbiAgICBOZXh0UmVzcG9uc2U6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3Jlc3BvbnNlLk5leHRSZXNwb25zZTtcbiAgICB9LFxuICAgIFVSTFBhdHRlcm46IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3VybHBhdHRlcm4uVVJMUGF0dGVybjtcbiAgICB9LFxuICAgIGFmdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIF9hZnRlci5hZnRlcjtcbiAgICB9LFxuICAgIGNvbm5lY3Rpb246IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX2Nvbm5lY3Rpb24uY29ubmVjdGlvbjtcbiAgICB9LFxuICAgIHVuc3RhYmxlX3Jvb3RQYXJhbXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3Jvb3RwYXJhbXMudW5zdGFibGVfcm9vdFBhcmFtcztcbiAgICB9LFxuICAgIHVzZXJBZ2VudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBfdXNlcmFnZW50LnVzZXJBZ2VudDtcbiAgICB9LFxuICAgIHVzZXJBZ2VudEZyb21TdHJpbmc6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gX3VzZXJhZ2VudC51c2VyQWdlbnRGcm9tU3RyaW5nO1xuICAgIH1cbn0pO1xuY29uc3QgX2ltYWdlcmVzcG9uc2UgPSByZXF1aXJlKFwiLi4vc3BlYy1leHRlbnNpb24vaW1hZ2UtcmVzcG9uc2VcIik7XG5jb25zdCBfcmVxdWVzdCA9IHJlcXVpcmUoXCIuLi9zcGVjLWV4dGVuc2lvbi9yZXF1ZXN0XCIpO1xuY29uc3QgX3Jlc3BvbnNlID0gcmVxdWlyZShcIi4uL3NwZWMtZXh0ZW5zaW9uL3Jlc3BvbnNlXCIpO1xuY29uc3QgX3VzZXJhZ2VudCA9IHJlcXVpcmUoXCIuLi9zcGVjLWV4dGVuc2lvbi91c2VyLWFnZW50XCIpO1xuY29uc3QgX3VybHBhdHRlcm4gPSByZXF1aXJlKFwiLi4vc3BlYy1leHRlbnNpb24vdXJsLXBhdHRlcm5cIik7XG5jb25zdCBfYWZ0ZXIgPSByZXF1aXJlKFwiLi4vLi4vYWZ0ZXJcIik7XG5jb25zdCBfY29ubmVjdGlvbiA9IHJlcXVpcmUoXCIuLi8uLi9yZXF1ZXN0L2Nvbm5lY3Rpb25cIik7XG5jb25zdCBfcm9vdHBhcmFtcyA9IHJlcXVpcmUoXCIuLi8uLi9yZXF1ZXN0L3Jvb3QtcGFyYW1zXCIpO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbmRleC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/exports/index.js\n");
+
+/***/ }),
+
/***/ "(rsc)/./node_modules/next/dist/server/web/next-url.js":
/*!*******************************************************!*\
!*** ./node_modules/next/dist/server/web/next-url.js ***!
@@ -1528,6 +1683,17 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
/***/ }),
+/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js":
+/*!**************************************************************************************!*\
+ !*** ./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js ***!
+ \**************************************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n MutableRequestCookiesAdapter: function() {\n return MutableRequestCookiesAdapter;\n },\n ReadonlyRequestCookiesError: function() {\n return ReadonlyRequestCookiesError;\n },\n RequestCookiesAdapter: function() {\n return RequestCookiesAdapter;\n },\n appendMutableCookies: function() {\n return appendMutableCookies;\n },\n areCookiesMutableInCurrentPhase: function() {\n return areCookiesMutableInCurrentPhase;\n },\n getModifiedCookieValues: function() {\n return getModifiedCookieValues;\n },\n responseCookiesToRequestCookies: function() {\n return responseCookiesToRequestCookies;\n },\n wrapWithMutableAccessCheck: function() {\n return wrapWithMutableAccessCheck;\n }\n});\nconst _cookies = __webpack_require__(/*! ../cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst _reflect = __webpack_require__(/*! ./reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _workasyncstorageexternal = __webpack_require__(/*! ../../../app-render/work-async-storage.external */ \"./work-async-storage.external\");\nconst _workunitasyncstorageexternal = __webpack_require__(/*! ../../../app-render/work-unit-async-storage.external */ \"./work-unit-async-storage.external\");\nclass ReadonlyRequestCookiesError extends Error {\n constructor(){\n super('Cookies can only be modified in a Server Action or Route Handler. Read more: https://nextjs.org/docs/app/api-reference/functions/cookies#options');\n }\n static callable() {\n throw new ReadonlyRequestCookiesError();\n }\n}\nclass RequestCookiesAdapter {\n static seal(cookies) {\n return new Proxy(cookies, {\n get (target, prop, receiver) {\n switch(prop){\n case 'clear':\n case 'delete':\n case 'set':\n return ReadonlyRequestCookiesError.callable;\n default:\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n }\n}\nconst SYMBOL_MODIFY_COOKIE_VALUES = Symbol.for('next.mutated.cookies');\nfunction getModifiedCookieValues(cookies) {\n const modified = cookies[SYMBOL_MODIFY_COOKIE_VALUES];\n if (!modified || !Array.isArray(modified) || modified.length === 0) {\n return [];\n }\n return modified;\n}\nfunction appendMutableCookies(headers, mutableCookies) {\n const modifiedCookieValues = getModifiedCookieValues(mutableCookies);\n if (modifiedCookieValues.length === 0) {\n return false;\n }\n // Return a new response that extends the response with\n // the modified cookies as fallbacks. `res` cookies\n // will still take precedence.\n const resCookies = new _cookies.ResponseCookies(headers);\n const returnedCookies = resCookies.getAll();\n // Set the modified cookies as fallbacks.\n for (const cookie of modifiedCookieValues){\n resCookies.set(cookie);\n }\n // Set the original cookies as the final values.\n for (const cookie of returnedCookies){\n resCookies.set(cookie);\n }\n return true;\n}\nclass MutableRequestCookiesAdapter {\n static wrap(cookies, onUpdateCookies) {\n const responseCookies = new _cookies.ResponseCookies(new Headers());\n for (const cookie of cookies.getAll()){\n responseCookies.set(cookie);\n }\n let modifiedValues = [];\n const modifiedCookies = new Set();\n const updateResponseCookies = ()=>{\n // TODO-APP: change method of getting workStore\n const workStore = _workasyncstorageexternal.workAsyncStorage.getStore();\n if (workStore) {\n workStore.pathWasRevalidated = true;\n }\n const allCookies = responseCookies.getAll();\n modifiedValues = allCookies.filter((c)=>modifiedCookies.has(c.name));\n if (onUpdateCookies) {\n const serializedCookies = [];\n for (const cookie of modifiedValues){\n const tempCookies = new _cookies.ResponseCookies(new Headers());\n tempCookies.set(cookie);\n serializedCookies.push(tempCookies.toString());\n }\n onUpdateCookies(serializedCookies);\n }\n };\n const wrappedCookies = new Proxy(responseCookies, {\n get (target, prop, receiver) {\n switch(prop){\n // A special symbol to get the modified cookie values\n case SYMBOL_MODIFY_COOKIE_VALUES:\n return modifiedValues;\n // TODO: Throw error if trying to set a cookie after the response\n // headers have been set.\n case 'delete':\n return function(...args) {\n modifiedCookies.add(typeof args[0] === 'string' ? args[0] : args[0].name);\n try {\n target.delete(...args);\n return wrappedCookies;\n } finally{\n updateResponseCookies();\n }\n };\n case 'set':\n return function(...args) {\n modifiedCookies.add(typeof args[0] === 'string' ? args[0] : args[0].name);\n try {\n target.set(...args);\n return wrappedCookies;\n } finally{\n updateResponseCookies();\n }\n };\n default:\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n return wrappedCookies;\n }\n}\nfunction wrapWithMutableAccessCheck(responseCookies) {\n const wrappedCookies = new Proxy(responseCookies, {\n get (target, prop, receiver) {\n switch(prop){\n case 'delete':\n return function(...args) {\n ensureCookiesAreStillMutable('cookies().delete');\n target.delete(...args);\n return wrappedCookies;\n };\n case 'set':\n return function(...args) {\n ensureCookiesAreStillMutable('cookies().set');\n target.set(...args);\n return wrappedCookies;\n };\n default:\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n return wrappedCookies;\n}\nfunction areCookiesMutableInCurrentPhase(requestStore) {\n return requestStore.phase === 'action';\n}\n/** Ensure that cookies() starts throwing on mutation\n * if we changed phases and can no longer mutate.\n *\n * This can happen when going:\n * 'render' -> 'after'\n * 'action' -> 'render'\n * */ function ensureCookiesAreStillMutable(callingExpression) {\n const requestStore = (0, _workunitasyncstorageexternal.getExpectedRequestStore)(callingExpression);\n if (!areCookiesMutableInCurrentPhase(requestStore)) {\n // TODO: maybe we can give a more precise error message based on callingExpression?\n throw new ReadonlyRequestCookiesError();\n }\n}\nfunction responseCookiesToRequestCookies(responseCookies) {\n const requestCookies = new _cookies.RequestCookies(new Headers());\n for (const cookie of responseCookies.getAll()){\n requestCookies.set(cookie);\n }\n return requestCookies;\n}\n\n//# sourceMappingURL=request-cookies.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVxdWVzdC1jb29raWVzLmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsTUFBTSxDQVNMO0FBQ0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELGlCQUFpQixtQkFBTyxDQUFDLHVGQUFZO0FBQ3JDLGlCQUFpQixtQkFBTyxDQUFDLCtGQUFXO0FBQ3BDLGtDQUFrQyxtQkFBTyxDQUFDLHNGQUFpRDtBQUMzRixzQ0FBc0MsbUJBQU8sQ0FBQyxnR0FBc0Q7QUFDcEc7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsOEJBQThCO0FBQzlCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLDhCQUE4QjtBQUM5QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVxdWVzdC1jb29raWVzLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuMCAmJiAobW9kdWxlLmV4cG9ydHMgPSB7XG4gICAgTXV0YWJsZVJlcXVlc3RDb29raWVzQWRhcHRlcjogbnVsbCxcbiAgICBSZWFkb25seVJlcXVlc3RDb29raWVzRXJyb3I6IG51bGwsXG4gICAgUmVxdWVzdENvb2tpZXNBZGFwdGVyOiBudWxsLFxuICAgIGFwcGVuZE11dGFibGVDb29raWVzOiBudWxsLFxuICAgIGFyZUNvb2tpZXNNdXRhYmxlSW5DdXJyZW50UGhhc2U6IG51bGwsXG4gICAgZ2V0TW9kaWZpZWRDb29raWVWYWx1ZXM6IG51bGwsXG4gICAgcmVzcG9uc2VDb29raWVzVG9SZXF1ZXN0Q29va2llczogbnVsbCxcbiAgICB3cmFwV2l0aE11dGFibGVBY2Nlc3NDaGVjazogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBNdXRhYmxlUmVxdWVzdENvb2tpZXNBZGFwdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIE11dGFibGVSZXF1ZXN0Q29va2llc0FkYXB0ZXI7XG4gICAgfSxcbiAgICBSZWFkb25seVJlcXVlc3RDb29raWVzRXJyb3I6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVhZG9ubHlSZXF1ZXN0Q29va2llc0Vycm9yO1xuICAgIH0sXG4gICAgUmVxdWVzdENvb2tpZXNBZGFwdGVyOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIFJlcXVlc3RDb29raWVzQWRhcHRlcjtcbiAgICB9LFxuICAgIGFwcGVuZE11dGFibGVDb29raWVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIGFwcGVuZE11dGFibGVDb29raWVzO1xuICAgIH0sXG4gICAgYXJlQ29va2llc011dGFibGVJbkN1cnJlbnRQaGFzZTogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBhcmVDb29raWVzTXV0YWJsZUluQ3VycmVudFBoYXNlO1xuICAgIH0sXG4gICAgZ2V0TW9kaWZpZWRDb29raWVWYWx1ZXM6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gZ2V0TW9kaWZpZWRDb29raWVWYWx1ZXM7XG4gICAgfSxcbiAgICByZXNwb25zZUNvb2tpZXNUb1JlcXVlc3RDb29raWVzOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHJlc3BvbnNlQ29va2llc1RvUmVxdWVzdENvb2tpZXM7XG4gICAgfSxcbiAgICB3cmFwV2l0aE11dGFibGVBY2Nlc3NDaGVjazogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB3cmFwV2l0aE11dGFibGVBY2Nlc3NDaGVjaztcbiAgICB9XG59KTtcbmNvbnN0IF9jb29raWVzID0gcmVxdWlyZShcIi4uL2Nvb2tpZXNcIik7XG5jb25zdCBfcmVmbGVjdCA9IHJlcXVpcmUoXCIuL3JlZmxlY3RcIik7XG5jb25zdCBfd29ya2FzeW5jc3RvcmFnZWV4dGVybmFsID0gcmVxdWlyZShcIi4uLy4uLy4uL2FwcC1yZW5kZXIvd29yay1hc3luYy1zdG9yYWdlLmV4dGVybmFsXCIpO1xuY29uc3QgX3dvcmt1bml0YXN5bmNzdG9yYWdlZXh0ZXJuYWwgPSByZXF1aXJlKFwiLi4vLi4vLi4vYXBwLXJlbmRlci93b3JrLXVuaXQtYXN5bmMtc3RvcmFnZS5leHRlcm5hbFwiKTtcbmNsYXNzIFJlYWRvbmx5UmVxdWVzdENvb2tpZXNFcnJvciBleHRlbmRzIEVycm9yIHtcbiAgICBjb25zdHJ1Y3Rvcigpe1xuICAgICAgICBzdXBlcignQ29va2llcyBjYW4gb25seSBiZSBtb2RpZmllZCBpbiBhIFNlcnZlciBBY3Rpb24gb3IgUm91dGUgSGFuZGxlci4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9mdW5jdGlvbnMvY29va2llcyNvcHRpb25zJyk7XG4gICAgfVxuICAgIHN0YXRpYyBjYWxsYWJsZSgpIHtcbiAgICAgICAgdGhyb3cgbmV3IFJlYWRvbmx5UmVxdWVzdENvb2tpZXNFcnJvcigpO1xuICAgIH1cbn1cbmNsYXNzIFJlcXVlc3RDb29raWVzQWRhcHRlciB7XG4gICAgc3RhdGljIHNlYWwoY29va2llcykge1xuICAgICAgICByZXR1cm4gbmV3IFByb3h5KGNvb2tpZXMsIHtcbiAgICAgICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgICAgIHN3aXRjaChwcm9wKXtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnY2xlYXInOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICAgICAgICAgICAgICBjYXNlICdzZXQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIFJlYWRvbmx5UmVxdWVzdENvb2tpZXNFcnJvci5jYWxsYWJsZTtcbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG59XG5jb25zdCBTWU1CT0xfTU9ESUZZX0NPT0tJRV9WQUxVRVMgPSBTeW1ib2wuZm9yKCduZXh0Lm11dGF0ZWQuY29va2llcycpO1xuZnVuY3Rpb24gZ2V0TW9kaWZpZWRDb29raWVWYWx1ZXMoY29va2llcykge1xuICAgIGNvbnN0IG1vZGlmaWVkID0gY29va2llc1tTWU1CT0xfTU9ESUZZX0NPT0tJRV9WQUxVRVNdO1xuICAgIGlmICghbW9kaWZpZWQgfHwgIUFycmF5LmlzQXJyYXkobW9kaWZpZWQpIHx8IG1vZGlmaWVkLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gW107XG4gICAgfVxuICAgIHJldHVybiBtb2RpZmllZDtcbn1cbmZ1bmN0aW9uIGFwcGVuZE11dGFibGVDb29raWVzKGhlYWRlcnMsIG11dGFibGVDb29raWVzKSB7XG4gICAgY29uc3QgbW9kaWZpZWRDb29raWVWYWx1ZXMgPSBnZXRNb2RpZmllZENvb2tpZVZhbHVlcyhtdXRhYmxlQ29va2llcyk7XG4gICAgaWYgKG1vZGlmaWVkQ29va2llVmFsdWVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIC8vIFJldHVybiBhIG5ldyByZXNwb25zZSB0aGF0IGV4dGVuZHMgdGhlIHJlc3BvbnNlIHdpdGhcbiAgICAvLyB0aGUgbW9kaWZpZWQgY29va2llcyBhcyBmYWxsYmFja3MuIGByZXNgIGNvb2tpZXNcbiAgICAvLyB3aWxsIHN0aWxsIHRha2UgcHJlY2VkZW5jZS5cbiAgICBjb25zdCByZXNDb29raWVzID0gbmV3IF9jb29raWVzLlJlc3BvbnNlQ29va2llcyhoZWFkZXJzKTtcbiAgICBjb25zdCByZXR1cm5lZENvb2tpZXMgPSByZXNDb29raWVzLmdldEFsbCgpO1xuICAgIC8vIFNldCB0aGUgbW9kaWZpZWQgY29va2llcyBhcyBmYWxsYmFja3MuXG4gICAgZm9yIChjb25zdCBjb29raWUgb2YgbW9kaWZpZWRDb29raWVWYWx1ZXMpe1xuICAgICAgICByZXNDb29raWVzLnNldChjb29raWUpO1xuICAgIH1cbiAgICAvLyBTZXQgdGhlIG9yaWdpbmFsIGNvb2tpZXMgYXMgdGhlIGZpbmFsIHZhbHVlcy5cbiAgICBmb3IgKGNvbnN0IGNvb2tpZSBvZiByZXR1cm5lZENvb2tpZXMpe1xuICAgICAgICByZXNDb29raWVzLnNldChjb29raWUpO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbn1cbmNsYXNzIE11dGFibGVSZXF1ZXN0Q29va2llc0FkYXB0ZXIge1xuICAgIHN0YXRpYyB3cmFwKGNvb2tpZXMsIG9uVXBkYXRlQ29va2llcykge1xuICAgICAgICBjb25zdCByZXNwb25zZUNvb2tpZXMgPSBuZXcgX2Nvb2tpZXMuUmVzcG9uc2VDb29raWVzKG5ldyBIZWFkZXJzKCkpO1xuICAgICAgICBmb3IgKGNvbnN0IGNvb2tpZSBvZiBjb29raWVzLmdldEFsbCgpKXtcbiAgICAgICAgICAgIHJlc3BvbnNlQ29va2llcy5zZXQoY29va2llKTtcbiAgICAgICAgfVxuICAgICAgICBsZXQgbW9kaWZpZWRWYWx1ZXMgPSBbXTtcbiAgICAgICAgY29uc3QgbW9kaWZpZWRDb29raWVzID0gbmV3IFNldCgpO1xuICAgICAgICBjb25zdCB1cGRhdGVSZXNwb25zZUNvb2tpZXMgPSAoKT0+e1xuICAgICAgICAgICAgLy8gVE9ETy1BUFA6IGNoYW5nZSBtZXRob2Qgb2YgZ2V0dGluZyB3b3JrU3RvcmVcbiAgICAgICAgICAgIGNvbnN0IHdvcmtTdG9yZSA9IF93b3JrYXN5bmNzdG9yYWdlZXh0ZXJuYWwud29ya0FzeW5jU3RvcmFnZS5nZXRTdG9yZSgpO1xuICAgICAgICAgICAgaWYgKHdvcmtTdG9yZSkge1xuICAgICAgICAgICAgICAgIHdvcmtTdG9yZS5wYXRoV2FzUmV2YWxpZGF0ZWQgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29uc3QgYWxsQ29va2llcyA9IHJlc3BvbnNlQ29va2llcy5nZXRBbGwoKTtcbiAgICAgICAgICAgIG1vZGlmaWVkVmFsdWVzID0gYWxsQ29va2llcy5maWx0ZXIoKGMpPT5tb2RpZmllZENvb2tpZXMuaGFzKGMubmFtZSkpO1xuICAgICAgICAgICAgaWYgKG9uVXBkYXRlQ29va2llcykge1xuICAgICAgICAgICAgICAgIGNvbnN0IHNlcmlhbGl6ZWRDb29raWVzID0gW107XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBjb29raWUgb2YgbW9kaWZpZWRWYWx1ZXMpe1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZW1wQ29va2llcyA9IG5ldyBfY29va2llcy5SZXNwb25zZUNvb2tpZXMobmV3IEhlYWRlcnMoKSk7XG4gICAgICAgICAgICAgICAgICAgIHRlbXBDb29raWVzLnNldChjb29raWUpO1xuICAgICAgICAgICAgICAgICAgICBzZXJpYWxpemVkQ29va2llcy5wdXNoKHRlbXBDb29raWVzLnRvU3RyaW5nKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBvblVwZGF0ZUNvb2tpZXMoc2VyaWFsaXplZENvb2tpZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgICAgICBjb25zdCB3cmFwcGVkQ29va2llcyA9IG5ldyBQcm94eShyZXNwb25zZUNvb2tpZXMsIHtcbiAgICAgICAgICAgIGdldCAodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgICAgICAgICAgIHN3aXRjaChwcm9wKXtcbiAgICAgICAgICAgICAgICAgICAgLy8gQSBzcGVjaWFsIHN5bWJvbCB0byBnZXQgdGhlIG1vZGlmaWVkIGNvb2tpZSB2YWx1ZXNcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBTWU1CT0xfTU9ESUZZX0NPT0tJRV9WQUxVRVM6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gbW9kaWZpZWRWYWx1ZXM7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IFRocm93IGVycm9yIGlmIHRyeWluZyB0byBzZXQgYSBjb29raWUgYWZ0ZXIgdGhlIHJlc3BvbnNlXG4gICAgICAgICAgICAgICAgICAgIC8vIGhlYWRlcnMgaGF2ZSBiZWVuIHNldC5cbiAgICAgICAgICAgICAgICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBmdW5jdGlvbiguLi5hcmdzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kaWZpZWRDb29raWVzLmFkZCh0eXBlb2YgYXJnc1swXSA9PT0gJ3N0cmluZycgPyBhcmdzWzBdIDogYXJnc1swXS5uYW1lKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cnkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXJnZXQuZGVsZXRlKC4uLmFyZ3MpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZENvb2tpZXM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBmaW5hbGx5e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGRhdGVSZXNwb25zZUNvb2tpZXMoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICBjYXNlICdzZXQnOlxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RpZmllZENvb2tpZXMuYWRkKHR5cGVvZiBhcmdzWzBdID09PSAnc3RyaW5nJyA/IGFyZ3NbMF0gOiBhcmdzWzBdLm5hbWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5zZXQoLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB3cmFwcGVkQ29va2llcztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGZpbmFsbHl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwZGF0ZVJlc3BvbnNlQ29va2llcygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gX3JlZmxlY3QuUmVmbGVjdEFkYXB0ZXIuZ2V0KHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiB3cmFwcGVkQ29va2llcztcbiAgICB9XG59XG5mdW5jdGlvbiB3cmFwV2l0aE11dGFibGVBY2Nlc3NDaGVjayhyZXNwb25zZUNvb2tpZXMpIHtcbiAgICBjb25zdCB3cmFwcGVkQ29va2llcyA9IG5ldyBQcm94eShyZXNwb25zZUNvb2tpZXMsIHtcbiAgICAgICAgZ2V0ICh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgY2FzZSAnZGVsZXRlJzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuc3VyZUNvb2tpZXNBcmVTdGlsbE11dGFibGUoJ2Nvb2tpZXMoKS5kZWxldGUnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5kZWxldGUoLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZENvb2tpZXM7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgY2FzZSAnc2V0JzpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZ1bmN0aW9uKC4uLmFyZ3MpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGVuc3VyZUNvb2tpZXNBcmVTdGlsbE11dGFibGUoJ2Nvb2tpZXMoKS5zZXQnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldC5zZXQoLi4uYXJncyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gd3JhcHBlZENvb2tpZXM7XG4gICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIF9yZWZsZWN0LlJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH0pO1xuICAgIHJldHVybiB3cmFwcGVkQ29va2llcztcbn1cbmZ1bmN0aW9uIGFyZUNvb2tpZXNNdXRhYmxlSW5DdXJyZW50UGhhc2UocmVxdWVzdFN0b3JlKSB7XG4gICAgcmV0dXJuIHJlcXVlc3RTdG9yZS5waGFzZSA9PT0gJ2FjdGlvbic7XG59XG4vKiogRW5zdXJlIHRoYXQgY29va2llcygpIHN0YXJ0cyB0aHJvd2luZyBvbiBtdXRhdGlvblxuICogaWYgd2UgY2hhbmdlZCBwaGFzZXMgYW5kIGNhbiBubyBsb25nZXIgbXV0YXRlLlxuICpcbiAqIFRoaXMgY2FuIGhhcHBlbiB3aGVuIGdvaW5nOlxuICogICAncmVuZGVyJyAtPiAnYWZ0ZXInXG4gKiAgICdhY3Rpb24nIC0+ICdyZW5kZXInXG4gKiAqLyBmdW5jdGlvbiBlbnN1cmVDb29raWVzQXJlU3RpbGxNdXRhYmxlKGNhbGxpbmdFeHByZXNzaW9uKSB7XG4gICAgY29uc3QgcmVxdWVzdFN0b3JlID0gKDAsIF93b3JrdW5pdGFzeW5jc3RvcmFnZWV4dGVybmFsLmdldEV4cGVjdGVkUmVxdWVzdFN0b3JlKShjYWxsaW5nRXhwcmVzc2lvbik7XG4gICAgaWYgKCFhcmVDb29raWVzTXV0YWJsZUluQ3VycmVudFBoYXNlKHJlcXVlc3RTdG9yZSkpIHtcbiAgICAgICAgLy8gVE9ETzogbWF5YmUgd2UgY2FuIGdpdmUgYSBtb3JlIHByZWNpc2UgZXJyb3IgbWVzc2FnZSBiYXNlZCBvbiBjYWxsaW5nRXhwcmVzc2lvbj9cbiAgICAgICAgdGhyb3cgbmV3IFJlYWRvbmx5UmVxdWVzdENvb2tpZXNFcnJvcigpO1xuICAgIH1cbn1cbmZ1bmN0aW9uIHJlc3BvbnNlQ29va2llc1RvUmVxdWVzdENvb2tpZXMocmVzcG9uc2VDb29raWVzKSB7XG4gICAgY29uc3QgcmVxdWVzdENvb2tpZXMgPSBuZXcgX2Nvb2tpZXMuUmVxdWVzdENvb2tpZXMobmV3IEhlYWRlcnMoKSk7XG4gICAgZm9yIChjb25zdCBjb29raWUgb2YgcmVzcG9uc2VDb29raWVzLmdldEFsbCgpKXtcbiAgICAgICAgcmVxdWVzdENvb2tpZXMuc2V0KGNvb2tpZSk7XG4gICAgfVxuICAgIHJldHVybiByZXF1ZXN0Q29va2llcztcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cmVxdWVzdC1jb29raWVzLmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/request-cookies.js\n");
+
+/***/ }),
+
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js":
/*!*********************************************************************!*\
!*** ./node_modules/next/dist/server/web/spec-extension/cookies.js ***!
@@ -1539,6 +1705,17 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
/***/ }),
+/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/image-response.js":
+/*!****************************************************************************!*\
+ !*** ./node_modules/next/dist/server/web/spec-extension/image-response.js ***!
+ \****************************************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("/**\n * @deprecated ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead.\n * Migration with codemods: https://nextjs.org/docs/app/building-your-application/upgrading/codemods#next-og-import\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ImageResponse\", ({\n enumerable: true,\n get: function() {\n return ImageResponse;\n }\n}));\nfunction ImageResponse() {\n throw Object.defineProperty(new Error('ImageResponse moved from \"next/server\" to \"next/og\" since Next.js 14, please import from \"next/og\" instead'), \"__NEXT_ERROR_CODE\", {\n value: \"E183\",\n enumerable: false,\n configurable: true\n });\n}\n\n//# sourceMappingURL=image-response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vaW1hZ2UtcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0EsSUFBaUI7QUFDakIsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0YsaURBQWdEO0FBQ2hEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2ltYWdlLXJlc3BvbnNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGRlcHJlY2F0ZWQgSW1hZ2VSZXNwb25zZSBtb3ZlZCBmcm9tIFwibmV4dC9zZXJ2ZXJcIiB0byBcIm5leHQvb2dcIiBzaW5jZSBOZXh0LmpzIDE0LCBwbGVhc2UgaW1wb3J0IGZyb20gXCJuZXh0L29nXCIgaW5zdGVhZC5cbiAqIE1pZ3JhdGlvbiB3aXRoIGNvZGVtb2RzOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYnVpbGRpbmcteW91ci1hcHBsaWNhdGlvbi91cGdyYWRpbmcvY29kZW1vZHMjbmV4dC1vZy1pbXBvcnRcbiAqLyBcInVzZSBzdHJpY3RcIjtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIl9fZXNNb2R1bGVcIiwge1xuICAgIHZhbHVlOiB0cnVlXG59KTtcbk9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBcIkltYWdlUmVzcG9uc2VcIiwge1xuICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgZ2V0OiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIEltYWdlUmVzcG9uc2U7XG4gICAgfVxufSk7XG5mdW5jdGlvbiBJbWFnZVJlc3BvbnNlKCkge1xuICAgIHRocm93IE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuZXcgRXJyb3IoJ0ltYWdlUmVzcG9uc2UgbW92ZWQgZnJvbSBcIm5leHQvc2VydmVyXCIgdG8gXCJuZXh0L29nXCIgc2luY2UgTmV4dC5qcyAxNCwgcGxlYXNlIGltcG9ydCBmcm9tIFwibmV4dC9vZ1wiIGluc3RlYWQnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgIHZhbHVlOiBcIkUxODNcIixcbiAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgIH0pO1xufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1yZXNwb25zZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/image-response.js\n");
+
+/***/ }),
+
/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/request.js":
/*!*********************************************************************!*\
!*** ./node_modules/next/dist/server/web/spec-extension/request.js ***!
@@ -1550,6 +1727,39 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
/***/ }),
+/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/response.js":
+/*!**********************************************************************!*\
+ !*** ./node_modules/next/dist/server/web/spec-extension/response.js ***!
+ \**********************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"NextResponse\", ({\n enumerable: true,\n get: function() {\n return NextResponse;\n }\n}));\nconst _cookies = __webpack_require__(/*! ../../web/spec-extension/cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst _nexturl = __webpack_require__(/*! ../next-url */ \"(rsc)/./node_modules/next/dist/server/web/next-url.js\");\nconst _utils = __webpack_require__(/*! ../utils */ \"(rsc)/./node_modules/next/dist/server/web/utils.js\");\nconst _reflect = __webpack_require__(/*! ./adapters/reflect */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _cookies1 = __webpack_require__(/*! ./cookies */ \"(rsc)/./node_modules/next/dist/server/web/spec-extension/cookies.js\");\nconst INTERNALS = Symbol('internal response');\nconst REDIRECTS = new Set([\n 301,\n 302,\n 303,\n 307,\n 308\n]);\nfunction handleMiddlewareField(init, headers) {\n var _init_request;\n if (init == null ? void 0 : (_init_request = init.request) == null ? void 0 : _init_request.headers) {\n if (!(init.request.headers instanceof Headers)) {\n throw Object.defineProperty(new Error('request.headers must be an instance of Headers'), \"__NEXT_ERROR_CODE\", {\n value: \"E119\",\n enumerable: false,\n configurable: true\n });\n }\n const keys = [];\n for (const [key, value] of init.request.headers){\n headers.set('x-middleware-request-' + key, value);\n keys.push(key);\n }\n headers.set('x-middleware-override-headers', keys.join(','));\n }\n}\nclass NextResponse extends Response {\n constructor(body, init = {}){\n super(body, init);\n const headers = this.headers;\n const cookies = new _cookies1.ResponseCookies(headers);\n const cookiesProxy = new Proxy(cookies, {\n get (target, prop, receiver) {\n switch(prop){\n case 'delete':\n case 'set':\n {\n return (...args)=>{\n const result = Reflect.apply(target[prop], target, args);\n const newHeaders = new Headers(headers);\n if (result instanceof _cookies1.ResponseCookies) {\n headers.set('x-middleware-set-cookie', result.getAll().map((cookie)=>(0, _cookies.stringifyCookie)(cookie)).join(','));\n }\n handleMiddlewareField(init, newHeaders);\n return result;\n };\n }\n default:\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n }\n }\n });\n this[INTERNALS] = {\n cookies: cookiesProxy,\n url: init.url ? new _nexturl.NextURL(init.url, {\n headers: (0, _utils.toNodeOutgoingHttpHeaders)(headers),\n nextConfig: init.nextConfig\n }) : undefined\n };\n }\n [Symbol.for('edge-runtime.inspect.custom')]() {\n return {\n cookies: this.cookies,\n url: this.url,\n // rest of props come from Response\n body: this.body,\n bodyUsed: this.bodyUsed,\n headers: Object.fromEntries(this.headers),\n ok: this.ok,\n redirected: this.redirected,\n status: this.status,\n statusText: this.statusText,\n type: this.type\n };\n }\n get cookies() {\n return this[INTERNALS].cookies;\n }\n static json(body, init) {\n const response = Response.json(body, init);\n return new NextResponse(response.body, response);\n }\n static redirect(url, init) {\n const status = typeof init === 'number' ? init : (init == null ? void 0 : init.status) ?? 307;\n if (!REDIRECTS.has(status)) {\n throw Object.defineProperty(new RangeError('Failed to execute \"redirect\" on \"response\": Invalid status code'), \"__NEXT_ERROR_CODE\", {\n value: \"E529\",\n enumerable: false,\n configurable: true\n });\n }\n const initObj = typeof init === 'object' ? init : {};\n const headers = new Headers(initObj == null ? void 0 : initObj.headers);\n headers.set('Location', (0, _utils.validateURL)(url));\n return new NextResponse(null, {\n ...initObj,\n headers,\n status\n });\n }\n static rewrite(destination, init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set('x-middleware-rewrite', (0, _utils.validateURL)(destination));\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n static next(init) {\n const headers = new Headers(init == null ? void 0 : init.headers);\n headers.set('x-middleware-next', '1');\n handleMiddlewareField(init, headers);\n return new NextResponse(null, {\n ...init,\n headers\n });\n }\n}\n\n//# sourceMappingURL=response.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vcmVzcG9uc2UuanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRixnREFBK0M7QUFDL0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRixpQkFBaUIsbUJBQU8sQ0FBQyw2R0FBa0M7QUFDM0QsaUJBQWlCLG1CQUFPLENBQUMsMEVBQWE7QUFDdEMsZUFBZSxtQkFBTyxDQUFDLG9FQUFVO0FBQ2pDLGlCQUFpQixtQkFBTyxDQUFDLHdHQUFvQjtBQUM3QyxrQkFBa0IsbUJBQU8sQ0FBQyxzRkFBVztBQUNyQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGFBQWE7QUFDYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLCtCQUErQjtBQUMvQjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7QUFDVDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsU0FBUztBQUNUO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTO0FBQ1Q7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL3Jlc3BvbnNlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIHN0cmljdFwiO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiX19lc01vZHVsZVwiLCB7XG4gICAgdmFsdWU6IHRydWVcbn0pO1xuT2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIFwiTmV4dFJlc3BvbnNlXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBOZXh0UmVzcG9uc2U7XG4gICAgfVxufSk7XG5jb25zdCBfY29va2llcyA9IHJlcXVpcmUoXCIuLi8uLi93ZWIvc3BlYy1leHRlbnNpb24vY29va2llc1wiKTtcbmNvbnN0IF9uZXh0dXJsID0gcmVxdWlyZShcIi4uL25leHQtdXJsXCIpO1xuY29uc3QgX3V0aWxzID0gcmVxdWlyZShcIi4uL3V0aWxzXCIpO1xuY29uc3QgX3JlZmxlY3QgPSByZXF1aXJlKFwiLi9hZGFwdGVycy9yZWZsZWN0XCIpO1xuY29uc3QgX2Nvb2tpZXMxID0gcmVxdWlyZShcIi4vY29va2llc1wiKTtcbmNvbnN0IElOVEVSTkFMUyA9IFN5bWJvbCgnaW50ZXJuYWwgcmVzcG9uc2UnKTtcbmNvbnN0IFJFRElSRUNUUyA9IG5ldyBTZXQoW1xuICAgIDMwMSxcbiAgICAzMDIsXG4gICAgMzAzLFxuICAgIDMwNyxcbiAgICAzMDhcbl0pO1xuZnVuY3Rpb24gaGFuZGxlTWlkZGxld2FyZUZpZWxkKGluaXQsIGhlYWRlcnMpIHtcbiAgICB2YXIgX2luaXRfcmVxdWVzdDtcbiAgICBpZiAoaW5pdCA9PSBudWxsID8gdm9pZCAwIDogKF9pbml0X3JlcXVlc3QgPSBpbml0LnJlcXVlc3QpID09IG51bGwgPyB2b2lkIDAgOiBfaW5pdF9yZXF1ZXN0LmhlYWRlcnMpIHtcbiAgICAgICAgaWYgKCEoaW5pdC5yZXF1ZXN0LmhlYWRlcnMgaW5zdGFuY2VvZiBIZWFkZXJzKSkge1xuICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcigncmVxdWVzdC5oZWFkZXJzIG11c3QgYmUgYW4gaW5zdGFuY2Ugb2YgSGVhZGVycycpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMTE5XCIsXG4gICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICBjb25zdCBrZXlzID0gW107XG4gICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIGluaXQucmVxdWVzdC5oZWFkZXJzKXtcbiAgICAgICAgICAgIGhlYWRlcnMuc2V0KCd4LW1pZGRsZXdhcmUtcmVxdWVzdC0nICsga2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICBrZXlzLnB1c2goa2V5KTtcbiAgICAgICAgfVxuICAgICAgICBoZWFkZXJzLnNldCgneC1taWRkbGV3YXJlLW92ZXJyaWRlLWhlYWRlcnMnLCBrZXlzLmpvaW4oJywnKSk7XG4gICAgfVxufVxuY2xhc3MgTmV4dFJlc3BvbnNlIGV4dGVuZHMgUmVzcG9uc2Uge1xuICAgIGNvbnN0cnVjdG9yKGJvZHksIGluaXQgPSB7fSl7XG4gICAgICAgIHN1cGVyKGJvZHksIGluaXQpO1xuICAgICAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5oZWFkZXJzO1xuICAgICAgICBjb25zdCBjb29raWVzID0gbmV3IF9jb29raWVzMS5SZXNwb25zZUNvb2tpZXMoaGVhZGVycyk7XG4gICAgICAgIGNvbnN0IGNvb2tpZXNQcm94eSA9IG5ldyBQcm94eShjb29raWVzLCB7XG4gICAgICAgICAgICBnZXQgKHRhcmdldCwgcHJvcCwgcmVjZWl2ZXIpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2gocHJvcCl7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ2RlbGV0ZSc6XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgJ3NldCc6XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuICguLi5hcmdzKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCByZXN1bHQgPSBSZWZsZWN0LmFwcGx5KHRhcmdldFtwcm9wXSwgdGFyZ2V0LCBhcmdzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3SGVhZGVycyA9IG5ldyBIZWFkZXJzKGhlYWRlcnMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAocmVzdWx0IGluc3RhbmNlb2YgX2Nvb2tpZXMxLlJlc3BvbnNlQ29va2llcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVhZGVycy5zZXQoJ3gtbWlkZGxld2FyZS1zZXQtY29va2llJywgcmVzdWx0LmdldEFsbCgpLm1hcCgoY29va2llKT0+KDAsIF9jb29raWVzLnN0cmluZ2lmeUNvb2tpZSkoY29va2llKSkuam9pbignLCcpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVNaWRkbGV3YXJlRmllbGQoaW5pdCwgbmV3SGVhZGVycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBfcmVmbGVjdC5SZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgICAgdGhpc1tJTlRFUk5BTFNdID0ge1xuICAgICAgICAgICAgY29va2llczogY29va2llc1Byb3h5LFxuICAgICAgICAgICAgdXJsOiBpbml0LnVybCA/IG5ldyBfbmV4dHVybC5OZXh0VVJMKGluaXQudXJsLCB7XG4gICAgICAgICAgICAgICAgaGVhZGVyczogKDAsIF91dGlscy50b05vZGVPdXRnb2luZ0h0dHBIZWFkZXJzKShoZWFkZXJzKSxcbiAgICAgICAgICAgICAgICBuZXh0Q29uZmlnOiBpbml0Lm5leHRDb25maWdcbiAgICAgICAgICAgIH0pIDogdW5kZWZpbmVkXG4gICAgICAgIH07XG4gICAgfVxuICAgIFtTeW1ib2wuZm9yKCdlZGdlLXJ1bnRpbWUuaW5zcGVjdC5jdXN0b20nKV0oKSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBjb29raWVzOiB0aGlzLmNvb2tpZXMsXG4gICAgICAgICAgICB1cmw6IHRoaXMudXJsLFxuICAgICAgICAgICAgLy8gcmVzdCBvZiBwcm9wcyBjb21lIGZyb20gUmVzcG9uc2VcbiAgICAgICAgICAgIGJvZHk6IHRoaXMuYm9keSxcbiAgICAgICAgICAgIGJvZHlVc2VkOiB0aGlzLmJvZHlVc2VkLFxuICAgICAgICAgICAgaGVhZGVyczogT2JqZWN0LmZyb21FbnRyaWVzKHRoaXMuaGVhZGVycyksXG4gICAgICAgICAgICBvazogdGhpcy5vayxcbiAgICAgICAgICAgIHJlZGlyZWN0ZWQ6IHRoaXMucmVkaXJlY3RlZCxcbiAgICAgICAgICAgIHN0YXR1czogdGhpcy5zdGF0dXMsXG4gICAgICAgICAgICBzdGF0dXNUZXh0OiB0aGlzLnN0YXR1c1RleHQsXG4gICAgICAgICAgICB0eXBlOiB0aGlzLnR5cGVcbiAgICAgICAgfTtcbiAgICB9XG4gICAgZ2V0IGNvb2tpZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzW0lOVEVSTkFMU10uY29va2llcztcbiAgICB9XG4gICAgc3RhdGljIGpzb24oYm9keSwgaW5pdCkge1xuICAgICAgICBjb25zdCByZXNwb25zZSA9IFJlc3BvbnNlLmpzb24oYm9keSwgaW5pdCk7XG4gICAgICAgIHJldHVybiBuZXcgTmV4dFJlc3BvbnNlKHJlc3BvbnNlLmJvZHksIHJlc3BvbnNlKTtcbiAgICB9XG4gICAgc3RhdGljIHJlZGlyZWN0KHVybCwgaW5pdCkge1xuICAgICAgICBjb25zdCBzdGF0dXMgPSB0eXBlb2YgaW5pdCA9PT0gJ251bWJlcicgPyBpbml0IDogKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQuc3RhdHVzKSA/PyAzMDc7XG4gICAgICAgIGlmICghUkVESVJFQ1RTLmhhcyhzdGF0dXMpKSB7XG4gICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IFJhbmdlRXJyb3IoJ0ZhaWxlZCB0byBleGVjdXRlIFwicmVkaXJlY3RcIiBvbiBcInJlc3BvbnNlXCI6IEludmFsaWQgc3RhdHVzIGNvZGUnKSwgXCJfX05FWFRfRVJST1JfQ09ERVwiLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IFwiRTUyOVwiLFxuICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgaW5pdE9iaiA9IHR5cGVvZiBpbml0ID09PSAnb2JqZWN0JyA/IGluaXQgOiB7fTtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGluaXRPYmogPT0gbnVsbCA/IHZvaWQgMCA6IGluaXRPYmouaGVhZGVycyk7XG4gICAgICAgIGhlYWRlcnMuc2V0KCdMb2NhdGlvbicsICgwLCBfdXRpbHMudmFsaWRhdGVVUkwpKHVybCkpO1xuICAgICAgICByZXR1cm4gbmV3IE5leHRSZXNwb25zZShudWxsLCB7XG4gICAgICAgICAgICAuLi5pbml0T2JqLFxuICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICAgIHN0YXR1c1xuICAgICAgICB9KTtcbiAgICB9XG4gICAgc3RhdGljIHJld3JpdGUoZGVzdGluYXRpb24sIGluaXQpIHtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQuaGVhZGVycyk7XG4gICAgICAgIGhlYWRlcnMuc2V0KCd4LW1pZGRsZXdhcmUtcmV3cml0ZScsICgwLCBfdXRpbHMudmFsaWRhdGVVUkwpKGRlc3RpbmF0aW9uKSk7XG4gICAgICAgIGhhbmRsZU1pZGRsZXdhcmVGaWVsZChpbml0LCBoZWFkZXJzKTtcbiAgICAgICAgcmV0dXJuIG5ldyBOZXh0UmVzcG9uc2UobnVsbCwge1xuICAgICAgICAgICAgLi4uaW5pdCxcbiAgICAgICAgICAgIGhlYWRlcnNcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHN0YXRpYyBuZXh0KGluaXQpIHtcbiAgICAgICAgY29uc3QgaGVhZGVycyA9IG5ldyBIZWFkZXJzKGluaXQgPT0gbnVsbCA/IHZvaWQgMCA6IGluaXQuaGVhZGVycyk7XG4gICAgICAgIGhlYWRlcnMuc2V0KCd4LW1pZGRsZXdhcmUtbmV4dCcsICcxJyk7XG4gICAgICAgIGhhbmRsZU1pZGRsZXdhcmVGaWVsZChpbml0LCBoZWFkZXJzKTtcbiAgICAgICAgcmV0dXJuIG5ldyBOZXh0UmVzcG9uc2UobnVsbCwge1xuICAgICAgICAgICAgLi4uaW5pdCxcbiAgICAgICAgICAgIGhlYWRlcnNcbiAgICAgICAgfSk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZXNwb25zZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/response.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/url-pattern.js":
+/*!*************************************************************************!*\
+ !*** ./node_modules/next/dist/server/web/spec-extension/url-pattern.js ***!
+ \*************************************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"URLPattern\", ({\n enumerable: true,\n get: function() {\n return GlobalURLPattern;\n }\n}));\nconst GlobalURLPattern = // @ts-expect-error: URLPattern is not available in Node.js\ntypeof URLPattern === 'undefined' ? undefined : URLPattern;\n\n//# sourceMappingURL=url-pattern.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vdXJsLXBhdHRlcm4uanMiLCJtYXBwaW5ncyI6IkFBQWE7QUFDYiw4Q0FBNkM7QUFDN0M7QUFDQSxDQUFDLEVBQUM7QUFDRiw4Q0FBNkM7QUFDN0M7QUFDQTtBQUNBO0FBQ0E7QUFDQSxDQUFDLEVBQUM7QUFDRjtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vdXJsLXBhdHRlcm4uanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJVUkxQYXR0ZXJuXCIsIHtcbiAgICBlbnVtZXJhYmxlOiB0cnVlLFxuICAgIGdldDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBHbG9iYWxVUkxQYXR0ZXJuO1xuICAgIH1cbn0pO1xuY29uc3QgR2xvYmFsVVJMUGF0dGVybiA9IC8vIEB0cy1leHBlY3QtZXJyb3I6IFVSTFBhdHRlcm4gaXMgbm90IGF2YWlsYWJsZSBpbiBOb2RlLmpzXG50eXBlb2YgVVJMUGF0dGVybiA9PT0gJ3VuZGVmaW5lZCcgPyB1bmRlZmluZWQgOiBVUkxQYXR0ZXJuO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD11cmwtcGF0dGVybi5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/url-pattern.js\n");
+
+/***/ }),
+
+/***/ "(rsc)/./node_modules/next/dist/server/web/spec-extension/user-agent.js":
+/*!************************************************************************!*\
+ !*** ./node_modules/next/dist/server/web/spec-extension/user-agent.js ***!
+ \************************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n isBot: function() {\n return isBot;\n },\n userAgent: function() {\n return userAgent;\n },\n userAgentFromString: function() {\n return userAgentFromString;\n }\n});\nconst _uaparserjs = /*#__PURE__*/ _interop_require_default(__webpack_require__(/*! next/dist/compiled/ua-parser-js */ \"(rsc)/./node_modules/next/dist/compiled/ua-parser-js/ua-parser.js\"));\nfunction _interop_require_default(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\nfunction isBot(input) {\n return /Googlebot|Mediapartners-Google|AdsBot-Google|googleweblight|Storebot-Google|Google-PageRenderer|Google-InspectionTool|Bingbot|BingPreview|Slurp|DuckDuckBot|baiduspider|yandex|sogou|LinkedInBot|bitlybot|tumblr|vkShare|quora link preview|facebookexternalhit|facebookcatalog|Twitterbot|applebot|redditbot|Slackbot|Discordbot|WhatsApp|SkypeUriPreview|ia_archiver/i.test(input);\n}\nfunction userAgentFromString(input) {\n return {\n ...(0, _uaparserjs.default)(input),\n isBot: input === undefined ? false : isBot(input)\n };\n}\nfunction userAgent({ headers }) {\n return userAgentFromString(headers.get('user-agent') || undefined);\n}\n\n//# sourceMappingURL=user-agent.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vdXNlci1hZ2VudC5qcyIsIm1hcHBpbmdzIjoiQUFBYTtBQUNiLDhDQUE2QztBQUM3QztBQUNBLENBQUMsRUFBQztBQUNGLE1BQU0sQ0FJTDtBQUNEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQztBQUNELDJEQUEyRCxtQkFBTyxDQUFDLDBHQUFpQztBQUNwRztBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUJBQXFCLFNBQVM7QUFDOUI7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL3VzZXItYWdlbnQuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG4wICYmIChtb2R1bGUuZXhwb3J0cyA9IHtcbiAgICBpc0JvdDogbnVsbCxcbiAgICB1c2VyQWdlbnQ6IG51bGwsXG4gICAgdXNlckFnZW50RnJvbVN0cmluZzogbnVsbFxufSk7XG5mdW5jdGlvbiBfZXhwb3J0KHRhcmdldCwgYWxsKSB7XG4gICAgZm9yKHZhciBuYW1lIGluIGFsbClPYmplY3QuZGVmaW5lUHJvcGVydHkodGFyZ2V0LCBuYW1lLCB7XG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIGdldDogYWxsW25hbWVdXG4gICAgfSk7XG59XG5fZXhwb3J0KGV4cG9ydHMsIHtcbiAgICBpc0JvdDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiBpc0JvdDtcbiAgICB9LFxuICAgIHVzZXJBZ2VudDogZnVuY3Rpb24oKSB7XG4gICAgICAgIHJldHVybiB1c2VyQWdlbnQ7XG4gICAgfSxcbiAgICB1c2VyQWdlbnRGcm9tU3RyaW5nOiBmdW5jdGlvbigpIHtcbiAgICAgICAgcmV0dXJuIHVzZXJBZ2VudEZyb21TdHJpbmc7XG4gICAgfVxufSk7XG5jb25zdCBfdWFwYXJzZXJqcyA9IC8qI19fUFVSRV9fKi8gX2ludGVyb3BfcmVxdWlyZV9kZWZhdWx0KHJlcXVpcmUoXCJuZXh0L2Rpc3QvY29tcGlsZWQvdWEtcGFyc2VyLWpzXCIpKTtcbmZ1bmN0aW9uIF9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdChvYmopIHtcbiAgICByZXR1cm4gb2JqICYmIG9iai5fX2VzTW9kdWxlID8gb2JqIDoge1xuICAgICAgICBkZWZhdWx0OiBvYmpcbiAgICB9O1xufVxuZnVuY3Rpb24gaXNCb3QoaW5wdXQpIHtcbiAgICByZXR1cm4gL0dvb2dsZWJvdHxNZWRpYXBhcnRuZXJzLUdvb2dsZXxBZHNCb3QtR29vZ2xlfGdvb2dsZXdlYmxpZ2h0fFN0b3JlYm90LUdvb2dsZXxHb29nbGUtUGFnZVJlbmRlcmVyfEdvb2dsZS1JbnNwZWN0aW9uVG9vbHxCaW5nYm90fEJpbmdQcmV2aWV3fFNsdXJwfER1Y2tEdWNrQm90fGJhaWR1c3BpZGVyfHlhbmRleHxzb2dvdXxMaW5rZWRJbkJvdHxiaXRseWJvdHx0dW1ibHJ8dmtTaGFyZXxxdW9yYSBsaW5rIHByZXZpZXd8ZmFjZWJvb2tleHRlcm5hbGhpdHxmYWNlYm9va2NhdGFsb2d8VHdpdHRlcmJvdHxhcHBsZWJvdHxyZWRkaXRib3R8U2xhY2tib3R8RGlzY29yZGJvdHxXaGF0c0FwcHxTa3lwZVVyaVByZXZpZXd8aWFfYXJjaGl2ZXIvaS50ZXN0KGlucHV0KTtcbn1cbmZ1bmN0aW9uIHVzZXJBZ2VudEZyb21TdHJpbmcoaW5wdXQpIHtcbiAgICByZXR1cm4ge1xuICAgICAgICAuLi4oMCwgX3VhcGFyc2VyanMuZGVmYXVsdCkoaW5wdXQpLFxuICAgICAgICBpc0JvdDogaW5wdXQgPT09IHVuZGVmaW5lZCA/IGZhbHNlIDogaXNCb3QoaW5wdXQpXG4gICAgfTtcbn1cbmZ1bmN0aW9uIHVzZXJBZ2VudCh7IGhlYWRlcnMgfSkge1xuICAgIHJldHVybiB1c2VyQWdlbnRGcm9tU3RyaW5nKGhlYWRlcnMuZ2V0KCd1c2VyLWFnZW50JykgfHwgdW5kZWZpbmVkKTtcbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9dXNlci1hZ2VudC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/server/web/spec-extension/user-agent.js\n");
+
+/***/ }),
+
/***/ "(rsc)/./node_modules/next/dist/server/web/utils.js":
/*!****************************************************!*\
!*** ./node_modules/next/dist/server/web/utils.js ***!
@@ -2084,6 +2294,17 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _sha
/***/ }),
+/***/ "(ssr)/./node_modules/next/dist/api/image.js":
+/*!*********************************************!*\
+ !*** ./node_modules/next/dist/api/image.js ***!
+ \*********************************************/
+/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
+
+"use strict";
+eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport default from dynamic */ _shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0___default.a)\n/* harmony export */ });\n/* harmony import */ var _shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../shared/lib/image-external */ \"(ssr)/./node_modules/next/dist/shared/lib/image-external.js\");\n/* harmony import */ var _shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _shared_lib_image_external__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n\n//# sourceMappingURL=image.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9pbWFnZS5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBdUQ7QUFDVjs7QUFFN0MiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL2ltYWdlLmpzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tICcuLi9zaGFyZWQvbGliL2ltYWdlLWV4dGVybmFsJztcbmV4cG9ydCAqIGZyb20gJy4uL3NoYXJlZC9saWIvaW1hZ2UtZXh0ZXJuYWwnO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/api/image.js\n");
+
+/***/ }),
+
/***/ "(ssr)/./node_modules/next/dist/api/navigation.js":
/*!**************************************************!*\
!*** ./node_modules/next/dist/api/navigation.js ***!
@@ -3063,6 +3284,17 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
/***/ }),
+/***/ "(ssr)/./node_modules/next/dist/client/image-component.js":
+/*!**********************************************************!*\
+ !*** ./node_modules/next/dist/client/image-component.js ***!
+ \**********************************************************/
+/***/ ((module, exports, __webpack_require__) => {
+
+"use strict";
+eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"Image\", ({\n enumerable: true,\n get: function() {\n return Image;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react.js\"));\nconst _reactdom = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react-dom */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/ssr/react-dom.js\"));\nconst _head = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../shared/lib/head */ \"(ssr)/./node_modules/next/dist/shared/lib/head.js\"));\nconst _getimgprops = __webpack_require__(/*! ../shared/lib/get-img-props */ \"(ssr)/./node_modules/next/dist/shared/lib/get-img-props.js\");\nconst _imageconfig = __webpack_require__(/*! ../shared/lib/image-config */ \"(ssr)/./node_modules/next/dist/shared/lib/image-config.js\");\nconst _imageconfigcontextsharedruntime = __webpack_require__(/*! ../shared/lib/image-config-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js\");\nconst _warnonce = __webpack_require__(/*! ../shared/lib/utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nconst _routercontextsharedruntime = __webpack_require__(/*! ../shared/lib/router-context.shared-runtime */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js\");\nconst _imageloader = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/shared/lib/image-loader */ \"(ssr)/./node_modules/next/dist/shared/lib/image-loader.js\"));\nconst _usemergedref = __webpack_require__(/*! ./use-merged-ref */ \"(ssr)/./node_modules/next/dist/client/use-merged-ref.js\");\n// This is replaced by webpack define plugin\nconst configEnv = {\"deviceSizes\":[640,750,828,1080,1200,1920,2048,3840],\"imageSizes\":[16,32,48,64,96,128,256,384],\"path\":\"/_next/image\",\"loader\":\"default\",\"dangerouslyAllowSVG\":false,\"unoptimized\":false,\"domains\":[],\"remotePatterns\":[{\"protocol\":\"https\",\"hostname\":\"nextcloud.biohazardvfx.com\"},{\"protocol\":\"https\",\"hostname\":\"f.io\"},{\"protocol\":\"https\",\"hostname\":\"utfs.io\"},{\"protocol\":\"https\",\"hostname\":\"placehold.co\"},{\"protocol\":\"https\",\"hostname\":\"placeholder.com\"},{\"protocol\":\"https\",\"hostname\":\"picsum.photos\"}]};\nif (true) {\n ;\n globalThis.__NEXT_IMAGE_IMPORTED = true;\n}\n// See https://stackoverflow.com/q/39777833/266535 for why we use this ref\n// handler instead of the img's onLoad attribute.\nfunction handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput) {\n const src = img == null ? void 0 : img.src;\n if (!img || img['data-loaded-src'] === src) {\n return;\n }\n img['data-loaded-src'] = src;\n const p = 'decode' in img ? img.decode() : Promise.resolve();\n p.catch(()=>{}).then(()=>{\n if (!img.parentElement || !img.isConnected) {\n // Exit early in case of race condition:\n // - onload() is called\n // - decode() is called but incomplete\n // - unmount is called\n // - decode() completes\n return;\n }\n if (placeholder !== 'empty') {\n setBlurComplete(true);\n }\n if (onLoadRef == null ? void 0 : onLoadRef.current) {\n // Since we don't have the SyntheticEvent here,\n // we must create one with the same shape.\n // See https://reactjs.org/docs/events.html\n const event = new Event('load');\n Object.defineProperty(event, 'target', {\n writable: false,\n value: img\n });\n let prevented = false;\n let stopped = false;\n onLoadRef.current({\n ...event,\n nativeEvent: event,\n currentTarget: img,\n target: img,\n isDefaultPrevented: ()=>prevented,\n isPropagationStopped: ()=>stopped,\n persist: ()=>{},\n preventDefault: ()=>{\n prevented = true;\n event.preventDefault();\n },\n stopPropagation: ()=>{\n stopped = true;\n event.stopPropagation();\n }\n });\n }\n if (onLoadingCompleteRef == null ? void 0 : onLoadingCompleteRef.current) {\n onLoadingCompleteRef.current(img);\n }\n if (true) {\n const origSrc = new URL(src, 'http://n').searchParams.get('url') || src;\n if (img.getAttribute('data-nimg') === 'fill') {\n if (!unoptimized && (!sizesInput || sizesInput === '100vw')) {\n let widthViewportRatio = img.getBoundingClientRect().width / window.innerWidth;\n if (widthViewportRatio < 0.6) {\n if (sizesInput === '100vw') {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" prop and \"sizes\" prop of \"100vw\", but image is not rendered at full viewport width. Please adjust \"sizes\" to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes');\n } else {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" but is missing \"sizes\" prop. Please add it to improve page performance. Read more: https://nextjs.org/docs/api-reference/next/image#sizes');\n }\n }\n }\n if (img.parentElement) {\n const { position } = window.getComputedStyle(img.parentElement);\n const valid = [\n 'absolute',\n 'fixed',\n 'relative'\n ];\n if (!valid.includes(position)) {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" and parent element with invalid \"position\". Provided \"' + position + '\" should be one of ' + valid.map(String).join(',') + \".\");\n }\n }\n if (img.height === 0) {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has \"fill\" and a height value of 0. This is likely because the parent element of the image has not been styled to have a set height.');\n }\n }\n const heightModified = img.height.toString() !== img.getAttribute('height');\n const widthModified = img.width.toString() !== img.getAttribute('width');\n if (heightModified && !widthModified || !heightModified && widthModified) {\n (0, _warnonce.warnOnce)('Image with src \"' + origSrc + '\" has either width or height modified, but not the other. If you use CSS to change the size of your image, also include the styles \\'width: \"auto\"\\' or \\'height: \"auto\"\\' to maintain the aspect ratio.');\n }\n }\n });\n}\nfunction getDynamicProps(fetchPriority) {\n if (Boolean(_react.use)) {\n // In React 19.0.0 or newer, we must use camelCase\n // prop to avoid \"Warning: Invalid DOM property\".\n // See https://github.com/facebook/react/pull/25927\n return {\n fetchPriority\n };\n }\n // In React 18.2.0 or older, we must use lowercase prop\n // to avoid \"Warning: Invalid DOM property\".\n return {\n fetchpriority: fetchPriority\n };\n}\nconst ImageElement = /*#__PURE__*/ (0, _react.forwardRef)((param, forwardedRef)=>{\n let { src, srcSet, sizes, height, width, decoding, className, style, fetchPriority, placeholder, loading, unoptimized, fill, onLoadRef, onLoadingCompleteRef, setBlurComplete, setShowAltText, sizesInput, onLoad, onError, ...rest } = param;\n const ownRef = (0, _react.useCallback)((img)=>{\n if (!img) {\n return;\n }\n if (onError) {\n // If the image has an error before react hydrates, then the error is lost.\n // The workaround is to wait until the image is mounted which is after hydration,\n // then we set the src again to trigger the error handler (if there was an error).\n // eslint-disable-next-line no-self-assign\n img.src = img.src;\n }\n if (true) {\n if (!src) {\n console.error('Image is missing required \"src\" property:', img);\n }\n if (img.getAttribute('alt') === null) {\n console.error('Image is missing required \"alt\" property. Please add Alternative Text to describe the image for screen readers and search engines.');\n }\n }\n if (img.complete) {\n handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput);\n }\n }, [\n src,\n placeholder,\n onLoadRef,\n onLoadingCompleteRef,\n setBlurComplete,\n onError,\n unoptimized,\n sizesInput\n ]);\n const ref = (0, _usemergedref.useMergedRef)(forwardedRef, ownRef);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"img\", {\n ...rest,\n ...getDynamicProps(fetchPriority),\n // It's intended to keep `loading` before `src` because React updates\n // props in order which causes Safari/Firefox to not lazy load properly.\n // See https://github.com/facebook/react/issues/25883\n loading: loading,\n width: width,\n height: height,\n decoding: decoding,\n \"data-nimg\": fill ? 'fill' : '1',\n className: className,\n style: style,\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n sizes: sizes,\n srcSet: srcSet,\n src: src,\n ref: ref,\n onLoad: (event)=>{\n const img = event.currentTarget;\n handleLoading(img, placeholder, onLoadRef, onLoadingCompleteRef, setBlurComplete, unoptimized, sizesInput);\n },\n onError: (event)=>{\n // if the real image fails to load, this will ensure \"alt\" is visible\n setShowAltText(true);\n if (placeholder !== 'empty') {\n // If the real image fails to load, this will still remove the placeholder.\n setBlurComplete(true);\n }\n if (onError) {\n onError(event);\n }\n }\n });\n});\nfunction ImagePreload(param) {\n let { isAppRouter, imgAttributes } = param;\n const opts = {\n as: 'image',\n imageSrcSet: imgAttributes.srcSet,\n imageSizes: imgAttributes.sizes,\n crossOrigin: imgAttributes.crossOrigin,\n referrerPolicy: imgAttributes.referrerPolicy,\n ...getDynamicProps(imgAttributes.fetchPriority)\n };\n if (isAppRouter && _reactdom.default.preload) {\n _reactdom.default.preload(imgAttributes.src, opts);\n return null;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_head.default, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"link\", {\n rel: \"preload\",\n // Note how we omit the `href` attribute, as it would only be relevant\n // for browsers that do not support `imagesrcset`, and in those cases\n // it would cause the incorrect image to be preloaded.\n //\n // https://html.spec.whatwg.org/multipage/semantics.html#attr-link-imagesrcset\n href: imgAttributes.srcSet ? undefined : imgAttributes.src,\n ...opts\n }, '__nimg-' + imgAttributes.src + imgAttributes.srcSet + imgAttributes.sizes)\n });\n}\nconst Image = /*#__PURE__*/ (0, _react.forwardRef)((props, forwardedRef)=>{\n const pagesRouter = (0, _react.useContext)(_routercontextsharedruntime.RouterContext);\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter;\n const configContext = (0, _react.useContext)(_imageconfigcontextsharedruntime.ImageConfigContext);\n const config = (0, _react.useMemo)(()=>{\n var _c_qualities;\n const c = configEnv || configContext || _imageconfig.imageConfigDefault;\n const allSizes = [\n ...c.deviceSizes,\n ...c.imageSizes\n ].sort((a, b)=>a - b);\n const deviceSizes = c.deviceSizes.sort((a, b)=>a - b);\n const qualities = (_c_qualities = c.qualities) == null ? void 0 : _c_qualities.sort((a, b)=>a - b);\n return {\n ...c,\n allSizes,\n deviceSizes,\n qualities\n };\n }, [\n configContext\n ]);\n const { onLoad, onLoadingComplete } = props;\n const onLoadRef = (0, _react.useRef)(onLoad);\n (0, _react.useEffect)(()=>{\n onLoadRef.current = onLoad;\n }, [\n onLoad\n ]);\n const onLoadingCompleteRef = (0, _react.useRef)(onLoadingComplete);\n (0, _react.useEffect)(()=>{\n onLoadingCompleteRef.current = onLoadingComplete;\n }, [\n onLoadingComplete\n ]);\n const [blurComplete, setBlurComplete] = (0, _react.useState)(false);\n const [showAltText, setShowAltText] = (0, _react.useState)(false);\n const { props: imgAttributes, meta: imgMeta } = (0, _getimgprops.getImgProps)(props, {\n defaultLoader: _imageloader.default,\n imgConf: config,\n blurComplete,\n showAltText\n });\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(ImageElement, {\n ...imgAttributes,\n unoptimized: imgMeta.unoptimized,\n placeholder: imgMeta.placeholder,\n fill: imgMeta.fill,\n onLoadRef: onLoadRef,\n onLoadingCompleteRef: onLoadingCompleteRef,\n setBlurComplete: setBlurComplete,\n setShowAltText: setShowAltText,\n sizesInput: props.sizes,\n ref: forwardedRef\n }),\n imgMeta.priority ? /*#__PURE__*/ (0, _jsxruntime.jsx)(ImagePreload, {\n isAppRouter: isAppRouter,\n imgAttributes: imgAttributes\n }) : null\n ]\n });\n});\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=image-component.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9pbWFnZS1jb21wb25lbnQuanMiLCJtYXBwaW5ncyI6Ijs7Ozt5Q0FxV2FBOzs7ZUFBQUE7Ozs7Ozs2RUExVk47K0VBQ2M7MkVBQ0o7eUNBQ1c7eUNBWU87NkRBQ0E7c0NBQ1Y7d0RBQ0s7a0ZBR0o7MENBQ0c7QUFFN0IsNENBQTRDO0FBQzVDLE1BQU1DLFlBQVlDLHdmQUE2QjtBQUUvQyxJQUFJLElBQTZCLEVBQUU7O0lBQy9CSSxXQUFtQkMscUJBQXFCLEdBQUc7QUFDL0M7QUFtQkEsMEVBQTBFO0FBQzFFLGlEQUFpRDtBQUNqRCxTQUFTQyxjQUNQQyxHQUEyQixFQUMzQkMsV0FBNkIsRUFDN0JDLFNBQXFELEVBQ3JEQyxvQkFBMkUsRUFDM0VDLGVBQXFDLEVBQ3JDQyxXQUFvQixFQUNwQkMsVUFBOEI7SUFFOUIsTUFBTUMsTUFBTVAsT0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsSUFBS08sR0FBRztJQUNwQixJQUFJLENBQUNQLE9BQU9BLEdBQUcsQ0FBQyxrQkFBa0IsS0FBS08sS0FBSztRQUMxQztJQUNGO0lBQ0FQLEdBQUcsQ0FBQyxrQkFBa0IsR0FBR087SUFDekIsTUFBTUMsSUFBSSxZQUFZUixNQUFNQSxJQUFJUyxNQUFNLEtBQUtDLFFBQVFDLE9BQU87SUFDMURILEVBQUVJLEtBQUssQ0FBQyxLQUFPLEdBQUdDLElBQUksQ0FBQztRQUNyQixJQUFJLENBQUNiLElBQUljLGFBQWEsSUFBSSxDQUFDZCxJQUFJZSxXQUFXLEVBQUU7WUFDMUMsd0NBQXdDO1lBQ3hDLHVCQUF1QjtZQUN2QixzQ0FBc0M7WUFDdEMsc0JBQXNCO1lBQ3RCLHVCQUF1QjtZQUN2QjtRQUNGO1FBQ0EsSUFBSWQsZ0JBQWdCLFNBQVM7WUFDM0JHLGdCQUFnQjtRQUNsQjtRQUNBLElBQUlGLGFBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFVBQVdjLE9BQU8sRUFBRTtZQUN0QiwrQ0FBK0M7WUFDL0MsMENBQTBDO1lBQzFDLDJDQUEyQztZQUMzQyxNQUFNQyxRQUFRLElBQUlDLE1BQU07WUFDeEJDLE9BQU9DLGNBQWMsQ0FBQ0gsT0FBTyxVQUFVO2dCQUFFSSxVQUFVO2dCQUFPQyxPQUFPdEI7WUFBSTtZQUNyRSxJQUFJdUIsWUFBWTtZQUNoQixJQUFJQyxVQUFVO1lBQ2R0QixVQUFVYyxPQUFPLENBQUM7Z0JBQ2hCLEdBQUdDLEtBQUs7Z0JBQ1JRLGFBQWFSO2dCQUNiUyxlQUFlMUI7Z0JBQ2YyQixRQUFRM0I7Z0JBQ1I0QixvQkFBb0IsSUFBTUw7Z0JBQzFCTSxzQkFBc0IsSUFBTUw7Z0JBQzVCTSxTQUFTLEtBQU87Z0JBQ2hCQyxnQkFBZ0I7b0JBQ2RSLFlBQVk7b0JBQ1pOLE1BQU1jLGNBQWM7Z0JBQ3RCO2dCQUNBQyxpQkFBaUI7b0JBQ2ZSLFVBQVU7b0JBQ1ZQLE1BQU1lLGVBQWU7Z0JBQ3ZCO1lBQ0Y7UUFDRjtRQUNBLElBQUk3Qix3QkFBQUEsT0FBQUEsS0FBQUEsSUFBQUEscUJBQXNCYSxPQUFPLEVBQUU7WUFDakNiLHFCQUFxQmEsT0FBTyxDQUFDaEI7UUFDL0I7UUFDQSxJQUFJUCxJQUFvQixFQUFtQjtZQUN6QyxNQUFNeUMsVUFBVSxJQUFJQyxJQUFJNUIsS0FBSyxZQUFZNkIsWUFBWSxDQUFDQyxHQUFHLENBQUMsVUFBVTlCO1lBQ3BFLElBQUlQLElBQUlzQyxZQUFZLENBQUMsaUJBQWlCLFFBQVE7Z0JBQzVDLElBQUksQ0FBQ2pDLGVBQWdCLEVBQUNDLGNBQWNBLGVBQWUsUUFBTSxFQUFJO29CQUMzRCxJQUFJaUMscUJBQ0Z2QyxJQUFJd0MscUJBQXFCLEdBQUdDLEtBQUssR0FBRzdDLE9BQU84QyxVQUFVO29CQUN2RCxJQUFJSCxxQkFBcUIsS0FBSzt3QkFDNUIsSUFBSWpDLGVBQWUsU0FBUzs0QkFDMUJxQyxDQUFBQSxHQUFBQSxVQUFBQSxRQUFBQSxFQUNHLHFCQUFrQlQsVUFBUTt3QkFFL0IsT0FBTzs0QkFDTFMsQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyxxQkFBa0JULFVBQVE7d0JBRS9CO29CQUNGO2dCQUNGO2dCQUNBLElBQUlsQyxJQUFJYyxhQUFhLEVBQUU7b0JBQ3JCLE1BQU0sRUFBRThCLFFBQVEsRUFBRSxHQUFHaEQsT0FBT2lELGdCQUFnQixDQUFDN0MsSUFBSWMsYUFBYTtvQkFDOUQsTUFBTWdDLFFBQVE7d0JBQUM7d0JBQVk7d0JBQVM7cUJBQVc7b0JBQy9DLElBQUksQ0FBQ0EsTUFBTUMsUUFBUSxDQUFDSCxXQUFXO3dCQUM3QkQsQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyxxQkFBa0JULFVBQVEsd0VBQXFFVSxXQUFTLHdCQUFxQkUsTUFDM0hFLEdBQUcsQ0FBQ0MsUUFDSkMsSUFBSSxDQUFDLE9BQUs7b0JBRWpCO2dCQUNGO2dCQUNBLElBQUlsRCxJQUFJbUQsTUFBTSxLQUFLLEdBQUc7b0JBQ3BCUixDQUFBQSxHQUFBQSxVQUFBQSxRQUFBQSxFQUNHLHFCQUFrQlQsVUFBUTtnQkFFL0I7WUFDRjtZQUVBLE1BQU1rQixpQkFDSnBELElBQUltRCxNQUFNLENBQUNFLFFBQVEsT0FBT3JELElBQUlzQyxZQUFZLENBQUM7WUFDN0MsTUFBTWdCLGdCQUFnQnRELElBQUl5QyxLQUFLLENBQUNZLFFBQVEsT0FBT3JELElBQUlzQyxZQUFZLENBQUM7WUFDaEUsSUFDR2Msa0JBQWtCLENBQUNFLGlCQUNuQixDQUFDRixrQkFBa0JFLGVBQ3BCO2dCQUNBWCxDQUFBQSxHQUFBQSxVQUFBQSxRQUFBQSxFQUNHLHFCQUFrQlQsVUFBUTtZQUUvQjtRQUNGO0lBQ0Y7QUFDRjtBQUVBLFNBQVNxQixnQkFDUEMsYUFBc0I7SUFFdEIsSUFBSUMsUUFBUUMsT0FBQUEsR0FBRyxHQUFHO1FBQ2hCLGtEQUFrRDtRQUNsRCxpREFBaUQ7UUFDakQsbURBQW1EO1FBQ25ELE9BQU87WUFBRUY7UUFBYztJQUN6QjtJQUNBLHVEQUF1RDtJQUN2RCw0Q0FBNEM7SUFDNUMsT0FBTztRQUFFRyxlQUFlSDtJQUFjO0FBQ3hDO0FBRUEsTUFBTUksZUFBQUEsV0FBQUEsR0FBZUMsQ0FBQUEsR0FBQUEsT0FBQUEsVUFBQUEsRUFDbkIsUUF3QkVDO1FBdkJBLEVBQ0V2RCxHQUFHLEVBQ0h3RCxNQUFNLEVBQ05DLEtBQUssRUFDTGIsTUFBTSxFQUNOVixLQUFLLEVBQ0x3QixRQUFRLEVBQ1JDLFNBQVMsRUFDVEMsS0FBSyxFQUNMWCxhQUFhLEVBQ2J2RCxXQUFXLEVBQ1htRSxPQUFPLEVBQ1AvRCxXQUFXLEVBQ1hnRSxJQUFJLEVBQ0puRSxTQUFTLEVBQ1RDLG9CQUFvQixFQUNwQkMsZUFBZSxFQUNma0UsY0FBYyxFQUNkaEUsVUFBVSxFQUNWaUUsTUFBTSxFQUNOQyxPQUFPLEVBQ1AsR0FBR0MsTUFDSjtJQUdELE1BQU1DLFNBQVNDLENBQUFBLEdBQUFBLE9BQUFBLFdBQUFBLEVBQ2IsQ0FBQzNFO1FBQ0MsSUFBSSxDQUFDQSxLQUFLO1lBQ1I7UUFDRjtRQUNBLElBQUl3RSxTQUFTO1lBQ1gsMkVBQTJFO1lBQzNFLGlGQUFpRjtZQUNqRixrRkFBa0Y7WUFDbEYsMENBQTBDO1lBQzFDeEUsSUFBSU8sR0FBRyxHQUFHUCxJQUFJTyxHQUFHO1FBQ25CO1FBQ0EsSUFBSWQsSUFBb0IsRUFBbUI7WUFDekMsSUFBSSxDQUFDYyxLQUFLO2dCQUNScUUsUUFBUUMsS0FBSyxDQUFFLDZDQUE0QzdFO1lBQzdEO1lBQ0EsSUFBSUEsSUFBSXNDLFlBQVksQ0FBQyxXQUFXLE1BQU07Z0JBQ3BDc0MsUUFBUUMsS0FBSyxDQUNWO1lBRUw7UUFDRjtRQUNBLElBQUk3RSxJQUFJOEUsUUFBUSxFQUFFO1lBQ2hCL0UsY0FDRUMsS0FDQUMsYUFDQUMsV0FDQUMsc0JBQ0FDLGlCQUNBQyxhQUNBQztRQUVKO0lBQ0YsR0FDQTtRQUNFQztRQUNBTjtRQUNBQztRQUNBQztRQUNBQztRQUNBb0U7UUFDQW5FO1FBQ0FDO0tBQ0Q7SUFHSCxNQUFNeUUsTUFBTUMsQ0FBQUEsR0FBQUEsY0FBQUEsWUFBQUEsRUFBYWxCLGNBQWNZO0lBRXZDLHFCQUNFLHFCQUFDMUUsT0FBQUE7UUFDRSxHQUFHeUUsSUFBSTtRQUNQLEdBQUdsQixnQkFBZ0JDLGNBQWM7UUFDbEMscUVBQXFFO1FBQ3JFLHdFQUF3RTtRQUN4RSxxREFBcUQ7UUFDckRZLFNBQVNBO1FBQ1QzQixPQUFPQTtRQUNQVSxRQUFRQTtRQUNSYyxVQUFVQTtRQUNWZ0IsYUFBV1osT0FBTyxTQUFTO1FBQzNCSCxXQUFXQTtRQUNYQyxPQUFPQTtRQUNQLHVFQUF1RTtRQUN2RSxtRUFBbUU7UUFDbkUseUVBQXlFO1FBQ3pFLDBFQUEwRTtRQUMxRSwyQkFBMkI7UUFDM0Isc0RBQXNEO1FBQ3RESCxPQUFPQTtRQUNQRCxRQUFRQTtRQUNSeEQsS0FBS0E7UUFDTHdFLEtBQUtBO1FBQ0xSLFFBQVEsQ0FBQ3REO1lBQ1AsTUFBTWpCLE1BQU1pQixNQUFNUyxhQUFhO1lBQy9CM0IsY0FDRUMsS0FDQUMsYUFDQUMsV0FDQUMsc0JBQ0FDLGlCQUNBQyxhQUNBQztRQUVKO1FBQ0FrRSxTQUFTLENBQUN2RDtZQUNSLHFFQUFxRTtZQUNyRXFELGVBQWU7WUFDZixJQUFJckUsZ0JBQWdCLFNBQVM7Z0JBQzNCLDJFQUEyRTtnQkFDM0VHLGdCQUFnQjtZQUNsQjtZQUNBLElBQUlvRSxTQUFTO2dCQUNYQSxRQUFRdkQ7WUFDVjtRQUNGOztBQUdOO0FBR0YsU0FBU2lFLGFBQWEsS0FNckI7SUFOcUIsTUFDcEJDLFdBQVcsRUFDWEMsYUFBYSxFQUlkLEdBTnFCO0lBT3BCLE1BQU1DLE9BQWdDO1FBQ3BDQyxJQUFJO1FBQ0pDLGFBQWFILGNBQWNyQixNQUFNO1FBQ2pDeUIsWUFBWUosY0FBY3BCLEtBQUs7UUFDL0J5QixhQUFhTCxjQUFjSyxXQUFXO1FBQ3RDQyxnQkFBZ0JOLGNBQWNNLGNBQWM7UUFDNUMsR0FBR25DLGdCQUFnQjZCLGNBQWM1QixhQUFhLENBQUM7SUFDakQ7SUFFQSxJQUFJMkIsZUFBZVEsVUFBQUEsT0FBUSxDQUFDQyxPQUFPLEVBQUU7UUFDbkNELFVBQUFBLE9BQVEsQ0FBQ0MsT0FBTyxDQUFDUixjQUFjN0UsR0FBRyxFQUFFOEU7UUFDcEMsT0FBTztJQUNUO0lBRUEsT0FDRSxXQURGLEdBQ0UscUJBQUNRLE1BQUFBLE9BQUk7a0JBQ0gsbUNBQUNDLFFBQUFBO1lBT0NDLEtBQUk7WUFDSixzRUFBc0U7WUFDdEUscUVBQXFFO1lBQ3JFLHNEQUFzRDtZQUN0RCxFQUFFO1lBQ0YsOEVBQThFO1lBQzlFQyxNQUFNWixjQUFjckIsTUFBTSxHQUFHa0MsWUFBWWIsY0FBYzdFLEdBQUc7WUFDekQsR0FBRzhFLElBQUk7V0FaTixZQUNBRCxjQUFjN0UsR0FBRyxHQUNqQjZFLGNBQWNyQixNQUFNLEdBQ3BCcUIsY0FBY3BCLEtBQUs7O0FBYTdCO0FBT08sTUFBTXpFLFFBQUFBLFdBQUFBLEdBQVFzRSxDQUFBQSxHQUFBQSxPQUFBQSxVQUFBQSxFQUNuQixDQUFDcUMsT0FBT3BDO0lBQ04sTUFBTXFDLGNBQWNDLENBQUFBLEdBQUFBLE9BQUFBLFVBQUFBLEVBQVdDLDRCQUFBQSxhQUFhO0lBQzVDLDBEQUEwRDtJQUMxRCxNQUFNbEIsY0FBYyxDQUFDZ0I7SUFFckIsTUFBTUcsZ0JBQWdCRixDQUFBQSxHQUFBQSxPQUFBQSxVQUFBQSxFQUFXRyxpQ0FBQUEsa0JBQWtCO0lBQ25ELE1BQU1DLFNBQVNDLENBQUFBLEdBQUFBLE9BQUFBLE9BQUFBLEVBQVE7WUFJSEM7UUFIbEIsTUFBTUEsSUFBSWxILGFBQWE4RyxpQkFBaUJLLGFBQUFBLGtCQUFrQjtRQUMxRCxNQUFNQyxXQUFXO2VBQUlGLEVBQUVHLFdBQVc7ZUFBS0gsRUFBRWxCLFVBQVU7U0FBQyxDQUFDc0IsSUFBSSxDQUFDLENBQUNDLEdBQUdDLElBQU1ELElBQUlDO1FBQ3hFLE1BQU1ILGNBQWNILEVBQUVHLFdBQVcsQ0FBQ0MsSUFBSSxDQUFDLENBQUNDLEdBQUdDLElBQU1ELElBQUlDO1FBQ3JELE1BQU1DLFlBQUFBLGdCQUFZUCxFQUFFTyxTQUFBQSxLQUFTLGdCQUFYUCxhQUFhSSxJQUFJLENBQUMsQ0FBQ0MsR0FBR0MsSUFBTUQsSUFBSUM7UUFDbEQsT0FBTztZQUFFLEdBQUdOLENBQUM7WUFBRUU7WUFBVUM7WUFBYUk7UUFBVTtJQUNsRCxHQUFHO1FBQUNYO0tBQWM7SUFFbEIsTUFBTSxFQUFFL0IsTUFBTSxFQUFFMkMsaUJBQWlCLEVBQUUsR0FBR2hCO0lBQ3RDLE1BQU1oRyxZQUFZaUgsQ0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsRUFBTzVDO0lBRXpCNkMsQ0FBQUEsR0FBQUEsT0FBQUEsU0FBQUEsRUFBVTtRQUNSbEgsVUFBVWMsT0FBTyxHQUFHdUQ7SUFDdEIsR0FBRztRQUFDQTtLQUFPO0lBRVgsTUFBTXBFLHVCQUF1QmdILENBQUFBLEdBQUFBLE9BQUFBLE1BQUFBLEVBQU9EO0lBRXBDRSxDQUFBQSxHQUFBQSxPQUFBQSxTQUFBQSxFQUFVO1FBQ1JqSCxxQkFBcUJhLE9BQU8sR0FBR2tHO0lBQ2pDLEdBQUc7UUFBQ0E7S0FBa0I7SUFFdEIsTUFBTSxDQUFDRyxjQUFjakgsZ0JBQWdCLEdBQUdrSCxDQUFBQSxHQUFBQSxPQUFBQSxRQUFBQSxFQUFTO0lBQ2pELE1BQU0sQ0FBQ0MsYUFBYWpELGVBQWUsR0FBR2dELENBQUFBLEdBQUFBLE9BQUFBLFFBQUFBLEVBQVM7SUFFL0MsTUFBTSxFQUFFcEIsT0FBT2QsYUFBYSxFQUFFb0MsTUFBTUMsT0FBTyxFQUFFLEdBQUdDLENBQUFBLEdBQUFBLGFBQUFBLFdBQUFBLEVBQVl4QixPQUFPO1FBQ2pFeUIsZUFBQUEsYUFBQUEsT0FBYTtRQUNiQyxTQUFTcEI7UUFDVGE7UUFDQUU7SUFDRjtJQUVBLE9BQ0UsV0FERixHQUNFOzswQkFFSSxxQkFBQzNELGNBQUFBO2dCQUNFLEdBQUd3QixhQUFhO2dCQUNqQi9FLGFBQWFvSCxRQUFRcEgsV0FBVztnQkFDaENKLGFBQWF3SCxRQUFReEgsV0FBVztnQkFDaENvRSxNQUFNb0QsUUFBUXBELElBQUk7Z0JBQ2xCbkUsV0FBV0E7Z0JBQ1hDLHNCQUFzQkE7Z0JBQ3RCQyxpQkFBaUJBO2dCQUNqQmtFLGdCQUFnQkE7Z0JBQ2hCaEUsWUFBWTRGLE1BQU1sQyxLQUFLO2dCQUN2QmUsS0FBS2pCOztZQUdSMkQsUUFBUUksUUFBUSxpQkFDZixxQkFBQzNDLGNBQUFBO2dCQUNDQyxhQUFhQTtnQkFDYkMsZUFBZUE7aUJBRWY7OztBQUdWIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvc3JjL2NsaWVudC9pbWFnZS1jb21wb25lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHtcbiAgdXNlUmVmLFxuICB1c2VFZmZlY3QsXG4gIHVzZUNhbGxiYWNrLFxuICB1c2VDb250ZXh0LFxuICB1c2VNZW1vLFxuICB1c2VTdGF0ZSxcbiAgZm9yd2FyZFJlZixcbiAgdXNlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQgSGVhZCBmcm9tICcuLi9zaGFyZWQvbGliL2hlYWQnXG5pbXBvcnQgeyBnZXRJbWdQcm9wcyB9IGZyb20gJy4uL3NoYXJlZC9saWIvZ2V0LWltZy1wcm9wcydcbmltcG9ydCB0eXBlIHtcbiAgSW1hZ2VQcm9wcyxcbiAgSW1nUHJvcHMsXG4gIE9uTG9hZCxcbiAgT25Mb2FkaW5nQ29tcGxldGUsXG4gIFBsYWNlaG9sZGVyVmFsdWUsXG59IGZyb20gJy4uL3NoYXJlZC9saWIvZ2V0LWltZy1wcm9wcydcbmltcG9ydCB0eXBlIHtcbiAgSW1hZ2VDb25maWdDb21wbGV0ZSxcbiAgSW1hZ2VMb2FkZXJQcm9wcyxcbn0gZnJvbSAnLi4vc2hhcmVkL2xpYi9pbWFnZS1jb25maWcnXG5pbXBvcnQgeyBpbWFnZUNvbmZpZ0RlZmF1bHQgfSBmcm9tICcuLi9zaGFyZWQvbGliL2ltYWdlLWNvbmZpZydcbmltcG9ydCB7IEltYWdlQ29uZmlnQ29udGV4dCB9IGZyb20gJy4uL3NoYXJlZC9saWIvaW1hZ2UtY29uZmlnLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyB3YXJuT25jZSB9IGZyb20gJy4uL3NoYXJlZC9saWIvdXRpbHMvd2Fybi1vbmNlJ1xuaW1wb3J0IHsgUm91dGVyQ29udGV4dCB9IGZyb20gJy4uL3NoYXJlZC9saWIvcm91dGVyLWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5cbi8vIFRoaXMgaXMgcmVwbGFjZWQgYnkgd2VicGFjayBhbGlhc1xuaW1wb3J0IGRlZmF1bHRMb2FkZXIgZnJvbSAnbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtbG9hZGVyJ1xuaW1wb3J0IHsgdXNlTWVyZ2VkUmVmIH0gZnJvbSAnLi91c2UtbWVyZ2VkLXJlZidcblxuLy8gVGhpcyBpcyByZXBsYWNlZCBieSB3ZWJwYWNrIGRlZmluZSBwbHVnaW5cbmNvbnN0IGNvbmZpZ0VudiA9IHByb2Nlc3MuZW52Ll9fTkVYVF9JTUFHRV9PUFRTIGFzIGFueSBhcyBJbWFnZUNvbmZpZ0NvbXBsZXRlXG5cbmlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICA7KGdsb2JhbFRoaXMgYXMgYW55KS5fX05FWFRfSU1BR0VfSU1QT1JURUQgPSB0cnVlXG59XG5cbmV4cG9ydCB0eXBlIHsgSW1hZ2VMb2FkZXJQcm9wcyB9XG5leHBvcnQgdHlwZSBJbWFnZUxvYWRlciA9IChwOiBJbWFnZUxvYWRlclByb3BzKSA9PiBzdHJpbmdcblxudHlwZSBJbWdFbGVtZW50V2l0aERhdGFQcm9wID0gSFRNTEltYWdlRWxlbWVudCAmIHtcbiAgJ2RhdGEtbG9hZGVkLXNyYyc6IHN0cmluZyB8IHVuZGVmaW5lZFxufVxuXG50eXBlIEltYWdlRWxlbWVudFByb3BzID0gSW1nUHJvcHMgJiB7XG4gIHVub3B0aW1pemVkOiBib29sZWFuXG4gIHBsYWNlaG9sZGVyOiBQbGFjZWhvbGRlclZhbHVlXG4gIG9uTG9hZFJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxPbkxvYWQgfCB1bmRlZmluZWQ+XG4gIG9uTG9hZGluZ0NvbXBsZXRlUmVmOiBSZWFjdC5NdXRhYmxlUmVmT2JqZWN0PE9uTG9hZGluZ0NvbXBsZXRlIHwgdW5kZWZpbmVkPlxuICBzZXRCbHVyQ29tcGxldGU6IChiOiBib29sZWFuKSA9PiB2b2lkXG4gIHNldFNob3dBbHRUZXh0OiAoYjogYm9vbGVhbikgPT4gdm9pZFxuICBzaXplc0lucHV0OiBzdHJpbmcgfCB1bmRlZmluZWRcbn1cblxuLy8gU2VlIGh0dHBzOi8vc3RhY2tvdmVyZmxvdy5jb20vcS8zOTc3NzgzMy8yNjY1MzUgZm9yIHdoeSB3ZSB1c2UgdGhpcyByZWZcbi8vIGhhbmRsZXIgaW5zdGVhZCBvZiB0aGUgaW1nJ3Mgb25Mb2FkIGF0dHJpYnV0ZS5cbmZ1bmN0aW9uIGhhbmRsZUxvYWRpbmcoXG4gIGltZzogSW1nRWxlbWVudFdpdGhEYXRhUHJvcCxcbiAgcGxhY2Vob2xkZXI6IFBsYWNlaG9sZGVyVmFsdWUsXG4gIG9uTG9hZFJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxPbkxvYWQgfCB1bmRlZmluZWQ+LFxuICBvbkxvYWRpbmdDb21wbGV0ZVJlZjogUmVhY3QuTXV0YWJsZVJlZk9iamVjdDxPbkxvYWRpbmdDb21wbGV0ZSB8IHVuZGVmaW5lZD4sXG4gIHNldEJsdXJDb21wbGV0ZTogKGI6IGJvb2xlYW4pID0+IHZvaWQsXG4gIHVub3B0aW1pemVkOiBib29sZWFuLFxuICBzaXplc0lucHV0OiBzdHJpbmcgfCB1bmRlZmluZWRcbikge1xuICBjb25zdCBzcmMgPSBpbWc/LnNyY1xuICBpZiAoIWltZyB8fCBpbWdbJ2RhdGEtbG9hZGVkLXNyYyddID09PSBzcmMpIHtcbiAgICByZXR1cm5cbiAgfVxuICBpbWdbJ2RhdGEtbG9hZGVkLXNyYyddID0gc3JjXG4gIGNvbnN0IHAgPSAnZGVjb2RlJyBpbiBpbWcgPyBpbWcuZGVjb2RlKCkgOiBQcm9taXNlLnJlc29sdmUoKVxuICBwLmNhdGNoKCgpID0+IHt9KS50aGVuKCgpID0+IHtcbiAgICBpZiAoIWltZy5wYXJlbnRFbGVtZW50IHx8ICFpbWcuaXNDb25uZWN0ZWQpIHtcbiAgICAgIC8vIEV4aXQgZWFybHkgaW4gY2FzZSBvZiByYWNlIGNvbmRpdGlvbjpcbiAgICAgIC8vIC0gb25sb2FkKCkgaXMgY2FsbGVkXG4gICAgICAvLyAtIGRlY29kZSgpIGlzIGNhbGxlZCBidXQgaW5jb21wbGV0ZVxuICAgICAgLy8gLSB1bm1vdW50IGlzIGNhbGxlZFxuICAgICAgLy8gLSBkZWNvZGUoKSBjb21wbGV0ZXNcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpZiAocGxhY2Vob2xkZXIgIT09ICdlbXB0eScpIHtcbiAgICAgIHNldEJsdXJDb21wbGV0ZSh0cnVlKVxuICAgIH1cbiAgICBpZiAob25Mb2FkUmVmPy5jdXJyZW50KSB7XG4gICAgICAvLyBTaW5jZSB3ZSBkb24ndCBoYXZlIHRoZSBTeW50aGV0aWNFdmVudCBoZXJlLFxuICAgICAgLy8gd2UgbXVzdCBjcmVhdGUgb25lIHdpdGggdGhlIHNhbWUgc2hhcGUuXG4gICAgICAvLyBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL2V2ZW50cy5odG1sXG4gICAgICBjb25zdCBldmVudCA9IG5ldyBFdmVudCgnbG9hZCcpXG4gICAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZXZlbnQsICd0YXJnZXQnLCB7IHdyaXRhYmxlOiBmYWxzZSwgdmFsdWU6IGltZyB9KVxuICAgICAgbGV0IHByZXZlbnRlZCA9IGZhbHNlXG4gICAgICBsZXQgc3RvcHBlZCA9IGZhbHNlXG4gICAgICBvbkxvYWRSZWYuY3VycmVudCh7XG4gICAgICAgIC4uLmV2ZW50LFxuICAgICAgICBuYXRpdmVFdmVudDogZXZlbnQsXG4gICAgICAgIGN1cnJlbnRUYXJnZXQ6IGltZyxcbiAgICAgICAgdGFyZ2V0OiBpbWcsXG4gICAgICAgIGlzRGVmYXVsdFByZXZlbnRlZDogKCkgPT4gcHJldmVudGVkLFxuICAgICAgICBpc1Byb3BhZ2F0aW9uU3RvcHBlZDogKCkgPT4gc3RvcHBlZCxcbiAgICAgICAgcGVyc2lzdDogKCkgPT4ge30sXG4gICAgICAgIHByZXZlbnREZWZhdWx0OiAoKSA9PiB7XG4gICAgICAgICAgcHJldmVudGVkID0gdHJ1ZVxuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgfSxcbiAgICAgICAgc3RvcFByb3BhZ2F0aW9uOiAoKSA9PiB7XG4gICAgICAgICAgc3RvcHBlZCA9IHRydWVcbiAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKVxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG4gICAgaWYgKG9uTG9hZGluZ0NvbXBsZXRlUmVmPy5jdXJyZW50KSB7XG4gICAgICBvbkxvYWRpbmdDb21wbGV0ZVJlZi5jdXJyZW50KGltZylcbiAgICB9XG4gICAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICAgIGNvbnN0IG9yaWdTcmMgPSBuZXcgVVJMKHNyYywgJ2h0dHA6Ly9uJykuc2VhcmNoUGFyYW1zLmdldCgndXJsJykgfHwgc3JjXG4gICAgICBpZiAoaW1nLmdldEF0dHJpYnV0ZSgnZGF0YS1uaW1nJykgPT09ICdmaWxsJykge1xuICAgICAgICBpZiAoIXVub3B0aW1pemVkICYmICghc2l6ZXNJbnB1dCB8fCBzaXplc0lucHV0ID09PSAnMTAwdncnKSkge1xuICAgICAgICAgIGxldCB3aWR0aFZpZXdwb3J0UmF0aW8gPVxuICAgICAgICAgICAgaW1nLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoIC8gd2luZG93LmlubmVyV2lkdGhcbiAgICAgICAgICBpZiAod2lkdGhWaWV3cG9ydFJhdGlvIDwgMC42KSB7XG4gICAgICAgICAgICBpZiAoc2l6ZXNJbnB1dCA9PT0gJzEwMHZ3Jykge1xuICAgICAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke29yaWdTcmN9XCIgaGFzIFwiZmlsbFwiIHByb3AgYW5kIFwic2l6ZXNcIiBwcm9wIG9mIFwiMTAwdndcIiwgYnV0IGltYWdlIGlzIG5vdCByZW5kZXJlZCBhdCBmdWxsIHZpZXdwb3J0IHdpZHRoLiBQbGVhc2UgYWRqdXN0IFwic2l6ZXNcIiB0byBpbXByb3ZlIHBhZ2UgcGVyZm9ybWFuY2UuIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2ltYWdlI3NpemVzYFxuICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke29yaWdTcmN9XCIgaGFzIFwiZmlsbFwiIGJ1dCBpcyBtaXNzaW5nIFwic2l6ZXNcIiBwcm9wLiBQbGVhc2UgYWRkIGl0IHRvIGltcHJvdmUgcGFnZSBwZXJmb3JtYW5jZS4gUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2Ujc2l6ZXNgXG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGltZy5wYXJlbnRFbGVtZW50KSB7XG4gICAgICAgICAgY29uc3QgeyBwb3NpdGlvbiB9ID0gd2luZG93LmdldENvbXB1dGVkU3R5bGUoaW1nLnBhcmVudEVsZW1lbnQpXG4gICAgICAgICAgY29uc3QgdmFsaWQgPSBbJ2Fic29sdXRlJywgJ2ZpeGVkJywgJ3JlbGF0aXZlJ11cbiAgICAgICAgICBpZiAoIXZhbGlkLmluY2x1ZGVzKHBvc2l0aW9uKSkge1xuICAgICAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7b3JpZ1NyY31cIiBoYXMgXCJmaWxsXCIgYW5kIHBhcmVudCBlbGVtZW50IHdpdGggaW52YWxpZCBcInBvc2l0aW9uXCIuIFByb3ZpZGVkIFwiJHtwb3NpdGlvbn1cIiBzaG91bGQgYmUgb25lIG9mICR7dmFsaWRcbiAgICAgICAgICAgICAgICAubWFwKFN0cmluZylcbiAgICAgICAgICAgICAgICAuam9pbignLCcpfS5gXG4gICAgICAgICAgICApXG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChpbWcuaGVpZ2h0ID09PSAwKSB7XG4gICAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke29yaWdTcmN9XCIgaGFzIFwiZmlsbFwiIGFuZCBhIGhlaWdodCB2YWx1ZSBvZiAwLiBUaGlzIGlzIGxpa2VseSBiZWNhdXNlIHRoZSBwYXJlbnQgZWxlbWVudCBvZiB0aGUgaW1hZ2UgaGFzIG5vdCBiZWVuIHN0eWxlZCB0byBoYXZlIGEgc2V0IGhlaWdodC5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGhlaWdodE1vZGlmaWVkID1cbiAgICAgICAgaW1nLmhlaWdodC50b1N0cmluZygpICE9PSBpbWcuZ2V0QXR0cmlidXRlKCdoZWlnaHQnKVxuICAgICAgY29uc3Qgd2lkdGhNb2RpZmllZCA9IGltZy53aWR0aC50b1N0cmluZygpICE9PSBpbWcuZ2V0QXR0cmlidXRlKCd3aWR0aCcpXG4gICAgICBpZiAoXG4gICAgICAgIChoZWlnaHRNb2RpZmllZCAmJiAhd2lkdGhNb2RpZmllZCkgfHxcbiAgICAgICAgKCFoZWlnaHRNb2RpZmllZCAmJiB3aWR0aE1vZGlmaWVkKVxuICAgICAgKSB7XG4gICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7b3JpZ1NyY31cIiBoYXMgZWl0aGVyIHdpZHRoIG9yIGhlaWdodCBtb2RpZmllZCwgYnV0IG5vdCB0aGUgb3RoZXIuIElmIHlvdSB1c2UgQ1NTIHRvIGNoYW5nZSB0aGUgc2l6ZSBvZiB5b3VyIGltYWdlLCBhbHNvIGluY2x1ZGUgdGhlIHN0eWxlcyAnd2lkdGg6IFwiYXV0b1wiJyBvciAnaGVpZ2h0OiBcImF1dG9cIicgdG8gbWFpbnRhaW4gdGhlIGFzcGVjdCByYXRpby5gXG4gICAgICAgIClcbiAgICAgIH1cbiAgICB9XG4gIH0pXG59XG5cbmZ1bmN0aW9uIGdldER5bmFtaWNQcm9wcyhcbiAgZmV0Y2hQcmlvcml0eT86IHN0cmluZ1xuKTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPiB7XG4gIGlmIChCb29sZWFuKHVzZSkpIHtcbiAgICAvLyBJbiBSZWFjdCAxOS4wLjAgb3IgbmV3ZXIsIHdlIG11c3QgdXNlIGNhbWVsQ2FzZVxuICAgIC8vIHByb3AgdG8gYXZvaWQgXCJXYXJuaW5nOiBJbnZhbGlkIERPTSBwcm9wZXJ0eVwiLlxuICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yNTkyN1xuICAgIHJldHVybiB7IGZldGNoUHJpb3JpdHkgfVxuICB9XG4gIC8vIEluIFJlYWN0IDE4LjIuMCBvciBvbGRlciwgd2UgbXVzdCB1c2UgbG93ZXJjYXNlIHByb3BcbiAgLy8gdG8gYXZvaWQgXCJXYXJuaW5nOiBJbnZhbGlkIERPTSBwcm9wZXJ0eVwiLlxuICByZXR1cm4geyBmZXRjaHByaW9yaXR5OiBmZXRjaFByaW9yaXR5IH1cbn1cblxuY29uc3QgSW1hZ2VFbGVtZW50ID0gZm9yd2FyZFJlZjxIVE1MSW1hZ2VFbGVtZW50IHwgbnVsbCwgSW1hZ2VFbGVtZW50UHJvcHM+KFxuICAoXG4gICAge1xuICAgICAgc3JjLFxuICAgICAgc3JjU2V0LFxuICAgICAgc2l6ZXMsXG4gICAgICBoZWlnaHQsXG4gICAgICB3aWR0aCxcbiAgICAgIGRlY29kaW5nLFxuICAgICAgY2xhc3NOYW1lLFxuICAgICAgc3R5bGUsXG4gICAgICBmZXRjaFByaW9yaXR5LFxuICAgICAgcGxhY2Vob2xkZXIsXG4gICAgICBsb2FkaW5nLFxuICAgICAgdW5vcHRpbWl6ZWQsXG4gICAgICBmaWxsLFxuICAgICAgb25Mb2FkUmVmLFxuICAgICAgb25Mb2FkaW5nQ29tcGxldGVSZWYsXG4gICAgICBzZXRCbHVyQ29tcGxldGUsXG4gICAgICBzZXRTaG93QWx0VGV4dCxcbiAgICAgIHNpemVzSW5wdXQsXG4gICAgICBvbkxvYWQsXG4gICAgICBvbkVycm9yLFxuICAgICAgLi4ucmVzdFxuICAgIH0sXG4gICAgZm9yd2FyZGVkUmVmXG4gICkgPT4ge1xuICAgIGNvbnN0IG93blJlZiA9IHVzZUNhbGxiYWNrKFxuICAgICAgKGltZzogSW1nRWxlbWVudFdpdGhEYXRhUHJvcCB8IG51bGwpID0+IHtcbiAgICAgICAgaWYgKCFpbWcpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICBpZiAob25FcnJvcikge1xuICAgICAgICAgIC8vIElmIHRoZSBpbWFnZSBoYXMgYW4gZXJyb3IgYmVmb3JlIHJlYWN0IGh5ZHJhdGVzLCB0aGVuIHRoZSBlcnJvciBpcyBsb3N0LlxuICAgICAgICAgIC8vIFRoZSB3b3JrYXJvdW5kIGlzIHRvIHdhaXQgdW50aWwgdGhlIGltYWdlIGlzIG1vdW50ZWQgd2hpY2ggaXMgYWZ0ZXIgaHlkcmF0aW9uLFxuICAgICAgICAgIC8vIHRoZW4gd2Ugc2V0IHRoZSBzcmMgYWdhaW4gdG8gdHJpZ2dlciB0aGUgZXJyb3IgaGFuZGxlciAoaWYgdGhlcmUgd2FzIGFuIGVycm9yKS5cbiAgICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1hc3NpZ25cbiAgICAgICAgICBpbWcuc3JjID0gaW1nLnNyY1xuICAgICAgICB9XG4gICAgICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICAgICAgaWYgKCFzcmMpIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoYEltYWdlIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJzcmNcIiBwcm9wZXJ0eTpgLCBpbWcpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChpbWcuZ2V0QXR0cmlidXRlKCdhbHQnKSA9PT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcihcbiAgICAgICAgICAgICAgYEltYWdlIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJhbHRcIiBwcm9wZXJ0eS4gUGxlYXNlIGFkZCBBbHRlcm5hdGl2ZSBUZXh0IHRvIGRlc2NyaWJlIHRoZSBpbWFnZSBmb3Igc2NyZWVuIHJlYWRlcnMgYW5kIHNlYXJjaCBlbmdpbmVzLmBcbiAgICAgICAgICAgIClcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGltZy5jb21wbGV0ZSkge1xuICAgICAgICAgIGhhbmRsZUxvYWRpbmcoXG4gICAgICAgICAgICBpbWcsXG4gICAgICAgICAgICBwbGFjZWhvbGRlcixcbiAgICAgICAgICAgIG9uTG9hZFJlZixcbiAgICAgICAgICAgIG9uTG9hZGluZ0NvbXBsZXRlUmVmLFxuICAgICAgICAgICAgc2V0Qmx1ckNvbXBsZXRlLFxuICAgICAgICAgICAgdW5vcHRpbWl6ZWQsXG4gICAgICAgICAgICBzaXplc0lucHV0XG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9LFxuICAgICAgW1xuICAgICAgICBzcmMsXG4gICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICBvbkxvYWRSZWYsXG4gICAgICAgIG9uTG9hZGluZ0NvbXBsZXRlUmVmLFxuICAgICAgICBzZXRCbHVyQ29tcGxldGUsXG4gICAgICAgIG9uRXJyb3IsXG4gICAgICAgIHVub3B0aW1pemVkLFxuICAgICAgICBzaXplc0lucHV0LFxuICAgICAgXVxuICAgIClcblxuICAgIGNvbnN0IHJlZiA9IHVzZU1lcmdlZFJlZihmb3J3YXJkZWRSZWYsIG93blJlZilcblxuICAgIHJldHVybiAoXG4gICAgICA8aW1nXG4gICAgICAgIHsuLi5yZXN0fVxuICAgICAgICB7Li4uZ2V0RHluYW1pY1Byb3BzKGZldGNoUHJpb3JpdHkpfVxuICAgICAgICAvLyBJdCdzIGludGVuZGVkIHRvIGtlZXAgYGxvYWRpbmdgIGJlZm9yZSBgc3JjYCBiZWNhdXNlIFJlYWN0IHVwZGF0ZXNcbiAgICAgICAgLy8gcHJvcHMgaW4gb3JkZXIgd2hpY2ggY2F1c2VzIFNhZmFyaS9GaXJlZm94IHRvIG5vdCBsYXp5IGxvYWQgcHJvcGVybHkuXG4gICAgICAgIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzI1ODgzXG4gICAgICAgIGxvYWRpbmc9e2xvYWRpbmd9XG4gICAgICAgIHdpZHRoPXt3aWR0aH1cbiAgICAgICAgaGVpZ2h0PXtoZWlnaHR9XG4gICAgICAgIGRlY29kaW5nPXtkZWNvZGluZ31cbiAgICAgICAgZGF0YS1uaW1nPXtmaWxsID8gJ2ZpbGwnIDogJzEnfVxuICAgICAgICBjbGFzc05hbWU9e2NsYXNzTmFtZX1cbiAgICAgICAgc3R5bGU9e3N0eWxlfVxuICAgICAgICAvLyBJdCdzIGludGVuZGVkIHRvIGtlZXAgYHNyY2AgdGhlIGxhc3QgYXR0cmlidXRlIGJlY2F1c2UgUmVhY3QgdXBkYXRlc1xuICAgICAgICAvLyBhdHRyaWJ1dGVzIGluIG9yZGVyLiBJZiB3ZSBrZWVwIGBzcmNgIHRoZSBmaXJzdCBvbmUsIFNhZmFyaSB3aWxsXG4gICAgICAgIC8vIGltbWVkaWF0ZWx5IHN0YXJ0IHRvIGZldGNoIGBzcmNgLCBiZWZvcmUgYHNpemVzYCBhbmQgYHNyY1NldGAgYXJlIGV2ZW5cbiAgICAgICAgLy8gdXBkYXRlZCBieSBSZWFjdC4gVGhhdCBjYXVzZXMgbXVsdGlwbGUgdW5uZWNlc3NhcnkgcmVxdWVzdHMgaWYgYHNyY1NldGBcbiAgICAgICAgLy8gYW5kIGBzaXplc2AgYXJlIGRlZmluZWQuXG4gICAgICAgIC8vIFRoaXMgYnVnIGNhbm5vdCBiZSByZXByb2R1Y2VkIGluIENocm9tZSBvciBGaXJlZm94LlxuICAgICAgICBzaXplcz17c2l6ZXN9XG4gICAgICAgIHNyY1NldD17c3JjU2V0fVxuICAgICAgICBzcmM9e3NyY31cbiAgICAgICAgcmVmPXtyZWZ9XG4gICAgICAgIG9uTG9hZD17KGV2ZW50KSA9PiB7XG4gICAgICAgICAgY29uc3QgaW1nID0gZXZlbnQuY3VycmVudFRhcmdldCBhcyBJbWdFbGVtZW50V2l0aERhdGFQcm9wXG4gICAgICAgICAgaGFuZGxlTG9hZGluZyhcbiAgICAgICAgICAgIGltZyxcbiAgICAgICAgICAgIHBsYWNlaG9sZGVyLFxuICAgICAgICAgICAgb25Mb2FkUmVmLFxuICAgICAgICAgICAgb25Mb2FkaW5nQ29tcGxldGVSZWYsXG4gICAgICAgICAgICBzZXRCbHVyQ29tcGxldGUsXG4gICAgICAgICAgICB1bm9wdGltaXplZCxcbiAgICAgICAgICAgIHNpemVzSW5wdXRcbiAgICAgICAgICApXG4gICAgICAgIH19XG4gICAgICAgIG9uRXJyb3I9eyhldmVudCkgPT4ge1xuICAgICAgICAgIC8vIGlmIHRoZSByZWFsIGltYWdlIGZhaWxzIHRvIGxvYWQsIHRoaXMgd2lsbCBlbnN1cmUgXCJhbHRcIiBpcyB2aXNpYmxlXG4gICAgICAgICAgc2V0U2hvd0FsdFRleHQodHJ1ZSlcbiAgICAgICAgICBpZiAocGxhY2Vob2xkZXIgIT09ICdlbXB0eScpIHtcbiAgICAgICAgICAgIC8vIElmIHRoZSByZWFsIGltYWdlIGZhaWxzIHRvIGxvYWQsIHRoaXMgd2lsbCBzdGlsbCByZW1vdmUgdGhlIHBsYWNlaG9sZGVyLlxuICAgICAgICAgICAgc2V0Qmx1ckNvbXBsZXRlKHRydWUpXG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChvbkVycm9yKSB7XG4gICAgICAgICAgICBvbkVycm9yKGV2ZW50KVxuICAgICAgICAgIH1cbiAgICAgICAgfX1cbiAgICAgIC8+XG4gICAgKVxuICB9XG4pXG5cbmZ1bmN0aW9uIEltYWdlUHJlbG9hZCh7XG4gIGlzQXBwUm91dGVyLFxuICBpbWdBdHRyaWJ1dGVzLFxufToge1xuICBpc0FwcFJvdXRlcjogYm9vbGVhblxuICBpbWdBdHRyaWJ1dGVzOiBJbWdQcm9wc1xufSkge1xuICBjb25zdCBvcHRzOiBSZWFjdERPTS5QcmVsb2FkT3B0aW9ucyA9IHtcbiAgICBhczogJ2ltYWdlJyxcbiAgICBpbWFnZVNyY1NldDogaW1nQXR0cmlidXRlcy5zcmNTZXQsXG4gICAgaW1hZ2VTaXplczogaW1nQXR0cmlidXRlcy5zaXplcyxcbiAgICBjcm9zc09yaWdpbjogaW1nQXR0cmlidXRlcy5jcm9zc09yaWdpbixcbiAgICByZWZlcnJlclBvbGljeTogaW1nQXR0cmlidXRlcy5yZWZlcnJlclBvbGljeSxcbiAgICAuLi5nZXREeW5hbWljUHJvcHMoaW1nQXR0cmlidXRlcy5mZXRjaFByaW9yaXR5KSxcbiAgfVxuXG4gIGlmIChpc0FwcFJvdXRlciAmJiBSZWFjdERPTS5wcmVsb2FkKSB7XG4gICAgUmVhY3RET00ucHJlbG9hZChpbWdBdHRyaWJ1dGVzLnNyYywgb3B0cylcbiAgICByZXR1cm4gbnVsbFxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8SGVhZD5cbiAgICAgIDxsaW5rXG4gICAgICAgIGtleT17XG4gICAgICAgICAgJ19fbmltZy0nICtcbiAgICAgICAgICBpbWdBdHRyaWJ1dGVzLnNyYyArXG4gICAgICAgICAgaW1nQXR0cmlidXRlcy5zcmNTZXQgK1xuICAgICAgICAgIGltZ0F0dHJpYnV0ZXMuc2l6ZXNcbiAgICAgICAgfVxuICAgICAgICByZWw9XCJwcmVsb2FkXCJcbiAgICAgICAgLy8gTm90ZSBob3cgd2Ugb21pdCB0aGUgYGhyZWZgIGF0dHJpYnV0ZSwgYXMgaXQgd291bGQgb25seSBiZSByZWxldmFudFxuICAgICAgICAvLyBmb3IgYnJvd3NlcnMgdGhhdCBkbyBub3Qgc3VwcG9ydCBgaW1hZ2VzcmNzZXRgLCBhbmQgaW4gdGhvc2UgY2FzZXNcbiAgICAgICAgLy8gaXQgd291bGQgY2F1c2UgdGhlIGluY29ycmVjdCBpbWFnZSB0byBiZSBwcmVsb2FkZWQuXG4gICAgICAgIC8vXG4gICAgICAgIC8vIGh0dHBzOi8vaHRtbC5zcGVjLndoYXR3Zy5vcmcvbXVsdGlwYWdlL3NlbWFudGljcy5odG1sI2F0dHItbGluay1pbWFnZXNyY3NldFxuICAgICAgICBocmVmPXtpbWdBdHRyaWJ1dGVzLnNyY1NldCA/IHVuZGVmaW5lZCA6IGltZ0F0dHJpYnV0ZXMuc3JjfVxuICAgICAgICB7Li4ub3B0c31cbiAgICAgIC8+XG4gICAgPC9IZWFkPlxuICApXG59XG5cbi8qKlxuICogVGhlIGBJbWFnZWAgY29tcG9uZW50IGlzIHVzZWQgdG8gb3B0aW1pemUgaW1hZ2VzLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgZG9jczogYEltYWdlYF0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvY29tcG9uZW50cy9pbWFnZSlcbiAqL1xuZXhwb3J0IGNvbnN0IEltYWdlID0gZm9yd2FyZFJlZjxIVE1MSW1hZ2VFbGVtZW50IHwgbnVsbCwgSW1hZ2VQcm9wcz4oXG4gIChwcm9wcywgZm9yd2FyZGVkUmVmKSA9PiB7XG4gICAgY29uc3QgcGFnZXNSb3V0ZXIgPSB1c2VDb250ZXh0KFJvdXRlckNvbnRleHQpXG4gICAgLy8gV2UncmUgaW4gdGhlIGFwcCBkaXJlY3RvcnkgaWYgdGhlcmUgaXMgbm8gcGFnZXMgcm91dGVyLlxuICAgIGNvbnN0IGlzQXBwUm91dGVyID0gIXBhZ2VzUm91dGVyXG5cbiAgICBjb25zdCBjb25maWdDb250ZXh0ID0gdXNlQ29udGV4dChJbWFnZUNvbmZpZ0NvbnRleHQpXG4gICAgY29uc3QgY29uZmlnID0gdXNlTWVtbygoKSA9PiB7XG4gICAgICBjb25zdCBjID0gY29uZmlnRW52IHx8IGNvbmZpZ0NvbnRleHQgfHwgaW1hZ2VDb25maWdEZWZhdWx0XG4gICAgICBjb25zdCBhbGxTaXplcyA9IFsuLi5jLmRldmljZVNpemVzLCAuLi5jLmltYWdlU2l6ZXNdLnNvcnQoKGEsIGIpID0+IGEgLSBiKVxuICAgICAgY29uc3QgZGV2aWNlU2l6ZXMgPSBjLmRldmljZVNpemVzLnNvcnQoKGEsIGIpID0+IGEgLSBiKVxuICAgICAgY29uc3QgcXVhbGl0aWVzID0gYy5xdWFsaXRpZXM/LnNvcnQoKGEsIGIpID0+IGEgLSBiKVxuICAgICAgcmV0dXJuIHsgLi4uYywgYWxsU2l6ZXMsIGRldmljZVNpemVzLCBxdWFsaXRpZXMgfVxuICAgIH0sIFtjb25maWdDb250ZXh0XSlcblxuICAgIGNvbnN0IHsgb25Mb2FkLCBvbkxvYWRpbmdDb21wbGV0ZSB9ID0gcHJvcHNcbiAgICBjb25zdCBvbkxvYWRSZWYgPSB1c2VSZWYob25Mb2FkKVxuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgIG9uTG9hZFJlZi5jdXJyZW50ID0gb25Mb2FkXG4gICAgfSwgW29uTG9hZF0pXG5cbiAgICBjb25zdCBvbkxvYWRpbmdDb21wbGV0ZVJlZiA9IHVzZVJlZihvbkxvYWRpbmdDb21wbGV0ZSlcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICBvbkxvYWRpbmdDb21wbGV0ZVJlZi5jdXJyZW50ID0gb25Mb2FkaW5nQ29tcGxldGVcbiAgICB9LCBbb25Mb2FkaW5nQ29tcGxldGVdKVxuXG4gICAgY29uc3QgW2JsdXJDb21wbGV0ZSwgc2V0Qmx1ckNvbXBsZXRlXSA9IHVzZVN0YXRlKGZhbHNlKVxuICAgIGNvbnN0IFtzaG93QWx0VGV4dCwgc2V0U2hvd0FsdFRleHRdID0gdXNlU3RhdGUoZmFsc2UpXG5cbiAgICBjb25zdCB7IHByb3BzOiBpbWdBdHRyaWJ1dGVzLCBtZXRhOiBpbWdNZXRhIH0gPSBnZXRJbWdQcm9wcyhwcm9wcywge1xuICAgICAgZGVmYXVsdExvYWRlcixcbiAgICAgIGltZ0NvbmY6IGNvbmZpZyxcbiAgICAgIGJsdXJDb21wbGV0ZSxcbiAgICAgIHNob3dBbHRUZXh0LFxuICAgIH0pXG5cbiAgICByZXR1cm4gKFxuICAgICAgPD5cbiAgICAgICAge1xuICAgICAgICAgIDxJbWFnZUVsZW1lbnRcbiAgICAgICAgICAgIHsuLi5pbWdBdHRyaWJ1dGVzfVxuICAgICAgICAgICAgdW5vcHRpbWl6ZWQ9e2ltZ01ldGEudW5vcHRpbWl6ZWR9XG4gICAgICAgICAgICBwbGFjZWhvbGRlcj17aW1nTWV0YS5wbGFjZWhvbGRlcn1cbiAgICAgICAgICAgIGZpbGw9e2ltZ01ldGEuZmlsbH1cbiAgICAgICAgICAgIG9uTG9hZFJlZj17b25Mb2FkUmVmfVxuICAgICAgICAgICAgb25Mb2FkaW5nQ29tcGxldGVSZWY9e29uTG9hZGluZ0NvbXBsZXRlUmVmfVxuICAgICAgICAgICAgc2V0Qmx1ckNvbXBsZXRlPXtzZXRCbHVyQ29tcGxldGV9XG4gICAgICAgICAgICBzZXRTaG93QWx0VGV4dD17c2V0U2hvd0FsdFRleHR9XG4gICAgICAgICAgICBzaXplc0lucHV0PXtwcm9wcy5zaXplc31cbiAgICAgICAgICAgIHJlZj17Zm9yd2FyZGVkUmVmfVxuICAgICAgICAgIC8+XG4gICAgICAgIH1cbiAgICAgICAge2ltZ01ldGEucHJpb3JpdHkgPyAoXG4gICAgICAgICAgPEltYWdlUHJlbG9hZFxuICAgICAgICAgICAgaXNBcHBSb3V0ZXI9e2lzQXBwUm91dGVyfVxuICAgICAgICAgICAgaW1nQXR0cmlidXRlcz17aW1nQXR0cmlidXRlc31cbiAgICAgICAgICAvPlxuICAgICAgICApIDogbnVsbH1cbiAgICAgIDwvPlxuICAgIClcbiAgfVxuKVxuIl0sIm5hbWVzIjpbIkltYWdlIiwiY29uZmlnRW52IiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JTUFHRV9PUFRTIiwid2luZG93IiwiZ2xvYmFsVGhpcyIsIl9fTkVYVF9JTUFHRV9JTVBPUlRFRCIsImhhbmRsZUxvYWRpbmciLCJpbWciLCJwbGFjZWhvbGRlciIsIm9uTG9hZFJlZiIsIm9uTG9hZGluZ0NvbXBsZXRlUmVmIiwic2V0Qmx1ckNvbXBsZXRlIiwidW5vcHRpbWl6ZWQiLCJzaXplc0lucHV0Iiwic3JjIiwicCIsImRlY29kZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiY2F0Y2giLCJ0aGVuIiwicGFyZW50RWxlbWVudCIsImlzQ29ubmVjdGVkIiwiY3VycmVudCIsImV2ZW50IiwiRXZlbnQiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsIndyaXRhYmxlIiwidmFsdWUiLCJwcmV2ZW50ZWQiLCJzdG9wcGVkIiwibmF0aXZlRXZlbnQiLCJjdXJyZW50VGFyZ2V0IiwidGFyZ2V0IiwiaXNEZWZhdWx0UHJldmVudGVkIiwiaXNQcm9wYWdhdGlvblN0b3BwZWQiLCJwZXJzaXN0IiwicHJldmVudERlZmF1bHQiLCJzdG9wUHJvcGFnYXRpb24iLCJOT0RFX0VOViIsIm9yaWdTcmMiLCJVUkwiLCJzZWFyY2hQYXJhbXMiLCJnZXQiLCJnZXRBdHRyaWJ1dGUiLCJ3aWR0aFZpZXdwb3J0UmF0aW8iLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJ3aWR0aCIsImlubmVyV2lkdGgiLCJ3YXJuT25jZSIsInBvc2l0aW9uIiwiZ2V0Q29tcHV0ZWRTdHlsZSIsInZhbGlkIiwiaW5jbHVkZXMiLCJtYXAiLCJTdHJpbmciLCJqb2luIiwiaGVpZ2h0IiwiaGVpZ2h0TW9kaWZpZWQiLCJ0b1N0cmluZyIsIndpZHRoTW9kaWZpZWQiLCJnZXREeW5hbWljUHJvcHMiLCJmZXRjaFByaW9yaXR5IiwiQm9vbGVhbiIsInVzZSIsImZldGNocHJpb3JpdHkiLCJJbWFnZUVsZW1lbnQiLCJmb3J3YXJkUmVmIiwiZm9yd2FyZGVkUmVmIiwic3JjU2V0Iiwic2l6ZXMiLCJkZWNvZGluZyIsImNsYXNzTmFtZSIsInN0eWxlIiwibG9hZGluZyIsImZpbGwiLCJzZXRTaG93QWx0VGV4dCIsIm9uTG9hZCIsIm9uRXJyb3IiLCJyZXN0Iiwib3duUmVmIiwidXNlQ2FsbGJhY2siLCJjb25zb2xlIiwiZXJyb3IiLCJjb21wbGV0ZSIsInJlZiIsInVzZU1lcmdlZFJlZiIsImRhdGEtbmltZyIsIkltYWdlUHJlbG9hZCIsImlzQXBwUm91dGVyIiwiaW1nQXR0cmlidXRlcyIsIm9wdHMiLCJhcyIsImltYWdlU3JjU2V0IiwiaW1hZ2VTaXplcyIsImNyb3NzT3JpZ2luIiwicmVmZXJyZXJQb2xpY3kiLCJSZWFjdERPTSIsInByZWxvYWQiLCJIZWFkIiwibGluayIsInJlbCIsImhyZWYiLCJ1bmRlZmluZWQiLCJwcm9wcyIsInBhZ2VzUm91dGVyIiwidXNlQ29udGV4dCIsIlJvdXRlckNvbnRleHQiLCJjb25maWdDb250ZXh0IiwiSW1hZ2VDb25maWdDb250ZXh0IiwiY29uZmlnIiwidXNlTWVtbyIsImMiLCJpbWFnZUNvbmZpZ0RlZmF1bHQiLCJhbGxTaXplcyIsImRldmljZVNpemVzIiwic29ydCIsImEiLCJiIiwicXVhbGl0aWVzIiwib25Mb2FkaW5nQ29tcGxldGUiLCJ1c2VSZWYiLCJ1c2VFZmZlY3QiLCJibHVyQ29tcGxldGUiLCJ1c2VTdGF0ZSIsInNob3dBbHRUZXh0IiwibWV0YSIsImltZ01ldGEiLCJnZXRJbWdQcm9wcyIsImRlZmF1bHRMb2FkZXIiLCJpbWdDb25mIiwicHJpb3JpdHkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/client/image-component.js\n");
+
+/***/ }),
+
/***/ "(ssr)/./node_modules/next/dist/client/lib/console.js":
/*!******************************************************!*\
!*** ./node_modules/next/dist/client/lib/console.js ***!
@@ -3117,6 +3349,16 @@ eval("var __webpack_modules__={\"../../node_modules/.pnpm/css-loader@7.1.2_@rspa
/***/ }),
+/***/ "(ssr)/./node_modules/next/dist/compiled/picomatch/index.js":
+/*!************************************************************!*\
+ !*** ./node_modules/next/dist/compiled/picomatch/index.js ***!
+ \************************************************************/
+/***/ ((module) => {
+
+eval("(()=>{\"use strict\";var t={170:(t,e,u)=>{const n=u(510);const isWindows=()=>{if(typeof navigator!==\"undefined\"&&navigator.platform){const t=navigator.platform.toLowerCase();return t===\"win32\"||t===\"windows\"}if(typeof process!==\"undefined\"&&process.platform){return process.platform===\"win32\"}return false};function picomatch(t,e,u=false){if(e&&(e.windows===null||e.windows===undefined)){e={...e,windows:isWindows()}}return n(t,e,u)}Object.assign(picomatch,n);t.exports=picomatch},154:t=>{const e=\"\\\\\\\\/\";const u=`[^${e}]`;const n=\"\\\\.\";const o=\"\\\\+\";const s=\"\\\\?\";const r=\"\\\\/\";const a=\"(?=.)\";const i=\"[^/]\";const c=`(?:${r}|$)`;const p=`(?:^|${r})`;const l=`${n}{1,2}${c}`;const f=`(?!${n})`;const A=`(?!${p}${l})`;const _=`(?!${n}{0,1}${c})`;const R=`(?!${l})`;const E=`[^.${r}]`;const h=`${i}*?`;const g=\"/\";const b={DOT_LITERAL:n,PLUS_LITERAL:o,QMARK_LITERAL:s,SLASH_LITERAL:r,ONE_CHAR:a,QMARK:i,END_ANCHOR:c,DOTS_SLASH:l,NO_DOT:f,NO_DOTS:A,NO_DOT_SLASH:_,NO_DOTS_SLASH:R,QMARK_NO_DOT:E,STAR:h,START_ANCHOR:p,SEP:g};const C={...b,SLASH_LITERAL:`[${e}]`,QMARK:u,STAR:`${u}*?`,DOTS_SLASH:`${n}{1,2}(?:[${e}]|$)`,NO_DOT:`(?!${n})`,NO_DOTS:`(?!(?:^|[${e}])${n}{1,2}(?:[${e}]|$))`,NO_DOT_SLASH:`(?!${n}{0,1}(?:[${e}]|$))`,NO_DOTS_SLASH:`(?!${n}{1,2}(?:[${e}]|$))`,QMARK_NO_DOT:`[^.${e}]`,START_ANCHOR:`(?:^|[${e}])`,END_ANCHOR:`(?:[${e}]|$)`,SEP:\"\\\\\"};const y={alnum:\"a-zA-Z0-9\",alpha:\"a-zA-Z\",ascii:\"\\\\x00-\\\\x7F\",blank:\" \\\\t\",cntrl:\"\\\\x00-\\\\x1F\\\\x7F\",digit:\"0-9\",graph:\"\\\\x21-\\\\x7E\",lower:\"a-z\",print:\"\\\\x20-\\\\x7E \",punct:\"\\\\-!\\\"#$%&'()\\\\*+,./:;<=>?@[\\\\]^_`{|}~\",space:\" \\\\t\\\\r\\\\n\\\\v\\\\f\",upper:\"A-Z\",word:\"A-Za-z0-9_\",xdigit:\"A-Fa-f0-9\"};t.exports={MAX_LENGTH:1024*64,POSIX_REGEX_SOURCE:y,REGEX_BACKSLASH:/\\\\(?![*+?^${}(|)[\\]])/g,REGEX_NON_SPECIAL_CHARS:/^[^@![\\].,$*+?^{}()|\\\\/]+/,REGEX_SPECIAL_CHARS:/[-*+?.^${}(|)[\\]]/,REGEX_SPECIAL_CHARS_BACKREF:/(\\\\?)((\\W)(\\3*))/g,REGEX_SPECIAL_CHARS_GLOBAL:/([-*+?.^${}(|)[\\]])/g,REGEX_REMOVE_BACKSLASH:/(?:\\[.*?[^\\\\]\\]|\\\\(?=.))/g,REPLACEMENTS:{\"***\":\"*\",\"**/**\":\"**\",\"**/**/**\":\"**\"},CHAR_0:48,CHAR_9:57,CHAR_UPPERCASE_A:65,CHAR_LOWERCASE_A:97,CHAR_UPPERCASE_Z:90,CHAR_LOWERCASE_Z:122,CHAR_LEFT_PARENTHESES:40,CHAR_RIGHT_PARENTHESES:41,CHAR_ASTERISK:42,CHAR_AMPERSAND:38,CHAR_AT:64,CHAR_BACKWARD_SLASH:92,CHAR_CARRIAGE_RETURN:13,CHAR_CIRCUMFLEX_ACCENT:94,CHAR_COLON:58,CHAR_COMMA:44,CHAR_DOT:46,CHAR_DOUBLE_QUOTE:34,CHAR_EQUAL:61,CHAR_EXCLAMATION_MARK:33,CHAR_FORM_FEED:12,CHAR_FORWARD_SLASH:47,CHAR_GRAVE_ACCENT:96,CHAR_HASH:35,CHAR_HYPHEN_MINUS:45,CHAR_LEFT_ANGLE_BRACKET:60,CHAR_LEFT_CURLY_BRACE:123,CHAR_LEFT_SQUARE_BRACKET:91,CHAR_LINE_FEED:10,CHAR_NO_BREAK_SPACE:160,CHAR_PERCENT:37,CHAR_PLUS:43,CHAR_QUESTION_MARK:63,CHAR_RIGHT_ANGLE_BRACKET:62,CHAR_RIGHT_CURLY_BRACE:125,CHAR_RIGHT_SQUARE_BRACKET:93,CHAR_SEMICOLON:59,CHAR_SINGLE_QUOTE:39,CHAR_SPACE:32,CHAR_TAB:9,CHAR_UNDERSCORE:95,CHAR_VERTICAL_LINE:124,CHAR_ZERO_WIDTH_NOBREAK_SPACE:65279,extglobChars(t){return{\"!\":{type:\"negate\",open:\"(?:(?!(?:\",close:`))${t.STAR})`},\"?\":{type:\"qmark\",open:\"(?:\",close:\")?\"},\"+\":{type:\"plus\",open:\"(?:\",close:\")+\"},\"*\":{type:\"star\",open:\"(?:\",close:\")*\"},\"@\":{type:\"at\",open:\"(?:\",close:\")\"}}},globChars(t){return t===true?C:b}}},697:(t,e,u)=>{const n=u(154);const o=u(96);const{MAX_LENGTH:s,POSIX_REGEX_SOURCE:r,REGEX_NON_SPECIAL_CHARS:a,REGEX_SPECIAL_CHARS_BACKREF:i,REPLACEMENTS:c}=n;const expandRange=(t,e)=>{if(typeof e.expandRange===\"function\"){return e.expandRange(...t,e)}t.sort();const u=`[${t.join(\"-\")}]`;try{new RegExp(u)}catch(e){return t.map((t=>o.escapeRegex(t))).join(\"..\")}return u};const syntaxError=(t,e)=>`Missing ${t}: \"${e}\" - use \"\\\\\\\\${e}\" to match literal characters`;const parse=(t,e)=>{if(typeof t!==\"string\"){throw new TypeError(\"Expected a string\")}t=c[t]||t;const u={...e};const p=typeof u.maxLength===\"number\"?Math.min(s,u.maxLength):s;let l=t.length;if(l>p){throw new SyntaxError(`Input length: ${l}, exceeds maximum allowed length: ${p}`)}const f={type:\"bos\",value:\"\",output:u.prepend||\"\"};const A=[f];const _=u.capture?\"\":\"?:\";const R=n.globChars(u.windows);const E=n.extglobChars(R);const{DOT_LITERAL:h,PLUS_LITERAL:g,SLASH_LITERAL:b,ONE_CHAR:C,DOTS_SLASH:y,NO_DOT:$,NO_DOT_SLASH:x,NO_DOTS_SLASH:S,QMARK:H,QMARK_NO_DOT:v,STAR:d,START_ANCHOR:L}=R;const globstar=t=>`(${_}(?:(?!${L}${t.dot?y:h}).)*?)`;const T=u.dot?\"\":$;const O=u.dot?H:v;let k=u.bash===true?globstar(u):d;if(u.capture){k=`(${k})`}if(typeof u.noext===\"boolean\"){u.noextglob=u.noext}const m={input:t,index:-1,start:0,dot:u.dot===true,consumed:\"\",output:\"\",prefix:\"\",backtrack:false,negated:false,brackets:0,braces:0,parens:0,quotes:0,globstar:false,tokens:A};t=o.removePrefix(t,m);l=t.length;const w=[];const N=[];const I=[];let B=f;let G;const eos=()=>m.index===l-1;const D=m.peek=(e=1)=>t[m.index+e];const M=m.advance=()=>t[++m.index]||\"\";const remaining=()=>t.slice(m.index+1);const consume=(t=\"\",e=0)=>{m.consumed+=t;m.index+=e};const append=t=>{m.output+=t.output!=null?t.output:t.value;consume(t.value)};const negate=()=>{let t=1;while(D()===\"!\"&&(D(2)!==\"(\"||D(3)===\"?\")){M();m.start++;t++}if(t%2===0){return false}m.negated=true;m.start++;return true};const increment=t=>{m[t]++;I.push(t)};const decrement=t=>{m[t]--;I.pop()};const push=t=>{if(B.type===\"globstar\"){const e=m.braces>0&&(t.type===\"comma\"||t.type===\"brace\");const u=t.extglob===true||w.length&&(t.type===\"pipe\"||t.type===\"paren\");if(t.type!==\"slash\"&&t.type!==\"paren\"&&!e&&!u){m.output=m.output.slice(0,-B.output.length);B.type=\"star\";B.value=\"*\";B.output=k;m.output+=B.output}}if(w.length&&t.type!==\"paren\"){w[w.length-1].inner+=t.value}if(t.value||t.output)append(t);if(B&&B.type===\"text\"&&t.type===\"text\"){B.output=(B.output||B.value)+t.value;B.value+=t.value;return}t.prev=B;A.push(t);B=t};const extglobOpen=(t,e)=>{const n={...E[e],conditions:1,inner:\"\"};n.prev=B;n.parens=m.parens;n.output=m.output;const o=(u.capture?\"(\":\"\")+n.open;increment(\"parens\");push({type:t,value:e,output:m.output?\"\":C});push({type:\"paren\",extglob:true,value:M(),output:o});w.push(n)};const extglobClose=t=>{let n=t.close+(u.capture?\")\":\"\");let o;if(t.type===\"negate\"){let s=k;if(t.inner&&t.inner.length>1&&t.inner.includes(\"/\")){s=globstar(u)}if(s!==k||eos()||/^\\)+$/.test(remaining())){n=t.close=`)$))${s}`}if(t.inner.includes(\"*\")&&(o=remaining())&&/^\\.[^\\\\/.]+$/.test(o)){const u=parse(o,{...e,fastpaths:false}).output;n=t.close=`)${u})${s})`}if(t.prev.type===\"bos\"){m.negatedExtglob=true}}push({type:\"paren\",extglob:true,value:G,output:n});decrement(\"parens\")};if(u.fastpaths!==false&&!/(^[*!]|[/()[\\]{}\"])/.test(t)){let n=false;let s=t.replace(i,((t,e,u,o,s,r)=>{if(o===\"\\\\\"){n=true;return t}if(o===\"?\"){if(e){return e+o+(s?H.repeat(s.length):\"\")}if(r===0){return O+(s?H.repeat(s.length):\"\")}return H.repeat(u.length)}if(o===\".\"){return h.repeat(u.length)}if(o===\"*\"){if(e){return e+o+(s?k:\"\")}return k}return e?t:`\\\\${t}`}));if(n===true){if(u.unescape===true){s=s.replace(/\\\\/g,\"\")}else{s=s.replace(/\\\\+/g,(t=>t.length%2===0?\"\\\\\\\\\":t?\"\\\\\":\"\"))}}if(s===t&&u.contains===true){m.output=t;return m}m.output=o.wrapOutput(s,m,e);return m}while(!eos()){G=M();if(G===\"\\0\"){continue}if(G===\"\\\\\"){const t=D();if(t===\"/\"&&u.bash!==true){continue}if(t===\".\"||t===\";\"){continue}if(!t){G+=\"\\\\\";push({type:\"text\",value:G});continue}const e=/^\\\\+/.exec(remaining());let n=0;if(e&&e[0].length>2){n=e[0].length;m.index+=n;if(n%2!==0){G+=\"\\\\\"}}if(u.unescape===true){G=M()}else{G+=M()}if(m.brackets===0){push({type:\"text\",value:G});continue}}if(m.brackets>0&&(G!==\"]\"||B.value===\"[\"||B.value===\"[^\")){if(u.posix!==false&&G===\":\"){const t=B.value.slice(1);if(t.includes(\"[\")){B.posix=true;if(t.includes(\":\")){const t=B.value.lastIndexOf(\"[\");const e=B.value.slice(0,t);const u=B.value.slice(t+2);const n=r[u];if(n){B.value=e+n;m.backtrack=true;M();if(!f.output&&A.indexOf(B)===1){f.output=C}continue}}}}if(G===\"[\"&&D()!==\":\"||G===\"-\"&&D()===\"]\"){G=`\\\\${G}`}if(G===\"]\"&&(B.value===\"[\"||B.value===\"[^\")){G=`\\\\${G}`}if(u.posix===true&&G===\"!\"&&B.value===\"[\"){G=\"^\"}B.value+=G;append({value:G});continue}if(m.quotes===1&&G!=='\"'){G=o.escapeRegex(G);B.value+=G;append({value:G});continue}if(G==='\"'){m.quotes=m.quotes===1?0:1;if(u.keepQuotes===true){push({type:\"text\",value:G})}continue}if(G===\"(\"){increment(\"parens\");push({type:\"paren\",value:G});continue}if(G===\")\"){if(m.parens===0&&u.strictBrackets===true){throw new SyntaxError(syntaxError(\"opening\",\"(\"))}const t=w[w.length-1];if(t&&m.parens===t.parens+1){extglobClose(w.pop());continue}push({type:\"paren\",value:G,output:m.parens?\")\":\"\\\\)\"});decrement(\"parens\");continue}if(G===\"[\"){if(u.nobracket===true||!remaining().includes(\"]\")){if(u.nobracket!==true&&u.strictBrackets===true){throw new SyntaxError(syntaxError(\"closing\",\"]\"))}G=`\\\\${G}`}else{increment(\"brackets\")}push({type:\"bracket\",value:G});continue}if(G===\"]\"){if(u.nobracket===true||B&&B.type===\"bracket\"&&B.value.length===1){push({type:\"text\",value:G,output:`\\\\${G}`});continue}if(m.brackets===0){if(u.strictBrackets===true){throw new SyntaxError(syntaxError(\"opening\",\"[\"))}push({type:\"text\",value:G,output:`\\\\${G}`});continue}decrement(\"brackets\");const t=B.value.slice(1);if(B.posix!==true&&t[0]===\"^\"&&!t.includes(\"/\")){G=`/${G}`}B.value+=G;append({value:G});if(u.literalBrackets===false||o.hasRegexChars(t)){continue}const e=o.escapeRegex(B.value);m.output=m.output.slice(0,-B.value.length);if(u.literalBrackets===true){m.output+=e;B.value=e;continue}B.value=`(${_}${e}|${B.value})`;m.output+=B.value;continue}if(G===\"{\"&&u.nobrace!==true){increment(\"braces\");const t={type:\"brace\",value:G,output:\"(\",outputIndex:m.output.length,tokensIndex:m.tokens.length};N.push(t);push(t);continue}if(G===\"}\"){const t=N[N.length-1];if(u.nobrace===true||!t){push({type:\"text\",value:G,output:G});continue}let e=\")\";if(t.dots===true){const t=A.slice();const n=[];for(let e=t.length-1;e>=0;e--){A.pop();if(t[e].type===\"brace\"){break}if(t[e].type!==\"dots\"){n.unshift(t[e].value)}}e=expandRange(n,u);m.backtrack=true}if(t.comma!==true&&t.dots!==true){const u=m.output.slice(0,t.outputIndex);const n=m.tokens.slice(t.tokensIndex);t.value=t.output=\"\\\\{\";G=e=\"\\\\}\";m.output=u;for(const t of n){m.output+=t.output||t.value}}push({type:\"brace\",value:G,output:e});decrement(\"braces\");N.pop();continue}if(G===\"|\"){if(w.length>0){w[w.length-1].conditions++}push({type:\"text\",value:G});continue}if(G===\",\"){let t=G;const e=N[N.length-1];if(e&&I[I.length-1]===\"braces\"){e.comma=true;t=\"|\"}push({type:\"comma\",value:G,output:t});continue}if(G===\"/\"){if(B.type===\"dot\"&&m.index===m.start+1){m.start=m.index+1;m.consumed=\"\";m.output=\"\";A.pop();B=f;continue}push({type:\"slash\",value:G,output:b});continue}if(G===\".\"){if(m.braces>0&&B.type===\"dot\"){if(B.value===\".\")B.output=h;const t=N[N.length-1];B.type=\"dots\";B.output+=G;B.value+=G;t.dots=true;continue}if(m.braces+m.parens===0&&B.type!==\"bos\"&&B.type!==\"slash\"){push({type:\"text\",value:G,output:h});continue}push({type:\"dot\",value:G,output:h});continue}if(G===\"?\"){const t=B&&B.value===\"(\";if(!t&&u.noextglob!==true&&D()===\"(\"&&D(2)!==\"?\"){extglobOpen(\"qmark\",G);continue}if(B&&B.type===\"paren\"){const t=D();let e=G;if(B.value===\"(\"&&!/[!=<:]/.test(t)||t===\"<\"&&!/<([!=]|\\w+>)/.test(remaining())){e=`\\\\${G}`}push({type:\"text\",value:G,output:e});continue}if(u.dot!==true&&(B.type===\"slash\"||B.type===\"bos\")){push({type:\"qmark\",value:G,output:v});continue}push({type:\"qmark\",value:G,output:H});continue}if(G===\"!\"){if(u.noextglob!==true&&D()===\"(\"){if(D(2)!==\"?\"||!/[!=<:]/.test(D(3))){extglobOpen(\"negate\",G);continue}}if(u.nonegate!==true&&m.index===0){negate();continue}}if(G===\"+\"){if(u.noextglob!==true&&D()===\"(\"&&D(2)!==\"?\"){extglobOpen(\"plus\",G);continue}if(B&&B.value===\"(\"||u.regex===false){push({type:\"plus\",value:G,output:g});continue}if(B&&(B.type===\"bracket\"||B.type===\"paren\"||B.type===\"brace\")||m.parens>0){push({type:\"plus\",value:G});continue}push({type:\"plus\",value:g});continue}if(G===\"@\"){if(u.noextglob!==true&&D()===\"(\"&&D(2)!==\"?\"){push({type:\"at\",extglob:true,value:G,output:\"\"});continue}push({type:\"text\",value:G});continue}if(G!==\"*\"){if(G===\"$\"||G===\"^\"){G=`\\\\${G}`}const t=a.exec(remaining());if(t){G+=t[0];m.index+=t[0].length}push({type:\"text\",value:G});continue}if(B&&(B.type===\"globstar\"||B.star===true)){B.type=\"star\";B.star=true;B.value+=G;B.output=k;m.backtrack=true;m.globstar=true;consume(G);continue}let e=remaining();if(u.noextglob!==true&&/^\\([^?]/.test(e)){extglobOpen(\"star\",G);continue}if(B.type===\"star\"){if(u.noglobstar===true){consume(G);continue}const n=B.prev;const o=n.prev;const s=n.type===\"slash\"||n.type===\"bos\";const r=o&&(o.type===\"star\"||o.type===\"globstar\");if(u.bash===true&&(!s||e[0]&&e[0]!==\"/\")){push({type:\"star\",value:G,output:\"\"});continue}const a=m.braces>0&&(n.type===\"comma\"||n.type===\"brace\");const i=w.length&&(n.type===\"pipe\"||n.type===\"paren\");if(!s&&n.type!==\"paren\"&&!a&&!i){push({type:\"star\",value:G,output:\"\"});continue}while(e.slice(0,3)===\"/**\"){const u=t[m.index+4];if(u&&u!==\"/\"){break}e=e.slice(3);consume(\"/**\",3)}if(n.type===\"bos\"&&eos()){B.type=\"globstar\";B.value+=G;B.output=globstar(u);m.output=B.output;m.globstar=true;consume(G);continue}if(n.type===\"slash\"&&n.prev.type!==\"bos\"&&!r&&eos()){m.output=m.output.slice(0,-(n.output+B.output).length);n.output=`(?:${n.output}`;B.type=\"globstar\";B.output=globstar(u)+(u.strictSlashes?\")\":\"|$)\");B.value+=G;m.globstar=true;m.output+=n.output+B.output;consume(G);continue}if(n.type===\"slash\"&&n.prev.type!==\"bos\"&&e[0]===\"/\"){const t=e[1]!==void 0?\"|$\":\"\";m.output=m.output.slice(0,-(n.output+B.output).length);n.output=`(?:${n.output}`;B.type=\"globstar\";B.output=`${globstar(u)}${b}|${b}${t})`;B.value+=G;m.output+=n.output+B.output;m.globstar=true;consume(G+M());push({type:\"slash\",value:\"/\",output:\"\"});continue}if(n.type===\"bos\"&&e[0]===\"/\"){B.type=\"globstar\";B.value+=G;B.output=`(?:^|${b}|${globstar(u)}${b})`;m.output=B.output;m.globstar=true;consume(G+M());push({type:\"slash\",value:\"/\",output:\"\"});continue}m.output=m.output.slice(0,-B.output.length);B.type=\"globstar\";B.output=globstar(u);B.value+=G;m.output+=B.output;m.globstar=true;consume(G);continue}const n={type:\"star\",value:G,output:k};if(u.bash===true){n.output=\".*?\";if(B.type===\"bos\"||B.type===\"slash\"){n.output=T+n.output}push(n);continue}if(B&&(B.type===\"bracket\"||B.type===\"paren\")&&u.regex===true){n.output=G;push(n);continue}if(m.index===m.start||B.type===\"slash\"||B.type===\"dot\"){if(B.type===\"dot\"){m.output+=x;B.output+=x}else if(u.dot===true){m.output+=S;B.output+=S}else{m.output+=T;B.output+=T}if(D()!==\"*\"){m.output+=C;B.output+=C}}push(n)}while(m.brackets>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError(\"closing\",\"]\"));m.output=o.escapeLast(m.output,\"[\");decrement(\"brackets\")}while(m.parens>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError(\"closing\",\")\"));m.output=o.escapeLast(m.output,\"(\");decrement(\"parens\")}while(m.braces>0){if(u.strictBrackets===true)throw new SyntaxError(syntaxError(\"closing\",\"}\"));m.output=o.escapeLast(m.output,\"{\");decrement(\"braces\")}if(u.strictSlashes!==true&&(B.type===\"star\"||B.type===\"bracket\")){push({type:\"maybe_slash\",value:\"\",output:`${b}?`})}if(m.backtrack===true){m.output=\"\";for(const t of m.tokens){m.output+=t.output!=null?t.output:t.value;if(t.suffix){m.output+=t.suffix}}}return m};parse.fastpaths=(t,e)=>{const u={...e};const r=typeof u.maxLength===\"number\"?Math.min(s,u.maxLength):s;const a=t.length;if(a>r){throw new SyntaxError(`Input length: ${a}, exceeds maximum allowed length: ${r}`)}t=c[t]||t;const{DOT_LITERAL:i,SLASH_LITERAL:p,ONE_CHAR:l,DOTS_SLASH:f,NO_DOT:A,NO_DOTS:_,NO_DOTS_SLASH:R,STAR:E,START_ANCHOR:h}=n.globChars(u.windows);const g=u.dot?_:A;const b=u.dot?R:A;const C=u.capture?\"\":\"?:\";const y={negated:false,prefix:\"\"};let $=u.bash===true?\".*?\":E;if(u.capture){$=`(${$})`}const globstar=t=>{if(t.noglobstar===true)return $;return`(${C}(?:(?!${h}${t.dot?f:i}).)*?)`};const create=t=>{switch(t){case\"*\":return`${g}${l}${$}`;case\".*\":return`${i}${l}${$}`;case\"*.*\":return`${g}${$}${i}${l}${$}`;case\"*/*\":return`${g}${$}${p}${l}${b}${$}`;case\"**\":return g+globstar(u);case\"**/*\":return`(?:${g}${globstar(u)}${p})?${b}${l}${$}`;case\"**/*.*\":return`(?:${g}${globstar(u)}${p})?${b}${$}${i}${l}${$}`;case\"**/.*\":return`(?:${g}${globstar(u)}${p})?${i}${l}${$}`;default:{const e=/^(.*?)\\.(\\w+)$/.exec(t);if(!e)return;const u=create(e[1]);if(!u)return;return u+i+e[2]}}};const x=o.removePrefix(t,y);let S=create(x);if(S&&u.strictSlashes!==true){S+=`${p}?`}return S};t.exports=parse},510:(t,e,u)=>{const n=u(716);const o=u(697);const s=u(96);const r=u(154);const isObject=t=>t&&typeof t===\"object\"&&!Array.isArray(t);const picomatch=(t,e,u=false)=>{if(Array.isArray(t)){const n=t.map((t=>picomatch(t,e,u)));const arrayMatcher=t=>{for(const e of n){const u=e(t);if(u)return u}return false};return arrayMatcher}const n=isObject(t)&&t.tokens&&t.input;if(t===\"\"||typeof t!==\"string\"&&!n){throw new TypeError(\"Expected pattern to be a non-empty string\")}const o=e||{};const s=o.windows;const r=n?picomatch.compileRe(t,e):picomatch.makeRe(t,e,false,true);const a=r.state;delete r.state;let isIgnored=()=>false;if(o.ignore){const t={...e,ignore:null,onMatch:null,onResult:null};isIgnored=picomatch(o.ignore,t,u)}const matcher=(u,n=false)=>{const{isMatch:i,match:c,output:p}=picomatch.test(u,r,e,{glob:t,posix:s});const l={glob:t,state:a,regex:r,posix:s,input:u,output:p,match:c,isMatch:i};if(typeof o.onResult===\"function\"){o.onResult(l)}if(i===false){l.isMatch=false;return n?l:false}if(isIgnored(u)){if(typeof o.onIgnore===\"function\"){o.onIgnore(l)}l.isMatch=false;return n?l:false}if(typeof o.onMatch===\"function\"){o.onMatch(l)}return n?l:true};if(u){matcher.state=a}return matcher};picomatch.test=(t,e,u,{glob:n,posix:o}={})=>{if(typeof t!==\"string\"){throw new TypeError(\"Expected input to be a string\")}if(t===\"\"){return{isMatch:false,output:\"\"}}const r=u||{};const a=r.format||(o?s.toPosixSlashes:null);let i=t===n;let c=i&&a?a(t):t;if(i===false){c=a?a(t):t;i=c===n}if(i===false||r.capture===true){if(r.matchBase===true||r.basename===true){i=picomatch.matchBase(t,e,u,o)}else{i=e.exec(c)}}return{isMatch:Boolean(i),match:i,output:c}};picomatch.matchBase=(t,e,u)=>{const n=e instanceof RegExp?e:picomatch.makeRe(e,u);return n.test(s.basename(t))};picomatch.isMatch=(t,e,u)=>picomatch(e,u)(t);picomatch.parse=(t,e)=>{if(Array.isArray(t))return t.map((t=>picomatch.parse(t,e)));return o(t,{...e,fastpaths:false})};picomatch.scan=(t,e)=>n(t,e);picomatch.compileRe=(t,e,u=false,n=false)=>{if(u===true){return t.output}const o=e||{};const s=o.contains?\"\":\"^\";const r=o.contains?\"\":\"$\";let a=`${s}(?:${t.output})${r}`;if(t&&t.negated===true){a=`^(?!${a}).*$`}const i=picomatch.toRegex(a,e);if(n===true){i.state=t}return i};picomatch.makeRe=(t,e={},u=false,n=false)=>{if(!t||typeof t!==\"string\"){throw new TypeError(\"Expected a non-empty string\")}let s={negated:false,fastpaths:true};if(e.fastpaths!==false&&(t[0]===\".\"||t[0]===\"*\")){s.output=o.fastpaths(t,e)}if(!s.output){s=o(t,e)}return picomatch.compileRe(s,e,u,n)};picomatch.toRegex=(t,e)=>{try{const u=e||{};return new RegExp(t,u.flags||(u.nocase?\"i\":\"\"))}catch(t){if(e&&e.debug===true)throw t;return/$^/}};picomatch.constants=r;t.exports=picomatch},716:(t,e,u)=>{const n=u(96);const{CHAR_ASTERISK:o,CHAR_AT:s,CHAR_BACKWARD_SLASH:r,CHAR_COMMA:a,CHAR_DOT:i,CHAR_EXCLAMATION_MARK:c,CHAR_FORWARD_SLASH:p,CHAR_LEFT_CURLY_BRACE:l,CHAR_LEFT_PARENTHESES:f,CHAR_LEFT_SQUARE_BRACKET:A,CHAR_PLUS:_,CHAR_QUESTION_MARK:R,CHAR_RIGHT_CURLY_BRACE:E,CHAR_RIGHT_PARENTHESES:h,CHAR_RIGHT_SQUARE_BRACKET:g}=u(154);const isPathSeparator=t=>t===p||t===r;const depth=t=>{if(t.isPrefix!==true){t.depth=t.isGlobstar?Infinity:1}};const scan=(t,e)=>{const u=e||{};const b=t.length-1;const C=u.parts===true||u.scanToEnd===true;const y=[];const $=[];const x=[];let S=t;let H=-1;let v=0;let d=0;let L=false;let T=false;let O=false;let k=false;let m=false;let w=false;let N=false;let I=false;let B=false;let G=false;let D=0;let M;let P;let K={value:\"\",depth:0,isGlob:false};const eos=()=>H>=b;const peek=()=>S.charCodeAt(H+1);const advance=()=>{M=P;return S.charCodeAt(++H)};while(H0){X=S.slice(0,v);S=S.slice(v);d-=v}if(U&&O===true&&d>0){U=S.slice(0,d);F=S.slice(d)}else if(O===true){U=\"\";F=S}else{U=S}if(U&&U!==\"\"&&U!==\"/\"&&U!==S){if(isPathSeparator(U.charCodeAt(U.length-1))){U=U.slice(0,-1)}}if(u.unescape===true){if(F)F=n.removeBackslashes(F);if(U&&N===true){U=n.removeBackslashes(U)}}const Q={prefix:X,input:t,start:v,base:U,glob:F,isBrace:L,isBracket:T,isGlob:O,isExtglob:k,isGlobstar:m,negated:I,negatedExtglob:B};if(u.tokens===true){Q.maxDepth=0;if(!isPathSeparator(P)){$.push(K)}Q.tokens=$}if(u.parts===true||u.tokens===true){let e;for(let n=0;n{const{REGEX_BACKSLASH:n,REGEX_REMOVE_BACKSLASH:o,REGEX_SPECIAL_CHARS:s,REGEX_SPECIAL_CHARS_GLOBAL:r}=u(154);e.isObject=t=>t!==null&&typeof t===\"object\"&&!Array.isArray(t);e.hasRegexChars=t=>s.test(t);e.isRegexChar=t=>t.length===1&&e.hasRegexChars(t);e.escapeRegex=t=>t.replace(r,\"\\\\$1\");e.toPosixSlashes=t=>t.replace(n,\"/\");e.removeBackslashes=t=>t.replace(o,(t=>t===\"\\\\\"?\"\":t));e.escapeLast=(t,u,n)=>{const o=t.lastIndexOf(u,n);if(o===-1)return t;if(t[o-1]===\"\\\\\")return e.escapeLast(t,u,o-1);return`${t.slice(0,o)}\\\\${t.slice(o)}`};e.removePrefix=(t,e={})=>{let u=t;if(u.startsWith(\"./\")){u=u.slice(2);e.prefix=\"./\"}return u};e.wrapOutput=(t,e={},u={})=>{const n=u.contains?\"\":\"^\";const o=u.contains?\"\":\"$\";let s=`${n}(?:${t})${o}`;if(e.negated===true){s=`(?:^(?!${s}).*$)`}return s};e.basename=(t,{windows:e}={})=>{const u=t.split(e?/[\\\\/]/:\"/\");const n=u[u.length-1];if(n===\"\"){return u[u.length-2]}return n}}};var e={};function __nccwpck_require__(u){var n=e[u];if(n!==undefined){return n.exports}var o=e[u]={exports:{}};var s=true;try{t[u](o,o.exports,__nccwpck_require__);s=false}finally{if(s)delete e[u]}return o.exports}if(typeof __nccwpck_require__!==\"undefined\")__nccwpck_require__.ab=__dirname+\"/\";var u=__nccwpck_require__(170);module.exports=u})();//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3BpY29tYXRjaC9pbmRleC5qcyIsIm1hcHBpbmdzIjoiQUFBQSxNQUFNLGFBQWEsT0FBTyxjQUFjLGVBQWUscUJBQXFCLHVEQUF1RCx5Q0FBeUMsa0NBQWtDLG1EQUFtRCxrQ0FBa0MsY0FBYyxnQ0FBZ0MsaURBQWlELEdBQUcsMEJBQTBCLGdCQUFnQiwyQkFBMkIsb0JBQW9CLFNBQVMsZ0JBQWdCLGFBQWEsRUFBRSxHQUFHLGNBQWMsY0FBYyxjQUFjLGNBQWMsZ0JBQWdCLGVBQWUsY0FBYyxFQUFFLEtBQUssZ0JBQWdCLEVBQUUsR0FBRyxXQUFXLEdBQUcsSUFBSSxFQUFFLEVBQUUsRUFBRSxjQUFjLEVBQUUsR0FBRyxjQUFjLEVBQUUsRUFBRSxFQUFFLEdBQUcsY0FBYyxHQUFHLElBQUksRUFBRSxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsY0FBYyxFQUFFLEdBQUcsV0FBVyxFQUFFLElBQUksWUFBWSxTQUFTLHdNQUF3TSxTQUFTLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixHQUFHLElBQUksTUFBTSxFQUFFLG1CQUFtQixFQUFFLHVCQUF1QixFQUFFLElBQUksR0FBRyxJQUFJLE1BQU0sRUFBRSwwQkFBMEIsR0FBRyxJQUFJLE1BQU0sRUFBRSwyQkFBMkIsR0FBRyxJQUFJLE1BQU0sRUFBRSwwQkFBMEIsRUFBRSx5QkFBeUIsRUFBRSxzQkFBc0IsRUFBRSxnQkFBZ0IsU0FBUyx5TEFBeUwsYUFBYSxFQUFFLDhFQUE4RSxXQUFXLHNFQUFzRSxxREFBcUQseUNBQXlDLGdHQUFnRyw0RUFBNEUsdUNBQXVDLG0zQkFBbTNCLE9BQU8sS0FBSywwQ0FBMEMsT0FBTyxHQUFHLE1BQU0sbUNBQW1DLE1BQU0sa0NBQWtDLE1BQU0sa0NBQWtDLE1BQU0saUNBQWlDLGNBQWMsc0JBQXNCLGVBQWUsZUFBZSxjQUFjLE1BQU0seUdBQXlHLEdBQUcsMEJBQTBCLHNDQUFzQyw2QkFBNkIsU0FBUyxZQUFZLFlBQVksR0FBRyxJQUFJLGNBQWMsU0FBUywrQ0FBK0MsVUFBVSxvQ0FBb0MsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLCtCQUErQixvQkFBb0Isd0JBQXdCLHlDQUF5QyxVQUFVLFNBQVMsTUFBTSxnRUFBZ0UsZUFBZSxRQUFRLHVDQUF1QyxFQUFFLG9DQUFvQyxFQUFFLEdBQUcsU0FBUywwQ0FBMEMsWUFBWSwwQkFBMEIsK0JBQStCLDBCQUEwQixNQUFNLDBKQUEwSixHQUFHLHNCQUFzQixFQUFFLFFBQVEsRUFBRSxFQUFFLFVBQVUsUUFBUSxtQkFBbUIsa0JBQWtCLGtDQUFrQyxjQUFjLE1BQU0sRUFBRSxHQUFHLCtCQUErQixvQkFBb0IsU0FBUyx1S0FBdUssc0JBQXNCLFdBQVcsV0FBVyxXQUFXLFdBQVcsUUFBUSxNQUFNLDRCQUE0QixtQ0FBbUMsdUNBQXVDLHVDQUF1QywyQkFBMkIsY0FBYyxZQUFZLGlCQUFpQiwwQ0FBMEMsa0JBQWtCLGtCQUFrQixRQUFRLDJDQUEyQyxJQUFJLFVBQVUsSUFBSSxZQUFZLGFBQWEsZUFBZSxVQUFVLGFBQWEsb0JBQW9CLE9BQU8sV0FBVyxvQkFBb0IsT0FBTyxTQUFTLGVBQWUsd0JBQXdCLHlEQUF5RCx3RUFBd0UsK0NBQStDLDRDQUE0QyxjQUFjLFlBQVksV0FBVyxvQkFBb0IsK0JBQStCLDZCQUE2QiwrQkFBK0Isd0NBQXdDLHFDQUFxQyxpQkFBaUIsT0FBTyxTQUFTLFVBQVUsS0FBSywwQkFBMEIsU0FBUywrQkFBK0IsU0FBUyxrQkFBa0Isa0JBQWtCLGtDQUFrQyxvQkFBb0IsTUFBTSxvQ0FBb0MsRUFBRSxNQUFNLDZDQUE2QyxFQUFFLFdBQVcsdUJBQXVCLGlDQUFpQyxNQUFNLHNCQUFzQixRQUFRLHFEQUFxRCxjQUFjLDRDQUE0QyxpQkFBaUIsRUFBRSxFQUFFLG1FQUFtRSxpQkFBaUIscUJBQXFCLFNBQVMsY0FBYyxFQUFFLEdBQUcsRUFBRSxHQUFHLHdCQUF3Qix1QkFBdUIsTUFBTSwyQ0FBMkMsRUFBRSxxQkFBcUIsMENBQTBDLGNBQWMsWUFBWSxtQ0FBbUMsYUFBYSxPQUFPLFNBQVMsWUFBWSxNQUFNLHFDQUFxQyxVQUFVLG1DQUFtQywwQkFBMEIsWUFBWSwwQkFBMEIsWUFBWSxNQUFNLG9CQUFvQixTQUFTLGdCQUFnQixFQUFFLEVBQUUsR0FBRyxhQUFhLHNCQUFzQixzQkFBc0IsS0FBSywwREFBMEQsNkJBQTZCLFdBQVcsU0FBUyw2QkFBNkIsU0FBUyxjQUFjLE1BQU0sYUFBYSxTQUFTLGFBQWEsWUFBWSwyQkFBMkIsU0FBUyxrQkFBa0IsR0FBRyxTQUFTLE9BQU8sUUFBUSxNQUFNLG9CQUFvQixFQUFFLFNBQVMsaUNBQWlDLFFBQVEscUJBQXFCLGNBQWMsV0FBVyxZQUFZLFNBQVMsc0JBQXNCLE1BQU0sS0FBSyxPQUFPLG1CQUFtQixNQUFNLG9CQUFvQixFQUFFLFVBQVUsMkRBQTJELDZCQUE2Qix5QkFBeUIsb0JBQW9CLGFBQWEsb0JBQW9CLGlDQUFpQywyQkFBMkIsMkJBQTJCLGFBQWEsTUFBTSxZQUFZLGlCQUFpQixJQUFJLGdDQUFnQyxXQUFXLFlBQVksMkNBQTJDLE9BQU8sRUFBRSxFQUFFLDZDQUE2QyxPQUFPLEVBQUUsRUFBRSwyQ0FBMkMsTUFBTSxXQUFXLFFBQVEsUUFBUSxFQUFFLFNBQVMsMEJBQTBCLG1CQUFtQixXQUFXLFFBQVEsUUFBUSxFQUFFLFNBQVMsWUFBWSwwQkFBMEIsd0JBQXdCLE1BQU0sb0JBQW9CLEVBQUUsU0FBUyxZQUFZLG9CQUFvQixNQUFNLHFCQUFxQixFQUFFLFNBQVMsWUFBWSwwQ0FBMEMsa0RBQWtELHNCQUFzQiw2QkFBNkIsc0JBQXNCLFNBQVMsTUFBTSwrQ0FBK0MsRUFBRSxvQkFBb0IsU0FBUyxZQUFZLG1EQUFtRCxnREFBZ0Qsa0RBQWtELE9BQU8sRUFBRSxFQUFFLEtBQUssc0JBQXNCLE1BQU0sdUJBQXVCLEVBQUUsU0FBUyxZQUFZLGtFQUFrRSxNQUFNLGdDQUFnQyxFQUFFLEVBQUUsRUFBRSxTQUFTLG1CQUFtQiw0QkFBNEIsa0RBQWtELE1BQU0sZ0NBQWdDLEVBQUUsRUFBRSxFQUFFLFNBQVMsc0JBQXNCLHlCQUF5QixpREFBaUQsTUFBTSxFQUFFLEVBQUUsV0FBVyxRQUFRLFFBQVEsRUFBRSxrREFBa0QsU0FBUywrQkFBK0IsMkNBQTJDLDZCQUE2QixZQUFZLFVBQVUsU0FBUyxZQUFZLEVBQUUsRUFBRSxFQUFFLEdBQUcsUUFBUSxHQUFHLGtCQUFrQixTQUFTLFNBQVMscUJBQXFCLG9CQUFvQixTQUFTLHlGQUF5RixVQUFVLFFBQVEsU0FBUyxTQUFTLEdBQUcsc0JBQXNCLHlCQUF5QixNQUFNLDZCQUE2QixFQUFFLFNBQVMsVUFBVSxrQkFBa0Isa0JBQWtCLFdBQVcscUJBQXFCLEtBQUssS0FBSyxRQUFRLHdCQUF3QixNQUFNLHVCQUF1Qix1QkFBdUIsbUJBQW1CLGlCQUFpQixrQ0FBa0Msd0NBQXdDLHNDQUFzQyxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsV0FBVyxrQkFBa0IsNkJBQTZCLE1BQU0sOEJBQThCLEVBQUUsb0JBQW9CLFFBQVEsU0FBUyxZQUFZLGVBQWUsMkJBQTJCLE1BQU0sb0JBQW9CLEVBQUUsU0FBUyxZQUFZLFFBQVEsc0JBQXNCLGdDQUFnQyxhQUFhLE1BQU0sTUFBTSw4QkFBOEIsRUFBRSxTQUFTLFlBQVksd0NBQXdDLGtCQUFrQixjQUFjLFlBQVksUUFBUSxJQUFJLFNBQVMsTUFBTSw4QkFBOEIsRUFBRSxTQUFTLFlBQVksK0JBQStCLDRCQUE0QixzQkFBc0IsY0FBYyxZQUFZLFdBQVcsWUFBWSxTQUFTLDREQUE0RCxNQUFNLDZCQUE2QixFQUFFLFNBQVMsTUFBTSw0QkFBNEIsRUFBRSxTQUFTLFlBQVkseUJBQXlCLGtEQUFrRCx1QkFBdUIsU0FBUyx3QkFBd0IsWUFBWSxRQUFRLGlGQUFpRixPQUFPLEVBQUUsRUFBRSxNQUFNLDZCQUE2QixFQUFFLFNBQVMscURBQXFELE1BQU0sOEJBQThCLEVBQUUsU0FBUyxNQUFNLDhCQUE4QixFQUFFLFNBQVMsWUFBWSxrQ0FBa0MscUNBQXFDLHdCQUF3QixVQUFVLG1DQUFtQyxTQUFTLFVBQVUsWUFBWSw4Q0FBOEMsc0JBQXNCLFNBQVMsc0NBQXNDLE1BQU0sNkJBQTZCLEVBQUUsU0FBUyw0RUFBNEUsTUFBTSxvQkFBb0IsRUFBRSxTQUFTLE1BQU0sb0JBQW9CLEVBQUUsU0FBUyxZQUFZLDhDQUE4QyxNQUFNLHlDQUF5QyxFQUFFLFNBQVMsTUFBTSxvQkFBb0IsRUFBRSxTQUFTLFlBQVkscUJBQXFCLE9BQU8sRUFBRSxFQUFFLDRCQUE0QixNQUFNLFFBQVEscUJBQXFCLE1BQU0sb0JBQW9CLEVBQUUsU0FBUyw0Q0FBNEMsY0FBYyxZQUFZLFdBQVcsV0FBVyxpQkFBaUIsZ0JBQWdCLFdBQVcsU0FBUyxrQkFBa0IsMENBQTBDLHNCQUFzQixTQUFTLG9CQUFvQix3QkFBd0IsV0FBVyxTQUFTLGVBQWUsZUFBZSx5Q0FBeUMsa0RBQWtELDBDQUEwQyxNQUFNLDhCQUE4QixFQUFFLFNBQVMseURBQXlELHNEQUFzRCxpQ0FBaUMsTUFBTSw4QkFBOEIsRUFBRSxTQUFTLDRCQUE0QixxQkFBcUIsZUFBZSxNQUFNLGFBQWEsaUJBQWlCLDBCQUEwQixrQkFBa0IsV0FBVyxxQkFBcUIsa0JBQWtCLGdCQUFnQixXQUFXLFNBQVMscURBQXFELHVEQUF1RCxlQUFlLFNBQVMsRUFBRSxrQkFBa0IsaURBQWlELFdBQVcsZ0JBQWdCLDRCQUE0QixXQUFXLFNBQVMsc0RBQXNELDhCQUE4Qix1REFBdUQsZUFBZSxTQUFTLEVBQUUsa0JBQWtCLFlBQVksWUFBWSxFQUFFLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRSxHQUFHLFdBQVcsNEJBQTRCLGdCQUFnQixlQUFlLE1BQU0saUNBQWlDLEVBQUUsU0FBUywrQkFBK0Isa0JBQWtCLFdBQVcsaUJBQWlCLEVBQUUsR0FBRyxZQUFZLEVBQUUsRUFBRSxHQUFHLGtCQUFrQixnQkFBZ0IsZUFBZSxNQUFNLGlDQUFpQyxFQUFFLFNBQVMsNENBQTRDLGtCQUFrQixxQkFBcUIsV0FBVyxtQkFBbUIsZ0JBQWdCLFdBQVcsU0FBUyxTQUFTLDhCQUE4QixrQkFBa0IsZUFBZSxxQ0FBcUMsb0JBQW9CLFFBQVEsU0FBUyw4REFBOEQsV0FBVyxRQUFRLFNBQVMsd0RBQXdELG1CQUFtQixZQUFZLFlBQVksc0JBQXNCLFlBQVksWUFBWSxLQUFLLFlBQVksWUFBWSxjQUFjLFlBQVksYUFBYSxRQUFRLG9CQUFvQiw2RUFBNkUsb0NBQW9DLHNCQUFzQixrQkFBa0IsNkVBQTZFLG9DQUFvQyxvQkFBb0Isa0JBQWtCLHlFQUF5RSxJQUFJLGlDQUFpQyxHQUFHLG9CQUFvQixrRUFBa0UsTUFBTSxzQ0FBc0MsRUFBRSxHQUFHLEVBQUUsdUJBQXVCLFlBQVkseUJBQXlCLDBDQUEwQyxhQUFhLHFCQUFxQixVQUFVLHdCQUF3QixTQUFTLE1BQU0sZ0VBQWdFLGlCQUFpQixRQUFRLHVDQUF1QyxFQUFFLG9DQUFvQyxFQUFFLEdBQUcsVUFBVSxNQUFNLCtHQUErRyx3QkFBd0Isa0JBQWtCLGtCQUFrQiwwQkFBMEIsU0FBUyx5QkFBeUIsNEJBQTRCLGNBQWMsTUFBTSxFQUFFLEdBQUcsbUJBQW1CLGdDQUFnQyxVQUFVLEVBQUUsUUFBUSxFQUFFLEVBQUUsVUFBVSxTQUFTLGlCQUFpQixVQUFVLGlCQUFpQixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxrQkFBa0IsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsbUJBQW1CLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLDhCQUE4Qix1QkFBdUIsRUFBRSxFQUFFLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUseUJBQXlCLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsd0JBQXdCLEVBQUUsRUFBRSxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLFNBQVMsaUNBQWlDLGFBQWEscUJBQXFCLGFBQWEsbUJBQW1CLDRCQUE0QixnQkFBZ0IsOEJBQThCLE1BQU0sRUFBRSxHQUFHLFVBQVUsZ0JBQWdCLGVBQWUsZUFBZSxlQUFlLGNBQWMsZUFBZSw0REFBNEQsZ0NBQWdDLHFCQUFxQixxQ0FBcUMsdUJBQXVCLGtCQUFrQixhQUFhLGNBQWMsY0FBYyxvQkFBb0IsdUNBQXVDLG9DQUFvQyxpRUFBaUUsY0FBYyxrQkFBa0Isb0VBQW9FLGdCQUFnQixlQUFlLHdCQUF3QixhQUFhLFNBQVMsNkNBQTZDLGtDQUFrQyw0QkFBNEIsTUFBTSwyQkFBMkIsdUJBQXVCLGVBQWUsRUFBRSxTQUFTLG1FQUFtRSxtQ0FBbUMsY0FBYyxjQUFjLGdCQUFnQixpQkFBaUIsaUJBQWlCLG1DQUFtQyxjQUFjLGdCQUFnQixpQkFBaUIsa0NBQWtDLGFBQWEsaUJBQWlCLE1BQU0sZ0JBQWdCLGdCQUFnQix1QkFBdUIsZUFBZSxHQUFHLElBQUksd0JBQXdCLHFEQUFxRCxXQUFXLE9BQU8seUJBQXlCLGNBQWMsNENBQTRDLFlBQVksa0JBQWtCLGNBQWMsV0FBVyxRQUFRLGdDQUFnQywwQ0FBMEMsK0JBQStCLEtBQUssYUFBYSxPQUFPLHNDQUFzQyw4QkFBOEIsb0RBQW9ELDhCQUE4Qiw2Q0FBNkMsd0JBQXdCLDREQUE0RCxZQUFZLHFCQUFxQixHQUFHLDZCQUE2Qiw0Q0FBNEMsYUFBYSxnQkFBZ0IsY0FBYywwQkFBMEIsMEJBQTBCLFNBQVMsRUFBRSxLQUFLLFNBQVMsR0FBRyxFQUFFLEVBQUUsd0JBQXdCLFNBQVMsRUFBRSxNQUFNLCtCQUErQixhQUFhLFVBQVUsVUFBVSx3QkFBd0Isb0JBQW9CLDRCQUE0QixtREFBbUQsT0FBTyw4QkFBOEIsa0RBQWtELDBCQUEwQixjQUFjLFNBQVMscUNBQXFDLDBCQUEwQixJQUFJLGNBQWMsZ0RBQWdELFNBQVMsNkJBQTZCLGFBQWEsc0JBQXNCLG9CQUFvQixlQUFlLGNBQWMsTUFBTSwrU0FBK1MsUUFBUSxzQ0FBc0MsZ0JBQWdCLHNCQUFzQixrQ0FBa0MsbUJBQW1CLGNBQWMsbUJBQW1CLDJDQUEyQyxXQUFXLFdBQVcsV0FBVyxRQUFRLFNBQVMsUUFBUSxRQUFRLFlBQVksWUFBWSxZQUFZLFlBQVksWUFBWSxZQUFZLFlBQVksWUFBWSxZQUFZLFlBQVksUUFBUSxNQUFNLE1BQU0sT0FBTywrQkFBK0IsbUJBQW1CLGlDQUFpQyxtQkFBbUIsSUFBSSwwQkFBMEIsV0FBVyxZQUFZLE1BQU0sVUFBVSxxQkFBcUIsWUFBWSxVQUFVLE9BQU8sU0FBUyxvQkFBb0IsSUFBSSxtQ0FBbUMsVUFBVSxxQkFBcUIsVUFBVSxTQUFTLFVBQVUsSUFBSSxTQUFTLHVDQUF1QyxpQkFBaUIsZ0JBQWdCLE9BQU8sYUFBYSxTQUFTLE1BQU0sb0JBQW9CLGlCQUFpQixnQkFBZ0IsT0FBTyxhQUFhLFNBQVMsTUFBTSxVQUFVLElBQUksVUFBVSxRQUFRLGlCQUFpQixPQUFPLFFBQVEsYUFBYSxTQUFTLE1BQU0sVUFBVSxVQUFVLFVBQVUsR0FBRywrQkFBK0IscUJBQXFCLG1CQUFtQixLQUFLLFNBQVMsTUFBTSxTQUFTLG1CQUFtQiwwQ0FBMEMseUJBQXlCLGdCQUFnQixtQkFBbUIsT0FBTyxpQkFBaUIsT0FBTyxhQUFhLG1DQUFtQyxVQUFVLHFCQUFxQixZQUFZLFNBQVMsVUFBVSxnQkFBZ0IsT0FBTyxPQUFPLFNBQVMsT0FBTyxVQUFVLDZCQUE2QixnQkFBZ0IsT0FBTyxhQUFhLFNBQVMsTUFBTSxVQUFVLGdCQUFnQixPQUFPLGFBQWEsU0FBUyxNQUFNLFVBQVUsbUNBQW1DLFVBQVUscUJBQXFCLFVBQVUsU0FBUyxVQUFVLG1CQUFtQixnQkFBZ0IsT0FBTyxPQUFPLGFBQWEsU0FBUyxNQUFNLG9DQUFvQyxpQkFBaUIsSUFBSSxTQUFTLDRCQUE0QixnQkFBZ0IsYUFBYSxtQ0FBbUMsVUFBVSxxQkFBcUIsWUFBWSxTQUFTLFVBQVUsT0FBTyxPQUFPLFNBQVMsTUFBTSxhQUFhLE9BQU8sYUFBYSxTQUFTLE9BQU8sbUJBQW1CLFFBQVEsUUFBUSxRQUFRLFNBQVMsU0FBUyxRQUFRLGVBQWUsYUFBYSxLQUFLLHFCQUFxQixlQUFlLGFBQWEsa0JBQWtCLEtBQUssSUFBSSxLQUFLLElBQUksOEJBQThCLDhDQUE4QyxpQkFBaUIsc0JBQXNCLDhCQUE4QixnQkFBZ0IsMEJBQTBCLFNBQVMsMkhBQTJILG9CQUFvQixhQUFhLHdCQUF3QixVQUFVLFdBQVcsb0NBQW9DLE1BQU0sWUFBWSxXQUFXLEtBQUssZ0JBQWdCLGFBQWEscUJBQXFCLGFBQWEsaUJBQWlCLG1CQUFtQixhQUFhLEtBQUssYUFBYSxZQUFZLHVCQUF1QixrQkFBa0IsVUFBVSxJQUFJLG9CQUFvQixxQkFBcUIsVUFBVSxhQUFhLHNCQUFzQixxQkFBcUIsaUNBQWlDLFlBQVksVUFBVSxVQUFVLGVBQWUsY0FBYyxNQUFNLDhGQUE4RixRQUFRLCtEQUErRCw2QkFBNkIsa0RBQWtELHFDQUFxQyxxQ0FBcUMsdURBQXVELHVCQUF1QiwyQkFBMkIsbUJBQW1CLDhDQUE4QyxTQUFTLGFBQWEsSUFBSSxXQUFXLEdBQUcsc0JBQXNCLElBQUksUUFBUSx1QkFBdUIsYUFBYSxjQUFjLFVBQVUsb0JBQW9CLEtBQUssSUFBSSwwQkFBMEIsMEJBQTBCLFNBQVMsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEVBQUUscUJBQXFCLFlBQVksRUFBRSxPQUFPLFVBQVUsZUFBZSxVQUFVLEdBQUcsSUFBSSwrQkFBK0Isc0JBQXNCLFdBQVcscUJBQXFCLFlBQVksU0FBUyxnQ0FBZ0MsV0FBVyxrQkFBa0IsaUJBQWlCLFlBQVksWUFBWSxXQUFXLElBQUksc0NBQXNDLFFBQVEsUUFBUSxpQkFBaUIsaUJBQWlCLGlGQUFpRiwrQkFBK0IsaUJBQWlCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NvbXBpbGVkL3BpY29tYXRjaC9pbmRleC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyIoKCk9PntcInVzZSBzdHJpY3RcIjt2YXIgdD17MTcwOih0LGUsdSk9Pntjb25zdCBuPXUoNTEwKTtjb25zdCBpc1dpbmRvd3M9KCk9PntpZih0eXBlb2YgbmF2aWdhdG9yIT09XCJ1bmRlZmluZWRcIiYmbmF2aWdhdG9yLnBsYXRmb3JtKXtjb25zdCB0PW5hdmlnYXRvci5wbGF0Zm9ybS50b0xvd2VyQ2FzZSgpO3JldHVybiB0PT09XCJ3aW4zMlwifHx0PT09XCJ3aW5kb3dzXCJ9aWYodHlwZW9mIHByb2Nlc3MhPT1cInVuZGVmaW5lZFwiJiZwcm9jZXNzLnBsYXRmb3JtKXtyZXR1cm4gcHJvY2Vzcy5wbGF0Zm9ybT09PVwid2luMzJcIn1yZXR1cm4gZmFsc2V9O2Z1bmN0aW9uIHBpY29tYXRjaCh0LGUsdT1mYWxzZSl7aWYoZSYmKGUud2luZG93cz09PW51bGx8fGUud2luZG93cz09PXVuZGVmaW5lZCkpe2U9ey4uLmUsd2luZG93czppc1dpbmRvd3MoKX19cmV0dXJuIG4odCxlLHUpfU9iamVjdC5hc3NpZ24ocGljb21hdGNoLG4pO3QuZXhwb3J0cz1waWNvbWF0Y2h9LDE1NDp0PT57Y29uc3QgZT1cIlxcXFxcXFxcL1wiO2NvbnN0IHU9YFteJHtlfV1gO2NvbnN0IG49XCJcXFxcLlwiO2NvbnN0IG89XCJcXFxcK1wiO2NvbnN0IHM9XCJcXFxcP1wiO2NvbnN0IHI9XCJcXFxcL1wiO2NvbnN0IGE9XCIoPz0uKVwiO2NvbnN0IGk9XCJbXi9dXCI7Y29uc3QgYz1gKD86JHtyfXwkKWA7Y29uc3QgcD1gKD86Xnwke3J9KWA7Y29uc3QgbD1gJHtufXsxLDJ9JHtjfWA7Y29uc3QgZj1gKD8hJHtufSlgO2NvbnN0IEE9YCg/ISR7cH0ke2x9KWA7Y29uc3QgXz1gKD8hJHtufXswLDF9JHtjfSlgO2NvbnN0IFI9YCg/ISR7bH0pYDtjb25zdCBFPWBbXi4ke3J9XWA7Y29uc3QgaD1gJHtpfSo/YDtjb25zdCBnPVwiL1wiO2NvbnN0IGI9e0RPVF9MSVRFUkFMOm4sUExVU19MSVRFUkFMOm8sUU1BUktfTElURVJBTDpzLFNMQVNIX0xJVEVSQUw6cixPTkVfQ0hBUjphLFFNQVJLOmksRU5EX0FOQ0hPUjpjLERPVFNfU0xBU0g6bCxOT19ET1Q6ZixOT19ET1RTOkEsTk9fRE9UX1NMQVNIOl8sTk9fRE9UU19TTEFTSDpSLFFNQVJLX05PX0RPVDpFLFNUQVI6aCxTVEFSVF9BTkNIT1I6cCxTRVA6Z307Y29uc3QgQz17Li4uYixTTEFTSF9MSVRFUkFMOmBbJHtlfV1gLFFNQVJLOnUsU1RBUjpgJHt1fSo/YCxET1RTX1NMQVNIOmAke259ezEsMn0oPzpbJHtlfV18JClgLE5PX0RPVDpgKD8hJHtufSlgLE5PX0RPVFM6YCg/ISg/Ol58WyR7ZX1dKSR7bn17MSwyfSg/Olske2V9XXwkKSlgLE5PX0RPVF9TTEFTSDpgKD8hJHtufXswLDF9KD86WyR7ZX1dfCQpKWAsTk9fRE9UU19TTEFTSDpgKD8hJHtufXsxLDJ9KD86WyR7ZX1dfCQpKWAsUU1BUktfTk9fRE9UOmBbXi4ke2V9XWAsU1RBUlRfQU5DSE9SOmAoPzpefFske2V9XSlgLEVORF9BTkNIT1I6YCg/Olske2V9XXwkKWAsU0VQOlwiXFxcXFwifTtjb25zdCB5PXthbG51bTpcImEtekEtWjAtOVwiLGFscGhhOlwiYS16QS1aXCIsYXNjaWk6XCJcXFxceDAwLVxcXFx4N0ZcIixibGFuazpcIiBcXFxcdFwiLGNudHJsOlwiXFxcXHgwMC1cXFxceDFGXFxcXHg3RlwiLGRpZ2l0OlwiMC05XCIsZ3JhcGg6XCJcXFxceDIxLVxcXFx4N0VcIixsb3dlcjpcImEtelwiLHByaW50OlwiXFxcXHgyMC1cXFxceDdFIFwiLHB1bmN0OlwiXFxcXC0hXFxcIiMkJSYnKClcXFxcKissLi86Ozw9Pj9AW1xcXFxdXl9ge3x9flwiLHNwYWNlOlwiIFxcXFx0XFxcXHJcXFxcblxcXFx2XFxcXGZcIix1cHBlcjpcIkEtWlwiLHdvcmQ6XCJBLVphLXowLTlfXCIseGRpZ2l0OlwiQS1GYS1mMC05XCJ9O3QuZXhwb3J0cz17TUFYX0xFTkdUSDoxMDI0KjY0LFBPU0lYX1JFR0VYX1NPVVJDRTp5LFJFR0VYX0JBQ0tTTEFTSDovXFxcXCg/IVsqKz9eJHt9KHwpW1xcXV0pL2csUkVHRVhfTk9OX1NQRUNJQUxfQ0hBUlM6L15bXkAhW1xcXS4sJCorP157fSgpfFxcXFwvXSsvLFJFR0VYX1NQRUNJQUxfQ0hBUlM6L1stKis/Ll4ke30ofClbXFxdXS8sUkVHRVhfU1BFQ0lBTF9DSEFSU19CQUNLUkVGOi8oXFxcXD8pKChcXFcpKFxcMyopKS9nLFJFR0VYX1NQRUNJQUxfQ0hBUlNfR0xPQkFMOi8oWy0qKz8uXiR7fSh8KVtcXF1dKS9nLFJFR0VYX1JFTU9WRV9CQUNLU0xBU0g6Lyg/OlxcWy4qP1teXFxcXF1cXF18XFxcXCg/PS4pKS9nLFJFUExBQ0VNRU5UUzp7XCIqKipcIjpcIipcIixcIioqLyoqXCI6XCIqKlwiLFwiKiovKiovKipcIjpcIioqXCJ9LENIQVJfMDo0OCxDSEFSXzk6NTcsQ0hBUl9VUFBFUkNBU0VfQTo2NSxDSEFSX0xPV0VSQ0FTRV9BOjk3LENIQVJfVVBQRVJDQVNFX1o6OTAsQ0hBUl9MT1dFUkNBU0VfWjoxMjIsQ0hBUl9MRUZUX1BBUkVOVEhFU0VTOjQwLENIQVJfUklHSFRfUEFSRU5USEVTRVM6NDEsQ0hBUl9BU1RFUklTSzo0MixDSEFSX0FNUEVSU0FORDozOCxDSEFSX0FUOjY0LENIQVJfQkFDS1dBUkRfU0xBU0g6OTIsQ0hBUl9DQVJSSUFHRV9SRVRVUk46MTMsQ0hBUl9DSVJDVU1GTEVYX0FDQ0VOVDo5NCxDSEFSX0NPTE9OOjU4LENIQVJfQ09NTUE6NDQsQ0hBUl9ET1Q6NDYsQ0hBUl9ET1VCTEVfUVVPVEU6MzQsQ0hBUl9FUVVBTDo2MSxDSEFSX0VYQ0xBTUFUSU9OX01BUks6MzMsQ0hBUl9GT1JNX0ZFRUQ6MTIsQ0hBUl9GT1JXQVJEX1NMQVNIOjQ3LENIQVJfR1JBVkVfQUNDRU5UOjk2LENIQVJfSEFTSDozNSxDSEFSX0hZUEhFTl9NSU5VUzo0NSxDSEFSX0xFRlRfQU5HTEVfQlJBQ0tFVDo2MCxDSEFSX0xFRlRfQ1VSTFlfQlJBQ0U6MTIzLENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVDo5MSxDSEFSX0xJTkVfRkVFRDoxMCxDSEFSX05PX0JSRUFLX1NQQUNFOjE2MCxDSEFSX1BFUkNFTlQ6MzcsQ0hBUl9QTFVTOjQzLENIQVJfUVVFU1RJT05fTUFSSzo2MyxDSEFSX1JJR0hUX0FOR0xFX0JSQUNLRVQ6NjIsQ0hBUl9SSUdIVF9DVVJMWV9CUkFDRToxMjUsQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDo5MyxDSEFSX1NFTUlDT0xPTjo1OSxDSEFSX1NJTkdMRV9RVU9URTozOSxDSEFSX1NQQUNFOjMyLENIQVJfVEFCOjksQ0hBUl9VTkRFUlNDT1JFOjk1LENIQVJfVkVSVElDQUxfTElORToxMjQsQ0hBUl9aRVJPX1dJRFRIX05PQlJFQUtfU1BBQ0U6NjUyNzksZXh0Z2xvYkNoYXJzKHQpe3JldHVybntcIiFcIjp7dHlwZTpcIm5lZ2F0ZVwiLG9wZW46XCIoPzooPyEoPzpcIixjbG9zZTpgKSkke3QuU1RBUn0pYH0sXCI/XCI6e3R5cGU6XCJxbWFya1wiLG9wZW46XCIoPzpcIixjbG9zZTpcIik/XCJ9LFwiK1wiOnt0eXBlOlwicGx1c1wiLG9wZW46XCIoPzpcIixjbG9zZTpcIikrXCJ9LFwiKlwiOnt0eXBlOlwic3RhclwiLG9wZW46XCIoPzpcIixjbG9zZTpcIikqXCJ9LFwiQFwiOnt0eXBlOlwiYXRcIixvcGVuOlwiKD86XCIsY2xvc2U6XCIpXCJ9fX0sZ2xvYkNoYXJzKHQpe3JldHVybiB0PT09dHJ1ZT9DOmJ9fX0sNjk3Oih0LGUsdSk9Pntjb25zdCBuPXUoMTU0KTtjb25zdCBvPXUoOTYpO2NvbnN0e01BWF9MRU5HVEg6cyxQT1NJWF9SRUdFWF9TT1VSQ0U6cixSRUdFWF9OT05fU1BFQ0lBTF9DSEFSUzphLFJFR0VYX1NQRUNJQUxfQ0hBUlNfQkFDS1JFRjppLFJFUExBQ0VNRU5UUzpjfT1uO2NvbnN0IGV4cGFuZFJhbmdlPSh0LGUpPT57aWYodHlwZW9mIGUuZXhwYW5kUmFuZ2U9PT1cImZ1bmN0aW9uXCIpe3JldHVybiBlLmV4cGFuZFJhbmdlKC4uLnQsZSl9dC5zb3J0KCk7Y29uc3QgdT1gWyR7dC5qb2luKFwiLVwiKX1dYDt0cnl7bmV3IFJlZ0V4cCh1KX1jYXRjaChlKXtyZXR1cm4gdC5tYXAoKHQ9Pm8uZXNjYXBlUmVnZXgodCkpKS5qb2luKFwiLi5cIil9cmV0dXJuIHV9O2NvbnN0IHN5bnRheEVycm9yPSh0LGUpPT5gTWlzc2luZyAke3R9OiBcIiR7ZX1cIiAtIHVzZSBcIlxcXFxcXFxcJHtlfVwiIHRvIG1hdGNoIGxpdGVyYWwgY2hhcmFjdGVyc2A7Y29uc3QgcGFyc2U9KHQsZSk9PntpZih0eXBlb2YgdCE9PVwic3RyaW5nXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBhIHN0cmluZ1wiKX10PWNbdF18fHQ7Y29uc3QgdT17Li4uZX07Y29uc3QgcD10eXBlb2YgdS5tYXhMZW5ndGg9PT1cIm51bWJlclwiP01hdGgubWluKHMsdS5tYXhMZW5ndGgpOnM7bGV0IGw9dC5sZW5ndGg7aWYobD5wKXt0aHJvdyBuZXcgU3ludGF4RXJyb3IoYElucHV0IGxlbmd0aDogJHtsfSwgZXhjZWVkcyBtYXhpbXVtIGFsbG93ZWQgbGVuZ3RoOiAke3B9YCl9Y29uc3QgZj17dHlwZTpcImJvc1wiLHZhbHVlOlwiXCIsb3V0cHV0OnUucHJlcGVuZHx8XCJcIn07Y29uc3QgQT1bZl07Y29uc3QgXz11LmNhcHR1cmU/XCJcIjpcIj86XCI7Y29uc3QgUj1uLmdsb2JDaGFycyh1LndpbmRvd3MpO2NvbnN0IEU9bi5leHRnbG9iQ2hhcnMoUik7Y29uc3R7RE9UX0xJVEVSQUw6aCxQTFVTX0xJVEVSQUw6ZyxTTEFTSF9MSVRFUkFMOmIsT05FX0NIQVI6QyxET1RTX1NMQVNIOnksTk9fRE9UOiQsTk9fRE9UX1NMQVNIOngsTk9fRE9UU19TTEFTSDpTLFFNQVJLOkgsUU1BUktfTk9fRE9UOnYsU1RBUjpkLFNUQVJUX0FOQ0hPUjpMfT1SO2NvbnN0IGdsb2JzdGFyPXQ9PmAoJHtffSg/Oig/ISR7TH0ke3QuZG90P3k6aH0pLikqPylgO2NvbnN0IFQ9dS5kb3Q/XCJcIjokO2NvbnN0IE89dS5kb3Q/SDp2O2xldCBrPXUuYmFzaD09PXRydWU/Z2xvYnN0YXIodSk6ZDtpZih1LmNhcHR1cmUpe2s9YCgke2t9KWB9aWYodHlwZW9mIHUubm9leHQ9PT1cImJvb2xlYW5cIil7dS5ub2V4dGdsb2I9dS5ub2V4dH1jb25zdCBtPXtpbnB1dDp0LGluZGV4Oi0xLHN0YXJ0OjAsZG90OnUuZG90PT09dHJ1ZSxjb25zdW1lZDpcIlwiLG91dHB1dDpcIlwiLHByZWZpeDpcIlwiLGJhY2t0cmFjazpmYWxzZSxuZWdhdGVkOmZhbHNlLGJyYWNrZXRzOjAsYnJhY2VzOjAscGFyZW5zOjAscXVvdGVzOjAsZ2xvYnN0YXI6ZmFsc2UsdG9rZW5zOkF9O3Q9by5yZW1vdmVQcmVmaXgodCxtKTtsPXQubGVuZ3RoO2NvbnN0IHc9W107Y29uc3QgTj1bXTtjb25zdCBJPVtdO2xldCBCPWY7bGV0IEc7Y29uc3QgZW9zPSgpPT5tLmluZGV4PT09bC0xO2NvbnN0IEQ9bS5wZWVrPShlPTEpPT50W20uaW5kZXgrZV07Y29uc3QgTT1tLmFkdmFuY2U9KCk9PnRbKyttLmluZGV4XXx8XCJcIjtjb25zdCByZW1haW5pbmc9KCk9PnQuc2xpY2UobS5pbmRleCsxKTtjb25zdCBjb25zdW1lPSh0PVwiXCIsZT0wKT0+e20uY29uc3VtZWQrPXQ7bS5pbmRleCs9ZX07Y29uc3QgYXBwZW5kPXQ9PnttLm91dHB1dCs9dC5vdXRwdXQhPW51bGw/dC5vdXRwdXQ6dC52YWx1ZTtjb25zdW1lKHQudmFsdWUpfTtjb25zdCBuZWdhdGU9KCk9PntsZXQgdD0xO3doaWxlKEQoKT09PVwiIVwiJiYoRCgyKSE9PVwiKFwifHxEKDMpPT09XCI/XCIpKXtNKCk7bS5zdGFydCsrO3QrK31pZih0JTI9PT0wKXtyZXR1cm4gZmFsc2V9bS5uZWdhdGVkPXRydWU7bS5zdGFydCsrO3JldHVybiB0cnVlfTtjb25zdCBpbmNyZW1lbnQ9dD0+e21bdF0rKztJLnB1c2godCl9O2NvbnN0IGRlY3JlbWVudD10PT57bVt0XS0tO0kucG9wKCl9O2NvbnN0IHB1c2g9dD0+e2lmKEIudHlwZT09PVwiZ2xvYnN0YXJcIil7Y29uc3QgZT1tLmJyYWNlcz4wJiYodC50eXBlPT09XCJjb21tYVwifHx0LnR5cGU9PT1cImJyYWNlXCIpO2NvbnN0IHU9dC5leHRnbG9iPT09dHJ1ZXx8dy5sZW5ndGgmJih0LnR5cGU9PT1cInBpcGVcInx8dC50eXBlPT09XCJwYXJlblwiKTtpZih0LnR5cGUhPT1cInNsYXNoXCImJnQudHlwZSE9PVwicGFyZW5cIiYmIWUmJiF1KXttLm91dHB1dD1tLm91dHB1dC5zbGljZSgwLC1CLm91dHB1dC5sZW5ndGgpO0IudHlwZT1cInN0YXJcIjtCLnZhbHVlPVwiKlwiO0Iub3V0cHV0PWs7bS5vdXRwdXQrPUIub3V0cHV0fX1pZih3Lmxlbmd0aCYmdC50eXBlIT09XCJwYXJlblwiKXt3W3cubGVuZ3RoLTFdLmlubmVyKz10LnZhbHVlfWlmKHQudmFsdWV8fHQub3V0cHV0KWFwcGVuZCh0KTtpZihCJiZCLnR5cGU9PT1cInRleHRcIiYmdC50eXBlPT09XCJ0ZXh0XCIpe0Iub3V0cHV0PShCLm91dHB1dHx8Qi52YWx1ZSkrdC52YWx1ZTtCLnZhbHVlKz10LnZhbHVlO3JldHVybn10LnByZXY9QjtBLnB1c2godCk7Qj10fTtjb25zdCBleHRnbG9iT3Blbj0odCxlKT0+e2NvbnN0IG49ey4uLkVbZV0sY29uZGl0aW9uczoxLGlubmVyOlwiXCJ9O24ucHJldj1CO24ucGFyZW5zPW0ucGFyZW5zO24ub3V0cHV0PW0ub3V0cHV0O2NvbnN0IG89KHUuY2FwdHVyZT9cIihcIjpcIlwiKStuLm9wZW47aW5jcmVtZW50KFwicGFyZW5zXCIpO3B1c2goe3R5cGU6dCx2YWx1ZTplLG91dHB1dDptLm91dHB1dD9cIlwiOkN9KTtwdXNoKHt0eXBlOlwicGFyZW5cIixleHRnbG9iOnRydWUsdmFsdWU6TSgpLG91dHB1dDpvfSk7dy5wdXNoKG4pfTtjb25zdCBleHRnbG9iQ2xvc2U9dD0+e2xldCBuPXQuY2xvc2UrKHUuY2FwdHVyZT9cIilcIjpcIlwiKTtsZXQgbztpZih0LnR5cGU9PT1cIm5lZ2F0ZVwiKXtsZXQgcz1rO2lmKHQuaW5uZXImJnQuaW5uZXIubGVuZ3RoPjEmJnQuaW5uZXIuaW5jbHVkZXMoXCIvXCIpKXtzPWdsb2JzdGFyKHUpfWlmKHMhPT1rfHxlb3MoKXx8L15cXCkrJC8udGVzdChyZW1haW5pbmcoKSkpe249dC5jbG9zZT1gKSQpKSR7c31gfWlmKHQuaW5uZXIuaW5jbHVkZXMoXCIqXCIpJiYobz1yZW1haW5pbmcoKSkmJi9eXFwuW15cXFxcLy5dKyQvLnRlc3Qobykpe2NvbnN0IHU9cGFyc2Uobyx7Li4uZSxmYXN0cGF0aHM6ZmFsc2V9KS5vdXRwdXQ7bj10LmNsb3NlPWApJHt1fSkke3N9KWB9aWYodC5wcmV2LnR5cGU9PT1cImJvc1wiKXttLm5lZ2F0ZWRFeHRnbG9iPXRydWV9fXB1c2goe3R5cGU6XCJwYXJlblwiLGV4dGdsb2I6dHJ1ZSx2YWx1ZTpHLG91dHB1dDpufSk7ZGVjcmVtZW50KFwicGFyZW5zXCIpfTtpZih1LmZhc3RwYXRocyE9PWZhbHNlJiYhLyheWyohXXxbLygpW1xcXXt9XCJdKS8udGVzdCh0KSl7bGV0IG49ZmFsc2U7bGV0IHM9dC5yZXBsYWNlKGksKCh0LGUsdSxvLHMscik9PntpZihvPT09XCJcXFxcXCIpe249dHJ1ZTtyZXR1cm4gdH1pZihvPT09XCI/XCIpe2lmKGUpe3JldHVybiBlK28rKHM/SC5yZXBlYXQocy5sZW5ndGgpOlwiXCIpfWlmKHI9PT0wKXtyZXR1cm4gTysocz9ILnJlcGVhdChzLmxlbmd0aCk6XCJcIil9cmV0dXJuIEgucmVwZWF0KHUubGVuZ3RoKX1pZihvPT09XCIuXCIpe3JldHVybiBoLnJlcGVhdCh1Lmxlbmd0aCl9aWYobz09PVwiKlwiKXtpZihlKXtyZXR1cm4gZStvKyhzP2s6XCJcIil9cmV0dXJuIGt9cmV0dXJuIGU/dDpgXFxcXCR7dH1gfSkpO2lmKG49PT10cnVlKXtpZih1LnVuZXNjYXBlPT09dHJ1ZSl7cz1zLnJlcGxhY2UoL1xcXFwvZyxcIlwiKX1lbHNle3M9cy5yZXBsYWNlKC9cXFxcKy9nLCh0PT50Lmxlbmd0aCUyPT09MD9cIlxcXFxcXFxcXCI6dD9cIlxcXFxcIjpcIlwiKSl9fWlmKHM9PT10JiZ1LmNvbnRhaW5zPT09dHJ1ZSl7bS5vdXRwdXQ9dDtyZXR1cm4gbX1tLm91dHB1dD1vLndyYXBPdXRwdXQocyxtLGUpO3JldHVybiBtfXdoaWxlKCFlb3MoKSl7Rz1NKCk7aWYoRz09PVwiXFwwXCIpe2NvbnRpbnVlfWlmKEc9PT1cIlxcXFxcIil7Y29uc3QgdD1EKCk7aWYodD09PVwiL1wiJiZ1LmJhc2ghPT10cnVlKXtjb250aW51ZX1pZih0PT09XCIuXCJ8fHQ9PT1cIjtcIil7Y29udGludWV9aWYoIXQpe0crPVwiXFxcXFwiO3B1c2goe3R5cGU6XCJ0ZXh0XCIsdmFsdWU6R30pO2NvbnRpbnVlfWNvbnN0IGU9L15cXFxcKy8uZXhlYyhyZW1haW5pbmcoKSk7bGV0IG49MDtpZihlJiZlWzBdLmxlbmd0aD4yKXtuPWVbMF0ubGVuZ3RoO20uaW5kZXgrPW47aWYobiUyIT09MCl7Rys9XCJcXFxcXCJ9fWlmKHUudW5lc2NhcGU9PT10cnVlKXtHPU0oKX1lbHNle0crPU0oKX1pZihtLmJyYWNrZXRzPT09MCl7cHVzaCh7dHlwZTpcInRleHRcIix2YWx1ZTpHfSk7Y29udGludWV9fWlmKG0uYnJhY2tldHM+MCYmKEchPT1cIl1cInx8Qi52YWx1ZT09PVwiW1wifHxCLnZhbHVlPT09XCJbXlwiKSl7aWYodS5wb3NpeCE9PWZhbHNlJiZHPT09XCI6XCIpe2NvbnN0IHQ9Qi52YWx1ZS5zbGljZSgxKTtpZih0LmluY2x1ZGVzKFwiW1wiKSl7Qi5wb3NpeD10cnVlO2lmKHQuaW5jbHVkZXMoXCI6XCIpKXtjb25zdCB0PUIudmFsdWUubGFzdEluZGV4T2YoXCJbXCIpO2NvbnN0IGU9Qi52YWx1ZS5zbGljZSgwLHQpO2NvbnN0IHU9Qi52YWx1ZS5zbGljZSh0KzIpO2NvbnN0IG49clt1XTtpZihuKXtCLnZhbHVlPWUrbjttLmJhY2t0cmFjaz10cnVlO00oKTtpZighZi5vdXRwdXQmJkEuaW5kZXhPZihCKT09PTEpe2Yub3V0cHV0PUN9Y29udGludWV9fX19aWYoRz09PVwiW1wiJiZEKCkhPT1cIjpcInx8Rz09PVwiLVwiJiZEKCk9PT1cIl1cIil7Rz1gXFxcXCR7R31gfWlmKEc9PT1cIl1cIiYmKEIudmFsdWU9PT1cIltcInx8Qi52YWx1ZT09PVwiW15cIikpe0c9YFxcXFwke0d9YH1pZih1LnBvc2l4PT09dHJ1ZSYmRz09PVwiIVwiJiZCLnZhbHVlPT09XCJbXCIpe0c9XCJeXCJ9Qi52YWx1ZSs9RzthcHBlbmQoe3ZhbHVlOkd9KTtjb250aW51ZX1pZihtLnF1b3Rlcz09PTEmJkchPT0nXCInKXtHPW8uZXNjYXBlUmVnZXgoRyk7Qi52YWx1ZSs9RzthcHBlbmQoe3ZhbHVlOkd9KTtjb250aW51ZX1pZihHPT09J1wiJyl7bS5xdW90ZXM9bS5xdW90ZXM9PT0xPzA6MTtpZih1LmtlZXBRdW90ZXM9PT10cnVlKXtwdXNoKHt0eXBlOlwidGV4dFwiLHZhbHVlOkd9KX1jb250aW51ZX1pZihHPT09XCIoXCIpe2luY3JlbWVudChcInBhcmVuc1wiKTtwdXNoKHt0eXBlOlwicGFyZW5cIix2YWx1ZTpHfSk7Y29udGludWV9aWYoRz09PVwiKVwiKXtpZihtLnBhcmVucz09PTAmJnUuc3RyaWN0QnJhY2tldHM9PT10cnVlKXt0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoXCJvcGVuaW5nXCIsXCIoXCIpKX1jb25zdCB0PXdbdy5sZW5ndGgtMV07aWYodCYmbS5wYXJlbnM9PT10LnBhcmVucysxKXtleHRnbG9iQ2xvc2Uody5wb3AoKSk7Y29udGludWV9cHVzaCh7dHlwZTpcInBhcmVuXCIsdmFsdWU6RyxvdXRwdXQ6bS5wYXJlbnM/XCIpXCI6XCJcXFxcKVwifSk7ZGVjcmVtZW50KFwicGFyZW5zXCIpO2NvbnRpbnVlfWlmKEc9PT1cIltcIil7aWYodS5ub2JyYWNrZXQ9PT10cnVlfHwhcmVtYWluaW5nKCkuaW5jbHVkZXMoXCJdXCIpKXtpZih1Lm5vYnJhY2tldCE9PXRydWUmJnUuc3RyaWN0QnJhY2tldHM9PT10cnVlKXt0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoXCJjbG9zaW5nXCIsXCJdXCIpKX1HPWBcXFxcJHtHfWB9ZWxzZXtpbmNyZW1lbnQoXCJicmFja2V0c1wiKX1wdXNoKHt0eXBlOlwiYnJhY2tldFwiLHZhbHVlOkd9KTtjb250aW51ZX1pZihHPT09XCJdXCIpe2lmKHUubm9icmFja2V0PT09dHJ1ZXx8QiYmQi50eXBlPT09XCJicmFja2V0XCImJkIudmFsdWUubGVuZ3RoPT09MSl7cHVzaCh7dHlwZTpcInRleHRcIix2YWx1ZTpHLG91dHB1dDpgXFxcXCR7R31gfSk7Y29udGludWV9aWYobS5icmFja2V0cz09PTApe2lmKHUuc3RyaWN0QnJhY2tldHM9PT10cnVlKXt0aHJvdyBuZXcgU3ludGF4RXJyb3Ioc3ludGF4RXJyb3IoXCJvcGVuaW5nXCIsXCJbXCIpKX1wdXNoKHt0eXBlOlwidGV4dFwiLHZhbHVlOkcsb3V0cHV0OmBcXFxcJHtHfWB9KTtjb250aW51ZX1kZWNyZW1lbnQoXCJicmFja2V0c1wiKTtjb25zdCB0PUIudmFsdWUuc2xpY2UoMSk7aWYoQi5wb3NpeCE9PXRydWUmJnRbMF09PT1cIl5cIiYmIXQuaW5jbHVkZXMoXCIvXCIpKXtHPWAvJHtHfWB9Qi52YWx1ZSs9RzthcHBlbmQoe3ZhbHVlOkd9KTtpZih1LmxpdGVyYWxCcmFja2V0cz09PWZhbHNlfHxvLmhhc1JlZ2V4Q2hhcnModCkpe2NvbnRpbnVlfWNvbnN0IGU9by5lc2NhcGVSZWdleChCLnZhbHVlKTttLm91dHB1dD1tLm91dHB1dC5zbGljZSgwLC1CLnZhbHVlLmxlbmd0aCk7aWYodS5saXRlcmFsQnJhY2tldHM9PT10cnVlKXttLm91dHB1dCs9ZTtCLnZhbHVlPWU7Y29udGludWV9Qi52YWx1ZT1gKCR7X30ke2V9fCR7Qi52YWx1ZX0pYDttLm91dHB1dCs9Qi52YWx1ZTtjb250aW51ZX1pZihHPT09XCJ7XCImJnUubm9icmFjZSE9PXRydWUpe2luY3JlbWVudChcImJyYWNlc1wiKTtjb25zdCB0PXt0eXBlOlwiYnJhY2VcIix2YWx1ZTpHLG91dHB1dDpcIihcIixvdXRwdXRJbmRleDptLm91dHB1dC5sZW5ndGgsdG9rZW5zSW5kZXg6bS50b2tlbnMubGVuZ3RofTtOLnB1c2godCk7cHVzaCh0KTtjb250aW51ZX1pZihHPT09XCJ9XCIpe2NvbnN0IHQ9TltOLmxlbmd0aC0xXTtpZih1Lm5vYnJhY2U9PT10cnVlfHwhdCl7cHVzaCh7dHlwZTpcInRleHRcIix2YWx1ZTpHLG91dHB1dDpHfSk7Y29udGludWV9bGV0IGU9XCIpXCI7aWYodC5kb3RzPT09dHJ1ZSl7Y29uc3QgdD1BLnNsaWNlKCk7Y29uc3Qgbj1bXTtmb3IobGV0IGU9dC5sZW5ndGgtMTtlPj0wO2UtLSl7QS5wb3AoKTtpZih0W2VdLnR5cGU9PT1cImJyYWNlXCIpe2JyZWFrfWlmKHRbZV0udHlwZSE9PVwiZG90c1wiKXtuLnVuc2hpZnQodFtlXS52YWx1ZSl9fWU9ZXhwYW5kUmFuZ2Uobix1KTttLmJhY2t0cmFjaz10cnVlfWlmKHQuY29tbWEhPT10cnVlJiZ0LmRvdHMhPT10cnVlKXtjb25zdCB1PW0ub3V0cHV0LnNsaWNlKDAsdC5vdXRwdXRJbmRleCk7Y29uc3Qgbj1tLnRva2Vucy5zbGljZSh0LnRva2Vuc0luZGV4KTt0LnZhbHVlPXQub3V0cHV0PVwiXFxcXHtcIjtHPWU9XCJcXFxcfVwiO20ub3V0cHV0PXU7Zm9yKGNvbnN0IHQgb2Ygbil7bS5vdXRwdXQrPXQub3V0cHV0fHx0LnZhbHVlfX1wdXNoKHt0eXBlOlwiYnJhY2VcIix2YWx1ZTpHLG91dHB1dDplfSk7ZGVjcmVtZW50KFwiYnJhY2VzXCIpO04ucG9wKCk7Y29udGludWV9aWYoRz09PVwifFwiKXtpZih3Lmxlbmd0aD4wKXt3W3cubGVuZ3RoLTFdLmNvbmRpdGlvbnMrK31wdXNoKHt0eXBlOlwidGV4dFwiLHZhbHVlOkd9KTtjb250aW51ZX1pZihHPT09XCIsXCIpe2xldCB0PUc7Y29uc3QgZT1OW04ubGVuZ3RoLTFdO2lmKGUmJklbSS5sZW5ndGgtMV09PT1cImJyYWNlc1wiKXtlLmNvbW1hPXRydWU7dD1cInxcIn1wdXNoKHt0eXBlOlwiY29tbWFcIix2YWx1ZTpHLG91dHB1dDp0fSk7Y29udGludWV9aWYoRz09PVwiL1wiKXtpZihCLnR5cGU9PT1cImRvdFwiJiZtLmluZGV4PT09bS5zdGFydCsxKXttLnN0YXJ0PW0uaW5kZXgrMTttLmNvbnN1bWVkPVwiXCI7bS5vdXRwdXQ9XCJcIjtBLnBvcCgpO0I9Zjtjb250aW51ZX1wdXNoKHt0eXBlOlwic2xhc2hcIix2YWx1ZTpHLG91dHB1dDpifSk7Y29udGludWV9aWYoRz09PVwiLlwiKXtpZihtLmJyYWNlcz4wJiZCLnR5cGU9PT1cImRvdFwiKXtpZihCLnZhbHVlPT09XCIuXCIpQi5vdXRwdXQ9aDtjb25zdCB0PU5bTi5sZW5ndGgtMV07Qi50eXBlPVwiZG90c1wiO0Iub3V0cHV0Kz1HO0IudmFsdWUrPUc7dC5kb3RzPXRydWU7Y29udGludWV9aWYobS5icmFjZXMrbS5wYXJlbnM9PT0wJiZCLnR5cGUhPT1cImJvc1wiJiZCLnR5cGUhPT1cInNsYXNoXCIpe3B1c2goe3R5cGU6XCJ0ZXh0XCIsdmFsdWU6RyxvdXRwdXQ6aH0pO2NvbnRpbnVlfXB1c2goe3R5cGU6XCJkb3RcIix2YWx1ZTpHLG91dHB1dDpofSk7Y29udGludWV9aWYoRz09PVwiP1wiKXtjb25zdCB0PUImJkIudmFsdWU9PT1cIihcIjtpZighdCYmdS5ub2V4dGdsb2IhPT10cnVlJiZEKCk9PT1cIihcIiYmRCgyKSE9PVwiP1wiKXtleHRnbG9iT3BlbihcInFtYXJrXCIsRyk7Y29udGludWV9aWYoQiYmQi50eXBlPT09XCJwYXJlblwiKXtjb25zdCB0PUQoKTtsZXQgZT1HO2lmKEIudmFsdWU9PT1cIihcIiYmIS9bIT08Ol0vLnRlc3QodCl8fHQ9PT1cIjxcIiYmIS88KFshPV18XFx3Kz4pLy50ZXN0KHJlbWFpbmluZygpKSl7ZT1gXFxcXCR7R31gfXB1c2goe3R5cGU6XCJ0ZXh0XCIsdmFsdWU6RyxvdXRwdXQ6ZX0pO2NvbnRpbnVlfWlmKHUuZG90IT09dHJ1ZSYmKEIudHlwZT09PVwic2xhc2hcInx8Qi50eXBlPT09XCJib3NcIikpe3B1c2goe3R5cGU6XCJxbWFya1wiLHZhbHVlOkcsb3V0cHV0OnZ9KTtjb250aW51ZX1wdXNoKHt0eXBlOlwicW1hcmtcIix2YWx1ZTpHLG91dHB1dDpIfSk7Y29udGludWV9aWYoRz09PVwiIVwiKXtpZih1Lm5vZXh0Z2xvYiE9PXRydWUmJkQoKT09PVwiKFwiKXtpZihEKDIpIT09XCI/XCJ8fCEvWyE9PDpdLy50ZXN0KEQoMykpKXtleHRnbG9iT3BlbihcIm5lZ2F0ZVwiLEcpO2NvbnRpbnVlfX1pZih1Lm5vbmVnYXRlIT09dHJ1ZSYmbS5pbmRleD09PTApe25lZ2F0ZSgpO2NvbnRpbnVlfX1pZihHPT09XCIrXCIpe2lmKHUubm9leHRnbG9iIT09dHJ1ZSYmRCgpPT09XCIoXCImJkQoMikhPT1cIj9cIil7ZXh0Z2xvYk9wZW4oXCJwbHVzXCIsRyk7Y29udGludWV9aWYoQiYmQi52YWx1ZT09PVwiKFwifHx1LnJlZ2V4PT09ZmFsc2Upe3B1c2goe3R5cGU6XCJwbHVzXCIsdmFsdWU6RyxvdXRwdXQ6Z30pO2NvbnRpbnVlfWlmKEImJihCLnR5cGU9PT1cImJyYWNrZXRcInx8Qi50eXBlPT09XCJwYXJlblwifHxCLnR5cGU9PT1cImJyYWNlXCIpfHxtLnBhcmVucz4wKXtwdXNoKHt0eXBlOlwicGx1c1wiLHZhbHVlOkd9KTtjb250aW51ZX1wdXNoKHt0eXBlOlwicGx1c1wiLHZhbHVlOmd9KTtjb250aW51ZX1pZihHPT09XCJAXCIpe2lmKHUubm9leHRnbG9iIT09dHJ1ZSYmRCgpPT09XCIoXCImJkQoMikhPT1cIj9cIil7cHVzaCh7dHlwZTpcImF0XCIsZXh0Z2xvYjp0cnVlLHZhbHVlOkcsb3V0cHV0OlwiXCJ9KTtjb250aW51ZX1wdXNoKHt0eXBlOlwidGV4dFwiLHZhbHVlOkd9KTtjb250aW51ZX1pZihHIT09XCIqXCIpe2lmKEc9PT1cIiRcInx8Rz09PVwiXlwiKXtHPWBcXFxcJHtHfWB9Y29uc3QgdD1hLmV4ZWMocmVtYWluaW5nKCkpO2lmKHQpe0crPXRbMF07bS5pbmRleCs9dFswXS5sZW5ndGh9cHVzaCh7dHlwZTpcInRleHRcIix2YWx1ZTpHfSk7Y29udGludWV9aWYoQiYmKEIudHlwZT09PVwiZ2xvYnN0YXJcInx8Qi5zdGFyPT09dHJ1ZSkpe0IudHlwZT1cInN0YXJcIjtCLnN0YXI9dHJ1ZTtCLnZhbHVlKz1HO0Iub3V0cHV0PWs7bS5iYWNrdHJhY2s9dHJ1ZTttLmdsb2JzdGFyPXRydWU7Y29uc3VtZShHKTtjb250aW51ZX1sZXQgZT1yZW1haW5pbmcoKTtpZih1Lm5vZXh0Z2xvYiE9PXRydWUmJi9eXFwoW14/XS8udGVzdChlKSl7ZXh0Z2xvYk9wZW4oXCJzdGFyXCIsRyk7Y29udGludWV9aWYoQi50eXBlPT09XCJzdGFyXCIpe2lmKHUubm9nbG9ic3Rhcj09PXRydWUpe2NvbnN1bWUoRyk7Y29udGludWV9Y29uc3Qgbj1CLnByZXY7Y29uc3Qgbz1uLnByZXY7Y29uc3Qgcz1uLnR5cGU9PT1cInNsYXNoXCJ8fG4udHlwZT09PVwiYm9zXCI7Y29uc3Qgcj1vJiYoby50eXBlPT09XCJzdGFyXCJ8fG8udHlwZT09PVwiZ2xvYnN0YXJcIik7aWYodS5iYXNoPT09dHJ1ZSYmKCFzfHxlWzBdJiZlWzBdIT09XCIvXCIpKXtwdXNoKHt0eXBlOlwic3RhclwiLHZhbHVlOkcsb3V0cHV0OlwiXCJ9KTtjb250aW51ZX1jb25zdCBhPW0uYnJhY2VzPjAmJihuLnR5cGU9PT1cImNvbW1hXCJ8fG4udHlwZT09PVwiYnJhY2VcIik7Y29uc3QgaT13Lmxlbmd0aCYmKG4udHlwZT09PVwicGlwZVwifHxuLnR5cGU9PT1cInBhcmVuXCIpO2lmKCFzJiZuLnR5cGUhPT1cInBhcmVuXCImJiFhJiYhaSl7cHVzaCh7dHlwZTpcInN0YXJcIix2YWx1ZTpHLG91dHB1dDpcIlwifSk7Y29udGludWV9d2hpbGUoZS5zbGljZSgwLDMpPT09XCIvKipcIil7Y29uc3QgdT10W20uaW5kZXgrNF07aWYodSYmdSE9PVwiL1wiKXticmVha31lPWUuc2xpY2UoMyk7Y29uc3VtZShcIi8qKlwiLDMpfWlmKG4udHlwZT09PVwiYm9zXCImJmVvcygpKXtCLnR5cGU9XCJnbG9ic3RhclwiO0IudmFsdWUrPUc7Qi5vdXRwdXQ9Z2xvYnN0YXIodSk7bS5vdXRwdXQ9Qi5vdXRwdXQ7bS5nbG9ic3Rhcj10cnVlO2NvbnN1bWUoRyk7Y29udGludWV9aWYobi50eXBlPT09XCJzbGFzaFwiJiZuLnByZXYudHlwZSE9PVwiYm9zXCImJiFyJiZlb3MoKSl7bS5vdXRwdXQ9bS5vdXRwdXQuc2xpY2UoMCwtKG4ub3V0cHV0K0Iub3V0cHV0KS5sZW5ndGgpO24ub3V0cHV0PWAoPzoke24ub3V0cHV0fWA7Qi50eXBlPVwiZ2xvYnN0YXJcIjtCLm91dHB1dD1nbG9ic3Rhcih1KSsodS5zdHJpY3RTbGFzaGVzP1wiKVwiOlwifCQpXCIpO0IudmFsdWUrPUc7bS5nbG9ic3Rhcj10cnVlO20ub3V0cHV0Kz1uLm91dHB1dCtCLm91dHB1dDtjb25zdW1lKEcpO2NvbnRpbnVlfWlmKG4udHlwZT09PVwic2xhc2hcIiYmbi5wcmV2LnR5cGUhPT1cImJvc1wiJiZlWzBdPT09XCIvXCIpe2NvbnN0IHQ9ZVsxXSE9PXZvaWQgMD9cInwkXCI6XCJcIjttLm91dHB1dD1tLm91dHB1dC5zbGljZSgwLC0obi5vdXRwdXQrQi5vdXRwdXQpLmxlbmd0aCk7bi5vdXRwdXQ9YCg/OiR7bi5vdXRwdXR9YDtCLnR5cGU9XCJnbG9ic3RhclwiO0Iub3V0cHV0PWAke2dsb2JzdGFyKHUpfSR7Yn18JHtifSR7dH0pYDtCLnZhbHVlKz1HO20ub3V0cHV0Kz1uLm91dHB1dCtCLm91dHB1dDttLmdsb2JzdGFyPXRydWU7Y29uc3VtZShHK00oKSk7cHVzaCh7dHlwZTpcInNsYXNoXCIsdmFsdWU6XCIvXCIsb3V0cHV0OlwiXCJ9KTtjb250aW51ZX1pZihuLnR5cGU9PT1cImJvc1wiJiZlWzBdPT09XCIvXCIpe0IudHlwZT1cImdsb2JzdGFyXCI7Qi52YWx1ZSs9RztCLm91dHB1dD1gKD86Xnwke2J9fCR7Z2xvYnN0YXIodSl9JHtifSlgO20ub3V0cHV0PUIub3V0cHV0O20uZ2xvYnN0YXI9dHJ1ZTtjb25zdW1lKEcrTSgpKTtwdXNoKHt0eXBlOlwic2xhc2hcIix2YWx1ZTpcIi9cIixvdXRwdXQ6XCJcIn0pO2NvbnRpbnVlfW0ub3V0cHV0PW0ub3V0cHV0LnNsaWNlKDAsLUIub3V0cHV0Lmxlbmd0aCk7Qi50eXBlPVwiZ2xvYnN0YXJcIjtCLm91dHB1dD1nbG9ic3Rhcih1KTtCLnZhbHVlKz1HO20ub3V0cHV0Kz1CLm91dHB1dDttLmdsb2JzdGFyPXRydWU7Y29uc3VtZShHKTtjb250aW51ZX1jb25zdCBuPXt0eXBlOlwic3RhclwiLHZhbHVlOkcsb3V0cHV0Omt9O2lmKHUuYmFzaD09PXRydWUpe24ub3V0cHV0PVwiLio/XCI7aWYoQi50eXBlPT09XCJib3NcInx8Qi50eXBlPT09XCJzbGFzaFwiKXtuLm91dHB1dD1UK24ub3V0cHV0fXB1c2gobik7Y29udGludWV9aWYoQiYmKEIudHlwZT09PVwiYnJhY2tldFwifHxCLnR5cGU9PT1cInBhcmVuXCIpJiZ1LnJlZ2V4PT09dHJ1ZSl7bi5vdXRwdXQ9RztwdXNoKG4pO2NvbnRpbnVlfWlmKG0uaW5kZXg9PT1tLnN0YXJ0fHxCLnR5cGU9PT1cInNsYXNoXCJ8fEIudHlwZT09PVwiZG90XCIpe2lmKEIudHlwZT09PVwiZG90XCIpe20ub3V0cHV0Kz14O0Iub3V0cHV0Kz14fWVsc2UgaWYodS5kb3Q9PT10cnVlKXttLm91dHB1dCs9UztCLm91dHB1dCs9U31lbHNle20ub3V0cHV0Kz1UO0Iub3V0cHV0Kz1UfWlmKEQoKSE9PVwiKlwiKXttLm91dHB1dCs9QztCLm91dHB1dCs9Q319cHVzaChuKX13aGlsZShtLmJyYWNrZXRzPjApe2lmKHUuc3RyaWN0QnJhY2tldHM9PT10cnVlKXRocm93IG5ldyBTeW50YXhFcnJvcihzeW50YXhFcnJvcihcImNsb3NpbmdcIixcIl1cIikpO20ub3V0cHV0PW8uZXNjYXBlTGFzdChtLm91dHB1dCxcIltcIik7ZGVjcmVtZW50KFwiYnJhY2tldHNcIil9d2hpbGUobS5wYXJlbnM+MCl7aWYodS5zdHJpY3RCcmFja2V0cz09PXRydWUpdGhyb3cgbmV3IFN5bnRheEVycm9yKHN5bnRheEVycm9yKFwiY2xvc2luZ1wiLFwiKVwiKSk7bS5vdXRwdXQ9by5lc2NhcGVMYXN0KG0ub3V0cHV0LFwiKFwiKTtkZWNyZW1lbnQoXCJwYXJlbnNcIil9d2hpbGUobS5icmFjZXM+MCl7aWYodS5zdHJpY3RCcmFja2V0cz09PXRydWUpdGhyb3cgbmV3IFN5bnRheEVycm9yKHN5bnRheEVycm9yKFwiY2xvc2luZ1wiLFwifVwiKSk7bS5vdXRwdXQ9by5lc2NhcGVMYXN0KG0ub3V0cHV0LFwie1wiKTtkZWNyZW1lbnQoXCJicmFjZXNcIil9aWYodS5zdHJpY3RTbGFzaGVzIT09dHJ1ZSYmKEIudHlwZT09PVwic3RhclwifHxCLnR5cGU9PT1cImJyYWNrZXRcIikpe3B1c2goe3R5cGU6XCJtYXliZV9zbGFzaFwiLHZhbHVlOlwiXCIsb3V0cHV0OmAke2J9P2B9KX1pZihtLmJhY2t0cmFjaz09PXRydWUpe20ub3V0cHV0PVwiXCI7Zm9yKGNvbnN0IHQgb2YgbS50b2tlbnMpe20ub3V0cHV0Kz10Lm91dHB1dCE9bnVsbD90Lm91dHB1dDp0LnZhbHVlO2lmKHQuc3VmZml4KXttLm91dHB1dCs9dC5zdWZmaXh9fX1yZXR1cm4gbX07cGFyc2UuZmFzdHBhdGhzPSh0LGUpPT57Y29uc3QgdT17Li4uZX07Y29uc3Qgcj10eXBlb2YgdS5tYXhMZW5ndGg9PT1cIm51bWJlclwiP01hdGgubWluKHMsdS5tYXhMZW5ndGgpOnM7Y29uc3QgYT10Lmxlbmd0aDtpZihhPnIpe3Rocm93IG5ldyBTeW50YXhFcnJvcihgSW5wdXQgbGVuZ3RoOiAke2F9LCBleGNlZWRzIG1heGltdW0gYWxsb3dlZCBsZW5ndGg6ICR7cn1gKX10PWNbdF18fHQ7Y29uc3R7RE9UX0xJVEVSQUw6aSxTTEFTSF9MSVRFUkFMOnAsT05FX0NIQVI6bCxET1RTX1NMQVNIOmYsTk9fRE9UOkEsTk9fRE9UUzpfLE5PX0RPVFNfU0xBU0g6UixTVEFSOkUsU1RBUlRfQU5DSE9SOmh9PW4uZ2xvYkNoYXJzKHUud2luZG93cyk7Y29uc3QgZz11LmRvdD9fOkE7Y29uc3QgYj11LmRvdD9SOkE7Y29uc3QgQz11LmNhcHR1cmU/XCJcIjpcIj86XCI7Y29uc3QgeT17bmVnYXRlZDpmYWxzZSxwcmVmaXg6XCJcIn07bGV0ICQ9dS5iYXNoPT09dHJ1ZT9cIi4qP1wiOkU7aWYodS5jYXB0dXJlKXskPWAoJHskfSlgfWNvbnN0IGdsb2JzdGFyPXQ9PntpZih0Lm5vZ2xvYnN0YXI9PT10cnVlKXJldHVybiAkO3JldHVybmAoJHtDfSg/Oig/ISR7aH0ke3QuZG90P2Y6aX0pLikqPylgfTtjb25zdCBjcmVhdGU9dD0+e3N3aXRjaCh0KXtjYXNlXCIqXCI6cmV0dXJuYCR7Z30ke2x9JHskfWA7Y2FzZVwiLipcIjpyZXR1cm5gJHtpfSR7bH0keyR9YDtjYXNlXCIqLipcIjpyZXR1cm5gJHtnfSR7JH0ke2l9JHtsfSR7JH1gO2Nhc2VcIiovKlwiOnJldHVybmAke2d9JHskfSR7cH0ke2x9JHtifSR7JH1gO2Nhc2VcIioqXCI6cmV0dXJuIGcrZ2xvYnN0YXIodSk7Y2FzZVwiKiovKlwiOnJldHVybmAoPzoke2d9JHtnbG9ic3Rhcih1KX0ke3B9KT8ke2J9JHtsfSR7JH1gO2Nhc2VcIioqLyouKlwiOnJldHVybmAoPzoke2d9JHtnbG9ic3Rhcih1KX0ke3B9KT8ke2J9JHskfSR7aX0ke2x9JHskfWA7Y2FzZVwiKiovLipcIjpyZXR1cm5gKD86JHtnfSR7Z2xvYnN0YXIodSl9JHtwfSk/JHtpfSR7bH0keyR9YDtkZWZhdWx0Ontjb25zdCBlPS9eKC4qPylcXC4oXFx3KykkLy5leGVjKHQpO2lmKCFlKXJldHVybjtjb25zdCB1PWNyZWF0ZShlWzFdKTtpZighdSlyZXR1cm47cmV0dXJuIHUraStlWzJdfX19O2NvbnN0IHg9by5yZW1vdmVQcmVmaXgodCx5KTtsZXQgUz1jcmVhdGUoeCk7aWYoUyYmdS5zdHJpY3RTbGFzaGVzIT09dHJ1ZSl7Uys9YCR7cH0/YH1yZXR1cm4gU307dC5leHBvcnRzPXBhcnNlfSw1MTA6KHQsZSx1KT0+e2NvbnN0IG49dSg3MTYpO2NvbnN0IG89dSg2OTcpO2NvbnN0IHM9dSg5Nik7Y29uc3Qgcj11KDE1NCk7Y29uc3QgaXNPYmplY3Q9dD0+dCYmdHlwZW9mIHQ9PT1cIm9iamVjdFwiJiYhQXJyYXkuaXNBcnJheSh0KTtjb25zdCBwaWNvbWF0Y2g9KHQsZSx1PWZhbHNlKT0+e2lmKEFycmF5LmlzQXJyYXkodCkpe2NvbnN0IG49dC5tYXAoKHQ9PnBpY29tYXRjaCh0LGUsdSkpKTtjb25zdCBhcnJheU1hdGNoZXI9dD0+e2Zvcihjb25zdCBlIG9mIG4pe2NvbnN0IHU9ZSh0KTtpZih1KXJldHVybiB1fXJldHVybiBmYWxzZX07cmV0dXJuIGFycmF5TWF0Y2hlcn1jb25zdCBuPWlzT2JqZWN0KHQpJiZ0LnRva2VucyYmdC5pbnB1dDtpZih0PT09XCJcInx8dHlwZW9mIHQhPT1cInN0cmluZ1wiJiYhbil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIHBhdHRlcm4gdG8gYmUgYSBub24tZW1wdHkgc3RyaW5nXCIpfWNvbnN0IG89ZXx8e307Y29uc3Qgcz1vLndpbmRvd3M7Y29uc3Qgcj1uP3BpY29tYXRjaC5jb21waWxlUmUodCxlKTpwaWNvbWF0Y2gubWFrZVJlKHQsZSxmYWxzZSx0cnVlKTtjb25zdCBhPXIuc3RhdGU7ZGVsZXRlIHIuc3RhdGU7bGV0IGlzSWdub3JlZD0oKT0+ZmFsc2U7aWYoby5pZ25vcmUpe2NvbnN0IHQ9ey4uLmUsaWdub3JlOm51bGwsb25NYXRjaDpudWxsLG9uUmVzdWx0Om51bGx9O2lzSWdub3JlZD1waWNvbWF0Y2goby5pZ25vcmUsdCx1KX1jb25zdCBtYXRjaGVyPSh1LG49ZmFsc2UpPT57Y29uc3R7aXNNYXRjaDppLG1hdGNoOmMsb3V0cHV0OnB9PXBpY29tYXRjaC50ZXN0KHUscixlLHtnbG9iOnQscG9zaXg6c30pO2NvbnN0IGw9e2dsb2I6dCxzdGF0ZTphLHJlZ2V4OnIscG9zaXg6cyxpbnB1dDp1LG91dHB1dDpwLG1hdGNoOmMsaXNNYXRjaDppfTtpZih0eXBlb2Ygby5vblJlc3VsdD09PVwiZnVuY3Rpb25cIil7by5vblJlc3VsdChsKX1pZihpPT09ZmFsc2Upe2wuaXNNYXRjaD1mYWxzZTtyZXR1cm4gbj9sOmZhbHNlfWlmKGlzSWdub3JlZCh1KSl7aWYodHlwZW9mIG8ub25JZ25vcmU9PT1cImZ1bmN0aW9uXCIpe28ub25JZ25vcmUobCl9bC5pc01hdGNoPWZhbHNlO3JldHVybiBuP2w6ZmFsc2V9aWYodHlwZW9mIG8ub25NYXRjaD09PVwiZnVuY3Rpb25cIil7by5vbk1hdGNoKGwpfXJldHVybiBuP2w6dHJ1ZX07aWYodSl7bWF0Y2hlci5zdGF0ZT1hfXJldHVybiBtYXRjaGVyfTtwaWNvbWF0Y2gudGVzdD0odCxlLHUse2dsb2I6bixwb3NpeDpvfT17fSk9PntpZih0eXBlb2YgdCE9PVwic3RyaW5nXCIpe3Rocm93IG5ldyBUeXBlRXJyb3IoXCJFeHBlY3RlZCBpbnB1dCB0byBiZSBhIHN0cmluZ1wiKX1pZih0PT09XCJcIil7cmV0dXJue2lzTWF0Y2g6ZmFsc2Usb3V0cHV0OlwiXCJ9fWNvbnN0IHI9dXx8e307Y29uc3QgYT1yLmZvcm1hdHx8KG8/cy50b1Bvc2l4U2xhc2hlczpudWxsKTtsZXQgaT10PT09bjtsZXQgYz1pJiZhP2EodCk6dDtpZihpPT09ZmFsc2Upe2M9YT9hKHQpOnQ7aT1jPT09bn1pZihpPT09ZmFsc2V8fHIuY2FwdHVyZT09PXRydWUpe2lmKHIubWF0Y2hCYXNlPT09dHJ1ZXx8ci5iYXNlbmFtZT09PXRydWUpe2k9cGljb21hdGNoLm1hdGNoQmFzZSh0LGUsdSxvKX1lbHNle2k9ZS5leGVjKGMpfX1yZXR1cm57aXNNYXRjaDpCb29sZWFuKGkpLG1hdGNoOmksb3V0cHV0OmN9fTtwaWNvbWF0Y2gubWF0Y2hCYXNlPSh0LGUsdSk9Pntjb25zdCBuPWUgaW5zdGFuY2VvZiBSZWdFeHA/ZTpwaWNvbWF0Y2gubWFrZVJlKGUsdSk7cmV0dXJuIG4udGVzdChzLmJhc2VuYW1lKHQpKX07cGljb21hdGNoLmlzTWF0Y2g9KHQsZSx1KT0+cGljb21hdGNoKGUsdSkodCk7cGljb21hdGNoLnBhcnNlPSh0LGUpPT57aWYoQXJyYXkuaXNBcnJheSh0KSlyZXR1cm4gdC5tYXAoKHQ9PnBpY29tYXRjaC5wYXJzZSh0LGUpKSk7cmV0dXJuIG8odCx7Li4uZSxmYXN0cGF0aHM6ZmFsc2V9KX07cGljb21hdGNoLnNjYW49KHQsZSk9Pm4odCxlKTtwaWNvbWF0Y2guY29tcGlsZVJlPSh0LGUsdT1mYWxzZSxuPWZhbHNlKT0+e2lmKHU9PT10cnVlKXtyZXR1cm4gdC5vdXRwdXR9Y29uc3Qgbz1lfHx7fTtjb25zdCBzPW8uY29udGFpbnM/XCJcIjpcIl5cIjtjb25zdCByPW8uY29udGFpbnM/XCJcIjpcIiRcIjtsZXQgYT1gJHtzfSg/OiR7dC5vdXRwdXR9KSR7cn1gO2lmKHQmJnQubmVnYXRlZD09PXRydWUpe2E9YF4oPyEke2F9KS4qJGB9Y29uc3QgaT1waWNvbWF0Y2gudG9SZWdleChhLGUpO2lmKG49PT10cnVlKXtpLnN0YXRlPXR9cmV0dXJuIGl9O3BpY29tYXRjaC5tYWtlUmU9KHQsZT17fSx1PWZhbHNlLG49ZmFsc2UpPT57aWYoIXR8fHR5cGVvZiB0IT09XCJzdHJpbmdcIil7dGhyb3cgbmV3IFR5cGVFcnJvcihcIkV4cGVjdGVkIGEgbm9uLWVtcHR5IHN0cmluZ1wiKX1sZXQgcz17bmVnYXRlZDpmYWxzZSxmYXN0cGF0aHM6dHJ1ZX07aWYoZS5mYXN0cGF0aHMhPT1mYWxzZSYmKHRbMF09PT1cIi5cInx8dFswXT09PVwiKlwiKSl7cy5vdXRwdXQ9by5mYXN0cGF0aHModCxlKX1pZighcy5vdXRwdXQpe3M9byh0LGUpfXJldHVybiBwaWNvbWF0Y2guY29tcGlsZVJlKHMsZSx1LG4pfTtwaWNvbWF0Y2gudG9SZWdleD0odCxlKT0+e3RyeXtjb25zdCB1PWV8fHt9O3JldHVybiBuZXcgUmVnRXhwKHQsdS5mbGFnc3x8KHUubm9jYXNlP1wiaVwiOlwiXCIpKX1jYXRjaCh0KXtpZihlJiZlLmRlYnVnPT09dHJ1ZSl0aHJvdyB0O3JldHVybi8kXi99fTtwaWNvbWF0Y2guY29uc3RhbnRzPXI7dC5leHBvcnRzPXBpY29tYXRjaH0sNzE2Oih0LGUsdSk9Pntjb25zdCBuPXUoOTYpO2NvbnN0e0NIQVJfQVNURVJJU0s6byxDSEFSX0FUOnMsQ0hBUl9CQUNLV0FSRF9TTEFTSDpyLENIQVJfQ09NTUE6YSxDSEFSX0RPVDppLENIQVJfRVhDTEFNQVRJT05fTUFSSzpjLENIQVJfRk9SV0FSRF9TTEFTSDpwLENIQVJfTEVGVF9DVVJMWV9CUkFDRTpsLENIQVJfTEVGVF9QQVJFTlRIRVNFUzpmLENIQVJfTEVGVF9TUVVBUkVfQlJBQ0tFVDpBLENIQVJfUExVUzpfLENIQVJfUVVFU1RJT05fTUFSSzpSLENIQVJfUklHSFRfQ1VSTFlfQlJBQ0U6RSxDSEFSX1JJR0hUX1BBUkVOVEhFU0VTOmgsQ0hBUl9SSUdIVF9TUVVBUkVfQlJBQ0tFVDpnfT11KDE1NCk7Y29uc3QgaXNQYXRoU2VwYXJhdG9yPXQ9PnQ9PT1wfHx0PT09cjtjb25zdCBkZXB0aD10PT57aWYodC5pc1ByZWZpeCE9PXRydWUpe3QuZGVwdGg9dC5pc0dsb2JzdGFyP0luZmluaXR5OjF9fTtjb25zdCBzY2FuPSh0LGUpPT57Y29uc3QgdT1lfHx7fTtjb25zdCBiPXQubGVuZ3RoLTE7Y29uc3QgQz11LnBhcnRzPT09dHJ1ZXx8dS5zY2FuVG9FbmQ9PT10cnVlO2NvbnN0IHk9W107Y29uc3QgJD1bXTtjb25zdCB4PVtdO2xldCBTPXQ7bGV0IEg9LTE7bGV0IHY9MDtsZXQgZD0wO2xldCBMPWZhbHNlO2xldCBUPWZhbHNlO2xldCBPPWZhbHNlO2xldCBrPWZhbHNlO2xldCBtPWZhbHNlO2xldCB3PWZhbHNlO2xldCBOPWZhbHNlO2xldCBJPWZhbHNlO2xldCBCPWZhbHNlO2xldCBHPWZhbHNlO2xldCBEPTA7bGV0IE07bGV0IFA7bGV0IEs9e3ZhbHVlOlwiXCIsZGVwdGg6MCxpc0dsb2I6ZmFsc2V9O2NvbnN0IGVvcz0oKT0+SD49Yjtjb25zdCBwZWVrPSgpPT5TLmNoYXJDb2RlQXQoSCsxKTtjb25zdCBhZHZhbmNlPSgpPT57TT1QO3JldHVybiBTLmNoYXJDb2RlQXQoKytIKX07d2hpbGUoSDxiKXtQPWFkdmFuY2UoKTtsZXQgdDtpZihQPT09cil7Tj1LLmJhY2tzbGFzaGVzPXRydWU7UD1hZHZhbmNlKCk7aWYoUD09PWwpe3c9dHJ1ZX1jb250aW51ZX1pZih3PT09dHJ1ZXx8UD09PWwpe0QrKzt3aGlsZShlb3MoKSE9PXRydWUmJihQPWFkdmFuY2UoKSkpe2lmKFA9PT1yKXtOPUsuYmFja3NsYXNoZXM9dHJ1ZTthZHZhbmNlKCk7Y29udGludWV9aWYoUD09PWwpe0QrKztjb250aW51ZX1pZih3IT09dHJ1ZSYmUD09PWkmJihQPWFkdmFuY2UoKSk9PT1pKXtMPUsuaXNCcmFjZT10cnVlO089Sy5pc0dsb2I9dHJ1ZTtHPXRydWU7aWYoQz09PXRydWUpe2NvbnRpbnVlfWJyZWFrfWlmKHchPT10cnVlJiZQPT09YSl7TD1LLmlzQnJhY2U9dHJ1ZTtPPUsuaXNHbG9iPXRydWU7Rz10cnVlO2lmKEM9PT10cnVlKXtjb250aW51ZX1icmVha31pZihQPT09RSl7RC0tO2lmKEQ9PT0wKXt3PWZhbHNlO0w9Sy5pc0JyYWNlPXRydWU7Rz10cnVlO2JyZWFrfX19aWYoQz09PXRydWUpe2NvbnRpbnVlfWJyZWFrfWlmKFA9PT1wKXt5LnB1c2goSCk7JC5wdXNoKEspO0s9e3ZhbHVlOlwiXCIsZGVwdGg6MCxpc0dsb2I6ZmFsc2V9O2lmKEc9PT10cnVlKWNvbnRpbnVlO2lmKE09PT1pJiZIPT09disxKXt2Kz0yO2NvbnRpbnVlfWQ9SCsxO2NvbnRpbnVlfWlmKHUubm9leHQhPT10cnVlKXtjb25zdCB0PVA9PT1ffHxQPT09c3x8UD09PW98fFA9PT1SfHxQPT09YztpZih0PT09dHJ1ZSYmcGVlaygpPT09Zil7Tz1LLmlzR2xvYj10cnVlO2s9Sy5pc0V4dGdsb2I9dHJ1ZTtHPXRydWU7aWYoUD09PWMmJkg9PT12KXtCPXRydWV9aWYoQz09PXRydWUpe3doaWxlKGVvcygpIT09dHJ1ZSYmKFA9YWR2YW5jZSgpKSl7aWYoUD09PXIpe049Sy5iYWNrc2xhc2hlcz10cnVlO1A9YWR2YW5jZSgpO2NvbnRpbnVlfWlmKFA9PT1oKXtPPUsuaXNHbG9iPXRydWU7Rz10cnVlO2JyZWFrfX1jb250aW51ZX1icmVha319aWYoUD09PW8pe2lmKE09PT1vKW09Sy5pc0dsb2JzdGFyPXRydWU7Tz1LLmlzR2xvYj10cnVlO0c9dHJ1ZTtpZihDPT09dHJ1ZSl7Y29udGludWV9YnJlYWt9aWYoUD09PVIpe089Sy5pc0dsb2I9dHJ1ZTtHPXRydWU7aWYoQz09PXRydWUpe2NvbnRpbnVlfWJyZWFrfWlmKFA9PT1BKXt3aGlsZShlb3MoKSE9PXRydWUmJih0PWFkdmFuY2UoKSkpe2lmKHQ9PT1yKXtOPUsuYmFja3NsYXNoZXM9dHJ1ZTthZHZhbmNlKCk7Y29udGludWV9aWYodD09PWcpe1Q9Sy5pc0JyYWNrZXQ9dHJ1ZTtPPUsuaXNHbG9iPXRydWU7Rz10cnVlO2JyZWFrfX1pZihDPT09dHJ1ZSl7Y29udGludWV9YnJlYWt9aWYodS5ub25lZ2F0ZSE9PXRydWUmJlA9PT1jJiZIPT09dil7ST1LLm5lZ2F0ZWQ9dHJ1ZTt2Kys7Y29udGludWV9aWYodS5ub3BhcmVuIT09dHJ1ZSYmUD09PWYpe089Sy5pc0dsb2I9dHJ1ZTtpZihDPT09dHJ1ZSl7d2hpbGUoZW9zKCkhPT10cnVlJiYoUD1hZHZhbmNlKCkpKXtpZihQPT09Zil7Tj1LLmJhY2tzbGFzaGVzPXRydWU7UD1hZHZhbmNlKCk7Y29udGludWV9aWYoUD09PWgpe0c9dHJ1ZTticmVha319Y29udGludWV9YnJlYWt9aWYoTz09PXRydWUpe0c9dHJ1ZTtpZihDPT09dHJ1ZSl7Y29udGludWV9YnJlYWt9fWlmKHUubm9leHQ9PT10cnVlKXtrPWZhbHNlO089ZmFsc2V9bGV0IFU9UztsZXQgWD1cIlwiO2xldCBGPVwiXCI7aWYodj4wKXtYPVMuc2xpY2UoMCx2KTtTPVMuc2xpY2Uodik7ZC09dn1pZihVJiZPPT09dHJ1ZSYmZD4wKXtVPVMuc2xpY2UoMCxkKTtGPVMuc2xpY2UoZCl9ZWxzZSBpZihPPT09dHJ1ZSl7VT1cIlwiO0Y9U31lbHNle1U9U31pZihVJiZVIT09XCJcIiYmVSE9PVwiL1wiJiZVIT09Uyl7aWYoaXNQYXRoU2VwYXJhdG9yKFUuY2hhckNvZGVBdChVLmxlbmd0aC0xKSkpe1U9VS5zbGljZSgwLC0xKX19aWYodS51bmVzY2FwZT09PXRydWUpe2lmKEYpRj1uLnJlbW92ZUJhY2tzbGFzaGVzKEYpO2lmKFUmJk49PT10cnVlKXtVPW4ucmVtb3ZlQmFja3NsYXNoZXMoVSl9fWNvbnN0IFE9e3ByZWZpeDpYLGlucHV0OnQsc3RhcnQ6dixiYXNlOlUsZ2xvYjpGLGlzQnJhY2U6TCxpc0JyYWNrZXQ6VCxpc0dsb2I6Tyxpc0V4dGdsb2I6ayxpc0dsb2JzdGFyOm0sbmVnYXRlZDpJLG5lZ2F0ZWRFeHRnbG9iOkJ9O2lmKHUudG9rZW5zPT09dHJ1ZSl7US5tYXhEZXB0aD0wO2lmKCFpc1BhdGhTZXBhcmF0b3IoUCkpeyQucHVzaChLKX1RLnRva2Vucz0kfWlmKHUucGFydHM9PT10cnVlfHx1LnRva2Vucz09PXRydWUpe2xldCBlO2ZvcihsZXQgbj0wO248eS5sZW5ndGg7bisrKXtjb25zdCBvPWU/ZSsxOnY7Y29uc3Qgcz15W25dO2NvbnN0IHI9dC5zbGljZShvLHMpO2lmKHUudG9rZW5zKXtpZihuPT09MCYmdiE9PTApeyRbbl0uaXNQcmVmaXg9dHJ1ZTskW25dLnZhbHVlPVh9ZWxzZXskW25dLnZhbHVlPXJ9ZGVwdGgoJFtuXSk7US5tYXhEZXB0aCs9JFtuXS5kZXB0aH1pZihuIT09MHx8ciE9PVwiXCIpe3gucHVzaChyKX1lPXN9aWYoZSYmZSsxPHQubGVuZ3RoKXtjb25zdCBuPXQuc2xpY2UoZSsxKTt4LnB1c2gobik7aWYodS50b2tlbnMpeyRbJC5sZW5ndGgtMV0udmFsdWU9bjtkZXB0aCgkWyQubGVuZ3RoLTFdKTtRLm1heERlcHRoKz0kWyQubGVuZ3RoLTFdLmRlcHRofX1RLnNsYXNoZXM9eTtRLnBhcnRzPXh9cmV0dXJuIFF9O3QuZXhwb3J0cz1zY2FufSw5NjoodCxlLHUpPT57Y29uc3R7UkVHRVhfQkFDS1NMQVNIOm4sUkVHRVhfUkVNT1ZFX0JBQ0tTTEFTSDpvLFJFR0VYX1NQRUNJQUxfQ0hBUlM6cyxSRUdFWF9TUEVDSUFMX0NIQVJTX0dMT0JBTDpyfT11KDE1NCk7ZS5pc09iamVjdD10PT50IT09bnVsbCYmdHlwZW9mIHQ9PT1cIm9iamVjdFwiJiYhQXJyYXkuaXNBcnJheSh0KTtlLmhhc1JlZ2V4Q2hhcnM9dD0+cy50ZXN0KHQpO2UuaXNSZWdleENoYXI9dD0+dC5sZW5ndGg9PT0xJiZlLmhhc1JlZ2V4Q2hhcnModCk7ZS5lc2NhcGVSZWdleD10PT50LnJlcGxhY2UocixcIlxcXFwkMVwiKTtlLnRvUG9zaXhTbGFzaGVzPXQ9PnQucmVwbGFjZShuLFwiL1wiKTtlLnJlbW92ZUJhY2tzbGFzaGVzPXQ9PnQucmVwbGFjZShvLCh0PT50PT09XCJcXFxcXCI/XCJcIjp0KSk7ZS5lc2NhcGVMYXN0PSh0LHUsbik9Pntjb25zdCBvPXQubGFzdEluZGV4T2YodSxuKTtpZihvPT09LTEpcmV0dXJuIHQ7aWYodFtvLTFdPT09XCJcXFxcXCIpcmV0dXJuIGUuZXNjYXBlTGFzdCh0LHUsby0xKTtyZXR1cm5gJHt0LnNsaWNlKDAsbyl9XFxcXCR7dC5zbGljZShvKX1gfTtlLnJlbW92ZVByZWZpeD0odCxlPXt9KT0+e2xldCB1PXQ7aWYodS5zdGFydHNXaXRoKFwiLi9cIikpe3U9dS5zbGljZSgyKTtlLnByZWZpeD1cIi4vXCJ9cmV0dXJuIHV9O2Uud3JhcE91dHB1dD0odCxlPXt9LHU9e30pPT57Y29uc3Qgbj11LmNvbnRhaW5zP1wiXCI6XCJeXCI7Y29uc3Qgbz11LmNvbnRhaW5zP1wiXCI6XCIkXCI7bGV0IHM9YCR7bn0oPzoke3R9KSR7b31gO2lmKGUubmVnYXRlZD09PXRydWUpe3M9YCg/Ol4oPyEke3N9KS4qJClgfXJldHVybiBzfTtlLmJhc2VuYW1lPSh0LHt3aW5kb3dzOmV9PXt9KT0+e2NvbnN0IHU9dC5zcGxpdChlPy9bXFxcXC9dLzpcIi9cIik7Y29uc3Qgbj11W3UubGVuZ3RoLTFdO2lmKG49PT1cIlwiKXtyZXR1cm4gdVt1Lmxlbmd0aC0yXX1yZXR1cm4gbn19fTt2YXIgZT17fTtmdW5jdGlvbiBfX25jY3dwY2tfcmVxdWlyZV9fKHUpe3ZhciBuPWVbdV07aWYobiE9PXVuZGVmaW5lZCl7cmV0dXJuIG4uZXhwb3J0c312YXIgbz1lW3VdPXtleHBvcnRzOnt9fTt2YXIgcz10cnVlO3RyeXt0W3VdKG8sby5leHBvcnRzLF9fbmNjd3Bja19yZXF1aXJlX18pO3M9ZmFsc2V9ZmluYWxseXtpZihzKWRlbGV0ZSBlW3VdfXJldHVybiBvLmV4cG9ydHN9aWYodHlwZW9mIF9fbmNjd3Bja19yZXF1aXJlX18hPT1cInVuZGVmaW5lZFwiKV9fbmNjd3Bja19yZXF1aXJlX18uYWI9X19kaXJuYW1lK1wiL1wiO3ZhciB1PV9fbmNjd3Bja19yZXF1aXJlX18oMTcwKTttb2R1bGUuZXhwb3J0cz11fSkoKTsiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/compiled/picomatch/index.js\n");
+
+/***/ }),
+
/***/ "(ssr)/./node_modules/next/dist/compiled/safe-stable-stringify/index.js":
/*!************************************************************************!*\
!*** ./node_modules/next/dist/compiled/safe-stable-stringify/index.js ***!
@@ -3479,6 +3721,28 @@ eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr
/***/ }),
+/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js":
+/*!********************************************************************************************************!*\
+ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js ***!
+ \********************************************************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored.contexts.ImageConfigContext;\n\n//# sourceMappingURL=image-config-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL2ltYWdlLWNvbmZpZy1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOExBQXlGOztBQUV6RiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9jb250ZXh0cy9pbWFnZS1jb25maWctY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uSW1hZ2VDb25maWdDb250ZXh0O1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1pbWFnZS1jb25maWctY29udGV4dC5qcy5tYXAiXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbMF0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/image-config-context.js\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js":
+/*!**************************************************************************************************!*\
+ !*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js ***!
+ \**************************************************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+"use strict";
+eval("\nmodule.exports = __webpack_require__(/*! ../../module.compiled */ \"(ssr)/./node_modules/next/dist/server/route-modules/app-page/module.compiled.js?fb22\").vendored.contexts.RouterContext;\n\n//# sourceMappingURL=router-context.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NlcnZlci9yb3V0ZS1tb2R1bGVzL2FwcC1wYWdlL3ZlbmRvcmVkL2NvbnRleHRzL3JvdXRlci1jb250ZXh0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IseUxBQW9GOztBQUVwRiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS92ZW5kb3JlZC9jb250ZXh0cy9yb3V0ZXItY29udGV4dC5qcyJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBzdHJpY3RcIjtcbm1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi4vLi4vbW9kdWxlLmNvbXBpbGVkJykudmVuZG9yZWRbJ2NvbnRleHRzJ10uUm91dGVyQ29udGV4dDtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9cm91dGVyLWNvbnRleHQuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6WzBdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/router-context.js\n");
+
+/***/ }),
+
/***/ "(ssr)/./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js":
/*!********************************************************************************************************!*\
!*** ./node_modules/next/dist/server/route-modules/app-page/vendored/contexts/server-inserted-html.js ***!
@@ -3611,6 +3875,17 @@ eval("/**\nMIT License\n\nCopyright (c) 2015-present, Facebook, Inc.\n\nPermissi
/***/ }),
+/***/ "(ssr)/./node_modules/next/dist/shared/lib/get-img-props.js":
+/*!************************************************************!*\
+ !*** ./node_modules/next/dist/shared/lib/get-img-props.js ***!
+ \************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getImgProps\", ({\n enumerable: true,\n get: function() {\n return getImgProps;\n }\n}));\nconst _warnonce = __webpack_require__(/*! ./utils/warn-once */ \"(ssr)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nconst _imageblursvg = __webpack_require__(/*! ./image-blur-svg */ \"(ssr)/./node_modules/next/dist/shared/lib/image-blur-svg.js\");\nconst _imageconfig = __webpack_require__(/*! ./image-config */ \"(ssr)/./node_modules/next/dist/shared/lib/image-config.js\");\nconst VALID_LOADING_VALUES = [\n 'lazy',\n 'eager',\n undefined\n];\n// Object-fit values that are not valid background-size values\nconst INVALID_BACKGROUND_SIZE_VALUES = [\n '-moz-initial',\n 'fill',\n 'none',\n 'scale-down',\n undefined\n];\nfunction isStaticRequire(src) {\n return src.default !== undefined;\n}\nfunction isStaticImageData(src) {\n return src.src !== undefined;\n}\nfunction isStaticImport(src) {\n return !!src && typeof src === 'object' && (isStaticRequire(src) || isStaticImageData(src));\n}\nconst allImgs = new Map();\nlet perfObserver;\nfunction getInt(x) {\n if (typeof x === 'undefined') {\n return x;\n }\n if (typeof x === 'number') {\n return Number.isFinite(x) ? x : NaN;\n }\n if (typeof x === 'string' && /^[0-9]+$/.test(x)) {\n return parseInt(x, 10);\n }\n return NaN;\n}\nfunction getWidths(param, width, sizes) {\n let { deviceSizes, allSizes } = param;\n if (sizes) {\n // Find all the \"vw\" percent sizes used in the sizes prop\n const viewportWidthRe = /(^|\\s)(1?\\d?\\d)vw/g;\n const percentSizes = [];\n for(let match; match = viewportWidthRe.exec(sizes); match){\n percentSizes.push(parseInt(match[2]));\n }\n if (percentSizes.length) {\n const smallestRatio = Math.min(...percentSizes) * 0.01;\n return {\n widths: allSizes.filter((s)=>s >= deviceSizes[0] * smallestRatio),\n kind: 'w'\n };\n }\n return {\n widths: allSizes,\n kind: 'w'\n };\n }\n if (typeof width !== 'number') {\n return {\n widths: deviceSizes,\n kind: 'w'\n };\n }\n const widths = [\n ...new Set(// > are actually 3x in the green color, but only 1.5x in the red and\n // > blue colors. Showing a 3x resolution image in the app vs a 2x\n // > resolution image will be visually the same, though the 3x image\n // > takes significantly more data. Even true 3x resolution screens are\n // > wasteful as the human eye cannot see that level of detail without\n // > something like a magnifying glass.\n // https://blog.twitter.com/engineering/en_us/topics/infrastructure/2019/capping-image-fidelity-on-ultra-high-resolution-devices.html\n [\n width,\n width * 2 /*, width * 3*/ \n ].map((w)=>allSizes.find((p)=>p >= w) || allSizes[allSizes.length - 1]))\n ];\n return {\n widths,\n kind: 'x'\n };\n}\nfunction generateImgAttrs(param) {\n let { config, src, unoptimized, width, quality, sizes, loader } = param;\n if (unoptimized) {\n return {\n src,\n srcSet: undefined,\n sizes: undefined\n };\n }\n const { widths, kind } = getWidths(config, width, sizes);\n const last = widths.length - 1;\n return {\n sizes: !sizes && kind === 'w' ? '100vw' : sizes,\n srcSet: widths.map((w, i)=>loader({\n config,\n src,\n quality,\n width: w\n }) + \" \" + (kind === 'w' ? w : i + 1) + kind).join(', '),\n // It's intended to keep `src` the last attribute because React updates\n // attributes in order. If we keep `src` the first one, Safari will\n // immediately start to fetch `src`, before `sizes` and `srcSet` are even\n // updated by React. That causes multiple unnecessary requests if `srcSet`\n // and `sizes` are defined.\n // This bug cannot be reproduced in Chrome or Firefox.\n src: loader({\n config,\n src,\n quality,\n width: widths[last]\n })\n };\n}\nfunction getImgProps(param, _state) {\n let { src, sizes, unoptimized = false, priority = false, loading, className, quality, width, height, fill = false, style, overrideSrc, onLoad, onLoadingComplete, placeholder = 'empty', blurDataURL, fetchPriority, decoding = 'async', layout, objectFit, objectPosition, lazyBoundary, lazyRoot, ...rest } = param;\n const { imgConf, showAltText, blurComplete, defaultLoader } = _state;\n let config;\n let c = imgConf || _imageconfig.imageConfigDefault;\n if ('allSizes' in c) {\n config = c;\n } else {\n var _c_qualities;\n const allSizes = [\n ...c.deviceSizes,\n ...c.imageSizes\n ].sort((a, b)=>a - b);\n const deviceSizes = c.deviceSizes.sort((a, b)=>a - b);\n const qualities = (_c_qualities = c.qualities) == null ? void 0 : _c_qualities.sort((a, b)=>a - b);\n config = {\n ...c,\n allSizes,\n deviceSizes,\n qualities\n };\n }\n if (typeof defaultLoader === 'undefined') {\n throw Object.defineProperty(new Error('images.loaderFile detected but the file is missing default export.\\nRead more: https://nextjs.org/docs/messages/invalid-images-config'), \"__NEXT_ERROR_CODE\", {\n value: \"E163\",\n enumerable: false,\n configurable: true\n });\n }\n let loader = rest.loader || defaultLoader;\n // Remove property so it's not spread on
element\n delete rest.loader;\n delete rest.srcSet;\n // This special value indicates that the user\n // didn't define a \"loader\" prop or \"loader\" config.\n const isDefaultLoader = '__next_img_default' in loader;\n if (isDefaultLoader) {\n if (config.loader === 'custom') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" is missing \"loader\" prop.' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader\"), \"__NEXT_ERROR_CODE\", {\n value: \"E252\",\n enumerable: false,\n configurable: true\n });\n }\n } else {\n // The user defined a \"loader\" prop or config.\n // Since the config object is internal only, we\n // must not pass it to the user-defined \"loader\".\n const customImageLoader = loader;\n loader = (obj)=>{\n const { config: _, ...opts } = obj;\n return customImageLoader(opts);\n };\n }\n if (layout) {\n if (layout === 'fill') {\n fill = true;\n }\n const layoutToStyle = {\n intrinsic: {\n maxWidth: '100%',\n height: 'auto'\n },\n responsive: {\n width: '100%',\n height: 'auto'\n }\n };\n const layoutToSizes = {\n responsive: '100vw',\n fill: '100vw'\n };\n const layoutStyle = layoutToStyle[layout];\n if (layoutStyle) {\n style = {\n ...style,\n ...layoutStyle\n };\n }\n const layoutSizes = layoutToSizes[layout];\n if (layoutSizes && !sizes) {\n sizes = layoutSizes;\n }\n }\n let staticSrc = '';\n let widthInt = getInt(width);\n let heightInt = getInt(height);\n let blurWidth;\n let blurHeight;\n if (isStaticImport(src)) {\n const staticImageData = isStaticRequire(src) ? src.default : src;\n if (!staticImageData.src) {\n throw Object.defineProperty(new Error(\"An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received \" + JSON.stringify(staticImageData)), \"__NEXT_ERROR_CODE\", {\n value: \"E460\",\n enumerable: false,\n configurable: true\n });\n }\n if (!staticImageData.height || !staticImageData.width) {\n throw Object.defineProperty(new Error(\"An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received \" + JSON.stringify(staticImageData)), \"__NEXT_ERROR_CODE\", {\n value: \"E48\",\n enumerable: false,\n configurable: true\n });\n }\n blurWidth = staticImageData.blurWidth;\n blurHeight = staticImageData.blurHeight;\n blurDataURL = blurDataURL || staticImageData.blurDataURL;\n staticSrc = staticImageData.src;\n if (!fill) {\n if (!widthInt && !heightInt) {\n widthInt = staticImageData.width;\n heightInt = staticImageData.height;\n } else if (widthInt && !heightInt) {\n const ratio = widthInt / staticImageData.width;\n heightInt = Math.round(staticImageData.height * ratio);\n } else if (!widthInt && heightInt) {\n const ratio = heightInt / staticImageData.height;\n widthInt = Math.round(staticImageData.width * ratio);\n }\n }\n }\n src = typeof src === 'string' ? src : staticSrc;\n let isLazy = !priority && (loading === 'lazy' || typeof loading === 'undefined');\n if (!src || src.startsWith('data:') || src.startsWith('blob:')) {\n // https://developer.mozilla.org/docs/Web/HTTP/Basics_of_HTTP/Data_URIs\n unoptimized = true;\n isLazy = false;\n }\n if (config.unoptimized) {\n unoptimized = true;\n }\n if (isDefaultLoader && !config.dangerouslyAllowSVG && src.split('?', 1)[0].endsWith('.svg')) {\n // Special case to make svg serve as-is to avoid proxying\n // through the built-in Image Optimization API.\n unoptimized = true;\n }\n const qualityInt = getInt(quality);\n if (true) {\n if (config.output === 'export' && isDefaultLoader && !unoptimized) {\n throw Object.defineProperty(new Error(\"Image Optimization using the default loader is not compatible with `{ output: 'export' }`.\\n Possible solutions:\\n - Remove `{ output: 'export' }` and run \\\"next start\\\" to run server mode including the Image Optimization API.\\n - Configure `{ images: { unoptimized: true } }` in `next.config.js` to disable the Image Optimization API.\\n Read more: https://nextjs.org/docs/messages/export-image-api\"), \"__NEXT_ERROR_CODE\", {\n value: \"E500\",\n enumerable: false,\n configurable: true\n });\n }\n if (!src) {\n // React doesn't show the stack trace and there's\n // no `src` to help identify which image, so we\n // instead console.error(ref) during mount.\n unoptimized = true;\n } else {\n if (fill) {\n if (width) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has both \"width\" and \"fill\" properties. Only one should be used.'), \"__NEXT_ERROR_CODE\", {\n value: \"E96\",\n enumerable: false,\n configurable: true\n });\n }\n if (height) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has both \"height\" and \"fill\" properties. Only one should be used.'), \"__NEXT_ERROR_CODE\", {\n value: \"E115\",\n enumerable: false,\n configurable: true\n });\n }\n if ((style == null ? void 0 : style.position) && style.position !== 'absolute') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.position\" properties. Images with \"fill\" always use position absolute - it cannot be modified.'), \"__NEXT_ERROR_CODE\", {\n value: \"E216\",\n enumerable: false,\n configurable: true\n });\n }\n if ((style == null ? void 0 : style.width) && style.width !== '100%') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.width\" properties. Images with \"fill\" always use width 100% - it cannot be modified.'), \"__NEXT_ERROR_CODE\", {\n value: \"E73\",\n enumerable: false,\n configurable: true\n });\n }\n if ((style == null ? void 0 : style.height) && style.height !== '100%') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has both \"fill\" and \"style.height\" properties. Images with \"fill\" always use height 100% - it cannot be modified.'), \"__NEXT_ERROR_CODE\", {\n value: \"E404\",\n enumerable: false,\n configurable: true\n });\n }\n } else {\n if (typeof widthInt === 'undefined') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" is missing required \"width\" property.'), \"__NEXT_ERROR_CODE\", {\n value: \"E451\",\n enumerable: false,\n configurable: true\n });\n } else if (isNaN(widthInt)) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has invalid \"width\" property. Expected a numeric value in pixels but received \"' + width + '\".'), \"__NEXT_ERROR_CODE\", {\n value: \"E66\",\n enumerable: false,\n configurable: true\n });\n }\n if (typeof heightInt === 'undefined') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" is missing required \"height\" property.'), \"__NEXT_ERROR_CODE\", {\n value: \"E397\",\n enumerable: false,\n configurable: true\n });\n } else if (isNaN(heightInt)) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has invalid \"height\" property. Expected a numeric value in pixels but received \"' + height + '\".'), \"__NEXT_ERROR_CODE\", {\n value: \"E444\",\n enumerable: false,\n configurable: true\n });\n }\n // eslint-disable-next-line no-control-regex\n if (/^[\\x00-\\x20]/.test(src)) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" cannot start with a space or control character. Use src.trimStart() to remove it or encodeURIComponent(src) to keep it.'), \"__NEXT_ERROR_CODE\", {\n value: \"E176\",\n enumerable: false,\n configurable: true\n });\n }\n // eslint-disable-next-line no-control-regex\n if (/[\\x00-\\x20]$/.test(src)) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" cannot end with a space or control character. Use src.trimEnd() to remove it or encodeURIComponent(src) to keep it.'), \"__NEXT_ERROR_CODE\", {\n value: \"E21\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n if (!VALID_LOADING_VALUES.includes(loading)) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has invalid \"loading\" property. Provided \"' + loading + '\" should be one of ' + VALID_LOADING_VALUES.map(String).join(',') + \".\"), \"__NEXT_ERROR_CODE\", {\n value: \"E357\",\n enumerable: false,\n configurable: true\n });\n }\n if (priority && loading === 'lazy') {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has both \"priority\" and \"loading=\\'lazy\\'\" properties. Only one should be used.'), \"__NEXT_ERROR_CODE\", {\n value: \"E218\",\n enumerable: false,\n configurable: true\n });\n }\n if (placeholder !== 'empty' && placeholder !== 'blur' && !placeholder.startsWith('data:image/')) {\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has invalid \"placeholder\" property \"' + placeholder + '\".'), \"__NEXT_ERROR_CODE\", {\n value: \"E431\",\n enumerable: false,\n configurable: true\n });\n }\n if (placeholder !== 'empty') {\n if (widthInt && heightInt && widthInt * heightInt < 1600) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" is smaller than 40x40. Consider removing the \"placeholder\" property to improve performance.');\n }\n }\n if (placeholder === 'blur' && !blurDataURL) {\n const VALID_BLUR_EXT = [\n 'jpeg',\n 'png',\n 'webp',\n 'avif'\n ] // should match next-image-loader\n ;\n throw Object.defineProperty(new Error('Image with src \"' + src + '\" has \"placeholder=\\'blur\\'\" property but is missing the \"blurDataURL\" property.\\n Possible solutions:\\n - Add a \"blurDataURL\" property, the contents should be a small Data URL to represent the image\\n - Change the \"src\" property to a static import with one of the supported file types: ' + VALID_BLUR_EXT.join(',') + ' (animated images not supported)\\n - Remove the \"placeholder\" property, effectively no blur effect\\n Read more: https://nextjs.org/docs/messages/placeholder-blur-data-url'), \"__NEXT_ERROR_CODE\", {\n value: \"E371\",\n enumerable: false,\n configurable: true\n });\n }\n if ('ref' in rest) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" is using unsupported \"ref\" property. Consider using the \"onLoad\" property instead.');\n }\n if (!unoptimized && !isDefaultLoader) {\n const urlStr = loader({\n config,\n src,\n width: widthInt || 400,\n quality: qualityInt || 75\n });\n let url;\n try {\n url = new URL(urlStr);\n } catch (err) {}\n if (urlStr === src || url && url.pathname === src && !url.search) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" has a \"loader\" property that does not implement width. Please implement it or use the \"unoptimized\" property instead.' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-missing-loader-width\");\n }\n }\n if (onLoadingComplete) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" is using deprecated \"onLoadingComplete\" property. Please use the \"onLoad\" property instead.');\n }\n for (const [legacyKey, legacyValue] of Object.entries({\n layout,\n objectFit,\n objectPosition,\n lazyBoundary,\n lazyRoot\n })){\n if (legacyValue) {\n (0, _warnonce.warnOnce)('Image with src \"' + src + '\" has legacy prop \"' + legacyKey + '\". Did you forget to run the codemod?' + \"\\nRead more: https://nextjs.org/docs/messages/next-image-upgrade-to-13\");\n }\n }\n if (false) {}\n }\n const imgStyle = Object.assign(fill ? {\n position: 'absolute',\n height: '100%',\n width: '100%',\n left: 0,\n top: 0,\n right: 0,\n bottom: 0,\n objectFit,\n objectPosition\n } : {}, showAltText ? {} : {\n color: 'transparent'\n }, style);\n const backgroundImage = !blurComplete && placeholder !== 'empty' ? placeholder === 'blur' ? 'url(\"data:image/svg+xml;charset=utf-8,' + (0, _imageblursvg.getImageBlurSvg)({\n widthInt,\n heightInt,\n blurWidth,\n blurHeight,\n blurDataURL: blurDataURL || '',\n objectFit: imgStyle.objectFit\n }) + '\")' : 'url(\"' + placeholder + '\")' // assume `data:image/`\n : null;\n const backgroundSize = !INVALID_BACKGROUND_SIZE_VALUES.includes(imgStyle.objectFit) ? imgStyle.objectFit : imgStyle.objectFit === 'fill' ? '100% 100%' // the background-size equivalent of `fill`\n : 'cover';\n let placeholderStyle = backgroundImage ? {\n backgroundSize,\n backgroundPosition: imgStyle.objectPosition || '50% 50%',\n backgroundRepeat: 'no-repeat',\n backgroundImage\n } : {};\n if (true) {\n if (placeholderStyle.backgroundImage && placeholder === 'blur' && (blurDataURL == null ? void 0 : blurDataURL.startsWith('/'))) {\n // During `next dev`, we don't want to generate blur placeholders with webpack\n // because it can delay starting the dev server. Instead, `next-image-loader.js`\n // will inline a special url to lazily generate the blur placeholder at request time.\n placeholderStyle.backgroundImage = 'url(\"' + blurDataURL + '\")';\n }\n }\n const imgAttributes = generateImgAttrs({\n config,\n src,\n unoptimized,\n width: widthInt,\n quality: qualityInt,\n sizes,\n loader\n });\n if (true) {\n if (false) {}\n }\n const props = {\n ...rest,\n loading: isLazy ? 'lazy' : loading,\n fetchPriority,\n width: widthInt,\n height: heightInt,\n decoding,\n className,\n style: {\n ...imgStyle,\n ...placeholderStyle\n },\n sizes: imgAttributes.sizes,\n srcSet: imgAttributes.srcSet,\n src: overrideSrc || imgAttributes.src\n };\n const meta = {\n unoptimized,\n priority,\n placeholder,\n fill\n };\n return {\n props,\n meta\n };\n} //# sourceMappingURL=get-img-props.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvZ2V0LWltZy1wcm9wcy5qcyIsIm1hcHBpbmdzIjoiOzs7OytDQWlRZ0JBOzs7ZUFBQUE7OztzQ0FqUVM7MENBQ087eUNBQ0c7QUErRW5DLE1BQU1DLHVCQUF1QjtJQUFDO0lBQVE7SUFBU0M7Q0FBVTtBQUV6RCw4REFBOEQ7QUFDOUQsTUFBTUMsaUNBQWlDO0lBQ3JDO0lBQ0E7SUFDQTtJQUNBO0lBQ0FEO0NBQ0Q7QUE0QkQsU0FBU0UsZ0JBQ1BDLEdBQW9DO0lBRXBDLE9BQVFBLElBQXNCQyxPQUFPLEtBQUtKO0FBQzVDO0FBRUEsU0FBU0ssa0JBQ1BGLEdBQW9DO0lBRXBDLE9BQVFBLElBQXdCQSxHQUFHLEtBQUtIO0FBQzFDO0FBRUEsU0FBU00sZUFBZUgsR0FBMEI7SUFDaEQsT0FDRSxDQUFDLENBQUNBLE9BQ0YsT0FBT0EsUUFBUSxZQUNkRCxDQUFBQSxnQkFBZ0JDLFFBQ2ZFLGtCQUFrQkYsSUFBQUEsQ0FBbUI7QUFFM0M7QUFFQSxNQUFNSSxVQUFVLElBQUlDO0FBSXBCLElBQUlDO0FBRUosU0FBU0MsT0FBT0MsQ0FBVTtJQUN4QixJQUFJLE9BQU9BLE1BQU0sYUFBYTtRQUM1QixPQUFPQTtJQUNUO0lBQ0EsSUFBSSxPQUFPQSxNQUFNLFVBQVU7UUFDekIsT0FBT0MsT0FBT0MsUUFBUSxDQUFDRixLQUFLQSxJQUFJRztJQUNsQztJQUNBLElBQUksT0FBT0gsTUFBTSxZQUFZLFdBQVdJLElBQUksQ0FBQ0osSUFBSTtRQUMvQyxPQUFPSyxTQUFTTCxHQUFHO0lBQ3JCO0lBQ0EsT0FBT0c7QUFDVDtBQUVBLFNBQVNHLFVBQ1AsS0FBc0MsRUFDdENDLEtBQXlCLEVBQ3pCQyxLQUF5QjtJQUZ6QixNQUFFQyxXQUFXLEVBQUVDLFFBQVEsRUFBZSxHQUF0QztJQUlBLElBQUlGLE9BQU87UUFDVCx5REFBeUQ7UUFDekQsTUFBTUcsa0JBQWtCO1FBQ3hCLE1BQU1DLGVBQWUsRUFBRTtRQUN2QixJQUFLLElBQUlDLE9BQVFBLFFBQVFGLGdCQUFnQkcsSUFBSSxDQUFDTixRQUFTSyxNQUFPO1lBQzVERCxhQUFhRyxJQUFJLENBQUNWLFNBQVNRLEtBQUssQ0FBQyxFQUFFO1FBQ3JDO1FBQ0EsSUFBSUQsYUFBYUksTUFBTSxFQUFFO1lBQ3ZCLE1BQU1DLGdCQUFnQkMsS0FBS0MsR0FBRyxJQUFJUCxnQkFBZ0I7WUFDbEQsT0FBTztnQkFDTFEsUUFBUVYsU0FBU1csTUFBTSxDQUFDLENBQUNDLElBQU1BLEtBQUtiLFdBQVcsQ0FBQyxFQUFFLEdBQUdRO2dCQUNyRE0sTUFBTTtZQUNSO1FBQ0Y7UUFDQSxPQUFPO1lBQUVILFFBQVFWO1lBQVVhLE1BQU07UUFBSTtJQUN2QztJQUNBLElBQUksT0FBT2hCLFVBQVUsVUFBVTtRQUM3QixPQUFPO1lBQUVhLFFBQVFYO1lBQWFjLE1BQU07UUFBSTtJQUMxQztJQUVBLE1BQU1ILFNBQVM7V0FDVixJQUFJSSxJQUNMLHFFQUNxRTtRQUNyRSxrRUFBa0U7UUFDbEUsb0VBQW9FO1FBQ3BFLHVFQUF1RTtRQUN2RSxzRUFBc0U7UUFDdEUsdUNBQXVDO1FBQ3ZDLHFJQUFxSTtRQUNySTtZQUFDakI7WUFBT0EsUUFBUSxFQUFFLGFBQWE7U0FBRyxDQUFDa0IsR0FBRyxDQUNwQyxDQUFDQyxJQUFNaEIsU0FBU2lCLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxLQUFLRixNQUFNaEIsUUFBUSxDQUFDQSxTQUFTTSxNQUFNLEdBQUcsRUFBRTtLQUd6RTtJQUNELE9BQU87UUFBRUk7UUFBUUcsTUFBTTtJQUFJO0FBQzdCO0FBa0JBLFNBQVNNLGlCQUFpQixLQVFSO0lBUlEsTUFDeEJDLE1BQU0sRUFDTnRDLEdBQUcsRUFDSHVDLFdBQVcsRUFDWHhCLEtBQUssRUFDTHlCLE9BQU8sRUFDUHhCLEtBQUssRUFDTHlCLE1BQU0sRUFDVSxHQVJRO0lBU3hCLElBQUlGLGFBQWE7UUFDZixPQUFPO1lBQUV2QztZQUFLMEMsUUFBUTdDO1lBQVdtQixPQUFPbkI7UUFBVTtJQUNwRDtJQUVBLE1BQU0sRUFBRStCLE1BQU0sRUFBRUcsSUFBSSxFQUFFLEdBQUdqQixVQUFVd0IsUUFBUXZCLE9BQU9DO0lBQ2xELE1BQU0yQixPQUFPZixPQUFPSixNQUFNLEdBQUc7SUFFN0IsT0FBTztRQUNMUixPQUFPLENBQUNBLFNBQVNlLFNBQVMsTUFBTSxVQUFVZjtRQUMxQzBCLFFBQVFkLE9BQ0xLLEdBQUcsQ0FDRixDQUFDQyxHQUFHVSxJQUNDSCxPQUFPO2dCQUFFSDtnQkFBUXRDO2dCQUFLd0M7Z0JBQVN6QixPQUFPbUI7WUFBRSxLQUFHLE1BQzVDSCxVQUFTLE1BQU1HLElBQUlVLEtBQUksSUFDdEJiLE1BRU5jLElBQUksQ0FBQztRQUVSLHVFQUF1RTtRQUN2RSxtRUFBbUU7UUFDbkUseUVBQXlFO1FBQ3pFLDBFQUEwRTtRQUMxRSwyQkFBMkI7UUFDM0Isc0RBQXNEO1FBQ3REN0MsS0FBS3lDLE9BQU87WUFBRUg7WUFBUXRDO1lBQUt3QztZQUFTekIsT0FBT2EsTUFBTSxDQUFDZSxLQUFLO1FBQUM7SUFDMUQ7QUFDRjtBQUtPLFNBQVNoRCxZQUNkLEtBeUJhLEVBQ2JtRCxNQUtDO0lBL0JELE1BQ0U5QyxHQUFHLEVBQ0hnQixLQUFLLEVBQ0x1QixjQUFjLEtBQUssRUFDbkJRLFdBQVcsS0FBSyxFQUNoQkMsT0FBTyxFQUNQQyxTQUFTLEVBQ1RULE9BQU8sRUFDUHpCLEtBQUssRUFDTG1DLE1BQU0sRUFDTkMsT0FBTyxLQUFLLEVBQ1pDLEtBQUssRUFDTEMsV0FBVyxFQUNYQyxNQUFNLEVBQ05DLGlCQUFpQixFQUNqQkMsY0FBYyxPQUFPLEVBQ3JCQyxXQUFXLEVBQ1hDLGFBQWEsRUFDYkMsV0FBVyxPQUFPLEVBQ2xCQyxNQUFNLEVBQ05DLFNBQVMsRUFDVEMsY0FBYyxFQUNkQyxZQUFZLEVBQ1pDLFFBQVEsRUFDUixHQUFHQyxNQUNRLEdBekJiO0lBeUNBLE1BQU0sRUFBRUMsT0FBTyxFQUFFQyxXQUFXLEVBQUVDLFlBQVksRUFBRUMsYUFBYSxFQUFFLEdBQUd2QjtJQUM5RCxJQUFJUjtJQUNKLElBQUlnQyxJQUFJSixXQUFXSyxhQUFBQSxrQkFBa0I7SUFDckMsSUFBSSxjQUFjRCxHQUFHO1FBQ25CaEMsU0FBU2dDO0lBQ1gsT0FBTztZQUdhQTtRQUZsQixNQUFNcEQsV0FBVztlQUFJb0QsRUFBRXJELFdBQVc7ZUFBS3FELEVBQUVFLFVBQVU7U0FBQyxDQUFDQyxJQUFJLENBQUMsQ0FBQ0MsR0FBR0MsSUFBTUQsSUFBSUM7UUFDeEUsTUFBTTFELGNBQWNxRCxFQUFFckQsV0FBVyxDQUFDd0QsSUFBSSxDQUFDLENBQUNDLEdBQUdDLElBQU1ELElBQUlDO1FBQ3JELE1BQU1DLFlBQUFBLENBQVlOLGVBQUFBLEVBQUVNLFNBQUFBLEtBQVMsZ0JBQVhOLGFBQWFHLElBQUksQ0FBQyxDQUFDQyxHQUFHQyxJQUFNRCxJQUFJQztRQUNsRHJDLFNBQVM7WUFBRSxHQUFHZ0MsQ0FBQztZQUFFcEQ7WUFBVUQ7WUFBYTJEO1FBQVU7SUFDcEQ7SUFFQSxJQUFJLE9BQU9QLGtCQUFrQixhQUFhO1FBQ3hDLE1BQU0scUJBRUwsQ0FGSyxJQUFJUSxNQUNSLDBJQURJO21CQUFBO3dCQUFBOzBCQUFBO1FBRU47SUFDRjtJQUNBLElBQUlwQyxTQUFnQ3dCLEtBQUt4QixNQUFNLElBQUk0QjtJQUVuRCxzREFBc0Q7SUFDdEQsT0FBT0osS0FBS3hCLE1BQU07SUFDbEIsT0FBUXdCLEtBQWF2QixNQUFNO0lBRTNCLDZDQUE2QztJQUM3QyxvREFBb0Q7SUFDcEQsTUFBTW9DLGtCQUFrQix3QkFBd0JyQztJQUVoRCxJQUFJcUMsaUJBQWlCO1FBQ25CLElBQUl4QyxPQUFPRyxNQUFNLEtBQUssVUFBVTtZQUM5QixNQUFNLHFCQUdMLENBSEssSUFBSW9DLE1BQ1AscUJBQWtCN0UsTUFBSSxnQ0FDcEIsNEVBRkM7dUJBQUE7NEJBQUE7OEJBQUE7WUFHTjtRQUNGO0lBQ0YsT0FBTztRQUNMLDhDQUE4QztRQUM5QywrQ0FBK0M7UUFDL0MsaURBQWlEO1FBQ2pELE1BQU0rRSxvQkFBb0J0QztRQUMxQkEsU0FBUyxDQUFDdUM7WUFDUixNQUFNLEVBQUUxQyxRQUFRMkMsQ0FBQyxFQUFFLEdBQUdDLE1BQU0sR0FBR0Y7WUFDL0IsT0FBT0Qsa0JBQWtCRztRQUMzQjtJQUNGO0lBRUEsSUFBSXRCLFFBQVE7UUFDVixJQUFJQSxXQUFXLFFBQVE7WUFDckJULE9BQU87UUFDVDtRQUNBLE1BQU1nQyxnQkFBb0U7WUFDeEVDLFdBQVc7Z0JBQUVDLFVBQVU7Z0JBQVFuQyxRQUFRO1lBQU87WUFDOUNvQyxZQUFZO2dCQUFFdkUsT0FBTztnQkFBUW1DLFFBQVE7WUFBTztRQUM5QztRQUNBLE1BQU1xQyxnQkFBb0Q7WUFDeERELFlBQVk7WUFDWm5DLE1BQU07UUFDUjtRQUNBLE1BQU1xQyxjQUFjTCxhQUFhLENBQUN2QixPQUFPO1FBQ3pDLElBQUk0QixhQUFhO1lBQ2ZwQyxRQUFRO2dCQUFFLEdBQUdBLEtBQUs7Z0JBQUUsR0FBR29DLFdBQVc7WUFBQztRQUNyQztRQUNBLE1BQU1DLGNBQWNGLGFBQWEsQ0FBQzNCLE9BQU87UUFDekMsSUFBSTZCLGVBQWUsQ0FBQ3pFLE9BQU87WUFDekJBLFFBQVF5RTtRQUNWO0lBQ0Y7SUFFQSxJQUFJQyxZQUFZO0lBQ2hCLElBQUlDLFdBQVdwRixPQUFPUTtJQUN0QixJQUFJNkUsWUFBWXJGLE9BQU8yQztJQUN2QixJQUFJMkM7SUFDSixJQUFJQztJQUNKLElBQUkzRixlQUFlSCxNQUFNO1FBQ3ZCLE1BQU0rRixrQkFBa0JoRyxnQkFBZ0JDLE9BQU9BLElBQUlDLE9BQU8sR0FBR0Q7UUFFN0QsSUFBSSxDQUFDK0YsZ0JBQWdCL0YsR0FBRyxFQUFFO1lBQ3hCLE1BQU0scUJBSUwsQ0FKSyxJQUFJNkUsTUFDUCxnSkFBNkltQixLQUFLQyxTQUFTLENBQzFKRixtQkFGRTt1QkFBQTs0QkFBQTs4QkFBQTtZQUlOO1FBQ0Y7UUFDQSxJQUFJLENBQUNBLGdCQUFnQjdDLE1BQU0sSUFBSSxDQUFDNkMsZ0JBQWdCaEYsS0FBSyxFQUFFO1lBQ3JELE1BQU0scUJBSUwsQ0FKSyxJQUFJOEQsTUFDUCw2SkFBMEptQixLQUFLQyxTQUFTLENBQ3ZLRixtQkFGRTt1QkFBQTs0QkFBQTs4QkFBQTtZQUlOO1FBQ0Y7UUFFQUYsWUFBWUUsZ0JBQWdCRixTQUFTO1FBQ3JDQyxhQUFhQyxnQkFBZ0JELFVBQVU7UUFDdkNyQyxjQUFjQSxlQUFlc0MsZ0JBQWdCdEMsV0FBVztRQUN4RGlDLFlBQVlLLGdCQUFnQi9GLEdBQUc7UUFFL0IsSUFBSSxDQUFDbUQsTUFBTTtZQUNULElBQUksQ0FBQ3dDLFlBQVksQ0FBQ0MsV0FBVztnQkFDM0JELFdBQVdJLGdCQUFnQmhGLEtBQUs7Z0JBQ2hDNkUsWUFBWUcsZ0JBQWdCN0MsTUFBTTtZQUNwQyxPQUFPLElBQUl5QyxZQUFZLENBQUNDLFdBQVc7Z0JBQ2pDLE1BQU1NLFFBQVFQLFdBQVdJLGdCQUFnQmhGLEtBQUs7Z0JBQzlDNkUsWUFBWWxFLEtBQUt5RSxLQUFLLENBQUNKLGdCQUFnQjdDLE1BQU0sR0FBR2dEO1lBQ2xELE9BQU8sSUFBSSxDQUFDUCxZQUFZQyxXQUFXO2dCQUNqQyxNQUFNTSxRQUFRTixZQUFZRyxnQkFBZ0I3QyxNQUFNO2dCQUNoRHlDLFdBQVdqRSxLQUFLeUUsS0FBSyxDQUFDSixnQkFBZ0JoRixLQUFLLEdBQUdtRjtZQUNoRDtRQUNGO0lBQ0Y7SUFDQWxHLE1BQU0sT0FBT0EsUUFBUSxXQUFXQSxNQUFNMEY7SUFFdEMsSUFBSVUsU0FDRixDQUFDckQsWUFBYUMsQ0FBQUEsWUFBWSxVQUFVLE9BQU9BLFlBQVksWUFBVTtJQUNuRSxJQUFJLENBQUNoRCxPQUFPQSxJQUFJcUcsVUFBVSxDQUFDLFlBQVlyRyxJQUFJcUcsVUFBVSxDQUFDLFVBQVU7UUFDOUQsdUVBQXVFO1FBQ3ZFOUQsY0FBYztRQUNkNkQsU0FBUztJQUNYO0lBQ0EsSUFBSTlELE9BQU9DLFdBQVcsRUFBRTtRQUN0QkEsY0FBYztJQUNoQjtJQUNBLElBQ0V1QyxtQkFDQSxDQUFDeEMsT0FBT2dFLG1CQUFtQixJQUMzQnRHLElBQUl1RyxLQUFLLENBQUMsS0FBSyxFQUFFLENBQUMsRUFBRSxDQUFDQyxRQUFRLENBQUMsU0FDOUI7UUFDQSx5REFBeUQ7UUFDekQsK0NBQStDO1FBQy9DakUsY0FBYztJQUNoQjtJQUVBLE1BQU1rRSxhQUFhbEcsT0FBT2lDO0lBRTFCLElBQUlrRSxJQUFvQixFQUFtQjtRQUN6QyxJQUFJcEUsT0FBT3VFLE1BQU0sS0FBSyxZQUFZL0IsbUJBQW1CLENBQUN2QyxhQUFhO1lBQ2pFLE1BQU0scUJBTUwsQ0FOSyxJQUFJc0MsTUFDUCwyWkFERzt1QkFBQTs0QkFBQTs4QkFBQTtZQU1OO1FBQ0Y7UUFDQSxJQUFJLENBQUM3RSxLQUFLO1lBQ1IsaURBQWlEO1lBQ2pELCtDQUErQztZQUMvQywyQ0FBMkM7WUFDM0N1QyxjQUFjO1FBQ2hCLE9BQU87WUFDTCxJQUFJWSxNQUFNO2dCQUNSLElBQUlwQyxPQUFPO29CQUNULE1BQU0scUJBRUwsQ0FGSyxJQUFJOEQsTUFDUCxxQkFBa0I3RSxNQUFJLHVFQURuQjsrQkFBQTtvQ0FBQTtzQ0FBQTtvQkFFTjtnQkFDRjtnQkFDQSxJQUFJa0QsUUFBUTtvQkFDVixNQUFNLHFCQUVMLENBRkssSUFBSTJCLE1BQ1AscUJBQWtCN0UsTUFBSSx3RUFEbkI7K0JBQUE7b0NBQUE7c0NBQUE7b0JBRU47Z0JBQ0Y7Z0JBQ0EsSUFBSW9ELENBQUFBLFNBQUFBLE9BQUFBLEtBQUFBLElBQUFBLE1BQU8wRCxRQUFBQSxLQUFZMUQsTUFBTTBELFFBQVEsS0FBSyxZQUFZO29CQUNwRCxNQUFNLHFCQUVMLENBRkssSUFBSWpDLE1BQ1AscUJBQWtCN0UsTUFBSSxnSUFEbkI7K0JBQUE7b0NBQUE7c0NBQUE7b0JBRU47Z0JBQ0Y7Z0JBQ0EsSUFBSW9ELENBQUFBLFNBQUFBLE9BQUFBLEtBQUFBLElBQUFBLE1BQU9yQyxLQUFBQSxLQUFTcUMsTUFBTXJDLEtBQUssS0FBSyxRQUFRO29CQUMxQyxNQUFNLHFCQUVMLENBRkssSUFBSThELE1BQ1AscUJBQWtCN0UsTUFBSSxzSEFEbkI7K0JBQUE7b0NBQUE7c0NBQUE7b0JBRU47Z0JBQ0Y7Z0JBQ0EsSUFBSW9ELENBQUFBLFNBQUFBLE9BQUFBLEtBQUFBLElBQUFBLE1BQU9GLE1BQUFBLEtBQVVFLE1BQU1GLE1BQU0sS0FBSyxRQUFRO29CQUM1QyxNQUFNLHFCQUVMLENBRkssSUFBSTJCLE1BQ1AscUJBQWtCN0UsTUFBSSx3SEFEbkI7K0JBQUE7b0NBQUE7c0NBQUE7b0JBRU47Z0JBQ0Y7WUFDRixPQUFPO2dCQUNMLElBQUksT0FBTzJGLGFBQWEsYUFBYTtvQkFDbkMsTUFBTSxxQkFFTCxDQUZLLElBQUlkLE1BQ1AscUJBQWtCN0UsTUFBSSw0Q0FEbkI7K0JBQUE7b0NBQUE7c0NBQUE7b0JBRU47Z0JBQ0YsT0FBTyxJQUFJK0csTUFBTXBCLFdBQVc7b0JBQzFCLE1BQU0scUJBRUwsQ0FGSyxJQUFJZCxNQUNQLHFCQUFrQjdFLE1BQUksc0ZBQW1GZSxRQUFNLE9BRDVHOytCQUFBO29DQUFBO3NDQUFBO29CQUVOO2dCQUNGO2dCQUNBLElBQUksT0FBTzZFLGNBQWMsYUFBYTtvQkFDcEMsTUFBTSxxQkFFTCxDQUZLLElBQUlmLE1BQ1AscUJBQWtCN0UsTUFBSSw2Q0FEbkI7K0JBQUE7b0NBQUE7c0NBQUE7b0JBRU47Z0JBQ0YsT0FBTyxJQUFJK0csTUFBTW5CLFlBQVk7b0JBQzNCLE1BQU0scUJBRUwsQ0FGSyxJQUFJZixNQUNQLHFCQUFrQjdFLE1BQUksdUZBQW9Ga0QsU0FBTyxPQUQ5RzsrQkFBQTtvQ0FBQTtzQ0FBQTtvQkFFTjtnQkFDRjtnQkFDQSw0Q0FBNEM7Z0JBQzVDLElBQUksZUFBZXRDLElBQUksQ0FBQ1osTUFBTTtvQkFDNUIsTUFBTSxxQkFFTCxDQUZLLElBQUk2RSxNQUNQLHFCQUFrQjdFLE1BQUksOEhBRG5COytCQUFBO29DQUFBO3NDQUFBO29CQUVOO2dCQUNGO2dCQUNBLDRDQUE0QztnQkFDNUMsSUFBSSxlQUFlWSxJQUFJLENBQUNaLE1BQU07b0JBQzVCLE1BQU0scUJBRUwsQ0FGSyxJQUFJNkUsTUFDUCxxQkFBa0I3RSxNQUFJLDBIQURuQjsrQkFBQTtvQ0FBQTtzQ0FBQTtvQkFFTjtnQkFDRjtZQUNGO1FBQ0Y7UUFDQSxJQUFJLENBQUNKLHFCQUFxQm9ILFFBQVEsQ0FBQ2hFLFVBQVU7WUFDM0MsTUFBTSxxQkFJTCxDQUpLLElBQUk2QixNQUNQLHFCQUFrQjdFLE1BQUksaURBQThDZ0QsVUFBUSx3QkFBcUJwRCxxQkFBcUJxQyxHQUFHLENBQ3hIZ0YsUUFDQXBFLElBQUksQ0FBQyxPQUFLLE1BSFI7dUJBQUE7NEJBQUE7OEJBQUE7WUFJTjtRQUNGO1FBQ0EsSUFBSUUsWUFBWUMsWUFBWSxRQUFRO1lBQ2xDLE1BQU0scUJBRUwsQ0FGSyxJQUFJNkIsTUFDUCxxQkFBa0I3RSxNQUFJLHNGQURuQjt1QkFBQTs0QkFBQTs4QkFBQTtZQUVOO1FBQ0Y7UUFDQSxJQUNFd0QsZ0JBQWdCLFdBQ2hCQSxnQkFBZ0IsVUFDaEIsQ0FBQ0EsWUFBWTZDLFVBQVUsQ0FBQyxnQkFDeEI7WUFDQSxNQUFNLHFCQUVMLENBRkssSUFBSXhCLE1BQ1AscUJBQWtCN0UsTUFBSSwyQ0FBd0N3RCxjQUFZLE9BRHZFO3VCQUFBOzRCQUFBOzhCQUFBO1lBRU47UUFDRjtRQUNBLElBQUlBLGdCQUFnQixTQUFTO1lBQzNCLElBQUltQyxZQUFZQyxhQUFhRCxXQUFXQyxZQUFZLE1BQU07Z0JBQ3hEc0IsQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyxxQkFBa0JsSCxNQUFJO1lBRTNCO1FBQ0Y7UUFDQSxJQUFJd0QsZ0JBQWdCLFVBQVUsQ0FBQ0MsYUFBYTtZQUMxQyxNQUFNMEQsaUJBQWlCO2dCQUFDO2dCQUFRO2dCQUFPO2dCQUFRO2FBQU8sQ0FBQyxpQ0FBaUM7O1lBRXhGLE1BQU0scUJBU0wsQ0FUSyxJQUFJdEMsTUFDUCxxQkFBa0I3RSxNQUFJLDZUQUdrRW1ILGVBQWV0RSxJQUFJLENBQ3hHLE9BQ0EsK0xBTkE7dUJBQUE7NEJBQUE7OEJBQUE7WUFTTjtRQUNGO1FBQ0EsSUFBSSxTQUFTb0IsTUFBTTtZQUNqQmlELENBQUFBLEdBQUFBLFVBQUFBLFFBQUFBLEVBQ0cscUJBQWtCbEgsTUFBSTtRQUUzQjtRQUVBLElBQUksQ0FBQ3VDLGVBQWUsQ0FBQ3VDLGlCQUFpQjtZQUNwQyxNQUFNc0MsU0FBUzNFLE9BQU87Z0JBQ3BCSDtnQkFDQXRDO2dCQUNBZSxPQUFPNEUsWUFBWTtnQkFDbkJuRCxTQUFTaUUsY0FBYztZQUN6QjtZQUNBLElBQUlZO1lBQ0osSUFBSTtnQkFDRkEsTUFBTSxJQUFJQyxJQUFJRjtZQUNoQixFQUFFLE9BQU9HLEtBQUssQ0FBQztZQUNmLElBQUlILFdBQVdwSCxPQUFRcUgsT0FBT0EsSUFBSUcsUUFBUSxLQUFLeEgsT0FBTyxDQUFDcUgsSUFBSUksTUFBTSxFQUFHO2dCQUNsRVAsQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyxxQkFBa0JsSCxNQUFJLDRIQUNwQjtZQUVQO1FBQ0Y7UUFFQSxJQUFJdUQsbUJBQW1CO1lBQ3JCMkQsQ0FBQUEsR0FBQUEsVUFBQUEsUUFBQUEsRUFDRyxxQkFBa0JsSCxNQUFJO1FBRTNCO1FBRUEsS0FBSyxNQUFNLENBQUMwSCxXQUFXQyxZQUFZLElBQUlDLE9BQU9DLE9BQU8sQ0FBQztZQUNwRGpFO1lBQ0FDO1lBQ0FDO1lBQ0FDO1lBQ0FDO1FBQ0YsR0FBSTtZQUNGLElBQUkyRCxhQUFhO2dCQUNmVCxDQUFBQSxHQUFBQSxVQUFBQSxRQUFBQSxFQUNHLHFCQUFrQmxILE1BQUksd0JBQXFCMEgsWUFBVSwwQ0FDbkQ7WUFFUDtRQUNGO1FBRUEsSUFDRSxLQUUwQixFQUMxQixFQThCRDtJQUNIO0lBQ0EsTUFBTWtCLFdBQVdoQixPQUFPaUIsTUFBTSxDQUM1QjFGLE9BQ0k7UUFDRTJELFVBQVU7UUFDVjVELFFBQVE7UUFDUm5DLE9BQU87UUFDUCtILE1BQU07UUFDTkMsS0FBSztRQUNMQyxPQUFPO1FBQ1BDLFFBQVE7UUFDUnBGO1FBQ0FDO0lBQ0YsSUFDQSxDQUFDLEdBQ0xLLGNBQWMsQ0FBQyxJQUFJO1FBQUUrRSxPQUFPO0lBQWMsR0FDMUM5RjtJQUdGLE1BQU0rRixrQkFDSixDQUFDL0UsZ0JBQWdCWixnQkFBZ0IsVUFDN0JBLGdCQUFnQixTQUNiLDJDQUF3QzRGLENBQUFBLEdBQUFBLGNBQUFBLGVBQUFBLEVBQWdCO1FBQ3ZEekQ7UUFDQUM7UUFDQUM7UUFDQUM7UUFDQXJDLGFBQWFBLGVBQWU7UUFDNUJJLFdBQVcrRSxTQUFTL0UsU0FBUztJQUMvQixLQUFHLE9BQ0YsVUFBT0wsY0FBWSxLQUFJLHVCQUF1QjtPQUNqRDtJQUVOLE1BQU02RixpQkFBaUIsQ0FBQ3ZKLCtCQUErQmtILFFBQVEsQ0FDN0Q0QixTQUFTL0UsU0FBUyxJQUVoQitFLFNBQVMvRSxTQUFTLEdBQ2xCK0UsU0FBUy9FLFNBQVMsS0FBSyxTQUNyQixZQUFZLDJDQUEyQztPQUN2RDtJQUVOLElBQUl5RixtQkFBcUNILGtCQUNyQztRQUNFRTtRQUNBRSxvQkFBb0JYLFNBQVM5RSxjQUFjLElBQUk7UUFDL0MwRixrQkFBa0I7UUFDbEJMO0lBQ0YsSUFDQSxDQUFDO0lBRUwsSUFBSXpDLElBQW9CLEVBQW9CO1FBQzFDLElBQ0U0QyxpQkFBaUJILGVBQWUsSUFDaEMzRixnQkFBZ0IsV0FDaEJDLGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFlBQWE0QyxVQUFVLENBQUMsT0FDeEI7WUFDQSw4RUFBOEU7WUFDOUUsZ0ZBQWdGO1lBQ2hGLHFGQUFxRjtZQUNyRmlELGlCQUFpQkgsZUFBZSxHQUFJLFVBQU8xRixjQUFZO1FBQ3pEO0lBQ0Y7SUFFQSxNQUFNZ0csZ0JBQWdCcEgsaUJBQWlCO1FBQ3JDQztRQUNBdEM7UUFDQXVDO1FBQ0F4QixPQUFPNEU7UUFDUG5ELFNBQVNpRTtRQUNUekY7UUFDQXlCO0lBQ0Y7SUFFQSxJQUFJaUUsSUFBb0IsRUFBbUI7UUFDekMsSUFBSSxLQUE2QixFQUFFLEVBUWxDO0lBQ0g7SUFFQSxNQUFNcUQsUUFBa0I7UUFDdEIsR0FBRzlGLElBQUk7UUFDUGpCLFNBQVNvRCxTQUFTLFNBQVNwRDtRQUMzQlU7UUFDQTNDLE9BQU80RTtRQUNQekMsUUFBUTBDO1FBQ1JqQztRQUNBVjtRQUNBRyxPQUFPO1lBQUUsR0FBR3dGLFFBQVE7WUFBRSxHQUFHVSxnQkFBZ0I7UUFBQztRQUMxQ3RJLE9BQU95SSxjQUFjekksS0FBSztRQUMxQjBCLFFBQVErRyxjQUFjL0csTUFBTTtRQUM1QjFDLEtBQUtxRCxlQUFlb0csY0FBY3pKLEdBQUc7SUFDdkM7SUFDQSxNQUFNZ0ssT0FBTztRQUFFekg7UUFBYVE7UUFBVVM7UUFBYUw7SUFBSztJQUN4RCxPQUFPO1FBQUU0RztRQUFPQztJQUFLO0FBQ3ZCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9nZXQtaW1nLXByb3BzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnLi91dGlscy93YXJuLW9uY2UnXG5pbXBvcnQgeyBnZXRJbWFnZUJsdXJTdmcgfSBmcm9tICcuL2ltYWdlLWJsdXItc3ZnJ1xuaW1wb3J0IHsgaW1hZ2VDb25maWdEZWZhdWx0IH0gZnJvbSAnLi9pbWFnZS1jb25maWcnXG5pbXBvcnQgdHlwZSB7XG4gIEltYWdlQ29uZmlnQ29tcGxldGUsXG4gIEltYWdlTG9hZGVyUHJvcHMsXG4gIEltYWdlTG9hZGVyUHJvcHNXaXRoQ29uZmlnLFxufSBmcm9tICcuL2ltYWdlLWNvbmZpZydcblxuaW1wb3J0IHR5cGUgeyBDU1NQcm9wZXJ0aWVzLCBKU1ggfSBmcm9tICdyZWFjdCdcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0aWNJbWFnZURhdGEge1xuICBzcmM6IHN0cmluZ1xuICBoZWlnaHQ6IG51bWJlclxuICB3aWR0aDogbnVtYmVyXG4gIGJsdXJEYXRhVVJMPzogc3RyaW5nXG4gIGJsdXJXaWR0aD86IG51bWJlclxuICBibHVySGVpZ2h0PzogbnVtYmVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3RhdGljUmVxdWlyZSB7XG4gIGRlZmF1bHQ6IFN0YXRpY0ltYWdlRGF0YVxufVxuXG5leHBvcnQgdHlwZSBTdGF0aWNJbXBvcnQgPSBTdGF0aWNSZXF1aXJlIHwgU3RhdGljSW1hZ2VEYXRhXG5cbmV4cG9ydCB0eXBlIEltYWdlUHJvcHMgPSBPbWl0PFxuICBKU1guSW50cmluc2ljRWxlbWVudHNbJ2ltZyddLFxuICAnc3JjJyB8ICdzcmNTZXQnIHwgJ3JlZicgfCAnYWx0JyB8ICd3aWR0aCcgfCAnaGVpZ2h0JyB8ICdsb2FkaW5nJ1xuPiAmIHtcbiAgc3JjOiBzdHJpbmcgfCBTdGF0aWNJbXBvcnRcbiAgYWx0OiBzdHJpbmdcbiAgd2lkdGg/OiBudW1iZXIgfCBgJHtudW1iZXJ9YFxuICBoZWlnaHQ/OiBudW1iZXIgfCBgJHtudW1iZXJ9YFxuICBmaWxsPzogYm9vbGVhblxuICBsb2FkZXI/OiBJbWFnZUxvYWRlclxuICBxdWFsaXR5PzogbnVtYmVyIHwgYCR7bnVtYmVyfWBcbiAgcHJpb3JpdHk/OiBib29sZWFuXG4gIGxvYWRpbmc/OiBMb2FkaW5nVmFsdWVcbiAgcGxhY2Vob2xkZXI/OiBQbGFjZWhvbGRlclZhbHVlXG4gIGJsdXJEYXRhVVJMPzogc3RyaW5nXG4gIHVub3B0aW1pemVkPzogYm9vbGVhblxuICBvdmVycmlkZVNyYz86IHN0cmluZ1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBvbkxvYWRgIGluc3RlYWQuXG4gICAqIEBzZWUgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2FwaS1yZWZlcmVuY2UvY29tcG9uZW50cy9pbWFnZSNvbmxvYWRcbiAgICovXG4gIG9uTG9hZGluZ0NvbXBsZXRlPzogT25Mb2FkaW5nQ29tcGxldGVcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgZmlsbGAgcHJvcCBpbnN0ZWFkIG9mIGBsYXlvdXQ9XCJmaWxsXCJgIG9yIGNoYW5nZSBpbXBvcnQgdG8gYG5leHQvbGVnYWN5L2ltYWdlYC5cbiAgICogQHNlZSBodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvbGVnYWN5L2ltYWdlXG4gICAqL1xuICBsYXlvdXQ/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgc3R5bGVgIHByb3AgaW5zdGVhZC5cbiAgICovXG4gIG9iamVjdEZpdD86IHN0cmluZ1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGBzdHlsZWAgcHJvcCBpbnN0ZWFkLlxuICAgKi9cbiAgb2JqZWN0UG9zaXRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFRoaXMgcHJvcCBkb2VzIG5vdCBkbyBhbnl0aGluZy5cbiAgICovXG4gIGxhenlCb3VuZGFyeT86IHN0cmluZ1xuICAvKipcbiAgICogQGRlcHJlY2F0ZWQgVGhpcyBwcm9wIGRvZXMgbm90IGRvIGFueXRoaW5nLlxuICAgKi9cbiAgbGF6eVJvb3Q/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgSW1nUHJvcHMgPSBPbWl0PEltYWdlUHJvcHMsICdzcmMnIHwgJ2xvYWRlcic+ICYge1xuICBsb2FkaW5nOiBMb2FkaW5nVmFsdWVcbiAgd2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZFxuICBoZWlnaHQ6IG51bWJlciB8IHVuZGVmaW5lZFxuICBzdHlsZTogTm9uTnVsbGFibGU8SlNYLkludHJpbnNpY0VsZW1lbnRzWydpbWcnXVsnc3R5bGUnXT5cbiAgc2l6ZXM6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBzcmNTZXQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBzcmM6IHN0cmluZ1xufVxuXG5jb25zdCBWQUxJRF9MT0FESU5HX1ZBTFVFUyA9IFsnbGF6eScsICdlYWdlcicsIHVuZGVmaW5lZF0gYXMgY29uc3RcblxuLy8gT2JqZWN0LWZpdCB2YWx1ZXMgdGhhdCBhcmUgbm90IHZhbGlkIGJhY2tncm91bmQtc2l6ZSB2YWx1ZXNcbmNvbnN0IElOVkFMSURfQkFDS0dST1VORF9TSVpFX1ZBTFVFUyA9IFtcbiAgJy1tb3otaW5pdGlhbCcsXG4gICdmaWxsJyxcbiAgJ25vbmUnLFxuICAnc2NhbGUtZG93bicsXG4gIHVuZGVmaW5lZCxcbl1cbnR5cGUgTG9hZGluZ1ZhbHVlID0gKHR5cGVvZiBWQUxJRF9MT0FESU5HX1ZBTFVFUylbbnVtYmVyXVxudHlwZSBJbWFnZUNvbmZpZyA9IEltYWdlQ29uZmlnQ29tcGxldGUgJiB7XG4gIGFsbFNpemVzOiBudW1iZXJbXVxuICBvdXRwdXQ/OiAnc3RhbmRhbG9uZScgfCAnZXhwb3J0J1xufVxuXG5leHBvcnQgdHlwZSBJbWFnZUxvYWRlciA9IChwOiBJbWFnZUxvYWRlclByb3BzKSA9PiBzdHJpbmdcblxuLy8gRG8gbm90IGV4cG9ydCAtIHRoaXMgaXMgYW4gaW50ZXJuYWwgdHlwZSBvbmx5XG4vLyBiZWNhdXNlIGBuZXh0LmNvbmZpZy5qc2AgaXMgb25seSBtZWFudCBmb3IgdGhlXG4vLyBidWlsdC1pbiBsb2FkZXJzLCBub3QgZm9yIGEgY3VzdG9tIGxvYWRlcigpIHByb3AuXG50eXBlIEltYWdlTG9hZGVyV2l0aENvbmZpZyA9IChwOiBJbWFnZUxvYWRlclByb3BzV2l0aENvbmZpZykgPT4gc3RyaW5nXG5cbmV4cG9ydCB0eXBlIFBsYWNlaG9sZGVyVmFsdWUgPSAnYmx1cicgfCAnZW1wdHknIHwgYGRhdGE6aW1hZ2UvJHtzdHJpbmd9YFxuZXhwb3J0IHR5cGUgT25Mb2FkID0gUmVhY3QuUmVhY3RFdmVudEhhbmRsZXI8SFRNTEltYWdlRWxlbWVudD4gfCB1bmRlZmluZWRcbmV4cG9ydCB0eXBlIE9uTG9hZGluZ0NvbXBsZXRlID0gKGltZzogSFRNTEltYWdlRWxlbWVudCkgPT4gdm9pZFxuXG5leHBvcnQgdHlwZSBQbGFjZWhvbGRlclN0eWxlID0gUGFydGlhbDxcbiAgUGljazxcbiAgICBDU1NQcm9wZXJ0aWVzLFxuICAgIHwgJ2JhY2tncm91bmRTaXplJ1xuICAgIHwgJ2JhY2tncm91bmRQb3NpdGlvbidcbiAgICB8ICdiYWNrZ3JvdW5kUmVwZWF0J1xuICAgIHwgJ2JhY2tncm91bmRJbWFnZSdcbiAgPlxuPlxuXG5mdW5jdGlvbiBpc1N0YXRpY1JlcXVpcmUoXG4gIHNyYzogU3RhdGljUmVxdWlyZSB8IFN0YXRpY0ltYWdlRGF0YVxuKTogc3JjIGlzIFN0YXRpY1JlcXVpcmUge1xuICByZXR1cm4gKHNyYyBhcyBTdGF0aWNSZXF1aXJlKS5kZWZhdWx0ICE9PSB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gaXNTdGF0aWNJbWFnZURhdGEoXG4gIHNyYzogU3RhdGljUmVxdWlyZSB8IFN0YXRpY0ltYWdlRGF0YVxuKTogc3JjIGlzIFN0YXRpY0ltYWdlRGF0YSB7XG4gIHJldHVybiAoc3JjIGFzIFN0YXRpY0ltYWdlRGF0YSkuc3JjICE9PSB1bmRlZmluZWRcbn1cblxuZnVuY3Rpb24gaXNTdGF0aWNJbXBvcnQoc3JjOiBzdHJpbmcgfCBTdGF0aWNJbXBvcnQpOiBzcmMgaXMgU3RhdGljSW1wb3J0IHtcbiAgcmV0dXJuIChcbiAgICAhIXNyYyAmJlxuICAgIHR5cGVvZiBzcmMgPT09ICdvYmplY3QnICYmXG4gICAgKGlzU3RhdGljUmVxdWlyZShzcmMgYXMgU3RhdGljSW1wb3J0KSB8fFxuICAgICAgaXNTdGF0aWNJbWFnZURhdGEoc3JjIGFzIFN0YXRpY0ltcG9ydCkpXG4gIClcbn1cblxuY29uc3QgYWxsSW1ncyA9IG5ldyBNYXA8XG4gIHN0cmluZyxcbiAgeyBzcmM6IHN0cmluZzsgcHJpb3JpdHk6IGJvb2xlYW47IHBsYWNlaG9sZGVyOiBQbGFjZWhvbGRlclZhbHVlIH1cbj4oKVxubGV0IHBlcmZPYnNlcnZlcjogUGVyZm9ybWFuY2VPYnNlcnZlciB8IHVuZGVmaW5lZFxuXG5mdW5jdGlvbiBnZXRJbnQoeDogdW5rbm93bik6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIGlmICh0eXBlb2YgeCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICByZXR1cm4geFxuICB9XG4gIGlmICh0eXBlb2YgeCA9PT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4gTnVtYmVyLmlzRmluaXRlKHgpID8geCA6IE5hTlxuICB9XG4gIGlmICh0eXBlb2YgeCA9PT0gJ3N0cmluZycgJiYgL15bMC05XSskLy50ZXN0KHgpKSB7XG4gICAgcmV0dXJuIHBhcnNlSW50KHgsIDEwKVxuICB9XG4gIHJldHVybiBOYU5cbn1cblxuZnVuY3Rpb24gZ2V0V2lkdGhzKFxuICB7IGRldmljZVNpemVzLCBhbGxTaXplcyB9OiBJbWFnZUNvbmZpZyxcbiAgd2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZCxcbiAgc2l6ZXM6IHN0cmluZyB8IHVuZGVmaW5lZFxuKTogeyB3aWR0aHM6IG51bWJlcltdOyBraW5kOiAndycgfCAneCcgfSB7XG4gIGlmIChzaXplcykge1xuICAgIC8vIEZpbmQgYWxsIHRoZSBcInZ3XCIgcGVyY2VudCBzaXplcyB1c2VkIGluIHRoZSBzaXplcyBwcm9wXG4gICAgY29uc3Qgdmlld3BvcnRXaWR0aFJlID0gLyhefFxccykoMT9cXGQ/XFxkKXZ3L2dcbiAgICBjb25zdCBwZXJjZW50U2l6ZXMgPSBbXVxuICAgIGZvciAobGV0IG1hdGNoOyAobWF0Y2ggPSB2aWV3cG9ydFdpZHRoUmUuZXhlYyhzaXplcykpOyBtYXRjaCkge1xuICAgICAgcGVyY2VudFNpemVzLnB1c2gocGFyc2VJbnQobWF0Y2hbMl0pKVxuICAgIH1cbiAgICBpZiAocGVyY2VudFNpemVzLmxlbmd0aCkge1xuICAgICAgY29uc3Qgc21hbGxlc3RSYXRpbyA9IE1hdGgubWluKC4uLnBlcmNlbnRTaXplcykgKiAwLjAxXG4gICAgICByZXR1cm4ge1xuICAgICAgICB3aWR0aHM6IGFsbFNpemVzLmZpbHRlcigocykgPT4gcyA+PSBkZXZpY2VTaXplc1swXSAqIHNtYWxsZXN0UmF0aW8pLFxuICAgICAgICBraW5kOiAndycsXG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB7IHdpZHRoczogYWxsU2l6ZXMsIGtpbmQ6ICd3JyB9XG4gIH1cbiAgaWYgKHR5cGVvZiB3aWR0aCAhPT0gJ251bWJlcicpIHtcbiAgICByZXR1cm4geyB3aWR0aHM6IGRldmljZVNpemVzLCBraW5kOiAndycgfVxuICB9XG5cbiAgY29uc3Qgd2lkdGhzID0gW1xuICAgIC4uLm5ldyBTZXQoXG4gICAgICAvLyA+IFRoaXMgbWVhbnMgdGhhdCBtb3N0IE9MRUQgc2NyZWVucyB0aGF0IHNheSB0aGV5IGFyZSAzeCByZXNvbHV0aW9uLFxuICAgICAgLy8gPiBhcmUgYWN0dWFsbHkgM3ggaW4gdGhlIGdyZWVuIGNvbG9yLCBidXQgb25seSAxLjV4IGluIHRoZSByZWQgYW5kXG4gICAgICAvLyA+IGJsdWUgY29sb3JzLiBTaG93aW5nIGEgM3ggcmVzb2x1dGlvbiBpbWFnZSBpbiB0aGUgYXBwIHZzIGEgMnhcbiAgICAgIC8vID4gcmVzb2x1dGlvbiBpbWFnZSB3aWxsIGJlIHZpc3VhbGx5IHRoZSBzYW1lLCB0aG91Z2ggdGhlIDN4IGltYWdlXG4gICAgICAvLyA+IHRha2VzIHNpZ25pZmljYW50bHkgbW9yZSBkYXRhLiBFdmVuIHRydWUgM3ggcmVzb2x1dGlvbiBzY3JlZW5zIGFyZVxuICAgICAgLy8gPiB3YXN0ZWZ1bCBhcyB0aGUgaHVtYW4gZXllIGNhbm5vdCBzZWUgdGhhdCBsZXZlbCBvZiBkZXRhaWwgd2l0aG91dFxuICAgICAgLy8gPiBzb21ldGhpbmcgbGlrZSBhIG1hZ25pZnlpbmcgZ2xhc3MuXG4gICAgICAvLyBodHRwczovL2Jsb2cudHdpdHRlci5jb20vZW5naW5lZXJpbmcvZW5fdXMvdG9waWNzL2luZnJhc3RydWN0dXJlLzIwMTkvY2FwcGluZy1pbWFnZS1maWRlbGl0eS1vbi11bHRyYS1oaWdoLXJlc29sdXRpb24tZGV2aWNlcy5odG1sXG4gICAgICBbd2lkdGgsIHdpZHRoICogMiAvKiwgd2lkdGggKiAzKi9dLm1hcChcbiAgICAgICAgKHcpID0+IGFsbFNpemVzLmZpbmQoKHApID0+IHAgPj0gdykgfHwgYWxsU2l6ZXNbYWxsU2l6ZXMubGVuZ3RoIC0gMV1cbiAgICAgIClcbiAgICApLFxuICBdXG4gIHJldHVybiB7IHdpZHRocywga2luZDogJ3gnIH1cbn1cblxudHlwZSBHZW5JbWdBdHRyc0RhdGEgPSB7XG4gIGNvbmZpZzogSW1hZ2VDb25maWdcbiAgc3JjOiBzdHJpbmdcbiAgdW5vcHRpbWl6ZWQ6IGJvb2xlYW5cbiAgbG9hZGVyOiBJbWFnZUxvYWRlcldpdGhDb25maWdcbiAgd2lkdGg/OiBudW1iZXJcbiAgcXVhbGl0eT86IG51bWJlclxuICBzaXplcz86IHN0cmluZ1xufVxuXG50eXBlIEdlbkltZ0F0dHJzUmVzdWx0ID0ge1xuICBzcmM6IHN0cmluZ1xuICBzcmNTZXQ6IHN0cmluZyB8IHVuZGVmaW5lZFxuICBzaXplczogc3RyaW5nIHwgdW5kZWZpbmVkXG59XG5cbmZ1bmN0aW9uIGdlbmVyYXRlSW1nQXR0cnMoe1xuICBjb25maWcsXG4gIHNyYyxcbiAgdW5vcHRpbWl6ZWQsXG4gIHdpZHRoLFxuICBxdWFsaXR5LFxuICBzaXplcyxcbiAgbG9hZGVyLFxufTogR2VuSW1nQXR0cnNEYXRhKTogR2VuSW1nQXR0cnNSZXN1bHQge1xuICBpZiAodW5vcHRpbWl6ZWQpIHtcbiAgICByZXR1cm4geyBzcmMsIHNyY1NldDogdW5kZWZpbmVkLCBzaXplczogdW5kZWZpbmVkIH1cbiAgfVxuXG4gIGNvbnN0IHsgd2lkdGhzLCBraW5kIH0gPSBnZXRXaWR0aHMoY29uZmlnLCB3aWR0aCwgc2l6ZXMpXG4gIGNvbnN0IGxhc3QgPSB3aWR0aHMubGVuZ3RoIC0gMVxuXG4gIHJldHVybiB7XG4gICAgc2l6ZXM6ICFzaXplcyAmJiBraW5kID09PSAndycgPyAnMTAwdncnIDogc2l6ZXMsXG4gICAgc3JjU2V0OiB3aWR0aHNcbiAgICAgIC5tYXAoXG4gICAgICAgICh3LCBpKSA9PlxuICAgICAgICAgIGAke2xvYWRlcih7IGNvbmZpZywgc3JjLCBxdWFsaXR5LCB3aWR0aDogdyB9KX0gJHtcbiAgICAgICAgICAgIGtpbmQgPT09ICd3JyA/IHcgOiBpICsgMVxuICAgICAgICAgIH0ke2tpbmR9YFxuICAgICAgKVxuICAgICAgLmpvaW4oJywgJyksXG5cbiAgICAvLyBJdCdzIGludGVuZGVkIHRvIGtlZXAgYHNyY2AgdGhlIGxhc3QgYXR0cmlidXRlIGJlY2F1c2UgUmVhY3QgdXBkYXRlc1xuICAgIC8vIGF0dHJpYnV0ZXMgaW4gb3JkZXIuIElmIHdlIGtlZXAgYHNyY2AgdGhlIGZpcnN0IG9uZSwgU2FmYXJpIHdpbGxcbiAgICAvLyBpbW1lZGlhdGVseSBzdGFydCB0byBmZXRjaCBgc3JjYCwgYmVmb3JlIGBzaXplc2AgYW5kIGBzcmNTZXRgIGFyZSBldmVuXG4gICAgLy8gdXBkYXRlZCBieSBSZWFjdC4gVGhhdCBjYXVzZXMgbXVsdGlwbGUgdW5uZWNlc3NhcnkgcmVxdWVzdHMgaWYgYHNyY1NldGBcbiAgICAvLyBhbmQgYHNpemVzYCBhcmUgZGVmaW5lZC5cbiAgICAvLyBUaGlzIGJ1ZyBjYW5ub3QgYmUgcmVwcm9kdWNlZCBpbiBDaHJvbWUgb3IgRmlyZWZveC5cbiAgICBzcmM6IGxvYWRlcih7IGNvbmZpZywgc3JjLCBxdWFsaXR5LCB3aWR0aDogd2lkdGhzW2xhc3RdIH0pLFxuICB9XG59XG5cbi8qKlxuICogQSBzaGFyZWQgZnVuY3Rpb24sIHVzZWQgb24gYm90aCBjbGllbnQgYW5kIHNlcnZlciwgdG8gZ2VuZXJhdGUgdGhlIHByb3BzIGZvciA8aW1nPi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldEltZ1Byb3BzKFxuICB7XG4gICAgc3JjLFxuICAgIHNpemVzLFxuICAgIHVub3B0aW1pemVkID0gZmFsc2UsXG4gICAgcHJpb3JpdHkgPSBmYWxzZSxcbiAgICBsb2FkaW5nLFxuICAgIGNsYXNzTmFtZSxcbiAgICBxdWFsaXR5LFxuICAgIHdpZHRoLFxuICAgIGhlaWdodCxcbiAgICBmaWxsID0gZmFsc2UsXG4gICAgc3R5bGUsXG4gICAgb3ZlcnJpZGVTcmMsXG4gICAgb25Mb2FkLFxuICAgIG9uTG9hZGluZ0NvbXBsZXRlLFxuICAgIHBsYWNlaG9sZGVyID0gJ2VtcHR5JyxcbiAgICBibHVyRGF0YVVSTCxcbiAgICBmZXRjaFByaW9yaXR5LFxuICAgIGRlY29kaW5nID0gJ2FzeW5jJyxcbiAgICBsYXlvdXQsXG4gICAgb2JqZWN0Rml0LFxuICAgIG9iamVjdFBvc2l0aW9uLFxuICAgIGxhenlCb3VuZGFyeSxcbiAgICBsYXp5Um9vdCxcbiAgICAuLi5yZXN0XG4gIH06IEltYWdlUHJvcHMsXG4gIF9zdGF0ZToge1xuICAgIGRlZmF1bHRMb2FkZXI6IEltYWdlTG9hZGVyV2l0aENvbmZpZ1xuICAgIGltZ0NvbmY6IEltYWdlQ29uZmlnQ29tcGxldGVcbiAgICBzaG93QWx0VGV4dD86IGJvb2xlYW5cbiAgICBibHVyQ29tcGxldGU/OiBib29sZWFuXG4gIH1cbik6IHtcbiAgcHJvcHM6IEltZ1Byb3BzXG4gIG1ldGE6IHtcbiAgICB1bm9wdGltaXplZDogYm9vbGVhblxuICAgIHByaW9yaXR5OiBib29sZWFuXG4gICAgcGxhY2Vob2xkZXI6IE5vbk51bGxhYmxlPEltYWdlUHJvcHNbJ3BsYWNlaG9sZGVyJ10+XG4gICAgZmlsbDogYm9vbGVhblxuICB9XG59IHtcbiAgY29uc3QgeyBpbWdDb25mLCBzaG93QWx0VGV4dCwgYmx1ckNvbXBsZXRlLCBkZWZhdWx0TG9hZGVyIH0gPSBfc3RhdGVcbiAgbGV0IGNvbmZpZzogSW1hZ2VDb25maWdcbiAgbGV0IGMgPSBpbWdDb25mIHx8IGltYWdlQ29uZmlnRGVmYXVsdFxuICBpZiAoJ2FsbFNpemVzJyBpbiBjKSB7XG4gICAgY29uZmlnID0gYyBhcyBJbWFnZUNvbmZpZ1xuICB9IGVsc2Uge1xuICAgIGNvbnN0IGFsbFNpemVzID0gWy4uLmMuZGV2aWNlU2l6ZXMsIC4uLmMuaW1hZ2VTaXplc10uc29ydCgoYSwgYikgPT4gYSAtIGIpXG4gICAgY29uc3QgZGV2aWNlU2l6ZXMgPSBjLmRldmljZVNpemVzLnNvcnQoKGEsIGIpID0+IGEgLSBiKVxuICAgIGNvbnN0IHF1YWxpdGllcyA9IGMucXVhbGl0aWVzPy5zb3J0KChhLCBiKSA9PiBhIC0gYilcbiAgICBjb25maWcgPSB7IC4uLmMsIGFsbFNpemVzLCBkZXZpY2VTaXplcywgcXVhbGl0aWVzIH1cbiAgfVxuXG4gIGlmICh0eXBlb2YgZGVmYXVsdExvYWRlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAnaW1hZ2VzLmxvYWRlckZpbGUgZGV0ZWN0ZWQgYnV0IHRoZSBmaWxlIGlzIG1pc3NpbmcgZGVmYXVsdCBleHBvcnQuXFxuUmVhZCBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9pbnZhbGlkLWltYWdlcy1jb25maWcnXG4gICAgKVxuICB9XG4gIGxldCBsb2FkZXI6IEltYWdlTG9hZGVyV2l0aENvbmZpZyA9IHJlc3QubG9hZGVyIHx8IGRlZmF1bHRMb2FkZXJcblxuICAvLyBSZW1vdmUgcHJvcGVydHkgc28gaXQncyBub3Qgc3ByZWFkIG9uIDxpbWc+IGVsZW1lbnRcbiAgZGVsZXRlIHJlc3QubG9hZGVyXG4gIGRlbGV0ZSAocmVzdCBhcyBhbnkpLnNyY1NldFxuXG4gIC8vIFRoaXMgc3BlY2lhbCB2YWx1ZSBpbmRpY2F0ZXMgdGhhdCB0aGUgdXNlclxuICAvLyBkaWRuJ3QgZGVmaW5lIGEgXCJsb2FkZXJcIiBwcm9wIG9yIFwibG9hZGVyXCIgY29uZmlnLlxuICBjb25zdCBpc0RlZmF1bHRMb2FkZXIgPSAnX19uZXh0X2ltZ19kZWZhdWx0JyBpbiBsb2FkZXJcblxuICBpZiAoaXNEZWZhdWx0TG9hZGVyKSB7XG4gICAgaWYgKGNvbmZpZy5sb2FkZXIgPT09ICdjdXN0b20nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGlzIG1pc3NpbmcgXCJsb2FkZXJcIiBwcm9wLmAgK1xuICAgICAgICAgIGBcXG5SZWFkIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaW1hZ2UtbWlzc2luZy1sb2FkZXJgXG4gICAgICApXG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8vIFRoZSB1c2VyIGRlZmluZWQgYSBcImxvYWRlclwiIHByb3Agb3IgY29uZmlnLlxuICAgIC8vIFNpbmNlIHRoZSBjb25maWcgb2JqZWN0IGlzIGludGVybmFsIG9ubHksIHdlXG4gICAgLy8gbXVzdCBub3QgcGFzcyBpdCB0byB0aGUgdXNlci1kZWZpbmVkIFwibG9hZGVyXCIuXG4gICAgY29uc3QgY3VzdG9tSW1hZ2VMb2FkZXIgPSBsb2FkZXIgYXMgSW1hZ2VMb2FkZXJcbiAgICBsb2FkZXIgPSAob2JqKSA9PiB7XG4gICAgICBjb25zdCB7IGNvbmZpZzogXywgLi4ub3B0cyB9ID0gb2JqXG4gICAgICByZXR1cm4gY3VzdG9tSW1hZ2VMb2FkZXIob3B0cylcbiAgICB9XG4gIH1cblxuICBpZiAobGF5b3V0KSB7XG4gICAgaWYgKGxheW91dCA9PT0gJ2ZpbGwnKSB7XG4gICAgICBmaWxsID0gdHJ1ZVxuICAgIH1cbiAgICBjb25zdCBsYXlvdXRUb1N0eWxlOiBSZWNvcmQ8c3RyaW5nLCBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+IHwgdW5kZWZpbmVkPiA9IHtcbiAgICAgIGludHJpbnNpYzogeyBtYXhXaWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdhdXRvJyB9LFxuICAgICAgcmVzcG9uc2l2ZTogeyB3aWR0aDogJzEwMCUnLCBoZWlnaHQ6ICdhdXRvJyB9LFxuICAgIH1cbiAgICBjb25zdCBsYXlvdXRUb1NpemVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+ID0ge1xuICAgICAgcmVzcG9uc2l2ZTogJzEwMHZ3JyxcbiAgICAgIGZpbGw6ICcxMDB2dycsXG4gICAgfVxuICAgIGNvbnN0IGxheW91dFN0eWxlID0gbGF5b3V0VG9TdHlsZVtsYXlvdXRdXG4gICAgaWYgKGxheW91dFN0eWxlKSB7XG4gICAgICBzdHlsZSA9IHsgLi4uc3R5bGUsIC4uLmxheW91dFN0eWxlIH1cbiAgICB9XG4gICAgY29uc3QgbGF5b3V0U2l6ZXMgPSBsYXlvdXRUb1NpemVzW2xheW91dF1cbiAgICBpZiAobGF5b3V0U2l6ZXMgJiYgIXNpemVzKSB7XG4gICAgICBzaXplcyA9IGxheW91dFNpemVzXG4gICAgfVxuICB9XG5cbiAgbGV0IHN0YXRpY1NyYyA9ICcnXG4gIGxldCB3aWR0aEludCA9IGdldEludCh3aWR0aClcbiAgbGV0IGhlaWdodEludCA9IGdldEludChoZWlnaHQpXG4gIGxldCBibHVyV2lkdGg6IG51bWJlciB8IHVuZGVmaW5lZFxuICBsZXQgYmx1ckhlaWdodDogbnVtYmVyIHwgdW5kZWZpbmVkXG4gIGlmIChpc1N0YXRpY0ltcG9ydChzcmMpKSB7XG4gICAgY29uc3Qgc3RhdGljSW1hZ2VEYXRhID0gaXNTdGF0aWNSZXF1aXJlKHNyYykgPyBzcmMuZGVmYXVsdCA6IHNyY1xuXG4gICAgaWYgKCFzdGF0aWNJbWFnZURhdGEuc3JjKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBbiBvYmplY3Qgc2hvdWxkIG9ubHkgYmUgcGFzc2VkIHRvIHRoZSBpbWFnZSBjb21wb25lbnQgc3JjIHBhcmFtZXRlciBpZiBpdCBjb21lcyBmcm9tIGEgc3RhdGljIGltYWdlIGltcG9ydC4gSXQgbXVzdCBpbmNsdWRlIHNyYy4gUmVjZWl2ZWQgJHtKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICBzdGF0aWNJbWFnZURhdGFcbiAgICAgICAgKX1gXG4gICAgICApXG4gICAgfVxuICAgIGlmICghc3RhdGljSW1hZ2VEYXRhLmhlaWdodCB8fCAhc3RhdGljSW1hZ2VEYXRhLndpZHRoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBbiBvYmplY3Qgc2hvdWxkIG9ubHkgYmUgcGFzc2VkIHRvIHRoZSBpbWFnZSBjb21wb25lbnQgc3JjIHBhcmFtZXRlciBpZiBpdCBjb21lcyBmcm9tIGEgc3RhdGljIGltYWdlIGltcG9ydC4gSXQgbXVzdCBpbmNsdWRlIGhlaWdodCBhbmQgd2lkdGguIFJlY2VpdmVkICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgc3RhdGljSW1hZ2VEYXRhXG4gICAgICAgICl9YFxuICAgICAgKVxuICAgIH1cblxuICAgIGJsdXJXaWR0aCA9IHN0YXRpY0ltYWdlRGF0YS5ibHVyV2lkdGhcbiAgICBibHVySGVpZ2h0ID0gc3RhdGljSW1hZ2VEYXRhLmJsdXJIZWlnaHRcbiAgICBibHVyRGF0YVVSTCA9IGJsdXJEYXRhVVJMIHx8IHN0YXRpY0ltYWdlRGF0YS5ibHVyRGF0YVVSTFxuICAgIHN0YXRpY1NyYyA9IHN0YXRpY0ltYWdlRGF0YS5zcmNcblxuICAgIGlmICghZmlsbCkge1xuICAgICAgaWYgKCF3aWR0aEludCAmJiAhaGVpZ2h0SW50KSB7XG4gICAgICAgIHdpZHRoSW50ID0gc3RhdGljSW1hZ2VEYXRhLndpZHRoXG4gICAgICAgIGhlaWdodEludCA9IHN0YXRpY0ltYWdlRGF0YS5oZWlnaHRcbiAgICAgIH0gZWxzZSBpZiAod2lkdGhJbnQgJiYgIWhlaWdodEludCkge1xuICAgICAgICBjb25zdCByYXRpbyA9IHdpZHRoSW50IC8gc3RhdGljSW1hZ2VEYXRhLndpZHRoXG4gICAgICAgIGhlaWdodEludCA9IE1hdGgucm91bmQoc3RhdGljSW1hZ2VEYXRhLmhlaWdodCAqIHJhdGlvKVxuICAgICAgfSBlbHNlIGlmICghd2lkdGhJbnQgJiYgaGVpZ2h0SW50KSB7XG4gICAgICAgIGNvbnN0IHJhdGlvID0gaGVpZ2h0SW50IC8gc3RhdGljSW1hZ2VEYXRhLmhlaWdodFxuICAgICAgICB3aWR0aEludCA9IE1hdGgucm91bmQoc3RhdGljSW1hZ2VEYXRhLndpZHRoICogcmF0aW8pXG4gICAgICB9XG4gICAgfVxuICB9XG4gIHNyYyA9IHR5cGVvZiBzcmMgPT09ICdzdHJpbmcnID8gc3JjIDogc3RhdGljU3JjXG5cbiAgbGV0IGlzTGF6eSA9XG4gICAgIXByaW9yaXR5ICYmIChsb2FkaW5nID09PSAnbGF6eScgfHwgdHlwZW9mIGxvYWRpbmcgPT09ICd1bmRlZmluZWQnKVxuICBpZiAoIXNyYyB8fCBzcmMuc3RhcnRzV2l0aCgnZGF0YTonKSB8fCBzcmMuc3RhcnRzV2l0aCgnYmxvYjonKSkge1xuICAgIC8vIGh0dHBzOi8vZGV2ZWxvcGVyLm1vemlsbGEub3JnL2RvY3MvV2ViL0hUVFAvQmFzaWNzX29mX0hUVFAvRGF0YV9VUklzXG4gICAgdW5vcHRpbWl6ZWQgPSB0cnVlXG4gICAgaXNMYXp5ID0gZmFsc2VcbiAgfVxuICBpZiAoY29uZmlnLnVub3B0aW1pemVkKSB7XG4gICAgdW5vcHRpbWl6ZWQgPSB0cnVlXG4gIH1cbiAgaWYgKFxuICAgIGlzRGVmYXVsdExvYWRlciAmJlxuICAgICFjb25maWcuZGFuZ2Vyb3VzbHlBbGxvd1NWRyAmJlxuICAgIHNyYy5zcGxpdCgnPycsIDEpWzBdLmVuZHNXaXRoKCcuc3ZnJylcbiAgKSB7XG4gICAgLy8gU3BlY2lhbCBjYXNlIHRvIG1ha2Ugc3ZnIHNlcnZlIGFzLWlzIHRvIGF2b2lkIHByb3h5aW5nXG4gICAgLy8gdGhyb3VnaCB0aGUgYnVpbHQtaW4gSW1hZ2UgT3B0aW1pemF0aW9uIEFQSS5cbiAgICB1bm9wdGltaXplZCA9IHRydWVcbiAgfVxuXG4gIGNvbnN0IHF1YWxpdHlJbnQgPSBnZXRJbnQocXVhbGl0eSlcblxuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGlmIChjb25maWcub3V0cHV0ID09PSAnZXhwb3J0JyAmJiBpc0RlZmF1bHRMb2FkZXIgJiYgIXVub3B0aW1pemVkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbWFnZSBPcHRpbWl6YXRpb24gdXNpbmcgdGhlIGRlZmF1bHQgbG9hZGVyIGlzIG5vdCBjb21wYXRpYmxlIHdpdGggXFxgeyBvdXRwdXQ6ICdleHBvcnQnIH1cXGAuXG4gIFBvc3NpYmxlIHNvbHV0aW9uczpcbiAgICAtIFJlbW92ZSBcXGB7IG91dHB1dDogJ2V4cG9ydCcgfVxcYCBhbmQgcnVuIFwibmV4dCBzdGFydFwiIHRvIHJ1biBzZXJ2ZXIgbW9kZSBpbmNsdWRpbmcgdGhlIEltYWdlIE9wdGltaXphdGlvbiBBUEkuXG4gICAgLSBDb25maWd1cmUgXFxgeyBpbWFnZXM6IHsgdW5vcHRpbWl6ZWQ6IHRydWUgfSB9XFxgIGluIFxcYG5leHQuY29uZmlnLmpzXFxgIHRvIGRpc2FibGUgdGhlIEltYWdlIE9wdGltaXphdGlvbiBBUEkuXG4gIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvZXhwb3J0LWltYWdlLWFwaWBcbiAgICAgIClcbiAgICB9XG4gICAgaWYgKCFzcmMpIHtcbiAgICAgIC8vIFJlYWN0IGRvZXNuJ3Qgc2hvdyB0aGUgc3RhY2sgdHJhY2UgYW5kIHRoZXJlJ3NcbiAgICAgIC8vIG5vIGBzcmNgIHRvIGhlbHAgaWRlbnRpZnkgd2hpY2ggaW1hZ2UsIHNvIHdlXG4gICAgICAvLyBpbnN0ZWFkIGNvbnNvbGUuZXJyb3IocmVmKSBkdXJpbmcgbW91bnQuXG4gICAgICB1bm9wdGltaXplZCA9IHRydWVcbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKGZpbGwpIHtcbiAgICAgICAgaWYgKHdpZHRoKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEltYWdlIHdpdGggc3JjIFwiJHtzcmN9XCIgaGFzIGJvdGggXCJ3aWR0aFwiIGFuZCBcImZpbGxcIiBwcm9wZXJ0aWVzLiBPbmx5IG9uZSBzaG91bGQgYmUgdXNlZC5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGlmIChoZWlnaHQpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBoYXMgYm90aCBcImhlaWdodFwiIGFuZCBcImZpbGxcIiBwcm9wZXJ0aWVzLiBPbmx5IG9uZSBzaG91bGQgYmUgdXNlZC5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdHlsZT8ucG9zaXRpb24gJiYgc3R5bGUucG9zaXRpb24gIT09ICdhYnNvbHV0ZScpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBoYXMgYm90aCBcImZpbGxcIiBhbmQgXCJzdHlsZS5wb3NpdGlvblwiIHByb3BlcnRpZXMuIEltYWdlcyB3aXRoIFwiZmlsbFwiIGFsd2F5cyB1c2UgcG9zaXRpb24gYWJzb2x1dGUgLSBpdCBjYW5ub3QgYmUgbW9kaWZpZWQuYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3R5bGU/LndpZHRoICYmIHN0eWxlLndpZHRoICE9PSAnMTAwJScpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBoYXMgYm90aCBcImZpbGxcIiBhbmQgXCJzdHlsZS53aWR0aFwiIHByb3BlcnRpZXMuIEltYWdlcyB3aXRoIFwiZmlsbFwiIGFsd2F5cyB1c2Ugd2lkdGggMTAwJSAtIGl0IGNhbm5vdCBiZSBtb2RpZmllZC5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdHlsZT8uaGVpZ2h0ICYmIHN0eWxlLmhlaWdodCAhPT0gJzEwMCUnKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEltYWdlIHdpdGggc3JjIFwiJHtzcmN9XCIgaGFzIGJvdGggXCJmaWxsXCIgYW5kIFwic3R5bGUuaGVpZ2h0XCIgcHJvcGVydGllcy4gSW1hZ2VzIHdpdGggXCJmaWxsXCIgYWx3YXlzIHVzZSBoZWlnaHQgMTAwJSAtIGl0IGNhbm5vdCBiZSBtb2RpZmllZC5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBpZiAodHlwZW9mIHdpZHRoSW50ID09PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGlzIG1pc3NpbmcgcmVxdWlyZWQgXCJ3aWR0aFwiIHByb3BlcnR5LmBcbiAgICAgICAgICApXG4gICAgICAgIH0gZWxzZSBpZiAoaXNOYU4od2lkdGhJbnQpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEltYWdlIHdpdGggc3JjIFwiJHtzcmN9XCIgaGFzIGludmFsaWQgXCJ3aWR0aFwiIHByb3BlcnR5LiBFeHBlY3RlZCBhIG51bWVyaWMgdmFsdWUgaW4gcGl4ZWxzIGJ1dCByZWNlaXZlZCBcIiR7d2lkdGh9XCIuYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICBpZiAodHlwZW9mIGhlaWdodEludCA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBpcyBtaXNzaW5nIHJlcXVpcmVkIFwiaGVpZ2h0XCIgcHJvcGVydHkuYFxuICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIGlmIChpc05hTihoZWlnaHRJbnQpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEltYWdlIHdpdGggc3JjIFwiJHtzcmN9XCIgaGFzIGludmFsaWQgXCJoZWlnaHRcIiBwcm9wZXJ0eS4gRXhwZWN0ZWQgYSBudW1lcmljIHZhbHVlIGluIHBpeGVscyBidXQgcmVjZWl2ZWQgXCIke2hlaWdodH1cIi5gXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb250cm9sLXJlZ2V4XG4gICAgICAgIGlmICgvXltcXHgwMC1cXHgyMF0vLnRlc3Qoc3JjKSkge1xuICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGNhbm5vdCBzdGFydCB3aXRoIGEgc3BhY2Ugb3IgY29udHJvbCBjaGFyYWN0ZXIuIFVzZSBzcmMudHJpbVN0YXJ0KCkgdG8gcmVtb3ZlIGl0IG9yIGVuY29kZVVSSUNvbXBvbmVudChzcmMpIHRvIGtlZXAgaXQuYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tY29udHJvbC1yZWdleFxuICAgICAgICBpZiAoL1tcXHgwMC1cXHgyMF0kLy50ZXN0KHNyYykpIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBjYW5ub3QgZW5kIHdpdGggYSBzcGFjZSBvciBjb250cm9sIGNoYXJhY3Rlci4gVXNlIHNyYy50cmltRW5kKCkgdG8gcmVtb3ZlIGl0IG9yIGVuY29kZVVSSUNvbXBvbmVudChzcmMpIHRvIGtlZXAgaXQuYFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAoIVZBTElEX0xPQURJTkdfVkFMVUVTLmluY2x1ZGVzKGxvYWRpbmcpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGhhcyBpbnZhbGlkIFwibG9hZGluZ1wiIHByb3BlcnR5LiBQcm92aWRlZCBcIiR7bG9hZGluZ31cIiBzaG91bGQgYmUgb25lIG9mICR7VkFMSURfTE9BRElOR19WQUxVRVMubWFwKFxuICAgICAgICAgIFN0cmluZ1xuICAgICAgICApLmpvaW4oJywnKX0uYFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAocHJpb3JpdHkgJiYgbG9hZGluZyA9PT0gJ2xhenknKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGhhcyBib3RoIFwicHJpb3JpdHlcIiBhbmQgXCJsb2FkaW5nPSdsYXp5J1wiIHByb3BlcnRpZXMuIE9ubHkgb25lIHNob3VsZCBiZSB1c2VkLmBcbiAgICAgIClcbiAgICB9XG4gICAgaWYgKFxuICAgICAgcGxhY2Vob2xkZXIgIT09ICdlbXB0eScgJiZcbiAgICAgIHBsYWNlaG9sZGVyICE9PSAnYmx1cicgJiZcbiAgICAgICFwbGFjZWhvbGRlci5zdGFydHNXaXRoKCdkYXRhOmltYWdlLycpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGhhcyBpbnZhbGlkIFwicGxhY2Vob2xkZXJcIiBwcm9wZXJ0eSBcIiR7cGxhY2Vob2xkZXJ9XCIuYFxuICAgICAgKVxuICAgIH1cbiAgICBpZiAocGxhY2Vob2xkZXIgIT09ICdlbXB0eScpIHtcbiAgICAgIGlmICh3aWR0aEludCAmJiBoZWlnaHRJbnQgJiYgd2lkdGhJbnQgKiBoZWlnaHRJbnQgPCAxNjAwKSB7XG4gICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGlzIHNtYWxsZXIgdGhhbiA0MHg0MC4gQ29uc2lkZXIgcmVtb3ZpbmcgdGhlIFwicGxhY2Vob2xkZXJcIiBwcm9wZXJ0eSB0byBpbXByb3ZlIHBlcmZvcm1hbmNlLmBcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cbiAgICBpZiAocGxhY2Vob2xkZXIgPT09ICdibHVyJyAmJiAhYmx1ckRhdGFVUkwpIHtcbiAgICAgIGNvbnN0IFZBTElEX0JMVVJfRVhUID0gWydqcGVnJywgJ3BuZycsICd3ZWJwJywgJ2F2aWYnXSAvLyBzaG91bGQgbWF0Y2ggbmV4dC1pbWFnZS1sb2FkZXJcblxuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBoYXMgXCJwbGFjZWhvbGRlcj0nYmx1cidcIiBwcm9wZXJ0eSBidXQgaXMgbWlzc2luZyB0aGUgXCJibHVyRGF0YVVSTFwiIHByb3BlcnR5LlxuICAgICAgICBQb3NzaWJsZSBzb2x1dGlvbnM6XG4gICAgICAgICAgLSBBZGQgYSBcImJsdXJEYXRhVVJMXCIgcHJvcGVydHksIHRoZSBjb250ZW50cyBzaG91bGQgYmUgYSBzbWFsbCBEYXRhIFVSTCB0byByZXByZXNlbnQgdGhlIGltYWdlXG4gICAgICAgICAgLSBDaGFuZ2UgdGhlIFwic3JjXCIgcHJvcGVydHkgdG8gYSBzdGF0aWMgaW1wb3J0IHdpdGggb25lIG9mIHRoZSBzdXBwb3J0ZWQgZmlsZSB0eXBlczogJHtWQUxJRF9CTFVSX0VYVC5qb2luKFxuICAgICAgICAgICAgJywnXG4gICAgICAgICAgKX0gKGFuaW1hdGVkIGltYWdlcyBub3Qgc3VwcG9ydGVkKVxuICAgICAgICAgIC0gUmVtb3ZlIHRoZSBcInBsYWNlaG9sZGVyXCIgcHJvcGVydHksIGVmZmVjdGl2ZWx5IG5vIGJsdXIgZWZmZWN0XG4gICAgICAgIFJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvcGxhY2Vob2xkZXItYmx1ci1kYXRhLXVybGBcbiAgICAgIClcbiAgICB9XG4gICAgaWYgKCdyZWYnIGluIHJlc3QpIHtcbiAgICAgIHdhcm5PbmNlKFxuICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBpcyB1c2luZyB1bnN1cHBvcnRlZCBcInJlZlwiIHByb3BlcnR5LiBDb25zaWRlciB1c2luZyB0aGUgXCJvbkxvYWRcIiBwcm9wZXJ0eSBpbnN0ZWFkLmBcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAoIXVub3B0aW1pemVkICYmICFpc0RlZmF1bHRMb2FkZXIpIHtcbiAgICAgIGNvbnN0IHVybFN0ciA9IGxvYWRlcih7XG4gICAgICAgIGNvbmZpZyxcbiAgICAgICAgc3JjLFxuICAgICAgICB3aWR0aDogd2lkdGhJbnQgfHwgNDAwLFxuICAgICAgICBxdWFsaXR5OiBxdWFsaXR5SW50IHx8IDc1LFxuICAgICAgfSlcbiAgICAgIGxldCB1cmw6IFVSTCB8IHVuZGVmaW5lZFxuICAgICAgdHJ5IHtcbiAgICAgICAgdXJsID0gbmV3IFVSTCh1cmxTdHIpXG4gICAgICB9IGNhdGNoIChlcnIpIHt9XG4gICAgICBpZiAodXJsU3RyID09PSBzcmMgfHwgKHVybCAmJiB1cmwucGF0aG5hbWUgPT09IHNyYyAmJiAhdXJsLnNlYXJjaCkpIHtcbiAgICAgICAgd2Fybk9uY2UoXG4gICAgICAgICAgYEltYWdlIHdpdGggc3JjIFwiJHtzcmN9XCIgaGFzIGEgXCJsb2FkZXJcIiBwcm9wZXJ0eSB0aGF0IGRvZXMgbm90IGltcGxlbWVudCB3aWR0aC4gUGxlYXNlIGltcGxlbWVudCBpdCBvciB1c2UgdGhlIFwidW5vcHRpbWl6ZWRcIiBwcm9wZXJ0eSBpbnN0ZWFkLmAgK1xuICAgICAgICAgICAgYFxcblJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1pbWFnZS1taXNzaW5nLWxvYWRlci13aWR0aGBcbiAgICAgICAgKVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChvbkxvYWRpbmdDb21wbGV0ZSkge1xuICAgICAgd2Fybk9uY2UoXG4gICAgICAgIGBJbWFnZSB3aXRoIHNyYyBcIiR7c3JjfVwiIGlzIHVzaW5nIGRlcHJlY2F0ZWQgXCJvbkxvYWRpbmdDb21wbGV0ZVwiIHByb3BlcnR5LiBQbGVhc2UgdXNlIHRoZSBcIm9uTG9hZFwiIHByb3BlcnR5IGluc3RlYWQuYFxuICAgICAgKVxuICAgIH1cblxuICAgIGZvciAoY29uc3QgW2xlZ2FjeUtleSwgbGVnYWN5VmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHtcbiAgICAgIGxheW91dCxcbiAgICAgIG9iamVjdEZpdCxcbiAgICAgIG9iamVjdFBvc2l0aW9uLFxuICAgICAgbGF6eUJvdW5kYXJ5LFxuICAgICAgbGF6eVJvb3QsXG4gICAgfSkpIHtcbiAgICAgIGlmIChsZWdhY3lWYWx1ZSkge1xuICAgICAgICB3YXJuT25jZShcbiAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke3NyY31cIiBoYXMgbGVnYWN5IHByb3AgXCIke2xlZ2FjeUtleX1cIi4gRGlkIHlvdSBmb3JnZXQgdG8gcnVuIHRoZSBjb2RlbW9kP2AgK1xuICAgICAgICAgICAgYFxcblJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbmV4dC1pbWFnZS11cGdyYWRlLXRvLTEzYFxuICAgICAgICApXG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKFxuICAgICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgJiZcbiAgICAgICFwZXJmT2JzZXJ2ZXIgJiZcbiAgICAgIHdpbmRvdy5QZXJmb3JtYW5jZU9ic2VydmVyXG4gICAgKSB7XG4gICAgICBwZXJmT2JzZXJ2ZXIgPSBuZXcgUGVyZm9ybWFuY2VPYnNlcnZlcigoZW50cnlMaXN0KSA9PiB7XG4gICAgICAgIGZvciAoY29uc3QgZW50cnkgb2YgZW50cnlMaXN0LmdldEVudHJpZXMoKSkge1xuICAgICAgICAgIC8vIEB0cy1pZ25vcmUgLSBtaXNzaW5nIFwiTGFyZ2VzdENvbnRlbnRmdWxQYWludFwiIGNsYXNzIHdpdGggXCJlbGVtZW50XCIgcHJvcFxuICAgICAgICAgIGNvbnN0IGltZ1NyYyA9IGVudHJ5Py5lbGVtZW50Py5zcmMgfHwgJydcbiAgICAgICAgICBjb25zdCBsY3BJbWFnZSA9IGFsbEltZ3MuZ2V0KGltZ1NyYylcbiAgICAgICAgICBpZiAoXG4gICAgICAgICAgICBsY3BJbWFnZSAmJlxuICAgICAgICAgICAgIWxjcEltYWdlLnByaW9yaXR5ICYmXG4gICAgICAgICAgICBsY3BJbWFnZS5wbGFjZWhvbGRlciA9PT0gJ2VtcHR5JyAmJlxuICAgICAgICAgICAgIWxjcEltYWdlLnNyYy5zdGFydHNXaXRoKCdkYXRhOicpICYmXG4gICAgICAgICAgICAhbGNwSW1hZ2Uuc3JjLnN0YXJ0c1dpdGgoJ2Jsb2I6JylcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIC8vIGh0dHBzOi8vd2ViLmRldi9sY3AvI21lYXN1cmUtbGNwLWluLWphdmFzY3JpcHRcbiAgICAgICAgICAgIHdhcm5PbmNlKFxuICAgICAgICAgICAgICBgSW1hZ2Ugd2l0aCBzcmMgXCIke2xjcEltYWdlLnNyY31cIiB3YXMgZGV0ZWN0ZWQgYXMgdGhlIExhcmdlc3QgQ29udGVudGZ1bCBQYWludCAoTENQKS4gUGxlYXNlIGFkZCB0aGUgXCJwcmlvcml0eVwiIHByb3BlcnR5IGlmIHRoaXMgaW1hZ2UgaXMgYWJvdmUgdGhlIGZvbGQuYCArXG4gICAgICAgICAgICAgICAgYFxcblJlYWQgbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2ltYWdlI3ByaW9yaXR5YFxuICAgICAgICAgICAgKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHRyeSB7XG4gICAgICAgIHBlcmZPYnNlcnZlci5vYnNlcnZlKHtcbiAgICAgICAgICB0eXBlOiAnbGFyZ2VzdC1jb250ZW50ZnVsLXBhaW50JyxcbiAgICAgICAgICBidWZmZXJlZDogdHJ1ZSxcbiAgICAgICAgfSlcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICAvLyBMb2cgZXJyb3IgYnV0IGRvbid0IGNyYXNoIHRoZSBhcHBcbiAgICAgICAgY29uc29sZS5lcnJvcihlcnIpXG4gICAgICB9XG4gICAgfVxuICB9XG4gIGNvbnN0IGltZ1N0eWxlID0gT2JqZWN0LmFzc2lnbihcbiAgICBmaWxsXG4gICAgICA/IHtcbiAgICAgICAgICBwb3NpdGlvbjogJ2Fic29sdXRlJyxcbiAgICAgICAgICBoZWlnaHQ6ICcxMDAlJyxcbiAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgIGxlZnQ6IDAsXG4gICAgICAgICAgdG9wOiAwLFxuICAgICAgICAgIHJpZ2h0OiAwLFxuICAgICAgICAgIGJvdHRvbTogMCxcbiAgICAgICAgICBvYmplY3RGaXQsXG4gICAgICAgICAgb2JqZWN0UG9zaXRpb24sXG4gICAgICAgIH1cbiAgICAgIDoge30sXG4gICAgc2hvd0FsdFRleHQgPyB7fSA6IHsgY29sb3I6ICd0cmFuc3BhcmVudCcgfSxcbiAgICBzdHlsZVxuICApXG5cbiAgY29uc3QgYmFja2dyb3VuZEltYWdlID1cbiAgICAhYmx1ckNvbXBsZXRlICYmIHBsYWNlaG9sZGVyICE9PSAnZW1wdHknXG4gICAgICA/IHBsYWNlaG9sZGVyID09PSAnYmx1cidcbiAgICAgICAgPyBgdXJsKFwiZGF0YTppbWFnZS9zdmcreG1sO2NoYXJzZXQ9dXRmLTgsJHtnZXRJbWFnZUJsdXJTdmcoe1xuICAgICAgICAgICAgd2lkdGhJbnQsXG4gICAgICAgICAgICBoZWlnaHRJbnQsXG4gICAgICAgICAgICBibHVyV2lkdGgsXG4gICAgICAgICAgICBibHVySGVpZ2h0LFxuICAgICAgICAgICAgYmx1ckRhdGFVUkw6IGJsdXJEYXRhVVJMIHx8ICcnLCAvLyBhc3N1bWUgbm90IHVuZGVmaW5lZFxuICAgICAgICAgICAgb2JqZWN0Rml0OiBpbWdTdHlsZS5vYmplY3RGaXQsXG4gICAgICAgICAgfSl9XCIpYFxuICAgICAgICA6IGB1cmwoXCIke3BsYWNlaG9sZGVyfVwiKWAgLy8gYXNzdW1lIGBkYXRhOmltYWdlL2BcbiAgICAgIDogbnVsbFxuXG4gIGNvbnN0IGJhY2tncm91bmRTaXplID0gIUlOVkFMSURfQkFDS0dST1VORF9TSVpFX1ZBTFVFUy5pbmNsdWRlcyhcbiAgICBpbWdTdHlsZS5vYmplY3RGaXRcbiAgKVxuICAgID8gaW1nU3R5bGUub2JqZWN0Rml0XG4gICAgOiBpbWdTdHlsZS5vYmplY3RGaXQgPT09ICdmaWxsJ1xuICAgICAgPyAnMTAwJSAxMDAlJyAvLyB0aGUgYmFja2dyb3VuZC1zaXplIGVxdWl2YWxlbnQgb2YgYGZpbGxgXG4gICAgICA6ICdjb3ZlcidcblxuICBsZXQgcGxhY2Vob2xkZXJTdHlsZTogUGxhY2Vob2xkZXJTdHlsZSA9IGJhY2tncm91bmRJbWFnZVxuICAgID8ge1xuICAgICAgICBiYWNrZ3JvdW5kU2l6ZSxcbiAgICAgICAgYmFja2dyb3VuZFBvc2l0aW9uOiBpbWdTdHlsZS5vYmplY3RQb3NpdGlvbiB8fCAnNTAlIDUwJScsXG4gICAgICAgIGJhY2tncm91bmRSZXBlYXQ6ICduby1yZXBlYXQnLFxuICAgICAgICBiYWNrZ3JvdW5kSW1hZ2UsXG4gICAgICB9XG4gICAgOiB7fVxuXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ2RldmVsb3BtZW50Jykge1xuICAgIGlmIChcbiAgICAgIHBsYWNlaG9sZGVyU3R5bGUuYmFja2dyb3VuZEltYWdlICYmXG4gICAgICBwbGFjZWhvbGRlciA9PT0gJ2JsdXInICYmXG4gICAgICBibHVyRGF0YVVSTD8uc3RhcnRzV2l0aCgnLycpXG4gICAgKSB7XG4gICAgICAvLyBEdXJpbmcgYG5leHQgZGV2YCwgd2UgZG9uJ3Qgd2FudCB0byBnZW5lcmF0ZSBibHVyIHBsYWNlaG9sZGVycyB3aXRoIHdlYnBhY2tcbiAgICAgIC8vIGJlY2F1c2UgaXQgY2FuIGRlbGF5IHN0YXJ0aW5nIHRoZSBkZXYgc2VydmVyLiBJbnN0ZWFkLCBgbmV4dC1pbWFnZS1sb2FkZXIuanNgXG4gICAgICAvLyB3aWxsIGlubGluZSBhIHNwZWNpYWwgdXJsIHRvIGxhemlseSBnZW5lcmF0ZSB0aGUgYmx1ciBwbGFjZWhvbGRlciBhdCByZXF1ZXN0IHRpbWUuXG4gICAgICBwbGFjZWhvbGRlclN0eWxlLmJhY2tncm91bmRJbWFnZSA9IGB1cmwoXCIke2JsdXJEYXRhVVJMfVwiKWBcbiAgICB9XG4gIH1cblxuICBjb25zdCBpbWdBdHRyaWJ1dGVzID0gZ2VuZXJhdGVJbWdBdHRycyh7XG4gICAgY29uZmlnLFxuICAgIHNyYyxcbiAgICB1bm9wdGltaXplZCxcbiAgICB3aWR0aDogd2lkdGhJbnQsXG4gICAgcXVhbGl0eTogcXVhbGl0eUludCxcbiAgICBzaXplcyxcbiAgICBsb2FkZXIsXG4gIH0pXG5cbiAgaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIGxldCBmdWxsVXJsOiBVUkxcbiAgICAgIHRyeSB7XG4gICAgICAgIGZ1bGxVcmwgPSBuZXcgVVJMKGltZ0F0dHJpYnV0ZXMuc3JjKVxuICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICBmdWxsVXJsID0gbmV3IFVSTChpbWdBdHRyaWJ1dGVzLnNyYywgd2luZG93LmxvY2F0aW9uLmhyZWYpXG4gICAgICB9XG4gICAgICBhbGxJbWdzLnNldChmdWxsVXJsLmhyZWYsIHsgc3JjLCBwcmlvcml0eSwgcGxhY2Vob2xkZXIgfSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBwcm9wczogSW1nUHJvcHMgPSB7XG4gICAgLi4ucmVzdCxcbiAgICBsb2FkaW5nOiBpc0xhenkgPyAnbGF6eScgOiBsb2FkaW5nLFxuICAgIGZldGNoUHJpb3JpdHksXG4gICAgd2lkdGg6IHdpZHRoSW50LFxuICAgIGhlaWdodDogaGVpZ2h0SW50LFxuICAgIGRlY29kaW5nLFxuICAgIGNsYXNzTmFtZSxcbiAgICBzdHlsZTogeyAuLi5pbWdTdHlsZSwgLi4ucGxhY2Vob2xkZXJTdHlsZSB9LFxuICAgIHNpemVzOiBpbWdBdHRyaWJ1dGVzLnNpemVzLFxuICAgIHNyY1NldDogaW1nQXR0cmlidXRlcy5zcmNTZXQsXG4gICAgc3JjOiBvdmVycmlkZVNyYyB8fCBpbWdBdHRyaWJ1dGVzLnNyYyxcbiAgfVxuICBjb25zdCBtZXRhID0geyB1bm9wdGltaXplZCwgcHJpb3JpdHksIHBsYWNlaG9sZGVyLCBmaWxsIH1cbiAgcmV0dXJuIHsgcHJvcHMsIG1ldGEgfVxufVxuIl0sIm5hbWVzIjpbImdldEltZ1Byb3BzIiwiVkFMSURfTE9BRElOR19WQUxVRVMiLCJ1bmRlZmluZWQiLCJJTlZBTElEX0JBQ0tHUk9VTkRfU0laRV9WQUxVRVMiLCJpc1N0YXRpY1JlcXVpcmUiLCJzcmMiLCJkZWZhdWx0IiwiaXNTdGF0aWNJbWFnZURhdGEiLCJpc1N0YXRpY0ltcG9ydCIsImFsbEltZ3MiLCJNYXAiLCJwZXJmT2JzZXJ2ZXIiLCJnZXRJbnQiLCJ4IiwiTnVtYmVyIiwiaXNGaW5pdGUiLCJOYU4iLCJ0ZXN0IiwicGFyc2VJbnQiLCJnZXRXaWR0aHMiLCJ3aWR0aCIsInNpemVzIiwiZGV2aWNlU2l6ZXMiLCJhbGxTaXplcyIsInZpZXdwb3J0V2lkdGhSZSIsInBlcmNlbnRTaXplcyIsIm1hdGNoIiwiZXhlYyIsInB1c2giLCJsZW5ndGgiLCJzbWFsbGVzdFJhdGlvIiwiTWF0aCIsIm1pbiIsIndpZHRocyIsImZpbHRlciIsInMiLCJraW5kIiwiU2V0IiwibWFwIiwidyIsImZpbmQiLCJwIiwiZ2VuZXJhdGVJbWdBdHRycyIsImNvbmZpZyIsInVub3B0aW1pemVkIiwicXVhbGl0eSIsImxvYWRlciIsInNyY1NldCIsImxhc3QiLCJpIiwiam9pbiIsIl9zdGF0ZSIsInByaW9yaXR5IiwibG9hZGluZyIsImNsYXNzTmFtZSIsImhlaWdodCIsImZpbGwiLCJzdHlsZSIsIm92ZXJyaWRlU3JjIiwib25Mb2FkIiwib25Mb2FkaW5nQ29tcGxldGUiLCJwbGFjZWhvbGRlciIsImJsdXJEYXRhVVJMIiwiZmV0Y2hQcmlvcml0eSIsImRlY29kaW5nIiwibGF5b3V0Iiwib2JqZWN0Rml0Iiwib2JqZWN0UG9zaXRpb24iLCJsYXp5Qm91bmRhcnkiLCJsYXp5Um9vdCIsInJlc3QiLCJpbWdDb25mIiwic2hvd0FsdFRleHQiLCJibHVyQ29tcGxldGUiLCJkZWZhdWx0TG9hZGVyIiwiYyIsImltYWdlQ29uZmlnRGVmYXVsdCIsImltYWdlU2l6ZXMiLCJzb3J0IiwiYSIsImIiLCJxdWFsaXRpZXMiLCJFcnJvciIsImlzRGVmYXVsdExvYWRlciIsImN1c3RvbUltYWdlTG9hZGVyIiwib2JqIiwiXyIsIm9wdHMiLCJsYXlvdXRUb1N0eWxlIiwiaW50cmluc2ljIiwibWF4V2lkdGgiLCJyZXNwb25zaXZlIiwibGF5b3V0VG9TaXplcyIsImxheW91dFN0eWxlIiwibGF5b3V0U2l6ZXMiLCJzdGF0aWNTcmMiLCJ3aWR0aEludCIsImhlaWdodEludCIsImJsdXJXaWR0aCIsImJsdXJIZWlnaHQiLCJzdGF0aWNJbWFnZURhdGEiLCJKU09OIiwic3RyaW5naWZ5IiwicmF0aW8iLCJyb3VuZCIsImlzTGF6eSIsInN0YXJ0c1dpdGgiLCJkYW5nZXJvdXNseUFsbG93U1ZHIiwic3BsaXQiLCJlbmRzV2l0aCIsInF1YWxpdHlJbnQiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJvdXRwdXQiLCJwb3NpdGlvbiIsImlzTmFOIiwiaW5jbHVkZXMiLCJTdHJpbmciLCJ3YXJuT25jZSIsIlZBTElEX0JMVVJfRVhUIiwidXJsU3RyIiwidXJsIiwiVVJMIiwiZXJyIiwicGF0aG5hbWUiLCJzZWFyY2giLCJsZWdhY3lLZXkiLCJsZWdhY3lWYWx1ZSIsIk9iamVjdCIsImVudHJpZXMiLCJ3aW5kb3ciLCJQZXJmb3JtYW5jZU9ic2VydmVyIiwiZW50cnlMaXN0IiwiZW50cnkiLCJnZXRFbnRyaWVzIiwiaW1nU3JjIiwiZWxlbWVudCIsImxjcEltYWdlIiwiZ2V0Iiwib2JzZXJ2ZSIsInR5cGUiLCJidWZmZXJlZCIsImNvbnNvbGUiLCJlcnJvciIsImltZ1N0eWxlIiwiYXNzaWduIiwibGVmdCIsInRvcCIsInJpZ2h0IiwiYm90dG9tIiwiY29sb3IiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJnZXRJbWFnZUJsdXJTdmciLCJiYWNrZ3JvdW5kU2l6ZSIsInBsYWNlaG9sZGVyU3R5bGUiLCJiYWNrZ3JvdW5kUG9zaXRpb24iLCJiYWNrZ3JvdW5kUmVwZWF0IiwiaW1nQXR0cmlidXRlcyIsImZ1bGxVcmwiLCJlIiwibG9jYXRpb24iLCJocmVmIiwic2V0IiwicHJvcHMiLCJtZXRhIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/get-img-props.js\n");
+
+/***/ }),
+
/***/ "(ssr)/./node_modules/next/dist/shared/lib/hash.js":
/*!***************************************************!*\
!*** ./node_modules/next/dist/shared/lib/hash.js ***!
@@ -3633,6 +3908,50 @@ eval("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProper
/***/ }),
+/***/ "(ssr)/./node_modules/next/dist/shared/lib/image-blur-svg.js":
+/*!*************************************************************!*\
+ !*** ./node_modules/next/dist/shared/lib/image-blur-svg.js ***!
+ \*************************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("/**\n * A shared function, used on both client and server, to generate a SVG blur placeholder.\n */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getImageBlurSvg\", ({\n enumerable: true,\n get: function() {\n return getImageBlurSvg;\n }\n}));\nfunction getImageBlurSvg(param) {\n let { widthInt, heightInt, blurWidth, blurHeight, blurDataURL, objectFit } = param;\n const std = 20;\n const svgWidth = blurWidth ? blurWidth * 40 : widthInt;\n const svgHeight = blurHeight ? blurHeight * 40 : heightInt;\n const viewBox = svgWidth && svgHeight ? \"viewBox='0 0 \" + svgWidth + \" \" + svgHeight + \"'\" : '';\n const preserveAspectRatio = viewBox ? 'none' : objectFit === 'contain' ? 'xMidYMid' : objectFit === 'cover' ? 'xMidYMid slice' : 'none';\n return \"%3Csvg xmlns='http://www.w3.org/2000/svg' \" + viewBox + \"%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='\" + std + \"'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='\" + std + \"'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='\" + preserveAspectRatio + \"' style='filter: url(%23b);' href='\" + blurDataURL + \"'/%3E%3C/svg%3E\";\n} //# sourceMappingURL=image-blur-svg.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtYmx1ci1zdmcuanMiLCJtYXBwaW5ncyI6IkFBQUE7O0NBRUM7Ozs7bURBQ2VBOzs7ZUFBQUE7OztBQUFULFNBQVNBLGdCQUFnQixLQWMvQjtJQWQrQixNQUM5QkMsUUFBUSxFQUNSQyxTQUFTLEVBQ1RDLFNBQVMsRUFDVEMsVUFBVSxFQUNWQyxXQUFXLEVBQ1hDLFNBQVMsRUFRVixHQWQrQjtJQWU5QixNQUFNQyxNQUFNO0lBQ1osTUFBTUMsV0FBV0wsWUFBWUEsWUFBWSxLQUFLRjtJQUM5QyxNQUFNUSxZQUFZTCxhQUFhQSxhQUFhLEtBQUtGO0lBRWpELE1BQU1RLFVBQ0pGLFlBQVlDLFlBQWEsa0JBQWVELFdBQVMsTUFBR0MsWUFBVSxNQUFLO0lBQ3JFLE1BQU1FLHNCQUFzQkQsVUFDeEIsU0FDQUosY0FBYyxZQUNaLGFBQ0FBLGNBQWMsVUFDWixtQkFDQTtJQUVSLE9BQVEsK0NBQTRDSSxVQUFRLDhGQUEyRkgsTUFBSSxvUUFBaVFBLE1BQUksZ0dBQTZGSSxzQkFBb0Isd0NBQXFDTixjQUFZO0FBQ3BrQiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvaW1hZ2UtYmx1ci1zdmcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBBIHNoYXJlZCBmdW5jdGlvbiwgdXNlZCBvbiBib3RoIGNsaWVudCBhbmQgc2VydmVyLCB0byBnZW5lcmF0ZSBhIFNWRyBibHVyIHBsYWNlaG9sZGVyLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0SW1hZ2VCbHVyU3ZnKHtcbiAgd2lkdGhJbnQsXG4gIGhlaWdodEludCxcbiAgYmx1cldpZHRoLFxuICBibHVySGVpZ2h0LFxuICBibHVyRGF0YVVSTCxcbiAgb2JqZWN0Rml0LFxufToge1xuICB3aWR0aEludD86IG51bWJlclxuICBoZWlnaHRJbnQ/OiBudW1iZXJcbiAgYmx1cldpZHRoPzogbnVtYmVyXG4gIGJsdXJIZWlnaHQ/OiBudW1iZXJcbiAgYmx1ckRhdGFVUkw6IHN0cmluZ1xuICBvYmplY3RGaXQ/OiBzdHJpbmdcbn0pOiBzdHJpbmcge1xuICBjb25zdCBzdGQgPSAyMFxuICBjb25zdCBzdmdXaWR0aCA9IGJsdXJXaWR0aCA/IGJsdXJXaWR0aCAqIDQwIDogd2lkdGhJbnRcbiAgY29uc3Qgc3ZnSGVpZ2h0ID0gYmx1ckhlaWdodCA/IGJsdXJIZWlnaHQgKiA0MCA6IGhlaWdodEludFxuXG4gIGNvbnN0IHZpZXdCb3ggPVxuICAgIHN2Z1dpZHRoICYmIHN2Z0hlaWdodCA/IGB2aWV3Qm94PScwIDAgJHtzdmdXaWR0aH0gJHtzdmdIZWlnaHR9J2AgOiAnJ1xuICBjb25zdCBwcmVzZXJ2ZUFzcGVjdFJhdGlvID0gdmlld0JveFxuICAgID8gJ25vbmUnXG4gICAgOiBvYmplY3RGaXQgPT09ICdjb250YWluJ1xuICAgICAgPyAneE1pZFlNaWQnXG4gICAgICA6IG9iamVjdEZpdCA9PT0gJ2NvdmVyJ1xuICAgICAgICA/ICd4TWlkWU1pZCBzbGljZSdcbiAgICAgICAgOiAnbm9uZSdcblxuICByZXR1cm4gYCUzQ3N2ZyB4bWxucz0naHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnICR7dmlld0JveH0lM0UlM0NmaWx0ZXIgaWQ9J2InIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0nc1JHQiclM0UlM0NmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249JyR7c3RkfScvJTNFJTNDZmVDb2xvck1hdHJpeCB2YWx1ZXM9JzEgMCAwIDAgMCAwIDEgMCAwIDAgMCAwIDEgMCAwIDAgMCAwIDEwMCAtMScgcmVzdWx0PSdzJy8lM0UlM0NmZUZsb29kIHg9JzAnIHk9JzAnIHdpZHRoPScxMDAlMjUnIGhlaWdodD0nMTAwJTI1Jy8lM0UlM0NmZUNvbXBvc2l0ZSBvcGVyYXRvcj0nb3V0JyBpbj0ncycvJTNFJTNDZmVDb21wb3NpdGUgaW4yPSdTb3VyY2VHcmFwaGljJy8lM0UlM0NmZUdhdXNzaWFuQmx1ciBzdGREZXZpYXRpb249JyR7c3RkfScvJTNFJTNDL2ZpbHRlciUzRSUzQ2ltYWdlIHdpZHRoPScxMDAlMjUnIGhlaWdodD0nMTAwJTI1JyB4PScwJyB5PScwJyBwcmVzZXJ2ZUFzcGVjdFJhdGlvPScke3ByZXNlcnZlQXNwZWN0UmF0aW99JyBzdHlsZT0nZmlsdGVyOiB1cmwoJTIzYik7JyBocmVmPScke2JsdXJEYXRhVVJMfScvJTNFJTNDL3N2ZyUzRWBcbn1cbiJdLCJuYW1lcyI6WyJnZXRJbWFnZUJsdXJTdmciLCJ3aWR0aEludCIsImhlaWdodEludCIsImJsdXJXaWR0aCIsImJsdXJIZWlnaHQiLCJibHVyRGF0YVVSTCIsIm9iamVjdEZpdCIsInN0ZCIsInN2Z1dpZHRoIiwic3ZnSGVpZ2h0Iiwidmlld0JveCIsInByZXNlcnZlQXNwZWN0UmF0aW8iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/image-blur-svg.js\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/shared/lib/image-config.js":
+/*!***********************************************************!*\
+ !*** ./node_modules/next/dist/shared/lib/image-config.js ***!
+ \***********************************************************/
+/***/ ((__unused_webpack_module, exports) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n VALID_LOADERS: function() {\n return VALID_LOADERS;\n },\n imageConfigDefault: function() {\n return imageConfigDefault;\n }\n});\nconst VALID_LOADERS = [\n 'default',\n 'imgix',\n 'cloudinary',\n 'akamai',\n 'custom'\n];\nconst imageConfigDefault = {\n deviceSizes: [\n 640,\n 750,\n 828,\n 1080,\n 1200,\n 1920,\n 2048,\n 3840\n ],\n imageSizes: [\n 16,\n 32,\n 48,\n 64,\n 96,\n 128,\n 256,\n 384\n ],\n path: '/_next/image',\n loader: 'default',\n loaderFile: '',\n domains: [],\n disableStaticImages: false,\n minimumCacheTTL: 60,\n formats: [\n 'image/webp'\n ],\n dangerouslyAllowSVG: false,\n contentSecurityPolicy: \"script-src 'none'; frame-src 'none'; sandbox;\",\n contentDispositionType: 'attachment',\n localPatterns: undefined,\n remotePatterns: [],\n qualities: undefined,\n unoptimized: false\n}; //# sourceMappingURL=image-config.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtY29uZmlnLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztJQUFhQSxhQUFhO2VBQWJBOztJQWlJQUMsa0JBQWtCO2VBQWxCQTs7O0FBaklOLE1BQU1ELGdCQUFnQjtJQUMzQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUEySE0sTUFBTUMscUJBQTBDO0lBQ3JEQyxhQUFhO1FBQUM7UUFBSztRQUFLO1FBQUs7UUFBTTtRQUFNO1FBQU07UUFBTTtLQUFLO0lBQzFEQyxZQUFZO1FBQUM7UUFBSTtRQUFJO1FBQUk7UUFBSTtRQUFJO1FBQUs7UUFBSztLQUFJO0lBQy9DQyxNQUFNO0lBQ05DLFFBQVE7SUFDUkMsWUFBWTtJQUNaQyxTQUFTLEVBQUU7SUFDWEMscUJBQXFCO0lBQ3JCQyxpQkFBaUI7SUFDakJDLFNBQVM7UUFBQztLQUFhO0lBQ3ZCQyxxQkFBcUI7SUFDckJDLHVCQUF3QjtJQUN4QkMsd0JBQXdCO0lBQ3hCQyxlQUFlQztJQUNmQyxnQkFBZ0IsRUFBRTtJQUNsQkMsV0FBV0Y7SUFDWEcsYUFBYTtBQUNmIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pbWFnZS1jb25maWcudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IFZBTElEX0xPQURFUlMgPSBbXG4gICdkZWZhdWx0JyxcbiAgJ2ltZ2l4JyxcbiAgJ2Nsb3VkaW5hcnknLFxuICAnYWthbWFpJyxcbiAgJ2N1c3RvbScsXG5dIGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIExvYWRlclZhbHVlID0gKHR5cGVvZiBWQUxJRF9MT0FERVJTKVtudW1iZXJdXG5cbmV4cG9ydCB0eXBlIEltYWdlTG9hZGVyUHJvcHMgPSB7XG4gIHNyYzogc3RyaW5nXG4gIHdpZHRoOiBudW1iZXJcbiAgcXVhbGl0eT86IG51bWJlclxufVxuXG5leHBvcnQgdHlwZSBJbWFnZUxvYWRlclByb3BzV2l0aENvbmZpZyA9IEltYWdlTG9hZGVyUHJvcHMgJiB7XG4gIGNvbmZpZzogUmVhZG9ubHk8SW1hZ2VDb25maWc+XG59XG5cbmV4cG9ydCB0eXBlIExvY2FsUGF0dGVybiA9IHtcbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIG9yIHdpbGRjYXJkLlxuICAgKiBTaW5nbGUgYCpgIG1hdGNoZXMgYSBzaW5nbGUgcGF0aCBzZWdtZW50LlxuICAgKiBEb3VibGUgYCoqYCBtYXRjaGVzIGFueSBudW1iZXIgb2YgcGF0aCBzZWdtZW50cy5cbiAgICovXG4gIHBhdGhuYW1lPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIHF1ZXJ5IHN0cmluZyBzdWNoIGFzIGA/dj0xYCBvclxuICAgKiBlbXB0eSBzdHJpbmcgbWVhbmluZyBubyBxdWVyeSBzdHJpbmcuXG4gICAqL1xuICBzZWFyY2g/OiBzdHJpbmdcbn1cblxuZXhwb3J0IHR5cGUgUmVtb3RlUGF0dGVybiA9IHtcbiAgLyoqXG4gICAqIE11c3QgYmUgYGh0dHBgIG9yIGBodHRwc2AuXG4gICAqL1xuICBwcm90b2NvbD86ICdodHRwJyB8ICdodHRwcydcblxuICAvKipcbiAgICogQ2FuIGJlIGxpdGVyYWwgb3Igd2lsZGNhcmQuXG4gICAqIFNpbmdsZSBgKmAgbWF0Y2hlcyBhIHNpbmdsZSBzdWJkb21haW4uXG4gICAqIERvdWJsZSBgKipgIG1hdGNoZXMgYW55IG51bWJlciBvZiBzdWJkb21haW5zLlxuICAgKi9cbiAgaG9zdG5hbWU6IHN0cmluZ1xuXG4gIC8qKlxuICAgKiBDYW4gYmUgbGl0ZXJhbCBwb3J0IHN1Y2ggYXMgYDgwODBgIG9yIGVtcHR5IHN0cmluZ1xuICAgKiBtZWFuaW5nIG5vIHBvcnQuXG4gICAqL1xuICBwb3J0Pzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIG9yIHdpbGRjYXJkLlxuICAgKiBTaW5nbGUgYCpgIG1hdGNoZXMgYSBzaW5nbGUgcGF0aCBzZWdtZW50LlxuICAgKiBEb3VibGUgYCoqYCBtYXRjaGVzIGFueSBudW1iZXIgb2YgcGF0aCBzZWdtZW50cy5cbiAgICovXG4gIHBhdGhuYW1lPzogc3RyaW5nXG5cbiAgLyoqXG4gICAqIENhbiBiZSBsaXRlcmFsIHF1ZXJ5IHN0cmluZyBzdWNoIGFzIGA/dj0xYCBvclxuICAgKiBlbXB0eSBzdHJpbmcgbWVhbmluZyBubyBxdWVyeSBzdHJpbmcuXG4gICAqL1xuICBzZWFyY2g/OiBzdHJpbmdcbn1cblxudHlwZSBJbWFnZUZvcm1hdCA9ICdpbWFnZS9hdmlmJyB8ICdpbWFnZS93ZWJwJ1xuXG4vKipcbiAqIEltYWdlIGNvbmZpZ3VyYXRpb25zXG4gKlxuICogQHNlZSBbSW1hZ2UgY29uZmlndXJhdGlvbiBvcHRpb25zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjY29uZmlndXJhdGlvbi1vcHRpb25zKVxuICovXG5leHBvcnQgdHlwZSBJbWFnZUNvbmZpZ0NvbXBsZXRlID0ge1xuICAvKiogQHNlZSBbRGV2aWNlIHNpemVzIGRvY3VtZW50YXRpb25dKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNkZXZpY2Utc2l6ZXMpICovXG4gIGRldmljZVNpemVzOiBudW1iZXJbXVxuXG4gIC8qKiBAc2VlIFtJbWFnZSBzaXppbmcgZG9jdW1lbnRhdGlvbl0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBwL2J1aWxkaW5nLXlvdXItYXBwbGljYXRpb24vb3B0aW1pemluZy9pbWFnZXMjaW1hZ2Utc2l6aW5nKSAqL1xuICBpbWFnZVNpemVzOiBudW1iZXJbXVxuXG4gIC8qKiBAc2VlIFtJbWFnZSBsb2FkZXJzIGNvbmZpZ3VyYXRpb25dKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9sZWdhY3kvaW1hZ2UjbG9hZGVyKSAqL1xuICBsb2FkZXI6IExvYWRlclZhbHVlXG5cbiAgLyoqIEBzZWUgW0ltYWdlIGxvYWRlciBjb25maWd1cmF0aW9uXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvbGVnYWN5L2ltYWdlI2xvYWRlci1jb25maWd1cmF0aW9uKSAqL1xuICBwYXRoOiBzdHJpbmdcblxuICAvKiogQHNlZSBbSW1hZ2UgbG9hZGVyIGNvbmZpZ3VyYXRpb25dKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNsb2FkZXItY29uZmlndXJhdGlvbikgKi9cbiAgbG9hZGVyRmlsZTogc3RyaW5nXG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBgcmVtb3RlUGF0dGVybnNgIGluc3RlYWQuXG4gICAqL1xuICBkb21haW5zOiBzdHJpbmdbXVxuXG4gIC8qKiBAc2VlIFtEaXNhYmxlIHN0YXRpYyBpbWFnZSBpbXBvcnQgY29uZmlndXJhdGlvbl0oaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvYXBpLXJlZmVyZW5jZS9uZXh0L2ltYWdlI2Rpc2FibGUtc3RhdGljLWltcG9ydHMpICovXG4gIGRpc2FibGVTdGF0aWNJbWFnZXM6IGJvb2xlYW5cblxuICAvKiogQHNlZSBbQ2FjaGUgYmVoYXZpb3JdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNjYWNoaW5nLWJlaGF2aW9yKSAqL1xuICBtaW5pbXVtQ2FjaGVUVEw6IG51bWJlclxuXG4gIC8qKiBAc2VlIFtBY2NlcHRhYmxlIGZvcm1hdHNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNhY2NlcHRhYmxlLWZvcm1hdHMpICovXG4gIGZvcm1hdHM6IEltYWdlRm9ybWF0W11cblxuICAvKiogQHNlZSBbRGFuZ2Vyb3VzbHkgQWxsb3cgU1ZHXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjZGFuZ2Vyb3VzbHktYWxsb3ctc3ZnKSAqL1xuICBkYW5nZXJvdXNseUFsbG93U1ZHOiBib29sZWFuXG5cbiAgLyoqIEBzZWUgW0NvbnRlbnQgU2VjdXJpdHkgUG9saWN5XShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjY29udGVudHNlY3VyaXR5cG9saWN5KSAqL1xuICBjb250ZW50U2VjdXJpdHlQb2xpY3k6IHN0cmluZ1xuXG4gIC8qKiBAc2VlIFtDb250ZW50IERpc3Bvc2l0aW9uIFR5cGVdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNjb250ZW50ZGlzcG9zaXRpb250eXBlKSAqL1xuICBjb250ZW50RGlzcG9zaXRpb25UeXBlOiAnaW5saW5lJyB8ICdhdHRhY2htZW50J1xuXG4gIC8qKiBAc2VlIFtSZW1vdGUgUGF0dGVybnNdKGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL2FwaS1yZWZlcmVuY2UvbmV4dC9pbWFnZSNyZW1vdGVwYXR0ZXJucykgKi9cbiAgcmVtb3RlUGF0dGVybnM6IEFycmF5PFVSTCB8IFJlbW90ZVBhdHRlcm4+XG5cbiAgLyoqIEBzZWUgW0xvY2FsIFBhdHRlcm5zXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjbG9jYWxQYXR0ZXJucykgKi9cbiAgbG9jYWxQYXR0ZXJuczogTG9jYWxQYXR0ZXJuW10gfCB1bmRlZmluZWRcblxuICAvKiogQHNlZSBbUXVhbGl0aWVzXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjcXVhbGl0aWVzKSAqL1xuICBxdWFsaXRpZXM6IG51bWJlcltdIHwgdW5kZWZpbmVkXG5cbiAgLyoqIEBzZWUgW1Vub3B0aW1pemVkXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcGktcmVmZXJlbmNlL25leHQvaW1hZ2UjdW5vcHRpbWl6ZWQpICovXG4gIHVub3B0aW1pemVkOiBib29sZWFuXG59XG5cbmV4cG9ydCB0eXBlIEltYWdlQ29uZmlnID0gUGFydGlhbDxJbWFnZUNvbmZpZ0NvbXBsZXRlPlxuXG5leHBvcnQgY29uc3QgaW1hZ2VDb25maWdEZWZhdWx0OiBJbWFnZUNvbmZpZ0NvbXBsZXRlID0ge1xuICBkZXZpY2VTaXplczogWzY0MCwgNzUwLCA4MjgsIDEwODAsIDEyMDAsIDE5MjAsIDIwNDgsIDM4NDBdLFxuICBpbWFnZVNpemVzOiBbMTYsIDMyLCA0OCwgNjQsIDk2LCAxMjgsIDI1NiwgMzg0XSxcbiAgcGF0aDogJy9fbmV4dC9pbWFnZScsXG4gIGxvYWRlcjogJ2RlZmF1bHQnLFxuICBsb2FkZXJGaWxlOiAnJyxcbiAgZG9tYWluczogW10sXG4gIGRpc2FibGVTdGF0aWNJbWFnZXM6IGZhbHNlLFxuICBtaW5pbXVtQ2FjaGVUVEw6IDYwLFxuICBmb3JtYXRzOiBbJ2ltYWdlL3dlYnAnXSxcbiAgZGFuZ2Vyb3VzbHlBbGxvd1NWRzogZmFsc2UsXG4gIGNvbnRlbnRTZWN1cml0eVBvbGljeTogYHNjcmlwdC1zcmMgJ25vbmUnOyBmcmFtZS1zcmMgJ25vbmUnOyBzYW5kYm94O2AsXG4gIGNvbnRlbnREaXNwb3NpdGlvblR5cGU6ICdhdHRhY2htZW50JyxcbiAgbG9jYWxQYXR0ZXJuczogdW5kZWZpbmVkLCAvLyBkZWZhdWx0OiBhbGxvdyBhbGwgbG9jYWwgaW1hZ2VzXG4gIHJlbW90ZVBhdHRlcm5zOiBbXSwgLy8gZGVmYXVsdDogYWxsb3cgbm8gcmVtb3RlIGltYWdlc1xuICBxdWFsaXRpZXM6IHVuZGVmaW5lZCwgLy8gZGVmYXVsdDogYWxsb3cgYWxsIHF1YWxpdGllc1xuICB1bm9wdGltaXplZDogZmFsc2UsXG59XG4iXSwibmFtZXMiOlsiVkFMSURfTE9BREVSUyIsImltYWdlQ29uZmlnRGVmYXVsdCIsImRldmljZVNpemVzIiwiaW1hZ2VTaXplcyIsInBhdGgiLCJsb2FkZXIiLCJsb2FkZXJGaWxlIiwiZG9tYWlucyIsImRpc2FibGVTdGF0aWNJbWFnZXMiLCJtaW5pbXVtQ2FjaGVUVEwiLCJmb3JtYXRzIiwiZGFuZ2Vyb3VzbHlBbGxvd1NWRyIsImNvbnRlbnRTZWN1cml0eVBvbGljeSIsImNvbnRlbnREaXNwb3NpdGlvblR5cGUiLCJsb2NhbFBhdHRlcm5zIiwidW5kZWZpbmVkIiwicmVtb3RlUGF0dGVybnMiLCJxdWFsaXRpZXMiLCJ1bm9wdGltaXplZCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/image-config.js\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/shared/lib/image-external.js":
+/*!*************************************************************!*\
+ !*** ./node_modules/next/dist/shared/lib/image-external.js ***!
+ \*************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n default: function() {\n return _default;\n },\n getImageProps: function() {\n return getImageProps;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(ssr)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _getimgprops = __webpack_require__(/*! ./get-img-props */ \"(ssr)/./node_modules/next/dist/shared/lib/get-img-props.js\");\nconst _imagecomponent = __webpack_require__(/*! ../../client/image-component */ \"(ssr)/./node_modules/next/dist/client/image-component.js\");\nconst _imageloader = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! next/dist/shared/lib/image-loader */ \"(ssr)/./node_modules/next/dist/shared/lib/image-loader.js\"));\nfunction getImageProps(imgProps) {\n const { props } = (0, _getimgprops.getImgProps)(imgProps, {\n defaultLoader: _imageloader.default,\n // This is replaced by webpack define plugin\n imgConf: {\"deviceSizes\":[640,750,828,1080,1200,1920,2048,3840],\"imageSizes\":[16,32,48,64,96,128,256,384],\"path\":\"/_next/image\",\"loader\":\"default\",\"dangerouslyAllowSVG\":false,\"unoptimized\":false,\"domains\":[],\"remotePatterns\":[{\"protocol\":\"https\",\"hostname\":\"nextcloud.biohazardvfx.com\"},{\"protocol\":\"https\",\"hostname\":\"f.io\"},{\"protocol\":\"https\",\"hostname\":\"utfs.io\"},{\"protocol\":\"https\",\"hostname\":\"placehold.co\"},{\"protocol\":\"https\",\"hostname\":\"placeholder.com\"},{\"protocol\":\"https\",\"hostname\":\"picsum.photos\"}]}\n });\n // Normally we don't care about undefined props because we pass to JSX,\n // but this exported function could be used by the end user for anything\n // so we delete undefined props to clean it up a little.\n for (const [key, value] of Object.entries(props)){\n if (value === undefined) {\n delete props[key];\n }\n }\n return {\n props\n };\n}\nconst _default = _imagecomponent.Image; //# sourceMappingURL=image-external.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtZXh0ZXJuYWwuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBaUNBLE9BQW9CO2VBQXBCOztJQWpCZ0JBLGFBQWE7ZUFBYkE7Ozs7eUNBYlk7NENBQ047a0ZBR0k7QUFTbkIsU0FBU0EsY0FBY0MsUUFBb0I7SUFDaEQsTUFBTSxFQUFFQyxLQUFLLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBQUEsRUFBWUYsVUFBVTtRQUN0Q0csZUFBQUEsYUFBQUEsT0FBYTtRQUNiLDRDQUE0QztRQUM1Q0MsU0FBU0Msd2ZBQTZCO0lBQ3hDO0lBQ0EsdUVBQXVFO0lBQ3ZFLHdFQUF3RTtJQUN4RSx3REFBd0Q7SUFDeEQsS0FBSyxNQUFNLENBQUNHLEtBQUtDLE1BQU0sSUFBSUMsT0FBT0MsT0FBTyxDQUFDVixPQUFRO1FBQ2hELElBQUlRLFVBQVVHLFdBQVc7WUFDdkIsT0FBT1gsS0FBSyxDQUFDTyxJQUEwQjtRQUN6QztJQUNGO0lBQ0EsT0FBTztRQUFFUDtJQUFNO0FBQ2pCO01BRUEsV0FBZVksZ0JBQUFBLEtBQUsiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL3NyYy9zaGFyZWQvbGliL2ltYWdlLWV4dGVybmFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEltYWdlQ29uZmlnQ29tcGxldGUsIEltYWdlTG9hZGVyUHJvcHMgfSBmcm9tICcuL2ltYWdlLWNvbmZpZydcbmltcG9ydCB0eXBlIHsgSW1hZ2VQcm9wcywgSW1hZ2VMb2FkZXIsIFN0YXRpY0ltYWdlRGF0YSB9IGZyb20gJy4vZ2V0LWltZy1wcm9wcydcblxuaW1wb3J0IHsgZ2V0SW1nUHJvcHMgfSBmcm9tICcuL2dldC1pbWctcHJvcHMnXG5pbXBvcnQgeyBJbWFnZSB9IGZyb20gJy4uLy4uL2NsaWVudC9pbWFnZS1jb21wb25lbnQnXG5cbi8vIFRoaXMgaXMgcmVwbGFjZWQgYnkgd2VicGFjayBhbGlhc1xuaW1wb3J0IGRlZmF1bHRMb2FkZXIgZnJvbSAnbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtbG9hZGVyJ1xuXG4vKipcbiAqIEZvciBtb3JlIGFkdmFuY2VkIHVzZSBjYXNlcywgeW91IGNhbiBjYWxsIGBnZXRJbWFnZVByb3BzKClgXG4gKiB0byBnZXQgdGhlIHByb3BzIHRoYXQgd291bGQgYmUgcGFzc2VkIHRvIHRoZSB1bmRlcmx5aW5nIGA8aW1nPmAgZWxlbWVudCxcbiAqIGFuZCBpbnN0ZWFkIHBhc3MgdG8gdGhlbSB0byBhbm90aGVyIGNvbXBvbmVudCwgc3R5bGUsIGNhbnZhcywgZXRjLlxuICpcbiAqIFJlYWQgbW9yZTogW05leHQuanMgZG9jczogYGdldEltYWdlUHJvcHNgXShodHRwczovL25leHRqcy5vcmcvZG9jcy9hcHAvYXBpLXJlZmVyZW5jZS9jb21wb25lbnRzL2ltYWdlI2dldGltYWdlcHJvcHMpXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRJbWFnZVByb3BzKGltZ1Byb3BzOiBJbWFnZVByb3BzKSB7XG4gIGNvbnN0IHsgcHJvcHMgfSA9IGdldEltZ1Byb3BzKGltZ1Byb3BzLCB7XG4gICAgZGVmYXVsdExvYWRlcixcbiAgICAvLyBUaGlzIGlzIHJlcGxhY2VkIGJ5IHdlYnBhY2sgZGVmaW5lIHBsdWdpblxuICAgIGltZ0NvbmY6IHByb2Nlc3MuZW52Ll9fTkVYVF9JTUFHRV9PUFRTIGFzIGFueSBhcyBJbWFnZUNvbmZpZ0NvbXBsZXRlLFxuICB9KVxuICAvLyBOb3JtYWxseSB3ZSBkb24ndCBjYXJlIGFib3V0IHVuZGVmaW5lZCBwcm9wcyBiZWNhdXNlIHdlIHBhc3MgdG8gSlNYLFxuICAvLyBidXQgdGhpcyBleHBvcnRlZCBmdW5jdGlvbiBjb3VsZCBiZSB1c2VkIGJ5IHRoZSBlbmQgdXNlciBmb3IgYW55dGhpbmdcbiAgLy8gc28gd2UgZGVsZXRlIHVuZGVmaW5lZCBwcm9wcyB0byBjbGVhbiBpdCB1cCBhIGxpdHRsZS5cbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXMocHJvcHMpKSB7XG4gICAgaWYgKHZhbHVlID09PSB1bmRlZmluZWQpIHtcbiAgICAgIGRlbGV0ZSBwcm9wc1trZXkgYXMga2V5b2YgdHlwZW9mIHByb3BzXVxuICAgIH1cbiAgfVxuICByZXR1cm4geyBwcm9wcyB9XG59XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlXG5cbmV4cG9ydCB0eXBlIHsgSW1hZ2VQcm9wcywgSW1hZ2VMb2FkZXJQcm9wcywgSW1hZ2VMb2FkZXIsIFN0YXRpY0ltYWdlRGF0YSB9XG4iXSwibmFtZXMiOlsiZ2V0SW1hZ2VQcm9wcyIsImltZ1Byb3BzIiwicHJvcHMiLCJnZXRJbWdQcm9wcyIsImRlZmF1bHRMb2FkZXIiLCJpbWdDb25mIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9JTUFHRV9PUFRTIiwia2V5IiwidmFsdWUiLCJPYmplY3QiLCJlbnRyaWVzIiwidW5kZWZpbmVkIiwiSW1hZ2UiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/image-external.js\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/shared/lib/image-loader.js":
+/*!***********************************************************!*\
+ !*** ./node_modules/next/dist/shared/lib/image-loader.js ***!
+ \***********************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst DEFAULT_Q = 75;\nfunction defaultLoader(param) {\n let { config, src, width, quality } = param;\n var _config_qualities;\n if (true) {\n const missingValues = [];\n // these should always be provided but make sure they are\n if (!src) missingValues.push('src');\n if (!width) missingValues.push('width');\n if (missingValues.length > 0) {\n throw Object.defineProperty(new Error(\"Next Image Optimization requires \" + missingValues.join(', ') + \" to be provided. Make sure you pass them as props to the `next/image` component. Received: \" + JSON.stringify({\n src,\n width,\n quality\n })), \"__NEXT_ERROR_CODE\", {\n value: \"E188\",\n enumerable: false,\n configurable: true\n });\n }\n if (src.startsWith('//')) {\n throw Object.defineProperty(new Error('Failed to parse src \"' + src + '\" on `next/image`, protocol-relative URL (//) must be changed to an absolute URL (http:// or https://)'), \"__NEXT_ERROR_CODE\", {\n value: \"E360\",\n enumerable: false,\n configurable: true\n });\n }\n if (src.startsWith('/') && config.localPatterns) {\n if (true) {\n // We use dynamic require because this should only error in development\n const { hasLocalMatch } = __webpack_require__(/*! ./match-local-pattern */ \"(ssr)/./node_modules/next/dist/shared/lib/match-local-pattern.js\");\n if (!hasLocalMatch(config.localPatterns, src)) {\n throw Object.defineProperty(new Error(\"Invalid src prop (\" + src + \") on `next/image` does not match `images.localPatterns` configured in your `next.config.js`\\n\" + \"See more info: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns\"), \"__NEXT_ERROR_CODE\", {\n value: \"E426\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n if (!src.startsWith('/') && (config.domains || config.remotePatterns)) {\n let parsedSrc;\n try {\n parsedSrc = new URL(src);\n } catch (err) {\n console.error(err);\n throw Object.defineProperty(new Error('Failed to parse src \"' + src + '\" on `next/image`, if using relative image it must start with a leading slash \"/\" or be an absolute URL (http:// or https://)'), \"__NEXT_ERROR_CODE\", {\n value: \"E63\",\n enumerable: false,\n configurable: true\n });\n }\n if (true) {\n // We use dynamic require because this should only error in development\n const { hasRemoteMatch } = __webpack_require__(/*! ./match-remote-pattern */ \"(ssr)/./node_modules/next/dist/shared/lib/match-remote-pattern.js\");\n if (!hasRemoteMatch(config.domains, config.remotePatterns, parsedSrc)) {\n throw Object.defineProperty(new Error(\"Invalid src prop (\" + src + ') on `next/image`, hostname \"' + parsedSrc.hostname + '\" is not configured under images in your `next.config.js`\\n' + \"See more info: https://nextjs.org/docs/messages/next-image-unconfigured-host\"), \"__NEXT_ERROR_CODE\", {\n value: \"E231\",\n enumerable: false,\n configurable: true\n });\n }\n }\n }\n if (quality && config.qualities && !config.qualities.includes(quality)) {\n throw Object.defineProperty(new Error(\"Invalid quality prop (\" + quality + \") on `next/image` does not match `images.qualities` configured in your `next.config.js`\\n\" + \"See more info: https://nextjs.org/docs/messages/next-image-unconfigured-qualities\"), \"__NEXT_ERROR_CODE\", {\n value: \"E623\",\n enumerable: false,\n configurable: true\n });\n }\n }\n const q = quality || ((_config_qualities = config.qualities) == null ? void 0 : _config_qualities.reduce((prev, cur)=>Math.abs(cur - DEFAULT_Q) < Math.abs(prev - DEFAULT_Q) ? cur : prev)) || DEFAULT_Q;\n return config.path + \"?url=\" + encodeURIComponent(src) + \"&w=\" + width + \"&q=\" + q + (src.startsWith('/_next/static/media/') && false ? 0 : '');\n}\n// We use this to determine if the import is the default loader\n// or a custom loader defined by the user in next.config.js\ndefaultLoader.__next_img_default = true;\nconst _default = defaultLoader; //# sourceMappingURL=image-loader.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvaW1hZ2UtbG9hZGVyLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBMkdBOzs7ZUFBQTs7O0FBekdBLE1BQU1BLFlBQVk7QUFFbEIsU0FBU0MsY0FBYyxLQUtNO0lBTE4sTUFDckJDLE1BQU0sRUFDTkMsR0FBRyxFQUNIQyxLQUFLLEVBQ0xDLE9BQU8sRUFDb0IsR0FMTjtRQXVGbkJIO0lBakZGLElBQUlJLElBQW9CLEVBQW1CO1FBQ3pDLE1BQU1HLGdCQUFnQixFQUFFO1FBRXhCLHlEQUF5RDtRQUN6RCxJQUFJLENBQUNOLEtBQUtNLGNBQWNDLElBQUksQ0FBQztRQUM3QixJQUFJLENBQUNOLE9BQU9LLGNBQWNDLElBQUk7UUFFOUIsSUFBSUQsY0FBY0UsTUFBTSxHQUFHLEdBQUc7WUFDNUIsTUFBTSxxQkFNTCxDQU5LLElBQUlDLE1BQ1Asc0NBQW1DSCxjQUFjSSxJQUFJLENBQ3BELFFBQ0EsZ0dBQStGQyxLQUFLQyxTQUFTLENBQzdHO2dCQUFFWjtnQkFBS0M7Z0JBQU9DO1lBQVEsS0FKcEI7dUJBQUE7NEJBQUE7OEJBQUE7WUFNTjtRQUNGO1FBRUEsSUFBSUYsSUFBSWEsVUFBVSxDQUFDLE9BQU87WUFDeEIsTUFBTSxxQkFFTCxDQUZLLElBQUlKLE1BQ1AsMEJBQXVCVCxNQUFJLDJHQUR4Qjt1QkFBQTs0QkFBQTs4QkFBQTtZQUVOO1FBQ0Y7UUFFQSxJQUFJQSxJQUFJYSxVQUFVLENBQUMsUUFBUWQsT0FBT2UsYUFBYSxFQUFFO1lBQy9DLElBQ0VYLElBRW1DLEVBQ25DO2dCQUNBLHVFQUF1RTtnQkFDdkUsTUFBTSxFQUFFYSxhQUFhLEVBQUUsR0FDckJDLG1CQUFPQSxDQUFDLCtGQUF1QjtnQkFDakMsSUFBSSxDQUFDRCxjQUFjakIsT0FBT2UsYUFBYSxFQUFFZCxNQUFNO29CQUM3QyxNQUFNLHFCQUdMLENBSEssSUFBSVMsTUFDUCx1QkFBb0JULE1BQUksa0dBQ3RCLDBGQUZDOytCQUFBO29DQUFBO3NDQUFBO29CQUdOO2dCQUNGO1lBQ0Y7UUFDRjtRQUVBLElBQUksQ0FBQ0EsSUFBSWEsVUFBVSxDQUFDLFFBQVNkLENBQUFBLE9BQU9tQixPQUFPLElBQUluQixPQUFPb0IsY0FBQUEsR0FBaUI7WUFDckUsSUFBSUM7WUFDSixJQUFJO2dCQUNGQSxZQUFZLElBQUlDLElBQUlyQjtZQUN0QixFQUFFLE9BQU9zQixLQUFLO2dCQUNaQyxRQUFRQyxLQUFLLENBQUNGO2dCQUNkLE1BQU0scUJBRUwsQ0FGSyxJQUFJYixNQUNQLDBCQUF1QlQsTUFBSSxrSUFEeEI7MkJBQUE7Z0NBQUE7a0NBQUE7Z0JBRU47WUFDRjtZQUVBLElBQ0VHLElBRW1DLEVBQ25DO2dCQUNBLHVFQUF1RTtnQkFDdkUsTUFBTSxFQUFFc0IsY0FBYyxFQUFFLEdBQ3RCUixtQkFBT0EsQ0FBQyxpR0FBd0I7Z0JBQ2xDLElBQ0UsQ0FBQ1EsZUFBZTFCLE9BQU9tQixPQUFPLEVBQUduQixPQUFPb0IsY0FBYyxFQUFHQyxZQUN6RDtvQkFDQSxNQUFNLHFCQUdMLENBSEssSUFBSVgsTUFDUCx1QkFBb0JULE1BQUksa0NBQWlDb0IsVUFBVU0sUUFBUSxHQUFDLGdFQUMxRSxpRkFGQzsrQkFBQTtvQ0FBQTtzQ0FBQTtvQkFHTjtnQkFDRjtZQUNGO1FBQ0Y7UUFFQSxJQUFJeEIsV0FBV0gsT0FBTzRCLFNBQVMsSUFBSSxDQUFDNUIsT0FBTzRCLFNBQVMsQ0FBQ0MsUUFBUSxDQUFDMUIsVUFBVTtZQUN0RSxNQUFNLHFCQUdMLENBSEssSUFBSU8sTUFDUCwyQkFBd0JQLFVBQVEsOEZBQzlCLHNGQUZDO3VCQUFBOzRCQUFBOzhCQUFBO1lBR047UUFDRjtJQUNGO0lBRUEsTUFBTTJCLElBQ0ozQixXQUFBQSxDQUFBQSxDQUNBSCxvQkFBQUEsT0FBTzRCLFNBQUFBLEtBQVMsZ0JBQWhCNUIsa0JBQWtCK0IsTUFBTSxDQUFDLENBQUNDLE1BQU1DLE1BQzlCQyxLQUFLQyxHQUFHLENBQUNGLE1BQU1uQyxhQUFhb0MsS0FBS0MsR0FBRyxDQUFDSCxPQUFPbEMsYUFBYW1DLE1BQU1ELEtBQUFBLEtBRWpFbEM7SUFFRixPQUFVRSxPQUFPb0MsSUFBSSxHQUFDLFVBQU9DLG1CQUFtQnBDLE9BQUssUUFBS0MsUUFBTSxRQUFLNEIsSUFDbkU3QixDQUFBQSxJQUFJYSxVQUFVLENBQUMsMkJBQTJCVixLQUE4QixHQUNuRSxDQUFxQyxHQUN0QyxHQUFDO0FBRVQ7QUFFQSwrREFBK0Q7QUFDL0QsMkRBQTJEO0FBQzNETCxjQUFjd0Msa0JBQWtCLEdBQUc7TUFFbkMsV0FBZXhDIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9zcmMvc2hhcmVkL2xpYi9pbWFnZS1sb2FkZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBJbWFnZUxvYWRlclByb3BzV2l0aENvbmZpZyB9IGZyb20gJy4vaW1hZ2UtY29uZmlnJ1xuXG5jb25zdCBERUZBVUxUX1EgPSA3NVxuXG5mdW5jdGlvbiBkZWZhdWx0TG9hZGVyKHtcbiAgY29uZmlnLFxuICBzcmMsXG4gIHdpZHRoLFxuICBxdWFsaXR5LFxufTogSW1hZ2VMb2FkZXJQcm9wc1dpdGhDb25maWcpOiBzdHJpbmcge1xuICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgIGNvbnN0IG1pc3NpbmdWYWx1ZXMgPSBbXVxuXG4gICAgLy8gdGhlc2Ugc2hvdWxkIGFsd2F5cyBiZSBwcm92aWRlZCBidXQgbWFrZSBzdXJlIHRoZXkgYXJlXG4gICAgaWYgKCFzcmMpIG1pc3NpbmdWYWx1ZXMucHVzaCgnc3JjJylcbiAgICBpZiAoIXdpZHRoKSBtaXNzaW5nVmFsdWVzLnB1c2goJ3dpZHRoJylcblxuICAgIGlmIChtaXNzaW5nVmFsdWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYE5leHQgSW1hZ2UgT3B0aW1pemF0aW9uIHJlcXVpcmVzICR7bWlzc2luZ1ZhbHVlcy5qb2luKFxuICAgICAgICAgICcsICdcbiAgICAgICAgKX0gdG8gYmUgcHJvdmlkZWQuIE1ha2Ugc3VyZSB5b3UgcGFzcyB0aGVtIGFzIHByb3BzIHRvIHRoZSBcXGBuZXh0L2ltYWdlXFxgIGNvbXBvbmVudC4gUmVjZWl2ZWQ6ICR7SlNPTi5zdHJpbmdpZnkoXG4gICAgICAgICAgeyBzcmMsIHdpZHRoLCBxdWFsaXR5IH1cbiAgICAgICAgKX1gXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHNyYy5zdGFydHNXaXRoKCcvLycpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBGYWlsZWQgdG8gcGFyc2Ugc3JjIFwiJHtzcmN9XCIgb24gXFxgbmV4dC9pbWFnZVxcYCwgcHJvdG9jb2wtcmVsYXRpdmUgVVJMICgvLykgbXVzdCBiZSBjaGFuZ2VkIHRvIGFuIGFic29sdXRlIFVSTCAoaHR0cDovLyBvciBodHRwczovLylgXG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHNyYy5zdGFydHNXaXRoKCcvJykgJiYgY29uZmlnLmxvY2FsUGF0dGVybnMpIHtcbiAgICAgIGlmIChcbiAgICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICd0ZXN0JyAmJlxuICAgICAgICAvLyBtaWNyb21hdGNoIGlzbid0IGNvbXBhdGlibGUgd2l0aCBlZGdlIHJ1bnRpbWVcbiAgICAgICAgcHJvY2Vzcy5lbnYuTkVYVF9SVU5USU1FICE9PSAnZWRnZSdcbiAgICAgICkge1xuICAgICAgICAvLyBXZSB1c2UgZHluYW1pYyByZXF1aXJlIGJlY2F1c2UgdGhpcyBzaG91bGQgb25seSBlcnJvciBpbiBkZXZlbG9wbWVudFxuICAgICAgICBjb25zdCB7IGhhc0xvY2FsTWF0Y2ggfSA9XG4gICAgICAgICAgcmVxdWlyZSgnLi9tYXRjaC1sb2NhbC1wYXR0ZXJuJykgYXMgdHlwZW9mIGltcG9ydCgnLi9tYXRjaC1sb2NhbC1wYXR0ZXJuJylcbiAgICAgICAgaWYgKCFoYXNMb2NhbE1hdGNoKGNvbmZpZy5sb2NhbFBhdHRlcm5zLCBzcmMpKSB7XG4gICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAgICAgYEludmFsaWQgc3JjIHByb3AgKCR7c3JjfSkgb24gXFxgbmV4dC9pbWFnZVxcYCBkb2VzIG5vdCBtYXRjaCBcXGBpbWFnZXMubG9jYWxQYXR0ZXJuc1xcYCBjb25maWd1cmVkIGluIHlvdXIgXFxgbmV4dC5jb25maWcuanNcXGBcXG5gICtcbiAgICAgICAgICAgICAgYFNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaW1hZ2UtdW5jb25maWd1cmVkLWxvY2FscGF0dGVybnNgXG4gICAgICAgICAgKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKCFzcmMuc3RhcnRzV2l0aCgnLycpICYmIChjb25maWcuZG9tYWlucyB8fCBjb25maWcucmVtb3RlUGF0dGVybnMpKSB7XG4gICAgICBsZXQgcGFyc2VkU3JjOiBVUkxcbiAgICAgIHRyeSB7XG4gICAgICAgIHBhcnNlZFNyYyA9IG5ldyBVUkwoc3JjKVxuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoZXJyKVxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEZhaWxlZCB0byBwYXJzZSBzcmMgXCIke3NyY31cIiBvbiBcXGBuZXh0L2ltYWdlXFxgLCBpZiB1c2luZyByZWxhdGl2ZSBpbWFnZSBpdCBtdXN0IHN0YXJ0IHdpdGggYSBsZWFkaW5nIHNsYXNoIFwiL1wiIG9yIGJlIGFuIGFic29sdXRlIFVSTCAoaHR0cDovLyBvciBodHRwczovLylgXG4gICAgICAgIClcbiAgICAgIH1cblxuICAgICAgaWYgKFxuICAgICAgICBwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Rlc3QnICYmXG4gICAgICAgIC8vIG1pY3JvbWF0Y2ggaXNuJ3QgY29tcGF0aWJsZSB3aXRoIGVkZ2UgcnVudGltZVxuICAgICAgICBwcm9jZXNzLmVudi5ORVhUX1JVTlRJTUUgIT09ICdlZGdlJ1xuICAgICAgKSB7XG4gICAgICAgIC8vIFdlIHVzZSBkeW5hbWljIHJlcXVpcmUgYmVjYXVzZSB0aGlzIHNob3VsZCBvbmx5IGVycm9yIGluIGRldmVsb3BtZW50XG4gICAgICAgIGNvbnN0IHsgaGFzUmVtb3RlTWF0Y2ggfSA9XG4gICAgICAgICAgcmVxdWlyZSgnLi9tYXRjaC1yZW1vdGUtcGF0dGVybicpIGFzIHR5cGVvZiBpbXBvcnQoJy4vbWF0Y2gtcmVtb3RlLXBhdHRlcm4nKVxuICAgICAgICBpZiAoXG4gICAgICAgICAgIWhhc1JlbW90ZU1hdGNoKGNvbmZpZy5kb21haW5zISwgY29uZmlnLnJlbW90ZVBhdHRlcm5zISwgcGFyc2VkU3JjKVxuICAgICAgICApIHtcbiAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgICBgSW52YWxpZCBzcmMgcHJvcCAoJHtzcmN9KSBvbiBcXGBuZXh0L2ltYWdlXFxgLCBob3N0bmFtZSBcIiR7cGFyc2VkU3JjLmhvc3RuYW1lfVwiIGlzIG5vdCBjb25maWd1cmVkIHVuZGVyIGltYWdlcyBpbiB5b3VyIFxcYG5leHQuY29uZmlnLmpzXFxgXFxuYCArXG4gICAgICAgICAgICAgIGBTZWUgbW9yZSBpbmZvOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9uZXh0LWltYWdlLXVuY29uZmlndXJlZC1ob3N0YFxuICAgICAgICAgIClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChxdWFsaXR5ICYmIGNvbmZpZy5xdWFsaXRpZXMgJiYgIWNvbmZpZy5xdWFsaXRpZXMuaW5jbHVkZXMocXVhbGl0eSkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEludmFsaWQgcXVhbGl0eSBwcm9wICgke3F1YWxpdHl9KSBvbiBcXGBuZXh0L2ltYWdlXFxgIGRvZXMgbm90IG1hdGNoIFxcYGltYWdlcy5xdWFsaXRpZXNcXGAgY29uZmlndXJlZCBpbiB5b3VyIFxcYG5leHQuY29uZmlnLmpzXFxgXFxuYCArXG4gICAgICAgICAgYFNlZSBtb3JlIGluZm86IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL25leHQtaW1hZ2UtdW5jb25maWd1cmVkLXF1YWxpdGllc2BcbiAgICAgIClcbiAgICB9XG4gIH1cblxuICBjb25zdCBxID1cbiAgICBxdWFsaXR5IHx8XG4gICAgY29uZmlnLnF1YWxpdGllcz8ucmVkdWNlKChwcmV2LCBjdXIpID0+XG4gICAgICBNYXRoLmFicyhjdXIgLSBERUZBVUxUX1EpIDwgTWF0aC5hYnMocHJldiAtIERFRkFVTFRfUSkgPyBjdXIgOiBwcmV2XG4gICAgKSB8fFxuICAgIERFRkFVTFRfUVxuXG4gIHJldHVybiBgJHtjb25maWcucGF0aH0/dXJsPSR7ZW5jb2RlVVJJQ29tcG9uZW50KHNyYyl9Jnc9JHt3aWR0aH0mcT0ke3F9JHtcbiAgICBzcmMuc3RhcnRzV2l0aCgnL19uZXh0L3N0YXRpYy9tZWRpYS8nKSAmJiBwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSURcbiAgICAgID8gYCZkcGw9JHtwcm9jZXNzLmVudi5ORVhUX0RFUExPWU1FTlRfSUR9YFxuICAgICAgOiAnJ1xuICB9YFxufVxuXG4vLyBXZSB1c2UgdGhpcyB0byBkZXRlcm1pbmUgaWYgdGhlIGltcG9ydCBpcyB0aGUgZGVmYXVsdCBsb2FkZXJcbi8vIG9yIGEgY3VzdG9tIGxvYWRlciBkZWZpbmVkIGJ5IHRoZSB1c2VyIGluIG5leHQuY29uZmlnLmpzXG5kZWZhdWx0TG9hZGVyLl9fbmV4dF9pbWdfZGVmYXVsdCA9IHRydWVcblxuZXhwb3J0IGRlZmF1bHQgZGVmYXVsdExvYWRlclxuIl0sIm5hbWVzIjpbIkRFRkFVTFRfUSIsImRlZmF1bHRMb2FkZXIiLCJjb25maWciLCJzcmMiLCJ3aWR0aCIsInF1YWxpdHkiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJtaXNzaW5nVmFsdWVzIiwicHVzaCIsImxlbmd0aCIsIkVycm9yIiwiam9pbiIsIkpTT04iLCJzdHJpbmdpZnkiLCJzdGFydHNXaXRoIiwibG9jYWxQYXR0ZXJucyIsIk5FWFRfUlVOVElNRSIsImhhc0xvY2FsTWF0Y2giLCJyZXF1aXJlIiwiZG9tYWlucyIsInJlbW90ZVBhdHRlcm5zIiwicGFyc2VkU3JjIiwiVVJMIiwiZXJyIiwiY29uc29sZSIsImVycm9yIiwiaGFzUmVtb3RlTWF0Y2giLCJob3N0bmFtZSIsInF1YWxpdGllcyIsImluY2x1ZGVzIiwicSIsInJlZHVjZSIsInByZXYiLCJjdXIiLCJNYXRoIiwiYWJzIiwicGF0aCIsImVuY29kZVVSSUNvbXBvbmVudCIsIk5FWFRfREVQTE9ZTUVOVF9JRCIsIl9fbmV4dF9pbWdfZGVmYXVsdCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/image-loader.js\n");
+
+/***/ }),
+
/***/ "(ssr)/./node_modules/next/dist/shared/lib/invariant-error.js":
/*!**************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/invariant-error.js ***!
@@ -3677,6 +3996,28 @@ eval("// This has to be a shared module which is shared between client component
/***/ }),
+/***/ "(ssr)/./node_modules/next/dist/shared/lib/match-local-pattern.js":
+/*!******************************************************************!*\
+ !*** ./node_modules/next/dist/shared/lib/match-local-pattern.js ***!
+ \******************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n hasLocalMatch: function() {\n return hasLocalMatch;\n },\n matchLocalPattern: function() {\n return matchLocalPattern;\n }\n});\nconst _picomatch = __webpack_require__(/*! next/dist/compiled/picomatch */ \"(ssr)/./node_modules/next/dist/compiled/picomatch/index.js\");\nfunction matchLocalPattern(pattern, url) {\n if (pattern.search !== undefined) {\n if (pattern.search !== url.search) {\n return false;\n }\n }\n var _pattern_pathname;\n if (!(0, _picomatch.makeRe)((_pattern_pathname = pattern.pathname) != null ? _pattern_pathname : '**', {\n dot: true\n }).test(url.pathname)) {\n return false;\n }\n return true;\n}\nfunction hasLocalMatch(localPatterns, urlPathAndQuery) {\n if (!localPatterns) {\n // if the user didn't define \"localPatterns\", we allow all local images\n return true;\n }\n const url = new URL(urlPathAndQuery, 'http://n');\n return localPatterns.some((p)=>matchLocalPattern(p, url));\n} //# sourceMappingURL=match-local-pattern.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWF0Y2gtbG9jYWwtcGF0dGVybi5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFrQmdCQSxhQUFhO2VBQWJBOztJQWRBQyxpQkFBaUI7ZUFBakJBOzs7dUNBSE87QUFHaEIsU0FBU0Esa0JBQWtCQyxPQUFxQixFQUFFQyxHQUFRO0lBQy9ELElBQUlELFFBQVFFLE1BQU0sS0FBS0MsV0FBVztRQUNoQyxJQUFJSCxRQUFRRSxNQUFNLEtBQUtELElBQUlDLE1BQU0sRUFBRTtZQUNqQyxPQUFPO1FBQ1Q7SUFDRjtRQUVZRjtJQUFaLElBQUksQ0FBQ0ksQ0FBQUEsR0FBQUEsV0FBQUEsTUFBQUEsRUFBT0osQ0FBQUEsb0JBQUFBLFFBQVFLLFFBQUFBLEtBQVEsT0FBaEJMLG9CQUFvQixNQUFNO1FBQUVNLEtBQUs7SUFBSyxHQUFHQyxJQUFJLENBQUNOLElBQUlJLFFBQVEsR0FBRztRQUN2RSxPQUFPO0lBQ1Q7SUFFQSxPQUFPO0FBQ1Q7QUFFTyxTQUFTUCxjQUNkVSxhQUF5QyxFQUN6Q0MsZUFBdUI7SUFFdkIsSUFBSSxDQUFDRCxlQUFlO1FBQ2xCLHVFQUF1RTtRQUN2RSxPQUFPO0lBQ1Q7SUFDQSxNQUFNUCxNQUFNLElBQUlTLElBQUlELGlCQUFpQjtJQUNyQyxPQUFPRCxjQUFjRyxJQUFJLENBQUMsQ0FBQ0MsSUFBTWIsa0JBQWtCYSxHQUFHWDtBQUN4RCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvbWF0Y2gtbG9jYWwtcGF0dGVybi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IExvY2FsUGF0dGVybiB9IGZyb20gJy4vaW1hZ2UtY29uZmlnJ1xuaW1wb3J0IHsgbWFrZVJlIH0gZnJvbSAnbmV4dC9kaXN0L2NvbXBpbGVkL3BpY29tYXRjaCdcblxuLy8gTW9kaWZ5aW5nIHRoaXMgZnVuY3Rpb24gc2hvdWxkIGFsc28gbW9kaWZ5IHdyaXRlSW1hZ2VzTWFuaWZlc3QoKVxuZXhwb3J0IGZ1bmN0aW9uIG1hdGNoTG9jYWxQYXR0ZXJuKHBhdHRlcm46IExvY2FsUGF0dGVybiwgdXJsOiBVUkwpOiBib29sZWFuIHtcbiAgaWYgKHBhdHRlcm4uc2VhcmNoICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAocGF0dGVybi5zZWFyY2ggIT09IHVybC5zZWFyY2gpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGlmICghbWFrZVJlKHBhdHRlcm4ucGF0aG5hbWUgPz8gJyoqJywgeyBkb3Q6IHRydWUgfSkudGVzdCh1cmwucGF0aG5hbWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzTG9jYWxNYXRjaChcbiAgbG9jYWxQYXR0ZXJuczogTG9jYWxQYXR0ZXJuW10gfCB1bmRlZmluZWQsXG4gIHVybFBhdGhBbmRRdWVyeTogc3RyaW5nXG4pOiBib29sZWFuIHtcbiAgaWYgKCFsb2NhbFBhdHRlcm5zKSB7XG4gICAgLy8gaWYgdGhlIHVzZXIgZGlkbid0IGRlZmluZSBcImxvY2FsUGF0dGVybnNcIiwgd2UgYWxsb3cgYWxsIGxvY2FsIGltYWdlc1xuICAgIHJldHVybiB0cnVlXG4gIH1cbiAgY29uc3QgdXJsID0gbmV3IFVSTCh1cmxQYXRoQW5kUXVlcnksICdodHRwOi8vbicpXG4gIHJldHVybiBsb2NhbFBhdHRlcm5zLnNvbWUoKHApID0+IG1hdGNoTG9jYWxQYXR0ZXJuKHAsIHVybCkpXG59XG4iXSwibmFtZXMiOlsiaGFzTG9jYWxNYXRjaCIsIm1hdGNoTG9jYWxQYXR0ZXJuIiwicGF0dGVybiIsInVybCIsInNlYXJjaCIsInVuZGVmaW5lZCIsIm1ha2VSZSIsInBhdGhuYW1lIiwiZG90IiwidGVzdCIsImxvY2FsUGF0dGVybnMiLCJ1cmxQYXRoQW5kUXVlcnkiLCJVUkwiLCJzb21lIiwicCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/match-local-pattern.js\n");
+
+/***/ }),
+
+/***/ "(ssr)/./node_modules/next/dist/shared/lib/match-remote-pattern.js":
+/*!*******************************************************************!*\
+ !*** ./node_modules/next/dist/shared/lib/match-remote-pattern.js ***!
+ \*******************************************************************/
+/***/ ((__unused_webpack_module, exports, __webpack_require__) => {
+
+"use strict";
+eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n hasRemoteMatch: function() {\n return hasRemoteMatch;\n },\n matchRemotePattern: function() {\n return matchRemotePattern;\n }\n});\nconst _picomatch = __webpack_require__(/*! next/dist/compiled/picomatch */ \"(ssr)/./node_modules/next/dist/compiled/picomatch/index.js\");\nfunction matchRemotePattern(pattern, url) {\n if (pattern.protocol !== undefined) {\n if (pattern.protocol.replace(/:$/, '') !== url.protocol.replace(/:$/, '')) {\n return false;\n }\n }\n if (pattern.port !== undefined) {\n if (pattern.port !== url.port) {\n return false;\n }\n }\n if (pattern.hostname === undefined) {\n throw Object.defineProperty(new Error(\"Pattern should define hostname but found\\n\" + JSON.stringify(pattern)), \"__NEXT_ERROR_CODE\", {\n value: \"E410\",\n enumerable: false,\n configurable: true\n });\n } else {\n if (!(0, _picomatch.makeRe)(pattern.hostname).test(url.hostname)) {\n return false;\n }\n }\n if (pattern.search !== undefined) {\n if (pattern.search !== url.search) {\n return false;\n }\n }\n var _pattern_pathname;\n // Should be the same as writeImagesManifest()\n if (!(0, _picomatch.makeRe)((_pattern_pathname = pattern.pathname) != null ? _pattern_pathname : '**', {\n dot: true\n }).test(url.pathname)) {\n return false;\n }\n return true;\n}\nfunction hasRemoteMatch(domains, remotePatterns, url) {\n return domains.some((domain)=>url.hostname === domain) || remotePatterns.some((p)=>matchRemotePattern(p, url));\n} //# sourceMappingURL=match-remote-pattern.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvbWF0Y2gtcmVtb3RlLXBhdHRlcm4uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBMkNnQkEsY0FBYztlQUFkQTs7SUF2Q0FDLGtCQUFrQjtlQUFsQkE7Ozt1Q0FITztBQUdoQixTQUFTQSxtQkFDZEMsT0FBNEIsRUFDNUJDLEdBQVE7SUFFUixJQUFJRCxRQUFRRSxRQUFRLEtBQUtDLFdBQVc7UUFDbEMsSUFBSUgsUUFBUUUsUUFBUSxDQUFDRSxPQUFPLENBQUMsTUFBTSxRQUFRSCxJQUFJQyxRQUFRLENBQUNFLE9BQU8sQ0FBQyxNQUFNLEtBQUs7WUFDekUsT0FBTztRQUNUO0lBQ0Y7SUFDQSxJQUFJSixRQUFRSyxJQUFJLEtBQUtGLFdBQVc7UUFDOUIsSUFBSUgsUUFBUUssSUFBSSxLQUFLSixJQUFJSSxJQUFJLEVBQUU7WUFDN0IsT0FBTztRQUNUO0lBQ0Y7SUFFQSxJQUFJTCxRQUFRTSxRQUFRLEtBQUtILFdBQVc7UUFDbEMsTUFBTSxxQkFFTCxDQUZLLElBQUlJLE1BQ1AsK0NBQTRDQyxLQUFLQyxTQUFTLENBQUNULFdBRHhEO21CQUFBO3dCQUFBOzBCQUFBO1FBRU47SUFDRixPQUFPO1FBQ0wsSUFBSSxDQUFDVSxDQUFBQSxHQUFBQSxXQUFBQSxNQUFBQSxFQUFPVixRQUFRTSxRQUFRLEVBQUVLLElBQUksQ0FBQ1YsSUFBSUssUUFBUSxHQUFHO1lBQ2hELE9BQU87UUFDVDtJQUNGO0lBRUEsSUFBSU4sUUFBUVksTUFBTSxLQUFLVCxXQUFXO1FBQ2hDLElBQUlILFFBQVFZLE1BQU0sS0FBS1gsSUFBSVcsTUFBTSxFQUFFO1lBQ2pDLE9BQU87UUFDVDtJQUNGO1FBR1laO0lBRFosOENBQThDO0lBQzlDLElBQUksQ0FBQ1UsQ0FBQUEsR0FBQUEsV0FBQUEsTUFBQUEsRUFBT1YsQ0FBQUEsb0JBQUFBLFFBQVFhLFFBQUFBLEtBQVEsT0FBaEJiLG9CQUFvQixNQUFNO1FBQUVjLEtBQUs7SUFBSyxHQUFHSCxJQUFJLENBQUNWLElBQUlZLFFBQVEsR0FBRztRQUN2RSxPQUFPO0lBQ1Q7SUFFQSxPQUFPO0FBQ1Q7QUFFTyxTQUFTZixlQUNkaUIsT0FBaUIsRUFDakJDLGNBQTBDLEVBQzFDZixHQUFRO0lBRVIsT0FDRWMsUUFBUUUsSUFBSSxDQUFDLENBQUNDLFNBQVdqQixJQUFJSyxRQUFRLEtBQUtZLFdBQzFDRixlQUFlQyxJQUFJLENBQUMsQ0FBQ0UsSUFBTXBCLG1CQUFtQm9CLEdBQUdsQjtBQUVyRCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvc3JjL3NoYXJlZC9saWIvbWF0Y2gtcmVtb3RlLXBhdHRlcm4udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSZW1vdGVQYXR0ZXJuIH0gZnJvbSAnLi9pbWFnZS1jb25maWcnXG5pbXBvcnQgeyBtYWtlUmUgfSBmcm9tICduZXh0L2Rpc3QvY29tcGlsZWQvcGljb21hdGNoJ1xuXG4vLyBNb2RpZnlpbmcgdGhpcyBmdW5jdGlvbiBzaG91bGQgYWxzbyBtb2RpZnkgd3JpdGVJbWFnZXNNYW5pZmVzdCgpXG5leHBvcnQgZnVuY3Rpb24gbWF0Y2hSZW1vdGVQYXR0ZXJuKFxuICBwYXR0ZXJuOiBSZW1vdGVQYXR0ZXJuIHwgVVJMLFxuICB1cmw6IFVSTFxuKTogYm9vbGVhbiB7XG4gIGlmIChwYXR0ZXJuLnByb3RvY29sICE9PSB1bmRlZmluZWQpIHtcbiAgICBpZiAocGF0dGVybi5wcm90b2NvbC5yZXBsYWNlKC86JC8sICcnKSAhPT0gdXJsLnByb3RvY29sLnJlcGxhY2UoLzokLywgJycpKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cbiAgaWYgKHBhdHRlcm4ucG9ydCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHBhdHRlcm4ucG9ydCAhPT0gdXJsLnBvcnQpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGlmIChwYXR0ZXJuLmhvc3RuYW1lID09PSB1bmRlZmluZWQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgUGF0dGVybiBzaG91bGQgZGVmaW5lIGhvc3RuYW1lIGJ1dCBmb3VuZFxcbiR7SlNPTi5zdHJpbmdpZnkocGF0dGVybil9YFxuICAgIClcbiAgfSBlbHNlIHtcbiAgICBpZiAoIW1ha2VSZShwYXR0ZXJuLmhvc3RuYW1lKS50ZXN0KHVybC5ob3N0bmFtZSkpIHtcbiAgICAgIHJldHVybiBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGlmIChwYXR0ZXJuLnNlYXJjaCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgaWYgKHBhdHRlcm4uc2VhcmNoICE9PSB1cmwuc2VhcmNoKSB7XG4gICAgICByZXR1cm4gZmFsc2VcbiAgICB9XG4gIH1cblxuICAvLyBTaG91bGQgYmUgdGhlIHNhbWUgYXMgd3JpdGVJbWFnZXNNYW5pZmVzdCgpXG4gIGlmICghbWFrZVJlKHBhdHRlcm4ucGF0aG5hbWUgPz8gJyoqJywgeyBkb3Q6IHRydWUgfSkudGVzdCh1cmwucGF0aG5hbWUpKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gaGFzUmVtb3RlTWF0Y2goXG4gIGRvbWFpbnM6IHN0cmluZ1tdLFxuICByZW1vdGVQYXR0ZXJuczogQXJyYXk8UmVtb3RlUGF0dGVybiB8IFVSTD4sXG4gIHVybDogVVJMXG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICBkb21haW5zLnNvbWUoKGRvbWFpbikgPT4gdXJsLmhvc3RuYW1lID09PSBkb21haW4pIHx8XG4gICAgcmVtb3RlUGF0dGVybnMuc29tZSgocCkgPT4gbWF0Y2hSZW1vdGVQYXR0ZXJuKHAsIHVybCkpXG4gIClcbn1cbiJdLCJuYW1lcyI6WyJoYXNSZW1vdGVNYXRjaCIsIm1hdGNoUmVtb3RlUGF0dGVybiIsInBhdHRlcm4iLCJ1cmwiLCJwcm90b2NvbCIsInVuZGVmaW5lZCIsInJlcGxhY2UiLCJwb3J0IiwiaG9zdG5hbWUiLCJFcnJvciIsIkpTT04iLCJzdHJpbmdpZnkiLCJtYWtlUmUiLCJ0ZXN0Iiwic2VhcmNoIiwicGF0aG5hbWUiLCJkb3QiLCJkb21haW5zIiwicmVtb3RlUGF0dGVybnMiLCJzb21lIiwiZG9tYWluIiwicCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/shared/lib/match-remote-pattern.js\n");
+
+/***/ }),
+
/***/ "(ssr)/./node_modules/next/dist/shared/lib/modern-browserslist-target.js":
/*!*************************************************************************!*\
!*** ./node_modules/next/dist/shared/lib/modern-browserslist-target.js ***!
diff --git a/.next/server/webpack-runtime.js b/.next/server/webpack-runtime.js
index 00ebdf3..8109e14 100644
--- a/.next/server/webpack-runtime.js
+++ b/.next/server/webpack-runtime.js
@@ -42,6 +42,11 @@
/******/ __webpack_require__.c = __webpack_module_cache__;
/******/
/************************************************************************/
+/******/ /* webpack/runtime/amd options */
+/******/ (() => {
+/******/ __webpack_require__.amdO = {};
+/******/ })();
+/******/
/******/ /* webpack/runtime/compat get default export */
/******/ (() => {
/******/ // getDefaultExport function for compatibility with non-harmony modules
@@ -120,7 +125,7 @@
/******/
/******/ /* webpack/runtime/getFullHash */
/******/ (() => {
-/******/ __webpack_require__.h = () => ("63e68ec8a331665a")
+/******/ __webpack_require__.h = () => ("aac4a59523714713")
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
@@ -209,5 +214,5 @@
/******/
/******/ })()
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJpZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsid2VicGFjay1pbnRlcm5hbDovL25leHRqcy93ZWJwYWNrLXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBzb3VyY2Ugd2FzIGdlbmVyYXRlZCBieSBOZXh0LmpzIGJhc2VkIG9mZiBvZiB0aGUgZ2VuZXJhdGVkIFdlYnBhY2sgcnVudGltZS5cbi8vIFRoZSBtYXBwaW5ncyBhcmUgaW5jb3JyZWN0LlxuLy8gVG8gZ2V0IHRoZSBjb3JyZWN0IGxpbmUvY29sdW1uIG1hcHBpbmdzLCB0dXJuIG9mZiBzb3VyY2VtYXBzIGluIHlvdXIgZGVidWdnZXIuXG5cbi8qKioqKiovICgoKSA9PiB7IC8vIHdlYnBhY2tCb290c3RyYXBcbi8qKioqKiovIFx0XCJ1c2Ugc3RyaWN0XCI7XG4vKioqKioqLyBcdHZhciBfX3dlYnBhY2tfbW9kdWxlc19fID0gKHt9KTtcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbi8qKioqKiovIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bG9hZGVkOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0dmFyIHRocmV3ID0gdHJ1ZTtcbi8qKioqKiovIFx0XHR0cnkge1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqLyBcdFx0XHR0aHJldyA9IGZhbHNlO1xuLyoqKioqKi8gXHRcdH0gZmluYWxseSB7XG4vKioqKioqLyBcdFx0XHRpZih0aHJldykgZGVsZXRlIF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmxvYWRlZCA9IHRydWU7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4vKioqKioqLyBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHR9XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fO1xuLyoqKioqKi8gXHRcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9jb21wYXQgZ2V0IGRlZmF1bHQgZXhwb3J0ICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0Ly8gZ2V0RGVmYXVsdEV4cG9ydCBmdW5jdGlvbiBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG5vbi1oYXJtb255IG1vZHVsZXNcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm4gPSAobW9kdWxlKSA9PiB7XG4vKioqKioqLyBcdFx0XHR2YXIgZ2V0dGVyID0gbW9kdWxlICYmIG1vZHVsZS5fX2VzTW9kdWxlID9cbi8qKioqKiovIFx0XHRcdFx0KCkgPT4gKG1vZHVsZVsnZGVmYXVsdCddKSA6XG4vKioqKioqLyBcdFx0XHRcdCgpID0+IChtb2R1bGUpO1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKGdldHRlciwgeyBhOiBnZXR0ZXIgfSk7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gZ2V0dGVyO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvY3JlYXRlIGZha2UgbmFtZXNwYWNlIG9iamVjdCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdHZhciBnZXRQcm90byA9IE9iamVjdC5nZXRQcm90b3R5cGVPZiA/IChvYmopID0+IChPYmplY3QuZ2V0UHJvdG90eXBlT2Yob2JqKSkgOiAob2JqKSA9PiAob2JqLl9fcHJvdG9fXyk7XG4vKioqKioqLyBcdFx0dmFyIGxlYWZQcm90b3R5cGVzO1xuLyoqKioqKi8gXHRcdC8vIGNyZWF0ZSBhIGZha2UgbmFtZXNwYWNlIG9iamVjdFxuLyoqKioqKi8gXHRcdC8vIG1vZGUgJiAxOiB2YWx1ZSBpcyBhIG1vZHVsZSBpZCwgcmVxdWlyZSBpdFxuLyoqKioqKi8gXHRcdC8vIG1vZGUgJiAyOiBtZXJnZSBhbGwgcHJvcGVydGllcyBvZiB2YWx1ZSBpbnRvIHRoZSBuc1xuLyoqKioqKi8gXHRcdC8vIG1vZGUgJiA0OiByZXR1cm4gdmFsdWUgd2hlbiBhbHJlYWR5IG5zIG9iamVjdFxuLyoqKioqKi8gXHRcdC8vIG1vZGUgJiAxNjogcmV0dXJuIHZhbHVlIHdoZW4gaXQncyBQcm9taXNlLWxpa2Vcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgOHwxOiBiZWhhdmUgbGlrZSByZXF1aXJlXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy50ID0gZnVuY3Rpb24odmFsdWUsIG1vZGUpIHtcbi8qKioqKiovIFx0XHRcdGlmKG1vZGUgJiAxKSB2YWx1ZSA9IHRoaXModmFsdWUpO1xuLyoqKioqKi8gXHRcdFx0aWYobW9kZSAmIDgpIHJldHVybiB2YWx1ZTtcbi8qKioqKiovIFx0XHRcdGlmKHR5cGVvZiB2YWx1ZSA9PT0gJ29iamVjdCcgJiYgdmFsdWUpIHtcbi8qKioqKiovIFx0XHRcdFx0aWYoKG1vZGUgJiA0KSAmJiB2YWx1ZS5fX2VzTW9kdWxlKSByZXR1cm4gdmFsdWU7XG4vKioqKioqLyBcdFx0XHRcdGlmKChtb2RlICYgMTYpICYmIHR5cGVvZiB2YWx1ZS50aGVuID09PSAnZnVuY3Rpb24nKSByZXR1cm4gdmFsdWU7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR2YXIgbnMgPSBPYmplY3QuY3JlYXRlKG51bGwpO1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yKG5zKTtcbi8qKioqKiovIFx0XHRcdHZhciBkZWYgPSB7fTtcbi8qKioqKiovIFx0XHRcdGxlYWZQcm90b3R5cGVzID0gbGVhZlByb3RvdHlwZXMgfHwgW251bGwsIGdldFByb3RvKHt9KSwgZ2V0UHJvdG8oW10pLCBnZXRQcm90byhnZXRQcm90byldO1xuLyoqKioqKi8gXHRcdFx0Zm9yKHZhciBjdXJyZW50ID0gbW9kZSAmIDIgJiYgdmFsdWU7IHR5cGVvZiBjdXJyZW50ID09ICdvYmplY3QnICYmICF+bGVhZlByb3RvdHlwZXMuaW5kZXhPZihjdXJyZW50KTsgY3VycmVudCA9IGdldFByb3RvKGN1cnJlbnQpKSB7XG4vKioqKioqLyBcdFx0XHRcdE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGN1cnJlbnQpLmZvckVhY2goKGtleSkgPT4gKGRlZltrZXldID0gKCkgPT4gKHZhbHVlW2tleV0pKSk7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRkZWZbJ2RlZmF1bHQnXSA9ICgpID0+ICh2YWx1ZSk7XG4vKioqKioqLyBcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQobnMsIGRlZik7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gbnM7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9kZWZpbmUgcHJvcGVydHkgZ2V0dGVycyAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIGRlZmluZSBnZXR0ZXIgZnVuY3Rpb25zIGZvciBoYXJtb255IGV4cG9ydHNcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQgPSAoZXhwb3J0cywgZGVmaW5pdGlvbikgPT4ge1xuLyoqKioqKi8gXHRcdFx0Zm9yKHZhciBrZXkgaW4gZGVmaW5pdGlvbikge1xuLyoqKioqKi8gXHRcdFx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZGVmaW5pdGlvbiwga2V5KSAmJiAhX193ZWJwYWNrX3JlcXVpcmVfXy5vKGV4cG9ydHMsIGtleSkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywga2V5LCB7IGVudW1lcmFibGU6IHRydWUsIGdldDogZGVmaW5pdGlvbltrZXldIH0pO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9lbnN1cmUgY2h1bmsgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmYgPSB7fTtcbi8qKioqKiovIFx0XHQvLyBUaGlzIGZpbGUgY29udGFpbnMgb25seSB0aGUgZW50cnkgY2h1bmsuXG4vKioqKioqLyBcdFx0Ly8gVGhlIGNodW5rIGxvYWRpbmcgZnVuY3Rpb24gZm9yIGFkZGl0aW9uYWwgY2h1bmtzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5lID0gKGNodW5rSWQpID0+IHtcbi8qKioqKiovIFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmYpLnJlZHVjZSgocHJvbWlzZXMsIGtleSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmZba2V5XShjaHVua0lkLCBwcm9taXNlcyk7XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiBwcm9taXNlcztcbi8qKioqKiovIFx0XHRcdH0sIFtdKSk7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9nZXQgamF2YXNjcmlwdCBjaHVuayBmaWxlbmFtZSAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIFRoaXMgZnVuY3Rpb24gYWxsb3cgdG8gcmVmZXJlbmNlIGFzeW5jIGNodW5rcyBhbmQgc2libGluZyBjaHVua3MgZm9yIHRoZSBlbnRyeXBvaW50XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy51ID0gKGNodW5rSWQpID0+IHtcbi8qKioqKiovIFx0XHRcdC8vIHJldHVybiB1cmwgZm9yIGZpbGVuYW1lcyBiYXNlZCBvbiB0ZW1wbGF0ZVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIFwiXCIgKyBjaHVua0lkICsgXCIuanNcIjtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2dldEZ1bGxIYXNoICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5oID0gKCkgPT4gKFwiNjNlNjhlYzhhMzMxNjY1YVwiKVxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSlcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9tYWtlIG5hbWVzcGFjZSBvYmplY3QgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBkZWZpbmUgX19lc01vZHVsZSBvbiBleHBvcnRzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5yID0gKGV4cG9ydHMpID0+IHtcbi8qKioqKiovIFx0XHRcdGlmKHR5cGVvZiBTeW1ib2wgIT09ICd1bmRlZmluZWQnICYmIFN5bWJvbC50b1N0cmluZ1RhZykge1xuLyoqKioqKi8gXHRcdFx0XHRPYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgU3ltYm9sLnRvU3RyaW5nVGFnLCB7IHZhbHVlOiAnTW9kdWxlJyB9KTtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCAnX19lc01vZHVsZScsIHsgdmFsdWU6IHRydWUgfSk7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9ub2RlIG1vZHVsZSBkZWNvcmF0b3IgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm5tZCA9IChtb2R1bGUpID0+IHtcbi8qKioqKiovIFx0XHRcdG1vZHVsZS5wYXRocyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0aWYgKCFtb2R1bGUuY2hpbGRyZW4pIG1vZHVsZS5jaGlsZHJlbiA9IFtdO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIG1vZHVsZTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL3N0YXJ0dXAgZW50cnlwb2ludCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uWCA9IChyZXN1bHQsIGNodW5rSWRzLCBmbikgPT4ge1xuLyoqKioqKi8gXHRcdFx0Ly8gYXJndW1lbnRzOiBjaHVua0lkcywgbW9kdWxlSWQgYXJlIGRlcHJlY2F0ZWRcbi8qKioqKiovIFx0XHRcdHZhciBtb2R1bGVJZCA9IGNodW5rSWRzO1xuLyoqKioqKi8gXHRcdFx0aWYoIWZuKSBjaHVua0lkcyA9IHJlc3VsdCwgZm4gPSAoKSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXyhfX3dlYnBhY2tfcmVxdWlyZV9fLnMgPSBtb2R1bGVJZCkpO1xuLyoqKioqKi8gXHRcdFx0Y2h1bmtJZHMubWFwKF9fd2VicGFja19yZXF1aXJlX18uZSwgX193ZWJwYWNrX3JlcXVpcmVfXylcbi8qKioqKiovIFx0XHRcdHZhciByID0gZm4oKTtcbi8qKioqKiovIFx0XHRcdHJldHVybiByID09PSB1bmRlZmluZWQgPyByZXN1bHQgOiByO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9yZXF1aXJlIGNodW5rIGxvYWRpbmcgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBubyBiYXNlVVJJXG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gb2JqZWN0IHRvIHN0b3JlIGxvYWRlZCBjaHVua3Ncbi8qKioqKiovIFx0XHQvLyBcIjFcIiBtZWFucyBcImxvYWRlZFwiLCBvdGhlcndpc2Ugbm90IGxvYWRlZCB5ZXRcbi8qKioqKiovIFx0XHR2YXIgaW5zdGFsbGVkQ2h1bmtzID0ge1xuLyoqKioqKi8gXHRcdFx0XCJ3ZWJwYWNrLXJ1bnRpbWVcIjogMVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gbm8gb24gY2h1bmtzIGxvYWRlZFxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdHZhciBpbnN0YWxsQ2h1bmsgPSAoY2h1bmspID0+IHtcbi8qKioqKiovIFx0XHRcdHZhciBtb3JlTW9kdWxlcyA9IGNodW5rLm1vZHVsZXMsIGNodW5rSWRzID0gY2h1bmsuaWRzLCBydW50aW1lID0gY2h1bmsucnVudGltZTtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIgbW9kdWxlSWQgaW4gbW9yZU1vZHVsZXMpIHtcbi8qKioqKiovIFx0XHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm1bbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRpZihydW50aW1lKSBydW50aW1lKF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi8gXHRcdFx0Zm9yKHZhciBpID0gMDsgaSA8IGNodW5rSWRzLmxlbmd0aDsgaSsrKVxuLyoqKioqKi8gXHRcdFx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZHNbaV1dID0gMTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIHJlcXVpcmUoKSBjaHVuayBsb2FkaW5nIGZvciBqYXZhc2NyaXB0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mLnJlcXVpcmUgPSAoY2h1bmtJZCwgcHJvbWlzZXMpID0+IHtcbi8qKioqKiovIFx0XHRcdC8vIFwiMVwiIGlzIHRoZSBzaWduYWwgZm9yIFwiYWxyZWFkeSBsb2FkZWRcIlxuLyoqKioqKi8gXHRcdFx0aWYoIWluc3RhbGxlZENodW5rc1tjaHVua0lkXSkge1xuLyoqKioqKi8gXHRcdFx0XHRpZihcIndlYnBhY2stcnVudGltZVwiICE9IGNodW5rSWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRpbnN0YWxsQ2h1bmsocmVxdWlyZShcIi4vXCIgKyBfX3dlYnBhY2tfcmVxdWlyZV9fLnUoY2h1bmtJZCkpKTtcbi8qKioqKiovIFx0XHRcdFx0fSBlbHNlIGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IDE7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRtb2R1bGUuZXhwb3J0cyA9IF9fd2VicGFja19yZXF1aXJlX187XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5DID0gaW5zdGFsbENodW5rO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG5vIEhNUlxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG5vIEhNUiBtYW5pZmVzdFxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvLyBtb2R1bGUgY2FjaGUgYXJlIHVzZWQgc28gZW50cnkgaW5saW5pbmcgaXMgZGlzYWJsZWRcbi8qKioqKiovIFx0XG4vKioqKioqLyB9KSgpXG4iXX0=
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJpZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsid2VicGFjay1pbnRlcm5hbDovL25leHRqcy93ZWJwYWNrLXJ1bnRpbWUuanMiXSwic291cmNlc0NvbnRlbnQiOlsiLy8gVGhpcyBzb3VyY2Ugd2FzIGdlbmVyYXRlZCBieSBOZXh0LmpzIGJhc2VkIG9mZiBvZiB0aGUgZ2VuZXJhdGVkIFdlYnBhY2sgcnVudGltZS5cbi8vIFRoZSBtYXBwaW5ncyBhcmUgaW5jb3JyZWN0LlxuLy8gVG8gZ2V0IHRoZSBjb3JyZWN0IGxpbmUvY29sdW1uIG1hcHBpbmdzLCB0dXJuIG9mZiBzb3VyY2VtYXBzIGluIHlvdXIgZGVidWdnZXIuXG5cbi8qKioqKiovICgoKSA9PiB7IC8vIHdlYnBhY2tCb290c3RyYXBcbi8qKioqKiovIFx0XCJ1c2Ugc3RyaWN0XCI7XG4vKioqKioqLyBcdHZhciBfX3dlYnBhY2tfbW9kdWxlc19fID0gKHt9KTtcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyBcdC8vIFRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0dmFyIF9fd2VicGFja19tb2R1bGVfY2FjaGVfXyA9IHt9O1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gVGhlIHJlcXVpcmUgZnVuY3Rpb25cbi8qKioqKiovIFx0ZnVuY3Rpb24gX193ZWJwYWNrX3JlcXVpcmVfXyhtb2R1bGVJZCkge1xuLyoqKioqKi8gXHRcdC8vIENoZWNrIGlmIG1vZHVsZSBpcyBpbiBjYWNoZVxuLyoqKioqKi8gXHRcdHZhciBjYWNoZWRNb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdGlmIChjYWNoZWRNb2R1bGUgIT09IHVuZGVmaW5lZCkge1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bG9hZGVkOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0dmFyIHRocmV3ID0gdHJ1ZTtcbi8qKioqKiovIFx0XHR0cnkge1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX21vZHVsZXNfX1ttb2R1bGVJZF0uY2FsbChtb2R1bGUuZXhwb3J0cywgbW9kdWxlLCBtb2R1bGUuZXhwb3J0cywgX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqLyBcdFx0XHR0aHJldyA9IGZhbHNlO1xuLyoqKioqKi8gXHRcdH0gZmluYWxseSB7XG4vKioqKioqLyBcdFx0XHRpZih0aHJldykgZGVsZXRlIF9fd2VicGFja19tb2R1bGVfY2FjaGVfX1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0XHQvLyBGbGFnIHRoZSBtb2R1bGUgYXMgbG9hZGVkXG4vKioqKioqLyBcdFx0bW9kdWxlLmxvYWRlZCA9IHRydWU7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHRcdC8vIFJldHVybiB0aGUgZXhwb3J0cyBvZiB0aGUgbW9kdWxlXG4vKioqKioqLyBcdFx0cmV0dXJuIG1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHR9XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvLyBleHBvc2UgdGhlIG1vZHVsZXMgb2JqZWN0IChfX3dlYnBhY2tfbW9kdWxlc19fKVxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLm0gPSBfX3dlYnBhY2tfbW9kdWxlc19fO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGUgY2FjaGVcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5jID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fO1xuLyoqKioqKi8gXHRcbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9hbWQgb3B0aW9ucyAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uYW1kTyA9IHt9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2NvbXBhdCBnZXQgZGVmYXVsdCBleHBvcnQgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBnZXREZWZhdWx0RXhwb3J0IGZ1bmN0aW9uIGZvciBjb21wYXRpYmlsaXR5IHdpdGggbm9uLWhhcm1vbnkgbW9kdWxlc1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18ubiA9IChtb2R1bGUpID0+IHtcbi8qKioqKiovIFx0XHRcdHZhciBnZXR0ZXIgPSBtb2R1bGUgJiYgbW9kdWxlLl9fZXNNb2R1bGUgP1xuLyoqKioqKi8gXHRcdFx0XHQoKSA9PiAobW9kdWxlWydkZWZhdWx0J10pIDpcbi8qKioqKiovIFx0XHRcdFx0KCkgPT4gKG1vZHVsZSk7XG4vKioqKioqLyBcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmQoZ2V0dGVyLCB7IGE6IGdldHRlciB9KTtcbi8qKioqKiovIFx0XHRcdHJldHVybiBnZXR0ZXI7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9jcmVhdGUgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0ICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0dmFyIGdldFByb3RvID0gT2JqZWN0LmdldFByb3RvdHlwZU9mID8gKG9iaikgPT4gKE9iamVjdC5nZXRQcm90b3R5cGVPZihvYmopKSA6IChvYmopID0+IChvYmouX19wcm90b19fKTtcbi8qKioqKiovIFx0XHR2YXIgbGVhZlByb3RvdHlwZXM7XG4vKioqKioqLyBcdFx0Ly8gY3JlYXRlIGEgZmFrZSBuYW1lc3BhY2Ugb2JqZWN0XG4vKioqKioqLyBcdFx0Ly8gbW9kZSAmIDE6IHZhbHVlIGlzIGEgbW9kdWxlIGlkLCByZXF1aXJlIGl0XG4vKioqKioqLyBcdFx0Ly8gbW9kZSAmIDI6IG1lcmdlIGFsbCBwcm9wZXJ0aWVzIG9mIHZhbHVlIGludG8gdGhlIG5zXG4vKioqKioqLyBcdFx0Ly8gbW9kZSAmIDQ6IHJldHVybiB2YWx1ZSB3aGVuIGFscmVhZHkgbnMgb2JqZWN0XG4vKioqKioqLyBcdFx0Ly8gbW9kZSAmIDE2OiByZXR1cm4gdmFsdWUgd2hlbiBpdCdzIFByb21pc2UtbGlrZVxuLyoqKioqKi8gXHRcdC8vIG1vZGUgJiA4fDE6IGJlaGF2ZSBsaWtlIHJlcXVpcmVcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnQgPSBmdW5jdGlvbih2YWx1ZSwgbW9kZSkge1xuLyoqKioqKi8gXHRcdFx0aWYobW9kZSAmIDEpIHZhbHVlID0gdGhpcyh2YWx1ZSk7XG4vKioqKioqLyBcdFx0XHRpZihtb2RlICYgOCkgcmV0dXJuIHZhbHVlO1xuLyoqKioqKi8gXHRcdFx0aWYodHlwZW9mIHZhbHVlID09PSAnb2JqZWN0JyAmJiB2YWx1ZSkge1xuLyoqKioqKi8gXHRcdFx0XHRpZigobW9kZSAmIDQpICYmIHZhbHVlLl9fZXNNb2R1bGUpIHJldHVybiB2YWx1ZTtcbi8qKioqKiovIFx0XHRcdFx0aWYoKG1vZGUgJiAxNikgJiYgdHlwZW9mIHZhbHVlLnRoZW4gPT09ICdmdW5jdGlvbicpIHJldHVybiB2YWx1ZTtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdHZhciBucyA9IE9iamVjdC5jcmVhdGUobnVsbCk7XG4vKioqKioqLyBcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIobnMpO1xuLyoqKioqKi8gXHRcdFx0dmFyIGRlZiA9IHt9O1xuLyoqKioqKi8gXHRcdFx0bGVhZlByb3RvdHlwZXMgPSBsZWFmUHJvdG90eXBlcyB8fCBbbnVsbCwgZ2V0UHJvdG8oe30pLCBnZXRQcm90byhbXSksIGdldFByb3RvKGdldFByb3RvKV07XG4vKioqKioqLyBcdFx0XHRmb3IodmFyIGN1cnJlbnQgPSBtb2RlICYgMiAmJiB2YWx1ZTsgdHlwZW9mIGN1cnJlbnQgPT0gJ29iamVjdCcgJiYgIX5sZWFmUHJvdG90eXBlcy5pbmRleE9mKGN1cnJlbnQpOyBjdXJyZW50ID0gZ2V0UHJvdG8oY3VycmVudCkpIHtcbi8qKioqKiovIFx0XHRcdFx0T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoY3VycmVudCkuZm9yRWFjaCgoa2V5KSA9PiAoZGVmW2tleV0gPSAoKSA9PiAodmFsdWVba2V5XSkpKTtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdGRlZlsnZGVmYXVsdCddID0gKCkgPT4gKHZhbHVlKTtcbi8qKioqKiovIFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uZChucywgZGVmKTtcbi8qKioqKiovIFx0XHRcdHJldHVybiBucztcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2RlZmluZSBwcm9wZXJ0eSBnZXR0ZXJzICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0Ly8gZGVmaW5lIGdldHRlciBmdW5jdGlvbnMgZm9yIGhhcm1vbnkgZXhwb3J0c1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZCA9IChleHBvcnRzLCBkZWZpbml0aW9uKSA9PiB7XG4vKioqKioqLyBcdFx0XHRmb3IodmFyIGtleSBpbiBkZWZpbml0aW9uKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmKF9fd2VicGFja19yZXF1aXJlX18ubyhkZWZpbml0aW9uLCBrZXkpICYmICFfX3dlYnBhY2tfcmVxdWlyZV9fLm8oZXhwb3J0cywga2V5KSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBrZXksIHsgZW51bWVyYWJsZTogdHJ1ZSwgZ2V0OiBkZWZpbml0aW9uW2tleV0gfSk7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2Vuc3VyZSBjaHVuayAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZiA9IHt9O1xuLyoqKioqKi8gXHRcdC8vIFRoaXMgZmlsZSBjb250YWlucyBvbmx5IHRoZSBlbnRyeSBjaHVuay5cbi8qKioqKiovIFx0XHQvLyBUaGUgY2h1bmsgbG9hZGluZyBmdW5jdGlvbiBmb3IgYWRkaXRpb25hbCBjaHVua3Ncbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmUgPSAoY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIFByb21pc2UuYWxsKE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uZikucmVkdWNlKChwcm9taXNlcywga2V5KSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uZltrZXldKGNodW5rSWQsIHByb21pc2VzKTtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHByb21pc2VzO1xuLyoqKioqKi8gXHRcdFx0fSwgW10pKTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2dldCBqYXZhc2NyaXB0IGNodW5rIGZpbGVuYW1lICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0Ly8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzIGFuZCBzaWJsaW5nIGNodW5rcyBmb3IgdGhlIGVudHJ5cG9pbnRcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gXCJcIiArIGNodW5rSWQgKyBcIi5qc1wiO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZ2V0RnVsbEhhc2ggKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmggPSAoKSA9PiAoXCJhYWM0YTU5NTIzNzE0NzEzXCIpXG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvaGFzT3duUHJvcGVydHkgc2hvcnRoYW5kICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5vID0gKG9iaiwgcHJvcCkgPT4gKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChvYmosIHByb3ApKVxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4vKioqKioqLyBcdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL25vZGUgbW9kdWxlIGRlY29yYXRvciAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18ubm1kID0gKG1vZHVsZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0bW9kdWxlLnBhdGhzID0gW107XG4vKioqKioqLyBcdFx0XHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gbW9kdWxlO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvc3RhcnR1cCBlbnRyeXBvaW50ICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5YID0gKHJlc3VsdCwgY2h1bmtJZHMsIGZuKSA9PiB7XG4vKioqKioqLyBcdFx0XHQvLyBhcmd1bWVudHM6IGNodW5rSWRzLCBtb2R1bGVJZCBhcmUgZGVwcmVjYXRlZFxuLyoqKioqKi8gXHRcdFx0dmFyIG1vZHVsZUlkID0gY2h1bmtJZHM7XG4vKioqKioqLyBcdFx0XHRpZighZm4pIGNodW5rSWRzID0gcmVzdWx0LCBmbiA9ICgpID0+IChfX3dlYnBhY2tfcmVxdWlyZV9fKF9fd2VicGFja19yZXF1aXJlX18ucyA9IG1vZHVsZUlkKSk7XG4vKioqKioqLyBcdFx0XHRjaHVua0lkcy5tYXAoX193ZWJwYWNrX3JlcXVpcmVfXy5lLCBfX3dlYnBhY2tfcmVxdWlyZV9fKVxuLyoqKioqKi8gXHRcdFx0dmFyIHIgPSBmbigpO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIHIgPT09IHVuZGVmaW5lZCA/IHJlc3VsdCA6IHI7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL3JlcXVpcmUgY2h1bmsgbG9hZGluZyAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIG5vIGJhc2VVUklcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHQvLyBvYmplY3QgdG8gc3RvcmUgbG9hZGVkIGNodW5rc1xuLyoqKioqKi8gXHRcdC8vIFwiMVwiIG1lYW5zIFwibG9hZGVkXCIsIG90aGVyd2lzZSBub3QgbG9hZGVkIHlldFxuLyoqKioqKi8gXHRcdHZhciBpbnN0YWxsZWRDaHVua3MgPSB7XG4vKioqKioqLyBcdFx0XHRcIndlYnBhY2stcnVudGltZVwiOiAxXG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHQvLyBubyBvbiBjaHVua3MgbG9hZGVkXG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0dmFyIGluc3RhbGxDaHVuayA9IChjaHVuaykgPT4ge1xuLyoqKioqKi8gXHRcdFx0dmFyIG1vcmVNb2R1bGVzID0gY2h1bmsubW9kdWxlcywgY2h1bmtJZHMgPSBjaHVuay5pZHMsIHJ1bnRpbWUgPSBjaHVuay5ydW50aW1lO1xuLyoqKioqKi8gXHRcdFx0Zm9yKHZhciBtb2R1bGVJZCBpbiBtb3JlTW9kdWxlcykge1xuLyoqKioqKi8gXHRcdFx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8obW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdGlmKHJ1bnRpbWUpIHJ1bnRpbWUoX193ZWJwYWNrX3JlcXVpcmVfXyk7XG4vKioqKioqLyBcdFx0XHRmb3IodmFyIGkgPSAwOyBpIDwgY2h1bmtJZHMubGVuZ3RoOyBpKyspXG4vKioqKioqLyBcdFx0XHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkc1tpXV0gPSAxO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gcmVxdWlyZSgpIGNodW5rIGxvYWRpbmcgZm9yIGphdmFzY3JpcHRcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmYucmVxdWlyZSA9IChjaHVua0lkLCBwcm9taXNlcykgPT4ge1xuLyoqKioqKi8gXHRcdFx0Ly8gXCIxXCIgaXMgdGhlIHNpZ25hbCBmb3IgXCJhbHJlYWR5IGxvYWRlZFwiXG4vKioqKioqLyBcdFx0XHRpZighaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmKFwid2VicGFjay1ydW50aW1lXCIgIT0gY2h1bmtJZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdGluc3RhbGxDaHVuayhyZXF1aXJlKFwiLi9cIiArIF9fd2VicGFja19yZXF1aXJlX18udShjaHVua0lkKSkpO1xuLyoqKioqKi8gXHRcdFx0XHR9IGVsc2UgaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdID0gMTtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdG1vZHVsZS5leHBvcnRzID0gX193ZWJwYWNrX3JlcXVpcmVfXztcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLkMgPSBpbnN0YWxsQ2h1bms7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gbm8gSE1SXG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gbm8gSE1SIG1hbmlmZXN0XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8vIG1vZHVsZSBjYWNoZSBhcmUgdXNlZCBzbyBlbnRyeSBpbmxpbmluZyBpcyBkaXNhYmxlZFxuLyoqKioqKi8gXHRcbi8qKioqKiovIH0pKClcbiJdfQ==
;
\ No newline at end of file
diff --git a/.next/static/chunks/app/_not-found/page.js b/.next/static/chunks/app/_not-found/page.js
new file mode 100644
index 0000000..9236b6f
--- /dev/null
+++ b/.next/static/chunks/app/_not-found/page.js
@@ -0,0 +1,61 @@
+/*
+ * ATTENTION: An "eval-source-map" devtool has been used.
+ * This devtool is neither made for production nor for readable output files.
+ * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
+ * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
+ * or disable the default devtool with "devtool: false".
+ * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
+ */
+(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["app/_not-found/page"],{
+
+/***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-not-found.js&page=%2F_not-found%2Fpage!":
+/*!************************************************************************************************************************************************************************************************************************************************************************!*\
+ !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-not-found.js&page=%2F_not-found%2Fpage! ***!
+ \************************************************************************************************************************************************************************************************************************************************************************/
+/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
+
+eval(__webpack_require__.ts("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_not-found/page\",\n function () {\n return __webpack_require__(/*! ./node_modules/next/dist/client/components/builtin/global-not-found.js */ \"(app-pages-browser)/./node_modules/next/dist/client/components/builtin/global-not-found.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_not-found/page\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtY2xpZW50LXBhZ2VzLWxvYWRlci5qcz9hYnNvbHV0ZVBhZ2VQYXRoPSUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmJ1aWx0aW4lMkZnbG9iYWwtbm90LWZvdW5kLmpzJnBhZ2U9JTJGX25vdC1mb3VuZCUyRnBhZ2UhIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsMEtBQXdFO0FBQy9GO0FBQ0E7QUFDQSxPQUFPLElBQVU7QUFDakIsTUFBTSxVQUFVO0FBQ2hCO0FBQ0EsT0FBTztBQUNQO0FBQ0EiLCJzb3VyY2VzIjpbIiJdLCJzb3VyY2VzQ29udGVudCI6WyJcbiAgICAod2luZG93Ll9fTkVYVF9QID0gd2luZG93Ll9fTkVYVF9QIHx8IFtdKS5wdXNoKFtcbiAgICAgIFwiL19ub3QtZm91bmQvcGFnZVwiLFxuICAgICAgZnVuY3Rpb24gKCkge1xuICAgICAgICByZXR1cm4gcmVxdWlyZShcIi4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL2dsb2JhbC1ub3QtZm91bmQuanNcIik7XG4gICAgICB9XG4gICAgXSk7XG4gICAgaWYobW9kdWxlLmhvdCkge1xuICAgICAgbW9kdWxlLmhvdC5kaXNwb3NlKGZ1bmN0aW9uICgpIHtcbiAgICAgICAgd2luZG93Ll9fTkVYVF9QLnB1c2goW1wiL19ub3QtZm91bmQvcGFnZVwiXSlcbiAgICAgIH0pO1xuICAgIH1cbiAgIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-not-found.js&page=%2F_not-found%2Fpage!\n"));
+
+/***/ }),
+
+/***/ "(app-pages-browser)/./node_modules/next/dist/client/components/builtin/global-not-found.js":
+/*!******************************************************************************!*\
+ !*** ./node_modules/next/dist/client/components/builtin/global-not-found.js ***!
+ \******************************************************************************/
+/***/ ((module, exports, __webpack_require__) => {
+
+"use strict";
+eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\nconst _errorfallback = __webpack_require__(/*! ../http-access-fallback/error-fallback */ \"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\");\nfunction GlobalNotFound() {\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"html\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"body\", {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorfallback.HTTPAccessErrorFallback, {\n status: 404,\n message: 'This page could not be found.'\n })\n })\n });\n}\n_c = GlobalNotFound;\nconst _default = GlobalNotFound;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=global-not-found.js.map\nvar _c;\n$RefreshReg$(_c, \"GlobalNotFound\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvYnVpbHRpbi9nbG9iYWwtbm90LWZvdW5kLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBZUE7OztlQUFBOzs7OzJDQWZ3QztBQUV4QztJQUNFLHFCQUNFLHFCQUFDQyxRQUFBQTtrQkFDQyxtQ0FBQ0MsUUFBQUE7c0JBQ0MsbUNBQUNDLGVBQUFBLHVCQUF1QjtnQkFDdEJDLFFBQVE7Z0JBQ1JDLFNBQVM7Ozs7QUFLbkI7S0FYU0w7TUFhVCxXQUFlQSIsInNvdXJjZXMiOlsiL2hvbWUvc3JjL2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vZ2xvYmFsLW5vdC1mb3VuZC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSFRUUEFjY2Vzc0Vycm9yRmFsbGJhY2sgfSBmcm9tICcuLi9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1mYWxsYmFjaydcblxuZnVuY3Rpb24gR2xvYmFsTm90Rm91bmQoKSB7XG4gIHJldHVybiAoXG4gICAgPGh0bWw+XG4gICAgICA8Ym9keT5cbiAgICAgICAgPEhUVFBBY2Nlc3NFcnJvckZhbGxiYWNrXG4gICAgICAgICAgc3RhdHVzPXs0MDR9XG4gICAgICAgICAgbWVzc2FnZT17J1RoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQuJ31cbiAgICAgICAgLz5cbiAgICAgIDwvYm9keT5cbiAgICA8L2h0bWw+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgR2xvYmFsTm90Rm91bmRcbiJdLCJuYW1lcyI6WyJHbG9iYWxOb3RGb3VuZCIsImh0bWwiLCJib2R5IiwiSFRUUEFjY2Vzc0Vycm9yRmFsbGJhY2siLCJzdGF0dXMiLCJtZXNzYWdlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/builtin/global-not-found.js\n"));
+
+/***/ }),
+
+/***/ "(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js":
+/*!*****************************************************************************************!*\
+ !*** ./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js ***!
+ \*****************************************************************************************/
+/***/ ((module, exports, __webpack_require__) => {
+
+"use strict";
+eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"HTTPAccessErrorFallback\", ({\n enumerable: true,\n get: function() {\n return HTTPAccessErrorFallback;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\nconst _accesserrorstyles = __webpack_require__(/*! ../styles/access-error-styles */ \"(app-pages-browser)/./node_modules/next/dist/client/components/styles/access-error-styles.js\");\nfunction HTTPAccessErrorFallback(param) {\n let { status, message } = param;\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: status + \": \" + message\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: _accesserrorstyles.styles.error,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* Minified CSS from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n @media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }\n */ __html: \"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: _accesserrorstyles.styles.h1,\n children: status\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: _accesserrorstyles.styles.desc,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h2\", {\n style: _accesserrorstyles.styles.h2,\n children: message\n })\n })\n ]\n })\n })\n ]\n });\n}\n_c = HTTPAccessErrorFallback;\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=error-fallback.js.map\nvar _c;\n$RefreshReg$(_c, \"HTTPAccessErrorFallback\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvaHR0cC1hY2Nlc3MtZmFsbGJhY2svZXJyb3ItZmFsbGJhY2suanMiLCJtYXBwaW5ncyI6Ijs7OzsyREFFZ0JBOzs7ZUFBQUE7Ozs7K0NBRk87QUFFaEIsaUNBQWlDLEtBTXZDO0lBTnVDLE1BQ3RDQyxNQUFNLEVBQ05DLE9BQU8sRUFJUixHQU51QztJQU90QyxxQkFDRTs7MEJBRUUscUJBQUNDLFNBQUFBOzBCQUFVRixTQUFPLE9BQUlDOzswQkFFdEIscUJBQUNFLE9BQUFBO2dCQUFJQyxPQUFPQyxtQkFBQUEsTUFBTSxDQUFDQyxLQUFLOzBCQUN0QixvQ0FBQ0gsT0FBQUE7O3NDQUNDLHFCQUFDQyxTQUFBQTs0QkFDQ0cseUJBQXlCO2dDQUN2Qjs7Ozs7Ozs7Ozs7O2NBWUEsR0FDQUMsUUFBUzs0QkFDWDs7c0NBRUYscUJBQUNDLE1BQUFBOzRCQUFHQyxXQUFVOzRCQUFnQk4sT0FBT0MsbUJBQUFBLE1BQU0sQ0FBQ0ksRUFBRTtzQ0FDM0NUOztzQ0FFSCxxQkFBQ0csT0FBQUE7NEJBQUlDLE9BQU9DLG1CQUFBQSxNQUFNLENBQUNNLElBQUk7c0NBQ3JCLG1DQUFDQyxNQUFBQTtnQ0FBR1IsT0FBT0MsbUJBQUFBLE1BQU0sQ0FBQ08sRUFBRTswQ0FBR1g7Ozs7Ozs7O0FBTW5DO0tBMUNnQkYiLCJzb3VyY2VzIjpbIi9ob21lL3NyYy9jbGllbnQvY29tcG9uZW50cy9odHRwLWFjY2Vzcy1mYWxsYmFjay9lcnJvci1mYWxsYmFjay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgc3R5bGVzIH0gZnJvbSAnLi4vc3R5bGVzL2FjY2Vzcy1lcnJvci1zdHlsZXMnXG5cbmV4cG9ydCBmdW5jdGlvbiBIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayh7XG4gIHN0YXR1cyxcbiAgbWVzc2FnZSxcbn06IHtcbiAgc3RhdHVzOiBudW1iZXJcbiAgbWVzc2FnZTogc3RyaW5nXG59KSB7XG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIHsvKiA8aGVhZD4gKi99XG4gICAgICA8dGl0bGU+e2Ake3N0YXR1c306ICR7bWVzc2FnZX1gfTwvdGl0bGU+XG4gICAgICB7LyogPC9oZWFkPiAqL31cbiAgICAgIDxkaXYgc3R5bGU9e3N0eWxlcy5lcnJvcn0+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPHN0eWxlXG4gICAgICAgICAgICBkYW5nZXJvdXNseVNldElubmVySFRNTD17e1xuICAgICAgICAgICAgICAvKiBNaW5pZmllZCBDU1MgZnJvbVxuICAgICAgICAgICAgICAgIGJvZHkgeyBtYXJnaW46IDA7IGNvbG9yOiAjMDAwOyBiYWNrZ3JvdW5kOiAjZmZmOyB9XG4gICAgICAgICAgICAgICAgLm5leHQtZXJyb3ItaDEge1xuICAgICAgICAgICAgICAgICAgYm9yZGVyLXJpZ2h0OiAxcHggc29saWQgcmdiYSgwLCAwLCAwLCAuMyk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgQG1lZGlhIChwcmVmZXJzLWNvbG9yLXNjaGVtZTogZGFyaykge1xuICAgICAgICAgICAgICAgICAgYm9keSB7IGNvbG9yOiAjZmZmOyBiYWNrZ3JvdW5kOiAjMDAwOyB9XG4gICAgICAgICAgICAgICAgICAubmV4dC1lcnJvci1oMSB7XG4gICAgICAgICAgICAgICAgICAgIGJvcmRlci1yaWdodDogMXB4IHNvbGlkIHJnYmEoMjU1LCAyNTUsIDI1NSwgLjMpO1xuICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgX19odG1sOiBgYm9keXtjb2xvcjojMDAwO2JhY2tncm91bmQ6I2ZmZjttYXJnaW46MH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMCwwLDAsLjMpfUBtZWRpYSAocHJlZmVycy1jb2xvci1zY2hlbWU6ZGFyayl7Ym9keXtjb2xvcjojZmZmO2JhY2tncm91bmQ6IzAwMH0ubmV4dC1lcnJvci1oMXtib3JkZXItcmlnaHQ6MXB4IHNvbGlkIHJnYmEoMjU1LDI1NSwyNTUsLjMpfX1gLFxuICAgICAgICAgICAgfX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJuZXh0LWVycm9yLWgxXCIgc3R5bGU9e3N0eWxlcy5oMX0+XG4gICAgICAgICAgICB7c3RhdHVzfVxuICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgPGRpdiBzdHlsZT17c3R5bGVzLmRlc2N9PlxuICAgICAgICAgICAgPGgyIHN0eWxlPXtzdHlsZXMuaDJ9PnttZXNzYWdlfTwvaDI+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJIVFRQQWNjZXNzRXJyb3JGYWxsYmFjayIsInN0YXR1cyIsIm1lc3NhZ2UiLCJ0aXRsZSIsImRpdiIsInN0eWxlIiwic3R5bGVzIiwiZXJyb3IiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImgxIiwiY2xhc3NOYW1lIiwiZGVzYyIsImgyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-fallback.js\n"));
+
+/***/ }),
+
+/***/ "(app-pages-browser)/./node_modules/next/dist/client/components/styles/access-error-styles.js":
+/*!********************************************************************************!*\
+ !*** ./node_modules/next/dist/client/components/styles/access-error-styles.js ***!
+ \********************************************************************************/
+/***/ ((module, exports, __webpack_require__) => {
+
+"use strict";
+eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"styles\", ({\n enumerable: true,\n get: function() {\n return styles;\n }\n}));\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: '100vh',\n textAlign: 'center',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n },\n desc: {\n display: 'inline-block'\n },\n h1: {\n display: 'inline-block',\n margin: '0 20px 0 0',\n padding: '0 23px 0 0',\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: 'top',\n lineHeight: '49px'\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: '49px',\n margin: 0\n }\n};\nif ((typeof exports.default === 'function' || typeof exports.default === 'object' && exports.default !== null) && typeof exports.default.__esModule === 'undefined') {\n Object.defineProperty(exports.default, '__esModule', {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=access-error-styles.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvc3R5bGVzL2FjY2Vzcy1lcnJvci1zdHlsZXMuanMiLCJtYXBwaW5ncyI6Ijs7OzswQ0FBYUE7OztlQUFBQTs7O0FBQU4sTUFBTUEsU0FBOEM7SUFDekRDLE9BQU87UUFDTCwwRkFBMEY7UUFDMUZDLFlBQ0U7UUFDRkMsUUFBUTtRQUNSQyxXQUFXO1FBQ1hDLFNBQVM7UUFDVEMsZUFBZTtRQUNmQyxZQUFZO1FBQ1pDLGdCQUFnQjtJQUNsQjtJQUVBQyxNQUFNO1FBQ0pKLFNBQVM7SUFDWDtJQUVBSyxJQUFJO1FBQ0ZMLFNBQVM7UUFDVE0sUUFBUTtRQUNSQyxTQUFTO1FBQ1RDLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxlQUFlO1FBQ2ZDLFlBQVk7SUFDZDtJQUVBQyxJQUFJO1FBQ0ZKLFVBQVU7UUFDVkMsWUFBWTtRQUNaRSxZQUFZO1FBQ1pMLFFBQVE7SUFDVjtBQUNGIiwic291cmNlcyI6WyIvaG9tZS9zcmMvY2xpZW50L2NvbXBvbmVudHMvc3R5bGVzL2FjY2Vzcy1lcnJvci1zdHlsZXMudHMiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IHN0eWxlczogUmVjb3JkPHN0cmluZywgUmVhY3QuQ1NTUHJvcGVydGllcz4gPSB7XG4gIGVycm9yOiB7XG4gICAgLy8gaHR0cHM6Ly9naXRodWIuY29tL3NpbmRyZXNvcmh1cy9tb2Rlcm4tbm9ybWFsaXplL2Jsb2IvbWFpbi9tb2Rlcm4tbm9ybWFsaXplLmNzcyNMMzgtTDUyXG4gICAgZm9udEZhbWlseTpcbiAgICAgICdzeXN0ZW0tdWksXCJTZWdvZSBVSVwiLFJvYm90byxIZWx2ZXRpY2EsQXJpYWwsc2Fucy1zZXJpZixcIkFwcGxlIENvbG9yIEVtb2ppXCIsXCJTZWdvZSBVSSBFbW9qaVwiJyxcbiAgICBoZWlnaHQ6ICcxMDB2aCcsXG4gICAgdGV4dEFsaWduOiAnY2VudGVyJyxcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgZmxleERpcmVjdGlvbjogJ2NvbHVtbicsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICB9LFxuXG4gIGRlc2M6IHtcbiAgICBkaXNwbGF5OiAnaW5saW5lLWJsb2NrJyxcbiAgfSxcblxuICBoMToge1xuICAgIGRpc3BsYXk6ICdpbmxpbmUtYmxvY2snLFxuICAgIG1hcmdpbjogJzAgMjBweCAwIDAnLFxuICAgIHBhZGRpbmc6ICcwIDIzcHggMCAwJyxcbiAgICBmb250U2l6ZTogMjQsXG4gICAgZm9udFdlaWdodDogNTAwLFxuICAgIHZlcnRpY2FsQWxpZ246ICd0b3AnLFxuICAgIGxpbmVIZWlnaHQ6ICc0OXB4JyxcbiAgfSxcblxuICBoMjoge1xuICAgIGZvbnRTaXplOiAxNCxcbiAgICBmb250V2VpZ2h0OiA0MDAsXG4gICAgbGluZUhlaWdodDogJzQ5cHgnLFxuICAgIG1hcmdpbjogMCxcbiAgfSxcbn1cbiJdLCJuYW1lcyI6WyJzdHlsZXMiLCJlcnJvciIsImZvbnRGYW1pbHkiLCJoZWlnaHQiLCJ0ZXh0QWxpZ24iLCJkaXNwbGF5IiwiZmxleERpcmVjdGlvbiIsImFsaWduSXRlbXMiLCJqdXN0aWZ5Q29udGVudCIsImRlc2MiLCJoMSIsIm1hcmdpbiIsInBhZGRpbmciLCJmb250U2l6ZSIsImZvbnRXZWlnaHQiLCJ2ZXJ0aWNhbEFsaWduIiwibGluZUhlaWdodCIsImgyIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/styles/access-error-styles.js\n"));
+
+/***/ })
+
+},
+/******/ __webpack_require__ => { // webpackRuntimeModules
+/******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId))
+/******/ __webpack_require__.O(0, ["main-app"], () => (__webpack_exec__("(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-not-found.js&page=%2F_not-found%2Fpage!")));
+/******/ var __webpack_exports__ = __webpack_require__.O();
+/******/ _N_E = __webpack_exports__;
+/******/ }
+]);
\ No newline at end of file
diff --git a/.next/static/chunks/webpack.js b/.next/static/chunks/webpack.js
index e994408..a527f27 100644
--- a/.next/static/chunks/webpack.js
+++ b/.next/static/chunks/webpack.js
@@ -182,7 +182,7 @@
/******/
/******/ /* webpack/runtime/getFullHash */
/******/ (() => {
-/******/ __webpack_require__.h = () => ("c90f0d07acc26f85")
+/******/ __webpack_require__.h = () => ("d104ab89ef21f863")
/******/ })();
/******/
/******/ /* webpack/runtime/global */
@@ -1401,5 +1401,5 @@
/******/
/******/ })()
-//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJpZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsid2VicGFjay1pbnRlcm5hbDovL25leHRqcy93ZWJwYWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgc291cmNlIHdhcyBnZW5lcmF0ZWQgYnkgTmV4dC5qcyBiYXNlZCBvZmYgb2YgdGhlIGdlbmVyYXRlZCBXZWJwYWNrIHJ1bnRpbWUuXG4vLyBUaGUgbWFwcGluZ3MgYXJlIGluY29ycmVjdC5cbi8vIFRvIGdldCB0aGUgY29ycmVjdCBsaW5lL2NvbHVtbiBtYXBwaW5ncywgdHVybiBvZmYgc291cmNlbWFwcyBpbiB5b3VyIGRlYnVnZ2VyLlxuXG4vKioqKioqLyAoKCkgPT4geyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdFwidXNlIHN0cmljdFwiO1xuLyoqKioqKi8gXHR2YXIgX193ZWJwYWNrX21vZHVsZXNfXyA9ICh7fSk7XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcbi8qKioqKiovIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbi8qKioqKiovIFx0XHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcbi8qKioqKiovIFx0XHRcdGlmIChjYWNoZWRNb2R1bGUuZXJyb3IgIT09IHVuZGVmaW5lZCkgdGhyb3cgY2FjaGVkTW9kdWxlLmVycm9yO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bG9hZGVkOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0dmFyIHRocmV3ID0gdHJ1ZTtcbi8qKioqKiovIFx0XHR0cnkge1xuLyoqKioqKi8gXHRcdFx0dmFyIGV4ZWNPcHRpb25zID0geyBpZDogbW9kdWxlSWQsIG1vZHVsZTogbW9kdWxlLCBmYWN0b3J5OiBfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXSwgcmVxdWlyZTogX193ZWJwYWNrX3JlcXVpcmVfXyB9O1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pLmZvckVhY2goZnVuY3Rpb24oaGFuZGxlcikgeyBoYW5kbGVyKGV4ZWNPcHRpb25zKTsgfSk7XG4vKioqKioqLyBcdFx0XHRtb2R1bGUgPSBleGVjT3B0aW9ucy5tb2R1bGU7XG4vKioqKioqLyBcdFx0XHRleGVjT3B0aW9ucy5mYWN0b3J5LmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIGV4ZWNPcHRpb25zLnJlcXVpcmUpO1xuLyoqKioqKi8gXHRcdFx0dGhyZXcgPSBmYWxzZTtcbi8qKioqKiovIFx0XHR9IGZpbmFsbHkge1xuLyoqKioqKi8gXHRcdFx0aWYodGhyZXcpIGRlbGV0ZSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfXztcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGV4ZWN1dGlvbiBpbnRlcmNlcHRvclxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBbXTtcbi8qKioqKiovIFx0XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvY2h1bmsgbG9hZGVkICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0dmFyIGRlZmVycmVkID0gW107XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5PID0gKHJlc3VsdCwgY2h1bmtJZHMsIGZuLCBwcmlvcml0eSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYoY2h1bmtJZHMpIHtcbi8qKioqKiovIFx0XHRcdFx0cHJpb3JpdHkgPSBwcmlvcml0eSB8fCAwO1xuLyoqKioqKi8gXHRcdFx0XHRmb3IodmFyIGkgPSBkZWZlcnJlZC5sZW5ndGg7IGkgPiAwICYmIGRlZmVycmVkW2kgLSAxXVsyXSA+IHByaW9yaXR5OyBpLS0pIGRlZmVycmVkW2ldID0gZGVmZXJyZWRbaSAtIDFdO1xuLyoqKioqKi8gXHRcdFx0XHRkZWZlcnJlZFtpXSA9IFtjaHVua0lkcywgZm4sIHByaW9yaXR5XTtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0dmFyIG5vdEZ1bGZpbGxlZCA9IEluZmluaXR5O1xuLyoqKioqKi8gXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZC5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgW2NodW5rSWRzLCBmbiwgcHJpb3JpdHldID0gZGVmZXJyZWRbaV07XG4vKioqKioqLyBcdFx0XHRcdHZhciBmdWxmaWxsZWQgPSB0cnVlO1xuLyoqKioqKi8gXHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGNodW5rSWRzLmxlbmd0aDsgaisrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKChwcmlvcml0eSAmIDEgPT09IDAgfHwgbm90RnVsZmlsbGVkID49IHByaW9yaXR5KSAmJiBPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLk8pLmV2ZXJ5KChrZXkpID0+IChfX3dlYnBhY2tfcmVxdWlyZV9fLk9ba2V5XShjaHVua0lkc1tqXSkpKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2h1bmtJZHMuc3BsaWNlKGotLSwgMSk7XG4vKioqKioqLyBcdFx0XHRcdFx0fSBlbHNlIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGZ1bGZpbGxlZCA9IGZhbHNlO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYocHJpb3JpdHkgPCBub3RGdWxmaWxsZWQpIG5vdEZ1bGZpbGxlZCA9IHByaW9yaXR5O1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRpZihmdWxmaWxsZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRkZWZlcnJlZC5zcGxpY2UoaS0tLCAxKVxuLyoqKioqKi8gXHRcdFx0XHRcdHZhciByID0gZm4oKTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAociAhPT0gdW5kZWZpbmVkKSByZXN1bHQgPSByO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gcmVzdWx0O1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4vKioqKioqLyBcdFx0XHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuLyoqKioqKi8gXHRcdFx0XHQoKSA9PiAobW9kdWxlKTtcbi8qKioqKiovIFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGdldHRlcjtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2NyZWF0ZSBmYWtlIG5hbWVzcGFjZSBvYmplY3QgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHR2YXIgZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YgPyAob2JqKSA9PiAoT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaikpIDogKG9iaikgPT4gKG9iai5fX3Byb3RvX18pO1xuLyoqKioqKi8gXHRcdHZhciBsZWFmUHJvdG90eXBlcztcbi8qKioqKiovIFx0XHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3Rcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3Rcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgMTY6IHJldHVybiB2YWx1ZSB3aGVuIGl0J3MgUHJvbWlzZS1saWtlXG4vKioqKioqLyBcdFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4vKioqKioqLyBcdFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSB0aGlzKHZhbHVlKTtcbi8qKioqKiovIFx0XHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4vKioqKioqLyBcdFx0XHRpZih0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmKChtb2RlICYgNCkgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuLyoqKioqKi8gXHRcdFx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbi8qKioqKiovIFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4vKioqKioqLyBcdFx0XHR2YXIgZGVmID0ge307XG4vKioqKioqLyBcdFx0XHRsZWFmUHJvdG90eXBlcyA9IGxlYWZQcm90b3R5cGVzIHx8IFtudWxsLCBnZXRQcm90byh7fSksIGdldFByb3RvKFtdKSwgZ2V0UHJvdG8oZ2V0UHJvdG8pXTtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuLyoqKioqKi8gXHRcdFx0XHRPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjdXJyZW50KS5mb3JFYWNoKChrZXkpID0+IChkZWZba2V5XSA9ICgpID0+ICh2YWx1ZVtrZXldKSkpO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBkZWYpO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIG5zO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcbi8qKioqKiovIFx0XHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZW5zdXJlIGNodW5rICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mID0ge307XG4vKioqKioqLyBcdFx0Ly8gVGhpcyBmaWxlIGNvbnRhaW5zIG9ubHkgdGhlIGVudHJ5IGNodW5rLlxuLyoqKioqKi8gXHRcdC8vIFRoZSBjaHVuayBsb2FkaW5nIGZ1bmN0aW9uIGZvciBhZGRpdGlvbmFsIGNodW5rc1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZSA9IChjaHVua0lkKSA9PiB7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoT2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5mKS5yZWR1Y2UoKHByb21pc2VzLCBrZXkpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mW2tleV0oY2h1bmtJZCwgcHJvbWlzZXMpO1xuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4gcHJvbWlzZXM7XG4vKioqKioqLyBcdFx0XHR9LCBbXSkpO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBUaGlzIGZ1bmN0aW9uIGFsbG93IHRvIHJlZmVyZW5jZSBhc3luYyBjaHVua3Ncbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgdXBkYXRlIGNodW5rIGZpbGVuYW1lICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0Ly8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYWxsIGNodW5rc1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uaHUgPSAoY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gXCJzdGF0aWMvd2VicGFjay9cIiArIGNodW5rSWQgKyBcIi5cIiArIF9fd2VicGFja19yZXF1aXJlX18uaCgpICsgXCIuaG90LXVwZGF0ZS5qc1wiO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZ2V0IG1pbmktY3NzIGNodW5rIGZpbGVuYW1lICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0Ly8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5taW5pQ3NzRiA9IChjaHVua0lkKSA9PiB7XG4vKioqKioqLyBcdFx0XHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcbi8qKioqKiovIFx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9nZXQgdXBkYXRlIG1hbmlmZXN0IGZpbGVuYW1lICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJGID0gKCkgPT4gKFwic3RhdGljL3dlYnBhY2svXCIgKyBfX3dlYnBhY2tfcmVxdWlyZV9fLmgoKSArIFwiLndlYnBhY2suaG90LXVwZGF0ZS5qc29uXCIpO1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2dldEZ1bGxIYXNoICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5oID0gKCkgPT4gKFwiYzkwZjBkMDdhY2MyNmY4NVwiKVxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2dsb2JhbCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcbi8qKioqKiovIFx0XHRcdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuLyoqKioqKi8gXHRcdFx0dHJ5IHtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG4vKioqKioqLyBcdFx0XHR9IGNhdGNoIChlKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHR9KSgpO1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSlcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9sb2FkIHNjcmlwdCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdHZhciBpblByb2dyZXNzID0ge307XG4vKioqKioqLyBcdFx0dmFyIGRhdGFXZWJwYWNrUHJlZml4ID0gXCJfTl9FOlwiO1xuLyoqKioqKi8gXHRcdC8vIGxvYWRTY3JpcHQgZnVuY3Rpb24gdG8gbG9hZCBhIHNjcmlwdCB2aWEgc2NyaXB0IHRhZ1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18ubCA9ICh1cmwsIGRvbmUsIGtleSwgY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYoaW5Qcm9ncmVzc1t1cmxdKSB7IGluUHJvZ3Jlc3NbdXJsXS5wdXNoKGRvbmUpOyByZXR1cm47IH1cbi8qKioqKiovIFx0XHRcdHZhciBzY3JpcHQsIG5lZWRBdHRhY2g7XG4vKioqKioqLyBcdFx0XHRpZihrZXkgIT09IHVuZGVmaW5lZCkge1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpO1xuLyoqKioqKi8gXHRcdFx0XHRmb3IodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBzID0gc2NyaXB0c1tpXTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZihzLmdldEF0dHJpYnV0ZShcInNyY1wiKSA9PSB1cmwgfHwgcy5nZXRBdHRyaWJ1dGUoXCJkYXRhLXdlYnBhY2tcIikgPT0gZGF0YVdlYnBhY2tQcmVmaXggKyBrZXkpIHsgc2NyaXB0ID0gczsgYnJlYWs7IH1cbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0aWYoIXNjcmlwdCkge1xuLyoqKioqKi8gXHRcdFx0XHRuZWVkQXR0YWNoID0gdHJ1ZTtcbi8qKioqKiovIFx0XHRcdFx0c2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdHNjcmlwdC5jaGFyc2V0ID0gJ3V0Zi04Jztcbi8qKioqKiovIFx0XHRcdFx0c2NyaXB0LnRpbWVvdXQgPSAxMjA7XG4vKioqKioqLyBcdFx0XHRcdGlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLm5jKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0c2NyaXB0LnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIF9fd2VicGFja19yZXF1aXJlX18ubmMpO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdHNjcmlwdC5zZXRBdHRyaWJ1dGUoXCJkYXRhLXdlYnBhY2tcIiwgZGF0YVdlYnBhY2tQcmVmaXggKyBrZXkpO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRzY3JpcHQuc3JjID0gX193ZWJwYWNrX3JlcXVpcmVfXy50dSh1cmwpO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0aW5Qcm9ncmVzc1t1cmxdID0gW2RvbmVdO1xuLyoqKioqKi8gXHRcdFx0dmFyIG9uU2NyaXB0Q29tcGxldGUgPSAocHJldiwgZXZlbnQpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0Ly8gYXZvaWQgbWVtIGxlYWtzIGluIElFLlxuLyoqKioqKi8gXHRcdFx0XHRzY3JpcHQub25lcnJvciA9IHNjcmlwdC5vbmxvYWQgPSBudWxsO1xuLyoqKioqKi8gXHRcdFx0XHRjbGVhclRpbWVvdXQodGltZW91dCk7XG4vKioqKioqLyBcdFx0XHRcdHZhciBkb25lRm5zID0gaW5Qcm9ncmVzc1t1cmxdO1xuLyoqKioqKi8gXHRcdFx0XHRkZWxldGUgaW5Qcm9ncmVzc1t1cmxdO1xuLyoqKioqKi8gXHRcdFx0XHRzY3JpcHQucGFyZW50Tm9kZSAmJiBzY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY3JpcHQpO1xuLyoqKioqKi8gXHRcdFx0XHRkb25lRm5zICYmIGRvbmVGbnMuZm9yRWFjaCgoZm4pID0+IChmbihldmVudCkpKTtcbi8qKioqKiovIFx0XHRcdFx0aWYocHJldikgcmV0dXJuIHByZXYoZXZlbnQpO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0dmFyIHRpbWVvdXQgPSBzZXRUaW1lb3V0KG9uU2NyaXB0Q29tcGxldGUuYmluZChudWxsLCB1bmRlZmluZWQsIHsgdHlwZTogJ3RpbWVvdXQnLCB0YXJnZXQ6IHNjcmlwdCB9KSwgMTIwMDAwKTtcbi8qKioqKiovIFx0XHRcdHNjcmlwdC5vbmVycm9yID0gb25TY3JpcHRDb21wbGV0ZS5iaW5kKG51bGwsIHNjcmlwdC5vbmVycm9yKTtcbi8qKioqKiovIFx0XHRcdHNjcmlwdC5vbmxvYWQgPSBvblNjcmlwdENvbXBsZXRlLmJpbmQobnVsbCwgc2NyaXB0Lm9ubG9hZCk7XG4vKioqKioqLyBcdFx0XHRuZWVkQXR0YWNoICYmIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4vKioqKioqLyBcdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL25vZGUgbW9kdWxlIGRlY29yYXRvciAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18ubm1kID0gKG1vZHVsZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0bW9kdWxlLnBhdGhzID0gW107XG4vKioqKioqLyBcdFx0XHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gbW9kdWxlO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvdHJ1c3RlZCB0eXBlcyBwb2xpY3kgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHR2YXIgcG9saWN5O1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18udHQgPSAoKSA9PiB7XG4vKioqKioqLyBcdFx0XHQvLyBDcmVhdGUgVHJ1c3RlZCBUeXBlIHBvbGljeSBpZiBUcnVzdGVkIFR5cGVzIGFyZSBhdmFpbGFibGUgYW5kIHRoZSBwb2xpY3kgZG9lc24ndCBleGlzdCB5ZXQuXG4vKioqKioqLyBcdFx0XHRpZiAocG9saWN5ID09PSB1bmRlZmluZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0cG9saWN5ID0ge1xuLyoqKioqKi8gXHRcdFx0XHRcdGNyZWF0ZVNjcmlwdDogKHNjcmlwdCkgPT4gKHNjcmlwdCksXG4vKioqKioqLyBcdFx0XHRcdFx0Y3JlYXRlU2NyaXB0VVJMOiAodXJsKSA9PiAodXJsKVxuLyoqKioqKi8gXHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHRpZiAodHlwZW9mIHRydXN0ZWRUeXBlcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KSB7XG4vKioqKioqLyBcdFx0XHRcdFx0cG9saWN5ID0gdHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeShcIm5leHRqcyNidW5kbGVyXCIsIHBvbGljeSk7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdHJldHVybiBwb2xpY3k7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS90cnVzdGVkIHR5cGVzIHNjcmlwdCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18udHMgPSAoc2NyaXB0KSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXy50dCgpLmNyZWF0ZVNjcmlwdChzY3JpcHQpKTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS90cnVzdGVkIHR5cGVzIHNjcmlwdCB1cmwgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnR1ID0gKHVybCkgPT4gKF9fd2VicGFja19yZXF1aXJlX18udHQoKS5jcmVhdGVTY3JpcHRVUkwodXJsKSk7XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvaG90IG1vZHVsZSByZXBsYWNlbWVudCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50TW9kdWxlRGF0YSA9IHt9O1xuLyoqKioqKi8gXHRcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0gX193ZWJwYWNrX3JlcXVpcmVfXy5jO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG1vZHVsZSBhbmQgcmVxdWlyZSBjcmVhdGlvblxuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50Q2hpbGRNb2R1bGU7XG4vKioqKioqLyBcdFx0dmFyIGN1cnJlbnRQYXJlbnRzID0gW107XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gc3RhdHVzXG4vKioqKioqLyBcdFx0dmFyIHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycyA9IFtdO1xuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50U3RhdHVzID0gXCJpZGxlXCI7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gd2hpbGUgZG93bmxvYWRpbmdcbi8qKioqKiovIFx0XHR2YXIgYmxvY2tpbmdQcm9taXNlcyA9IDA7XG4vKioqKioqLyBcdFx0dmFyIGJsb2NraW5nUHJvbWlzZXNXYWl0aW5nID0gW107XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gVGhlIHVwZGF0ZSBpbmZvXG4vKioqKioqLyBcdFx0dmFyIGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzO1xuLyoqKioqKi8gXHRcdHZhciBxdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXM7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJEID0gY3VycmVudE1vZHVsZURhdGE7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pLnB1c2goZnVuY3Rpb24gKG9wdGlvbnMpIHtcbi8qKioqKiovIFx0XHRcdHZhciBtb2R1bGUgPSBvcHRpb25zLm1vZHVsZTtcbi8qKioqKiovIFx0XHRcdHZhciByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShvcHRpb25zLnJlcXVpcmUsIG9wdGlvbnMuaWQpO1xuLyoqKioqKi8gXHRcdFx0bW9kdWxlLmhvdCA9IGNyZWF0ZU1vZHVsZUhvdE9iamVjdChvcHRpb25zLmlkLCBtb2R1bGUpO1xuLyoqKioqKi8gXHRcdFx0bW9kdWxlLnBhcmVudHMgPSBjdXJyZW50UGFyZW50cztcbi8qKioqKiovIFx0XHRcdG1vZHVsZS5jaGlsZHJlbiA9IFtdO1xuLyoqKioqKi8gXHRcdFx0Y3VycmVudFBhcmVudHMgPSBbXTtcbi8qKioqKiovIFx0XHRcdG9wdGlvbnMucmVxdWlyZSA9IHJlcXVpcmU7XG4vKioqKioqLyBcdFx0fSk7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJDID0ge307XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJJID0ge307XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0ZnVuY3Rpb24gY3JlYXRlUmVxdWlyZShyZXF1aXJlLCBtb2R1bGVJZCkge1xuLyoqKioqKi8gXHRcdFx0dmFyIG1lID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRpZiAoIW1lKSByZXR1cm4gcmVxdWlyZTtcbi8qKioqKiovIFx0XHRcdHZhciBmbiA9IGZ1bmN0aW9uIChyZXF1ZXN0KSB7XG4vKioqKioqLyBcdFx0XHRcdGlmIChtZS5ob3QuYWN0aXZlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKGluc3RhbGxlZE1vZHVsZXNbcmVxdWVzdF0pIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBwYXJlbnRzID0gaW5zdGFsbGVkTW9kdWxlc1tyZXF1ZXN0XS5wYXJlbnRzO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKHBhcmVudHMuaW5kZXhPZihtb2R1bGVJZCkgPT09IC0xKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHBhcmVudHMucHVzaChtb2R1bGVJZCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0fSBlbHNlIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRQYXJlbnRzID0gW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRDaGlsZE1vZHVsZSA9IHJlcXVlc3Q7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChtZS5jaGlsZHJlbi5pbmRleE9mKHJlcXVlc3QpID09PSAtMSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0bWUuY2hpbGRyZW4ucHVzaChyZXF1ZXN0KTtcbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y29uc29sZS53YXJuKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XCJbSE1SXSB1bmV4cGVjdGVkIHJlcXVpcmUoXCIgK1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRyZXF1ZXN0ICtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XCIpIGZyb20gZGlzcG9zZWQgbW9kdWxlIFwiICtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0bW9kdWxlSWRcbi8qKioqKiovIFx0XHRcdFx0XHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdGN1cnJlbnRQYXJlbnRzID0gW107XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHJlcXVpcmUocmVxdWVzdCk7XG4vKioqKioqLyBcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0dmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IGZ1bmN0aW9uIChuYW1lKSB7XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuLyoqKioqKi8gXHRcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4vKioqKioqLyBcdFx0XHRcdFx0Z2V0OiBmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXR1cm4gcmVxdWlyZVtuYW1lXTtcbi8qKioqKiovIFx0XHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRcdHNldDogZnVuY3Rpb24gKHZhbHVlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXF1aXJlW25hbWVdID0gdmFsdWU7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0fTtcbi8qKioqKiovIFx0XHRcdGZvciAodmFyIG5hbWUgaW4gcmVxdWlyZSkge1xuLyoqKioqKi8gXHRcdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlcXVpcmUsIG5hbWUpICYmIG5hbWUgIT09IFwiZVwiKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGZuLCBuYW1lLCBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IobmFtZSkpO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRmbi5lID0gZnVuY3Rpb24gKGNodW5rSWQsIGZldGNoUHJpb3JpdHkpIHtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHRyYWNrQmxvY2tpbmdQcm9taXNlKHJlcXVpcmUuZShjaHVua0lkLCBmZXRjaFByaW9yaXR5KSk7XG4vKioqKioqLyBcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGZuO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRmdW5jdGlvbiBjcmVhdGVNb2R1bGVIb3RPYmplY3QobW9kdWxlSWQsIG1lKSB7XG4vKioqKioqLyBcdFx0XHR2YXIgX21haW4gPSBjdXJyZW50Q2hpbGRNb2R1bGUgIT09IG1vZHVsZUlkO1xuLyoqKioqKi8gXHRcdFx0dmFyIGhvdCA9IHtcbi8qKioqKiovIFx0XHRcdFx0Ly8gcHJpdmF0ZSBzdHVmZlxuLyoqKioqKi8gXHRcdFx0XHRfYWNjZXB0ZWREZXBlbmRlbmNpZXM6IHt9LFxuLyoqKioqKi8gXHRcdFx0XHRfYWNjZXB0ZWRFcnJvckhhbmRsZXJzOiB7fSxcbi8qKioqKiovIFx0XHRcdFx0X2RlY2xpbmVkRGVwZW5kZW5jaWVzOiB7fSxcbi8qKioqKiovIFx0XHRcdFx0X3NlbGZBY2NlcHRlZDogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRcdF9zZWxmRGVjbGluZWQ6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0XHRfc2VsZkludmFsaWRhdGVkOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdFx0X2Rpc3Bvc2VIYW5kbGVyczogW10sXG4vKioqKioqLyBcdFx0XHRcdF9tYWluOiBfbWFpbixcbi8qKioqKiovIFx0XHRcdFx0X3JlcXVpcmVTZWxmOiBmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y3VycmVudFBhcmVudHMgPSBtZS5wYXJlbnRzLnNsaWNlKCk7XG4vKioqKioqLyBcdFx0XHRcdFx0Y3VycmVudENoaWxkTW9kdWxlID0gX21haW4gPyB1bmRlZmluZWQgOiBtb2R1bGVJZDtcbi8qKioqKiovIFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKTtcbi8qKioqKiovIFx0XHRcdFx0fSxcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0Ly8gTW9kdWxlIEFQSVxuLyoqKioqKi8gXHRcdFx0XHRhY3RpdmU6IHRydWUsXG4vKioqKioqLyBcdFx0XHRcdGFjY2VwdDogZnVuY3Rpb24gKGRlcCwgY2FsbGJhY2ssIGVycm9ySGFuZGxlcikge1xuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChkZXAgPT09IHVuZGVmaW5lZCkgaG90Ll9zZWxmQWNjZXB0ZWQgPSB0cnVlO1xuLyoqKioqKi8gXHRcdFx0XHRcdGVsc2UgaWYgKHR5cGVvZiBkZXAgPT09IFwiZnVuY3Rpb25cIikgaG90Ll9zZWxmQWNjZXB0ZWQgPSBkZXA7XG4vKioqKioqLyBcdFx0XHRcdFx0ZWxzZSBpZiAodHlwZW9mIGRlcCA9PT0gXCJvYmplY3RcIiAmJiBkZXAgIT09IG51bGwpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgZGVwLmxlbmd0aDsgaSsrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGhvdC5fYWNjZXB0ZWREZXBlbmRlbmNpZXNbZGVwW2ldXSA9IGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9O1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRob3QuX2FjY2VwdGVkRXJyb3JIYW5kbGVyc1tkZXBbaV1dID0gZXJyb3JIYW5kbGVyO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRob3QuX2FjY2VwdGVkRGVwZW5kZW5jaWVzW2RlcF0gPSBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGhvdC5fYWNjZXB0ZWRFcnJvckhhbmRsZXJzW2RlcF0gPSBlcnJvckhhbmRsZXI7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRkZWNsaW5lOiBmdW5jdGlvbiAoZGVwKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKGRlcCA9PT0gdW5kZWZpbmVkKSBob3QuX3NlbGZEZWNsaW5lZCA9IHRydWU7XG4vKioqKioqLyBcdFx0XHRcdFx0ZWxzZSBpZiAodHlwZW9mIGRlcCA9PT0gXCJvYmplY3RcIiAmJiBkZXAgIT09IG51bGwpXG4vKioqKioqLyBcdFx0XHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGRlcC5sZW5ndGg7IGkrKylcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aG90Ll9kZWNsaW5lZERlcGVuZGVuY2llc1tkZXBbaV1dID0gdHJ1ZTtcbi8qKioqKiovIFx0XHRcdFx0XHRlbHNlIGhvdC5fZGVjbGluZWREZXBlbmRlbmNpZXNbZGVwXSA9IHRydWU7XG4vKioqKioqLyBcdFx0XHRcdH0sXG4vKioqKioqLyBcdFx0XHRcdGRpc3Bvc2U6IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuLyoqKioqKi8gXHRcdFx0XHRcdGhvdC5fZGlzcG9zZUhhbmRsZXJzLnB1c2goY2FsbGJhY2spO1xuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRhZGREaXNwb3NlSGFuZGxlcjogZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aG90Ll9kaXNwb3NlSGFuZGxlcnMucHVzaChjYWxsYmFjayk7XG4vKioqKioqLyBcdFx0XHRcdH0sXG4vKioqKioqLyBcdFx0XHRcdHJlbW92ZURpc3Bvc2VIYW5kbGVyOiBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgaWR4ID0gaG90Ll9kaXNwb3NlSGFuZGxlcnMuaW5kZXhPZihjYWxsYmFjayk7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKGlkeCA+PSAwKSBob3QuX2Rpc3Bvc2VIYW5kbGVycy5zcGxpY2UoaWR4LCAxKTtcbi8qKioqKiovIFx0XHRcdFx0fSxcbi8qKioqKiovIFx0XHRcdFx0aW52YWxpZGF0ZTogZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHRoaXMuX3NlbGZJbnZhbGlkYXRlZCA9IHRydWU7XG4vKioqKioqLyBcdFx0XHRcdFx0c3dpdGNoIChjdXJyZW50U3RhdHVzKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwiaWRsZVwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVycyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmhtckkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uaG1ySVtrZXldKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVyc1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRzZXRTdGF0dXMoXCJyZWFkeVwiKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwicmVhZHlcIjpcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0T2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5obXJJKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmhtcklba2V5XShcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0Y3VycmVudFVwZGF0ZUFwcGx5SGFuZGxlcnNcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwicHJlcGFyZVwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2FzZSBcImNoZWNrXCI6XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwiZGlzcG9zZVwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2FzZSBcImFwcGx5XCI6XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdChxdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXMgPSBxdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXMgfHwgW10pLnB1c2goXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWRcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRkZWZhdWx0OlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHQvLyBpZ25vcmUgcmVxdWVzdHMgaW4gZXJyb3Igc3RhdGVzXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGJyZWFrO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0fSxcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0Ly8gTWFuYWdlbWVudCBBUElcbi8qKioqKiovIFx0XHRcdFx0Y2hlY2s6IGhvdENoZWNrLFxuLyoqKioqKi8gXHRcdFx0XHRhcHBseTogaG90QXBwbHksXG4vKioqKioqLyBcdFx0XHRcdHN0YXR1czogZnVuY3Rpb24gKGwpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoIWwpIHJldHVybiBjdXJyZW50U3RhdHVzO1xuLyoqKioqKi8gXHRcdFx0XHRcdHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycy5wdXNoKGwpO1xuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRhZGRTdGF0dXNIYW5kbGVyOiBmdW5jdGlvbiAobCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycy5wdXNoKGwpO1xuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRyZW1vdmVTdGF0dXNIYW5kbGVyOiBmdW5jdGlvbiAobCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBpZHggPSByZWdpc3RlcmVkU3RhdHVzSGFuZGxlcnMuaW5kZXhPZihsKTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoaWR4ID49IDApIHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycy5zcGxpY2UoaWR4LCAxKTtcbi8qKioqKiovIFx0XHRcdFx0fSxcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0Ly8gaW5oZXJpdCBmcm9tIHByZXZpb3VzIGRpc3Bvc2UgY2FsbFxuLyoqKioqKi8gXHRcdFx0XHRkYXRhOiBjdXJyZW50TW9kdWxlRGF0YVttb2R1bGVJZF1cbi8qKioqKiovIFx0XHRcdH07XG4vKioqKioqLyBcdFx0XHRjdXJyZW50Q2hpbGRNb2R1bGUgPSB1bmRlZmluZWQ7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gaG90O1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRmdW5jdGlvbiBzZXRTdGF0dXMobmV3U3RhdHVzKSB7XG4vKioqKioqLyBcdFx0XHRjdXJyZW50U3RhdHVzID0gbmV3U3RhdHVzO1xuLyoqKioqKi8gXHRcdFx0dmFyIHJlc3VsdHMgPSBbXTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgcmVnaXN0ZXJlZFN0YXR1c0hhbmRsZXJzLmxlbmd0aDsgaSsrKVxuLyoqKioqKi8gXHRcdFx0XHRyZXN1bHRzW2ldID0gcmVnaXN0ZXJlZFN0YXR1c0hhbmRsZXJzW2ldLmNhbGwobnVsbCwgbmV3U3RhdHVzKTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChyZXN1bHRzKS50aGVuKGZ1bmN0aW9uICgpIHt9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0ZnVuY3Rpb24gdW5ibG9jaygpIHtcbi8qKioqKiovIFx0XHRcdGlmICgtLWJsb2NraW5nUHJvbWlzZXMgPT09IDApIHtcbi8qKioqKiovIFx0XHRcdFx0c2V0U3RhdHVzKFwicmVhZHlcIikudGhlbihmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKGJsb2NraW5nUHJvbWlzZXMgPT09IDApIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBsaXN0ID0gYmxvY2tpbmdQcm9taXNlc1dhaXRpbmc7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRibG9ja2luZ1Byb21pc2VzV2FpdGluZyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGxpc3RbaV0oKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRmdW5jdGlvbiB0cmFja0Jsb2NraW5nUHJvbWlzZShwcm9taXNlKSB7XG4vKioqKioqLyBcdFx0XHRzd2l0Y2ggKGN1cnJlbnRTdGF0dXMpIHtcbi8qKioqKiovIFx0XHRcdFx0Y2FzZSBcInJlYWR5XCI6XG4vKioqKioqLyBcdFx0XHRcdFx0c2V0U3RhdHVzKFwicHJlcGFyZVwiKTtcbi8qKioqKiovIFx0XHRcdFx0LyogZmFsbHRocm91Z2ggKi9cbi8qKioqKiovIFx0XHRcdFx0Y2FzZSBcInByZXBhcmVcIjpcbi8qKioqKiovIFx0XHRcdFx0XHRibG9ja2luZ1Byb21pc2VzKys7XG4vKioqKioqLyBcdFx0XHRcdFx0cHJvbWlzZS50aGVuKHVuYmxvY2ssIHVuYmxvY2spO1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBwcm9taXNlO1xuLyoqKioqKi8gXHRcdFx0XHRkZWZhdWx0OlxuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBwcm9taXNlO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRmdW5jdGlvbiB3YWl0Rm9yQmxvY2tpbmdQcm9taXNlcyhmbikge1xuLyoqKioqKi8gXHRcdFx0aWYgKGJsb2NraW5nUHJvbWlzZXMgPT09IDApIHJldHVybiBmbigpO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4vKioqKioqLyBcdFx0XHRcdGJsb2NraW5nUHJvbWlzZXNXYWl0aW5nLnB1c2goZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJlc29sdmUoZm4oKSk7XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdGZ1bmN0aW9uIGhvdENoZWNrKGFwcGx5T25VcGRhdGUpIHtcbi8qKioqKiovIFx0XHRcdGlmIChjdXJyZW50U3RhdHVzICE9PSBcImlkbGVcIikge1xuLyoqKioqKi8gXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJjaGVjaygpIGlzIG9ubHkgYWxsb3dlZCBpbiBpZGxlIHN0YXR1c1wiKTtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdHJldHVybiBzZXRTdGF0dXMoXCJjaGVja1wiKVxuLyoqKioqKi8gXHRcdFx0XHQudGhlbihfX3dlYnBhY2tfcmVxdWlyZV9fLmhtck0pXG4vKioqKioqLyBcdFx0XHRcdC50aGVuKGZ1bmN0aW9uICh1cGRhdGUpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoIXVwZGF0ZSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmV0dXJuIHNldFN0YXR1cyhhcHBseUludmFsaWRhdGVkTW9kdWxlcygpID8gXCJyZWFkeVwiIDogXCJpZGxlXCIpLnRoZW4oXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGZ1bmN0aW9uICgpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0cmV0dXJuIHNldFN0YXR1cyhcInByZXBhcmVcIikudGhlbihmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR2YXIgdXBkYXRlZE1vZHVsZXMgPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzID0gW107XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uaG1yQykucmVkdWNlKGZ1bmN0aW9uIChcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRwcm9taXNlcyxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRrZXlcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0KSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJDW2tleV0oXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR1cGRhdGUuYyxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdHVwZGF0ZS5yLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0dXBkYXRlLm0sXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRwcm9taXNlcyxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0dXBkYXRlZE1vZHVsZXNcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdHJldHVybiBwcm9taXNlcztcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fSwgW10pXG4vKioqKioqLyBcdFx0XHRcdFx0XHQpLnRoZW4oZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRyZXR1cm4gd2FpdEZvckJsb2NraW5nUHJvbWlzZXMoZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGlmIChhcHBseU9uVXBkYXRlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gaW50ZXJuYWxBcHBseShhcHBseU9uVXBkYXRlKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHNldFN0YXR1cyhcInJlYWR5XCIpLnRoZW4oZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHVwZGF0ZWRNb2R1bGVzO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0ZnVuY3Rpb24gaG90QXBwbHkob3B0aW9ucykge1xuLyoqKioqKi8gXHRcdFx0aWYgKGN1cnJlbnRTdGF0dXMgIT09IFwicmVhZHlcIikge1xuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XCJhcHBseSgpIGlzIG9ubHkgYWxsb3dlZCBpbiByZWFkeSBzdGF0dXMgKHN0YXRlOiBcIiArXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGN1cnJlbnRTdGF0dXMgK1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcIilcIlxuLyoqKioqKi8gXHRcdFx0XHRcdCk7XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGludGVybmFsQXBwbHkob3B0aW9ucyk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdGZ1bmN0aW9uIGludGVybmFsQXBwbHkob3B0aW9ucykge1xuLyoqKioqKi8gXHRcdFx0b3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRhcHBseUludmFsaWRhdGVkTW9kdWxlcygpO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0dmFyIHJlc3VsdHMgPSBjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVycy5tYXAoZnVuY3Rpb24gKGhhbmRsZXIpIHtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIGhhbmRsZXIob3B0aW9ucyk7XG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzID0gdW5kZWZpbmVkO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0dmFyIGVycm9ycyA9IHJlc3VsdHNcbi8qKioqKiovIFx0XHRcdFx0Lm1hcChmdW5jdGlvbiAocikge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiByLmVycm9yO1xuLyoqKioqKi8gXHRcdFx0XHR9KVxuLyoqKioqKi8gXHRcdFx0XHQuZmlsdGVyKEJvb2xlYW4pO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0aWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiBzZXRTdGF0dXMoXCJhYm9ydFwiKS50aGVuKGZ1bmN0aW9uICgpIHtcbi8qKioqKiovIFx0XHRcdFx0XHR0aHJvdyBlcnJvcnNbMF07XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0Ly8gTm93IGluIFwiZGlzcG9zZVwiIHBoYXNlXG4vKioqKioqLyBcdFx0XHR2YXIgZGlzcG9zZVByb21pc2UgPSBzZXRTdGF0dXMoXCJkaXNwb3NlXCIpO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0cmVzdWx0cy5mb3JFYWNoKGZ1bmN0aW9uIChyZXN1bHQpIHtcbi8qKioqKiovIFx0XHRcdFx0aWYgKHJlc3VsdC5kaXNwb3NlKSByZXN1bHQuZGlzcG9zZSgpO1xuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHQvLyBOb3cgaW4gXCJhcHBseVwiIHBoYXNlXG4vKioqKioqLyBcdFx0XHR2YXIgYXBwbHlQcm9taXNlID0gc2V0U3RhdHVzKFwiYXBwbHlcIik7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHR2YXIgZXJyb3I7XG4vKioqKioqLyBcdFx0XHR2YXIgcmVwb3J0RXJyb3IgPSBmdW5jdGlvbiAoZXJyKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmICghZXJyb3IpIGVycm9yID0gZXJyO1xuLyoqKioqKi8gXHRcdFx0fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdHZhciBvdXRkYXRlZE1vZHVsZXMgPSBbXTtcbi8qKioqKiovIFx0XHRcdHJlc3VsdHMuZm9yRWFjaChmdW5jdGlvbiAocmVzdWx0KSB7XG4vKioqKioqLyBcdFx0XHRcdGlmIChyZXN1bHQuYXBwbHkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgbW9kdWxlcyA9IHJlc3VsdC5hcHBseShyZXBvcnRFcnJvcik7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKG1vZHVsZXMpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgbW9kdWxlcy5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRvdXRkYXRlZE1vZHVsZXMucHVzaChtb2R1bGVzW2ldKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIFByb21pc2UuYWxsKFtkaXNwb3NlUHJvbWlzZSwgYXBwbHlQcm9taXNlXSkudGhlbihmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdC8vIGhhbmRsZSBlcnJvcnMgaW4gYWNjZXB0IGhhbmRsZXJzIGFuZCBzZWxmIGFjY2VwdGVkIG1vZHVsZSBsb2FkXG4vKioqKioqLyBcdFx0XHRcdGlmIChlcnJvcikge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBzZXRTdGF0dXMoXCJmYWlsXCIpLnRoZW4oZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dGhyb3cgZXJyb3I7XG4vKioqKioqLyBcdFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0aWYgKHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcykge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBpbnRlcm5hbEFwcGx5KG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24gKGxpc3QpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdG91dGRhdGVkTW9kdWxlcy5mb3JFYWNoKGZ1bmN0aW9uIChtb2R1bGVJZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAobGlzdC5pbmRleE9mKG1vZHVsZUlkKSA8IDApIGxpc3QucHVzaChtb2R1bGVJZCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHJldHVybiBsaXN0O1xuLyoqKioqKi8gXHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiBzZXRTdGF0dXMoXCJpZGxlXCIpLnRoZW4oZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBvdXRkYXRlZE1vZHVsZXM7XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdGZ1bmN0aW9uIGFwcGx5SW52YWxpZGF0ZWRNb2R1bGVzKCkge1xuLyoqKioqKi8gXHRcdFx0aWYgKHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcykge1xuLyoqKioqKi8gXHRcdFx0XHRpZiAoIWN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzKSBjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVycyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0XHRPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmhtckkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcy5mb3JFYWNoKGZ1bmN0aW9uIChtb2R1bGVJZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJJW2tleV0oXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVyc1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcyA9IHVuZGVmaW5lZDtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHRydWU7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL3B1YmxpY1BhdGggKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9fbmV4dC9cIjtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9yZWFjdCByZWZyZXNoICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0aWYgKF9fd2VicGFja19yZXF1aXJlX18uaSkge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uaS5wdXNoKChvcHRpb25zKSA9PiB7XG4vKioqKioqLyBcdFx0XHRjb25zdCBvcmlnaW5hbEZhY3RvcnkgPSBvcHRpb25zLmZhY3Rvcnk7XG4vKioqKioqLyBcdFx0XHRvcHRpb25zLmZhY3RvcnkgPSAobW9kdWxlT2JqZWN0LCBtb2R1bGVFeHBvcnRzLCB3ZWJwYWNrUmVxdWlyZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHRjb25zdCBoYXNSZWZyZXNoID0gdHlwZW9mIHNlbGYgIT09IFwidW5kZWZpbmVkXCIgJiYgISFzZWxmLiRSZWZyZXNoSW50ZXJjZXB0TW9kdWxlRXhlY3V0aW9uJDtcbi8qKioqKiovIFx0XHRcdFx0Y29uc3QgY2xlYW51cCA9IGhhc1JlZnJlc2ggPyBzZWxmLiRSZWZyZXNoSW50ZXJjZXB0TW9kdWxlRXhlY3V0aW9uJChtb2R1bGVPYmplY3QuaWQpIDogKCkgPT4ge307XG4vKioqKioqLyBcdFx0XHRcdHRyeSB7XG4vKioqKioqLyBcdFx0XHRcdFx0b3JpZ2luYWxGYWN0b3J5LmNhbGwodGhpcywgbW9kdWxlT2JqZWN0LCBtb2R1bGVFeHBvcnRzLCB3ZWJwYWNrUmVxdWlyZSk7XG4vKioqKioqLyBcdFx0XHRcdH0gZmluYWxseSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y2xlYW51cCgpO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0fSlcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvY29tcGF0ICovXG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gbm9vcCBmbnMgdG8gcHJldmVudCBydW50aW1lIGVycm9ycyBkdXJpbmcgaW5pdGlhbGl6YXRpb25cbi8qKioqKiovIFx0aWYgKHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiKSB7XG4vKioqKioqLyBcdFx0c2VsZi4kUmVmcmVzaFJlZyQgPSBmdW5jdGlvbiAoKSB7fTtcbi8qKioqKiovIFx0XHRzZWxmLiRSZWZyZXNoU2lnJCA9IGZ1bmN0aW9uICgpIHtcbi8qKioqKiovIFx0XHRcdHJldHVybiBmdW5jdGlvbiAodHlwZSkge1xuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4gdHlwZTtcbi8qKioqKiovIFx0XHRcdH07XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fVxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2NzcyBsb2FkaW5nICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0dmFyIGNyZWF0ZVN0eWxlc2hlZXQgPSAoY2h1bmtJZCwgZnVsbGhyZWYsIHJlc29sdmUsIHJlamVjdCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0dmFyIGxpbmtUYWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdGxpbmtUYWcucmVsID0gXCJzdHlsZXNoZWV0XCI7XG4vKioqKioqLyBcdFx0XHRsaW5rVGFnLnR5cGUgPSBcInRleHQvY3NzXCI7XG4vKioqKioqLyBcdFx0XHR2YXIgb25MaW5rQ29tcGxldGUgPSAoZXZlbnQpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0Ly8gYXZvaWQgbWVtIGxlYWtzLlxuLyoqKioqKi8gXHRcdFx0XHRsaW5rVGFnLm9uZXJyb3IgPSBsaW5rVGFnLm9ubG9hZCA9IG51bGw7XG4vKioqKioqLyBcdFx0XHRcdGlmIChldmVudC50eXBlID09PSAnbG9hZCcpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRyZXNvbHZlKCk7XG4vKioqKioqLyBcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIGVycm9yVHlwZSA9IGV2ZW50ICYmIChldmVudC50eXBlID09PSAnbG9hZCcgPyAnbWlzc2luZycgOiBldmVudC50eXBlKTtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgcmVhbEhyZWYgPSBldmVudCAmJiBldmVudC50YXJnZXQgJiYgZXZlbnQudGFyZ2V0LmhyZWYgfHwgZnVsbGhyZWY7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIGVyciA9IG5ldyBFcnJvcihcIkxvYWRpbmcgQ1NTIGNodW5rIFwiICsgY2h1bmtJZCArIFwiIGZhaWxlZC5cXG4oXCIgKyByZWFsSHJlZiArIFwiKVwiKTtcbi8qKioqKiovIFx0XHRcdFx0XHRlcnIuY29kZSA9IFwiQ1NTX0NIVU5LX0xPQURfRkFJTEVEXCI7XG4vKioqKioqLyBcdFx0XHRcdFx0ZXJyLnR5cGUgPSBlcnJvclR5cGU7XG4vKioqKioqLyBcdFx0XHRcdFx0ZXJyLnJlcXVlc3QgPSByZWFsSHJlZjtcbi8qKioqKiovIFx0XHRcdFx0XHRsaW5rVGFnLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobGlua1RhZylcbi8qKioqKiovIFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0bGlua1RhZy5vbmVycm9yID0gbGlua1RhZy5vbmxvYWQgPSBvbkxpbmtDb21wbGV0ZTtcbi8qKioqKiovIFx0XHRcdGxpbmtUYWcuaHJlZiA9IGZ1bGxocmVmO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0KGZ1bmN0aW9uKGxpbmtUYWcpIHtcbi8qKioqKiovIFx0XHRcdCAgICAgICAgICAgICAgICBpZiAodHlwZW9mIF9OX0VfU1RZTEVfTE9BRCA9PT0gJ2Z1bmN0aW9uJykge1xuLyoqKioqKi8gXHRcdFx0ICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGhyZWYsIG9ubG9hZCwgb25lcnJvciB9ID0gbGlua1RhZztcbi8qKioqKiovIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgX05fRV9TVFlMRV9MT0FEKGhyZWYuaW5kZXhPZih3aW5kb3cubG9jYXRpb24ub3JpZ2luKSA9PT0gMCA/IG5ldyBVUkwoaHJlZikucGF0aG5hbWUgOiBocmVmKS50aGVuKCgpPT5vbmxvYWQgPT0gbnVsbCA/IHZvaWQgMCA6IG9ubG9hZC5jYWxsKGxpbmtUYWcsIHtcbi8qKioqKiovIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbG9hZCdcbi8qKioqKiovIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIH0pLCAoKT0+b25lcnJvciA9PSBudWxsID8gdm9pZCAwIDogb25lcnJvci5jYWxsKGxpbmtUYWcsIHt9KSk7XG4vKioqKioqLyBcdFx0XHQgICAgICAgICAgICAgICAgfSBlbHNlIHtcbi8qKioqKiovIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rVGFnKTtcbi8qKioqKiovIFx0XHRcdCAgICAgICAgICAgICAgICB9XG4vKioqKioqLyBcdFx0XHQgICAgICAgICAgICB9KShsaW5rVGFnKVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGxpbmtUYWc7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XHR2YXIgZmluZFN0eWxlc2hlZXQgPSAoaHJlZiwgZnVsbGhyZWYpID0+IHtcbi8qKioqKiovIFx0XHRcdHZhciBleGlzdGluZ0xpbmtUYWdzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJsaW5rXCIpO1xuLyoqKioqKi8gXHRcdFx0Zm9yKHZhciBpID0gMDsgaSA8IGV4aXN0aW5nTGlua1RhZ3MubGVuZ3RoOyBpKyspIHtcbi8qKioqKiovIFx0XHRcdFx0dmFyIHRhZyA9IGV4aXN0aW5nTGlua1RhZ3NbaV07XG4vKioqKioqLyBcdFx0XHRcdHZhciBkYXRhSHJlZiA9IHRhZy5nZXRBdHRyaWJ1dGUoXCJkYXRhLWhyZWZcIikgfHwgdGFnLmdldEF0dHJpYnV0ZShcImhyZWZcIik7XG4vKioqKioqLyBcdFx0XHRcdGlmKHRhZy5yZWwgPT09IFwic3R5bGVzaGVldFwiICYmIChkYXRhSHJlZiA9PT0gaHJlZiB8fCBkYXRhSHJlZiA9PT0gZnVsbGhyZWYpKSByZXR1cm4gdGFnO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0dmFyIGV4aXN0aW5nU3R5bGVUYWdzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzdHlsZVwiKTtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIgaSA9IDA7IGkgPCBleGlzdGluZ1N0eWxlVGFncy5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgdGFnID0gZXhpc3RpbmdTdHlsZVRhZ3NbaV07XG4vKioqKioqLyBcdFx0XHRcdHZhciBkYXRhSHJlZiA9IHRhZy5nZXRBdHRyaWJ1dGUoXCJkYXRhLWhyZWZcIik7XG4vKioqKioqLyBcdFx0XHRcdGlmKGRhdGFIcmVmID09PSBocmVmIHx8IGRhdGFIcmVmID09PSBmdWxsaHJlZikgcmV0dXJuIHRhZztcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcdHZhciBsb2FkU3R5bGVzaGVldCA9IChjaHVua0lkKSA9PiB7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgaHJlZiA9IF9fd2VicGFja19yZXF1aXJlX18ubWluaUNzc0YoY2h1bmtJZCk7XG4vKioqKioqLyBcdFx0XHRcdHZhciBmdWxsaHJlZiA9IF9fd2VicGFja19yZXF1aXJlX18ucCArIGhyZWY7XG4vKioqKioqLyBcdFx0XHRcdGlmKGZpbmRTdHlsZXNoZWV0KGhyZWYsIGZ1bGxocmVmKSkgcmV0dXJuIHJlc29sdmUoKTtcbi8qKioqKiovIFx0XHRcdFx0Y3JlYXRlU3R5bGVzaGVldChjaHVua0lkLCBmdWxsaHJlZiwgcmVzb2x2ZSwgcmVqZWN0KTtcbi8qKioqKiovIFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBubyBjaHVuayBsb2FkaW5nXG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0dmFyIG9sZFRhZ3MgPSBbXTtcbi8qKioqKiovIFx0XHR2YXIgbmV3VGFncyA9IFtdO1xuLyoqKioqKi8gXHRcdHZhciBhcHBseUhhbmRsZXIgPSAob3B0aW9ucykgPT4ge1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIHsgZGlzcG9zZTogKCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHRmb3IodmFyIGkgPSAwOyBpIDwgb2xkVGFncy5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBvbGRUYWcgPSBvbGRUYWdzW2ldO1xuLyoqKioqKi8gXHRcdFx0XHRcdGlmKG9sZFRhZy5wYXJlbnROb2RlKSBvbGRUYWcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvbGRUYWcpO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdG9sZFRhZ3MubGVuZ3RoID0gMDtcbi8qKioqKiovIFx0XHRcdH0sIGFwcGx5OiAoKSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdGZvcih2YXIgaSA9IDA7IGkgPCBuZXdUYWdzLmxlbmd0aDsgaSsrKSBuZXdUYWdzW2ldLnJlbCA9IFwic3R5bGVzaGVldFwiO1xuLyoqKioqKi8gXHRcdFx0XHRuZXdUYWdzLmxlbmd0aCA9IDA7XG4vKioqKioqLyBcdFx0XHR9IH07XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uaG1yQy5taW5pQ3NzID0gKGNodW5rSWRzLCByZW1vdmVkQ2h1bmtzLCByZW1vdmVkTW9kdWxlcywgcHJvbWlzZXMsIGFwcGx5SGFuZGxlcnMsIHVwZGF0ZWRNb2R1bGVzTGlzdCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0YXBwbHlIYW5kbGVycy5wdXNoKGFwcGx5SGFuZGxlcik7XG4vKioqKioqLyBcdFx0XHRjaHVua0lkcy5mb3JFYWNoKChjaHVua0lkKSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdHZhciBocmVmID0gX193ZWJwYWNrX3JlcXVpcmVfXy5taW5pQ3NzRihjaHVua0lkKTtcbi8qKioqKiovIFx0XHRcdFx0dmFyIGZ1bGxocmVmID0gX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgaHJlZjtcbi8qKioqKiovIFx0XHRcdFx0dmFyIG9sZFRhZyA9IGZpbmRTdHlsZXNoZWV0KGhyZWYsIGZ1bGxocmVmKTtcbi8qKioqKiovIFx0XHRcdFx0aWYoIW9sZFRhZykgcmV0dXJuO1xuLyoqKioqKi8gXHRcdFx0XHRwcm9taXNlcy5wdXNoKG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgdGFnID0gY3JlYXRlU3R5bGVzaGVldChjaHVua0lkLCBmdWxsaHJlZiwgKCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dGFnLmFzID0gXCJzdHlsZVwiO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dGFnLnJlbCA9IFwicHJlbG9hZFwiO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmVzb2x2ZSgpO1xuLyoqKioqKi8gXHRcdFx0XHRcdH0sIHJlamVjdCk7XG4vKioqKioqLyBcdFx0XHRcdFx0b2xkVGFncy5wdXNoKG9sZFRhZyk7XG4vKioqKioqLyBcdFx0XHRcdFx0bmV3VGFncy5wdXNoKHRhZyk7XG4vKioqKioqLyBcdFx0XHRcdH0pKTtcbi8qKioqKiovIFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9qc29ucCBjaHVuayBsb2FkaW5nICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0Ly8gbm8gYmFzZVVSSVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgYW5kIGxvYWRpbmcgY2h1bmtzXG4vKioqKioqLyBcdFx0Ly8gdW5kZWZpbmVkID0gY2h1bmsgbm90IGxvYWRlZCwgbnVsbCA9IGNodW5rIHByZWxvYWRlZC9wcmVmZXRjaGVkXG4vKioqKioqLyBcdFx0Ly8gW3Jlc29sdmUsIHJlamVjdCwgUHJvbWlzZV0gPSBjaHVuayBsb2FkaW5nLCAwID0gY2h1bmsgbG9hZGVkXG4vKioqKioqLyBcdFx0dmFyIGluc3RhbGxlZENodW5rcyA9IF9fd2VicGFja19yZXF1aXJlX18uaG1yU19qc29ucCA9IF9fd2VicGFja19yZXF1aXJlX18uaG1yU19qc29ucCB8fCB7XG4vKioqKioqLyBcdFx0XHRcIndlYnBhY2tcIjogMFxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mLmogPSAoY2h1bmtJZCwgcHJvbWlzZXMpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0Ly8gSlNPTlAgY2h1bmsgbG9hZGluZyBmb3IgamF2YXNjcmlwdFxuLyoqKioqKi8gXHRcdFx0XHR2YXIgaW5zdGFsbGVkQ2h1bmtEYXRhID0gX193ZWJwYWNrX3JlcXVpcmVfXy5vKGluc3RhbGxlZENodW5rcywgY2h1bmtJZCkgPyBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gOiB1bmRlZmluZWQ7XG4vKioqKioqLyBcdFx0XHRcdGlmKGluc3RhbGxlZENodW5rRGF0YSAhPT0gMCkgeyAvLyAwIG1lYW5zIFwiYWxyZWFkeSBpbnN0YWxsZWRcIi5cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHQvLyBhIFByb21pc2UgbWVhbnMgXCJjdXJyZW50bHkgbG9hZGluZ1wiLlxuLyoqKioqKi8gXHRcdFx0XHRcdGlmKGluc3RhbGxlZENodW5rRGF0YSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cHJvbWlzZXMucHVzaChpbnN0YWxsZWRDaHVua0RhdGFbMl0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRpZihcIndlYnBhY2tcIiAhPSBjaHVua0lkKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdC8vIHNldHVwIFByb21pc2UgaW4gY2h1bmsgY2FjaGVcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0dmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiAoaW5zdGFsbGVkQ2h1bmtEYXRhID0gaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdID0gW3Jlc29sdmUsIHJlamVjdF0pKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0cHJvbWlzZXMucHVzaChpbnN0YWxsZWRDaHVua0RhdGFbMl0gPSBwcm9taXNlKTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0Ly8gc3RhcnQgY2h1bmsgbG9hZGluZ1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR2YXIgdXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgX193ZWJwYWNrX3JlcXVpcmVfXy51KGNodW5rSWQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHQvLyBjcmVhdGUgZXJyb3IgYmVmb3JlIHN0YWNrIHVud291bmQgdG8gZ2V0IHVzZWZ1bCBzdGFja3RyYWNlIGxhdGVyXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHZhciBlcnJvciA9IG5ldyBFcnJvcigpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR2YXIgbG9hZGluZ0VuZGVkID0gKGV2ZW50KSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGluc3RhbGxlZENodW5rcywgY2h1bmtJZCkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGluc3RhbGxlZENodW5rRGF0YSA9IGluc3RhbGxlZENodW5rc1tjaHVua0lkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGlmKGluc3RhbGxlZENodW5rRGF0YSAhPT0gMCkgaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdID0gdW5kZWZpbmVkO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0aWYoaW5zdGFsbGVkQ2h1bmtEYXRhKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBlcnJvclR5cGUgPSBldmVudCAmJiAoZXZlbnQudHlwZSA9PT0gJ2xvYWQnID8gJ21pc3NpbmcnIDogZXZlbnQudHlwZSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciByZWFsU3JjID0gZXZlbnQgJiYgZXZlbnQudGFyZ2V0ICYmIGV2ZW50LnRhcmdldC5zcmM7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9yLm1lc3NhZ2UgPSAnTG9hZGluZyBjaHVuayAnICsgY2h1bmtJZCArICcgZmFpbGVkLlxcbignICsgZXJyb3JUeXBlICsgJzogJyArIHJlYWxTcmMgKyAnKSc7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9yLm5hbWUgPSAnQ2h1bmtMb2FkRXJyb3InO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvci50eXBlID0gZXJyb3JUeXBlO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvci5yZXF1ZXN0ID0gcmVhbFNyYztcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0aW5zdGFsbGVkQ2h1bmtEYXRhWzFdKGVycm9yKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdH07XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubCh1cmwsIGxvYWRpbmdFbmRlZCwgXCJjaHVuay1cIiArIGNodW5rSWQsIGNodW5rSWQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0fSBlbHNlIGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IDA7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHQvLyBubyBwcmVmZXRjaGluZ1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG5vIHByZWxvYWRlZFxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50VXBkYXRlZE1vZHVsZXNMaXN0O1xuLyoqKioqKi8gXHRcdHZhciB3YWl0aW5nVXBkYXRlUmVzb2x2ZXMgPSB7fTtcbi8qKioqKiovIFx0XHRmdW5jdGlvbiBsb2FkVXBkYXRlQ2h1bmsoY2h1bmtJZCwgdXBkYXRlZE1vZHVsZXNMaXN0KSB7XG4vKioqKioqLyBcdFx0XHRjdXJyZW50VXBkYXRlZE1vZHVsZXNMaXN0ID0gdXBkYXRlZE1vZHVsZXNMaXN0O1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0d2FpdGluZ1VwZGF0ZVJlc29sdmVzW2NodW5rSWRdID0gcmVzb2x2ZTtcbi8qKioqKiovIFx0XHRcdFx0Ly8gc3RhcnQgdXBkYXRlIGNodW5rIGxvYWRpbmdcbi8qKioqKiovIFx0XHRcdFx0dmFyIHVybCA9IF9fd2VicGFja19yZXF1aXJlX18ucCArIF9fd2VicGFja19yZXF1aXJlX18uaHUoY2h1bmtJZCk7XG4vKioqKioqLyBcdFx0XHRcdC8vIGNyZWF0ZSBlcnJvciBiZWZvcmUgc3RhY2sgdW53b3VuZCB0byBnZXQgdXNlZnVsIHN0YWNrdHJhY2UgbGF0ZXJcbi8qKioqKiovIFx0XHRcdFx0dmFyIGVycm9yID0gbmV3IEVycm9yKCk7XG4vKioqKioqLyBcdFx0XHRcdHZhciBsb2FkaW5nRW5kZWQgPSAoZXZlbnQpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0XHRpZih3YWl0aW5nVXBkYXRlUmVzb2x2ZXNbY2h1bmtJZF0pIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHdhaXRpbmdVcGRhdGVSZXNvbHZlc1tjaHVua0lkXSA9IHVuZGVmaW5lZFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0dmFyIGVycm9yVHlwZSA9IGV2ZW50ICYmIChldmVudC50eXBlID09PSAnbG9hZCcgPyAnbWlzc2luZycgOiBldmVudC50eXBlKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciByZWFsU3JjID0gZXZlbnQgJiYgZXZlbnQudGFyZ2V0ICYmIGV2ZW50LnRhcmdldC5zcmM7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRlcnJvci5tZXNzYWdlID0gJ0xvYWRpbmcgaG90IHVwZGF0ZSBjaHVuayAnICsgY2h1bmtJZCArICcgZmFpbGVkLlxcbignICsgZXJyb3JUeXBlICsgJzogJyArIHJlYWxTcmMgKyAnKSc7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRlcnJvci5uYW1lID0gJ0NodW5rTG9hZEVycm9yJztcbi8qKioqKiovIFx0XHRcdFx0XHRcdGVycm9yLnR5cGUgPSBlcnJvclR5cGU7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRlcnJvci5yZXF1ZXN0ID0gcmVhbFNyYztcbi8qKioqKiovIFx0XHRcdFx0XHRcdHJlamVjdChlcnJvcik7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmwodXJsLCBsb2FkaW5nRW5kZWQpO1xuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdHNlbGZbXCJ3ZWJwYWNrSG90VXBkYXRlX05fRVwiXSA9IChjaHVua0lkLCBtb3JlTW9kdWxlcywgcnVudGltZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0Zm9yKHZhciBtb2R1bGVJZCBpbiBtb3JlTW9kdWxlcykge1xuLyoqKioqKi8gXHRcdFx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8obW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVbbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdGlmKGN1cnJlbnRVcGRhdGVkTW9kdWxlc0xpc3QpIGN1cnJlbnRVcGRhdGVkTW9kdWxlc0xpc3QucHVzaChtb2R1bGVJZCk7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdGlmKHJ1bnRpbWUpIGN1cnJlbnRVcGRhdGVSdW50aW1lLnB1c2gocnVudGltZSk7XG4vKioqKioqLyBcdFx0XHRpZih3YWl0aW5nVXBkYXRlUmVzb2x2ZXNbY2h1bmtJZF0pIHtcbi8qKioqKiovIFx0XHRcdFx0d2FpdGluZ1VwZGF0ZVJlc29sdmVzW2NodW5rSWRdKCk7XG4vKioqKioqLyBcdFx0XHRcdHdhaXRpbmdVcGRhdGVSZXNvbHZlc1tjaHVua0lkXSA9IHVuZGVmaW5lZDtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50VXBkYXRlQ2h1bmtzO1xuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50VXBkYXRlO1xuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50VXBkYXRlUmVtb3ZlZENodW5rcztcbi8qKioqKiovIFx0XHR2YXIgY3VycmVudFVwZGF0ZVJ1bnRpbWU7XG4vKioqKioqLyBcdFx0ZnVuY3Rpb24gYXBwbHlIYW5kbGVyKG9wdGlvbnMpIHtcbi8qKioqKiovIFx0XHRcdGlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmYpIGRlbGV0ZSBfX3dlYnBhY2tfcmVxdWlyZV9fLmYuanNvbnBIbXI7XG4vKioqKioqLyBcdFx0XHRjdXJyZW50VXBkYXRlQ2h1bmtzID0gdW5kZWZpbmVkO1xuLyoqKioqKi8gXHRcdFx0ZnVuY3Rpb24gZ2V0QWZmZWN0ZWRNb2R1bGVFZmZlY3RzKHVwZGF0ZU1vZHVsZUlkKSB7XG4vKioqKioqLyBcdFx0XHRcdHZhciBvdXRkYXRlZE1vZHVsZXMgPSBbdXBkYXRlTW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgb3V0ZGF0ZWREZXBlbmRlbmNpZXMgPSB7fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0dmFyIHF1ZXVlID0gb3V0ZGF0ZWRNb2R1bGVzLm1hcChmdW5jdGlvbiAoaWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRyZXR1cm4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2hhaW46IFtpZF0sXG4vKioqKioqLyBcdFx0XHRcdFx0XHRpZDogaWRcbi8qKioqKiovIFx0XHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0d2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApIHtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgcXVldWVJdGVtID0gcXVldWUucG9wKCk7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIG1vZHVsZUlkID0gcXVldWVJdGVtLmlkO1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBjaGFpbiA9IHF1ZXVlSXRlbS5jaGFpbjtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX3JlcXVpcmVfXy5jW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoXG4vKioqKioqLyBcdFx0XHRcdFx0XHQhbW9kdWxlIHx8XG4vKioqKioqLyBcdFx0XHRcdFx0XHQobW9kdWxlLmhvdC5fc2VsZkFjY2VwdGVkICYmICFtb2R1bGUuaG90Ll9zZWxmSW52YWxpZGF0ZWQpXG4vKioqKioqLyBcdFx0XHRcdFx0KVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y29udGludWU7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKG1vZHVsZS5ob3QuX3NlbGZEZWNsaW5lZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmV0dXJuIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0dHlwZTogXCJzZWxmLWRlY2xpbmVkXCIsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGNoYWluOiBjaGFpbixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkXG4vKioqKioqLyBcdFx0XHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRpZiAobW9kdWxlLmhvdC5fbWFpbikge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmV0dXJuIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0dHlwZTogXCJ1bmFjY2VwdGVkXCIsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGNoYWluOiBjaGFpbixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkXG4vKioqKioqLyBcdFx0XHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IG1vZHVsZS5wYXJlbnRzLmxlbmd0aDsgaSsrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR2YXIgcGFyZW50SWQgPSBtb2R1bGUucGFyZW50c1tpXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBwYXJlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbcGFyZW50SWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKCFwYXJlbnQpIGNvbnRpbnVlO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKHBhcmVudC5ob3QuX2RlY2xpbmVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRyZXR1cm4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwiZGVjbGluZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRjaGFpbjogY2hhaW4uY29uY2F0KFtwYXJlbnRJZF0pLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdG1vZHVsZUlkOiBtb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRwYXJlbnRJZDogcGFyZW50SWRcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdGlmIChvdXRkYXRlZE1vZHVsZXMuaW5kZXhPZihwYXJlbnRJZCkgIT09IC0xKSBjb250aW51ZTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGlmIChwYXJlbnQuaG90Ll9hY2NlcHRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF0pIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKCFvdXRkYXRlZERlcGVuZGVuY2llc1twYXJlbnRJZF0pXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0b3V0ZGF0ZWREZXBlbmRlbmNpZXNbcGFyZW50SWRdID0gW107XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGFkZEFsbFRvU2V0KG91dGRhdGVkRGVwZW5kZW5jaWVzW3BhcmVudElkXSwgW21vZHVsZUlkXSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGNvbnRpbnVlO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0ZGVsZXRlIG91dGRhdGVkRGVwZW5kZW5jaWVzW3BhcmVudElkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdG91dGRhdGVkTW9kdWxlcy5wdXNoKHBhcmVudElkKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHF1ZXVlLnB1c2goe1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRjaGFpbjogY2hhaW4uY29uY2F0KFtwYXJlbnRJZF0pLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZDogcGFyZW50SWRcbi8qKioqKiovIFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdHR5cGU6IFwiYWNjZXB0ZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRtb2R1bGVJZDogdXBkYXRlTW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRcdFx0b3V0ZGF0ZWRNb2R1bGVzOiBvdXRkYXRlZE1vZHVsZXMsXG4vKioqKioqLyBcdFx0XHRcdFx0b3V0ZGF0ZWREZXBlbmRlbmNpZXM6IG91dGRhdGVkRGVwZW5kZW5jaWVzXG4vKioqKioqLyBcdFx0XHRcdH07XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBhZGRBbGxUb1NldChhLCBiKSB7XG4vKioqKioqLyBcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYi5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBpdGVtID0gYltpXTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoYS5pbmRleE9mKGl0ZW0pID09PSAtMSkgYS5wdXNoKGl0ZW0pO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHQvLyBhdCBiZWdpbiBhbGwgdXBkYXRlcyBtb2R1bGVzIGFyZSBvdXRkYXRlZFxuLyoqKioqKi8gXHRcdFx0Ly8gdGhlIFwib3V0ZGF0ZWRcIiBzdGF0dXMgY2FuIHByb3BhZ2F0ZSB0byBwYXJlbnRzIGlmIHRoZXkgZG9uJ3QgYWNjZXB0IHRoZSBjaGlsZHJlblxuLyoqKioqKi8gXHRcdFx0dmFyIG91dGRhdGVkRGVwZW5kZW5jaWVzID0ge307XG4vKioqKioqLyBcdFx0XHR2YXIgb3V0ZGF0ZWRNb2R1bGVzID0gW107XG4vKioqKioqLyBcdFx0XHR2YXIgYXBwbGllZFVwZGF0ZSA9IHt9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0dmFyIHdhcm5VbmV4cGVjdGVkUmVxdWlyZSA9IGZ1bmN0aW9uIHdhcm5VbmV4cGVjdGVkUmVxdWlyZShtb2R1bGUpIHtcbi8qKioqKiovIFx0XHRcdFx0Y29uc29sZS53YXJuKFxuLyoqKioqKi8gXHRcdFx0XHRcdFwiW0hNUl0gdW5leHBlY3RlZCByZXF1aXJlKFwiICsgbW9kdWxlLmlkICsgXCIpIHRvIGRpc3Bvc2VkIG1vZHVsZVwiXG4vKioqKioqLyBcdFx0XHRcdCk7XG4vKioqKioqLyBcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0Zm9yICh2YXIgbW9kdWxlSWQgaW4gY3VycmVudFVwZGF0ZSkge1xuLyoqKioqKi8gXHRcdFx0XHRpZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGN1cnJlbnRVcGRhdGUsIG1vZHVsZUlkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBuZXdNb2R1bGVGYWN0b3J5ID0gY3VycmVudFVwZGF0ZVttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdFx0LyoqIEB0eXBlIHtUT0RPfSAqL1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciByZXN1bHQgPSBuZXdNb2R1bGVGYWN0b3J5XG4vKioqKioqLyBcdFx0XHRcdFx0XHQ/IGdldEFmZmVjdGVkTW9kdWxlRWZmZWN0cyhtb2R1bGVJZClcbi8qKioqKiovIFx0XHRcdFx0XHRcdDoge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwiZGlzcG9zZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWRcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fTtcbi8qKioqKiovIFx0XHRcdFx0XHQvKiogQHR5cGUge0Vycm9yfGZhbHNlfSAqL1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBhYm9ydEVycm9yID0gZmFsc2U7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIGRvQXBwbHkgPSBmYWxzZTtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgZG9EaXNwb3NlID0gZmFsc2U7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIGNoYWluSW5mbyA9IFwiXCI7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKHJlc3VsdC5jaGFpbikge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2hhaW5JbmZvID0gXCJcXG5VcGRhdGUgcHJvcGFnYXRpb246IFwiICsgcmVzdWx0LmNoYWluLmpvaW4oXCIgLT4gXCIpO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRzd2l0Y2ggKHJlc3VsdC50eXBlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwic2VsZi1kZWNsaW5lZFwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkRlY2xpbmVkKSBvcHRpb25zLm9uRGVjbGluZWQocmVzdWx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZURlY2xpbmVkKVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcIkFib3J0ZWQgYmVjYXVzZSBvZiBzZWxmIGRlY2xpbmU6IFwiICtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzdWx0Lm1vZHVsZUlkICtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2hhaW5JbmZvXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwiZGVjbGluZWRcIjpcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25EZWNsaW5lZCkgb3B0aW9ucy5vbkRlY2xpbmVkKHJlc3VsdCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlmICghb3B0aW9ucy5pZ25vcmVEZWNsaW5lZClcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRhYm9ydEVycm9yID0gbmV3IEVycm9yKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XCJBYm9ydGVkIGJlY2F1c2Ugb2YgZGVjbGluZWQgZGVwZW5kZW5jeTogXCIgK1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXN1bHQubW9kdWxlSWQgK1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcIiBpbiBcIiArXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc3VsdC5wYXJlbnRJZCArXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGNoYWluSW5mb1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGJyZWFrO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2FzZSBcInVuYWNjZXB0ZWRcIjpcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25VbmFjY2VwdGVkKSBvcHRpb25zLm9uVW5hY2NlcHRlZChyZXN1bHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlVW5hY2NlcHRlZClcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRhYm9ydEVycm9yID0gbmV3IEVycm9yKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XCJBYm9ydGVkIGJlY2F1c2UgXCIgKyBtb2R1bGVJZCArIFwiIGlzIG5vdCBhY2NlcHRlZFwiICsgY2hhaW5JbmZvXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwiYWNjZXB0ZWRcIjpcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25BY2NlcHRlZCkgb3B0aW9ucy5vbkFjY2VwdGVkKHJlc3VsdCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGRvQXBwbHkgPSB0cnVlO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRicmVhaztcbi8qKioqKiovIFx0XHRcdFx0XHRcdGNhc2UgXCJkaXNwb3NlZFwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkRpc3Bvc2VkKSBvcHRpb25zLm9uRGlzcG9zZWQocmVzdWx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0ZG9EaXNwb3NlID0gdHJ1ZTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRkZWZhdWx0OlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJVbmV4Y2VwdGlvbiB0eXBlIFwiICsgcmVzdWx0LnR5cGUpO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoYWJvcnRFcnJvcikge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmV0dXJuIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0ZXJyb3I6IGFib3J0RXJyb3Jcbi8qKioqKiovIFx0XHRcdFx0XHRcdH07XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChkb0FwcGx5KSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRhcHBsaWVkVXBkYXRlW21vZHVsZUlkXSA9IG5ld01vZHVsZUZhY3Rvcnk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRhZGRBbGxUb1NldChvdXRkYXRlZE1vZHVsZXMsIHJlc3VsdC5vdXRkYXRlZE1vZHVsZXMpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Zm9yIChtb2R1bGVJZCBpbiByZXN1bHQub3V0ZGF0ZWREZXBlbmRlbmNpZXMpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKF9fd2VicGFja19yZXF1aXJlX18ubyhyZXN1bHQub3V0ZGF0ZWREZXBlbmRlbmNpZXMsIG1vZHVsZUlkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGlmICghb3V0ZGF0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdKVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0b3V0ZGF0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdID0gW107XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0YWRkQWxsVG9TZXQoXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF0sXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRyZXN1bHQub3V0ZGF0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoZG9EaXNwb3NlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRhZGRBbGxUb1NldChvdXRkYXRlZE1vZHVsZXMsIFtyZXN1bHQubW9kdWxlSWRdKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGFwcGxpZWRVcGRhdGVbbW9kdWxlSWRdID0gd2FyblVuZXhwZWN0ZWRSZXF1aXJlO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0Y3VycmVudFVwZGF0ZSA9IHVuZGVmaW5lZDtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdC8vIFN0b3JlIHNlbGYgYWNjZXB0ZWQgb3V0ZGF0ZWQgbW9kdWxlcyB0byByZXF1aXJlIHRoZW0gbGF0ZXIgYnkgdGhlIG1vZHVsZSBzeXN0ZW1cbi8qKioqKiovIFx0XHRcdHZhciBvdXRkYXRlZFNlbGZBY2NlcHRlZE1vZHVsZXMgPSBbXTtcbi8qKioqKiovIFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgb3V0ZGF0ZWRNb2R1bGVzLmxlbmd0aDsgaisrKSB7XG4vKioqKioqLyBcdFx0XHRcdHZhciBvdXRkYXRlZE1vZHVsZUlkID0gb3V0ZGF0ZWRNb2R1bGVzW2pdO1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX3JlcXVpcmVfXy5jW291dGRhdGVkTW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHRpZiAoXG4vKioqKioqLyBcdFx0XHRcdFx0bW9kdWxlICYmXG4vKioqKioqLyBcdFx0XHRcdFx0KG1vZHVsZS5ob3QuX3NlbGZBY2NlcHRlZCB8fCBtb2R1bGUuaG90Ll9tYWluKSAmJlxuLyoqKioqKi8gXHRcdFx0XHRcdC8vIHJlbW92ZWQgc2VsZi1hY2NlcHRlZCBtb2R1bGVzIHNob3VsZCBub3QgYmUgcmVxdWlyZWRcbi8qKioqKiovIFx0XHRcdFx0XHRhcHBsaWVkVXBkYXRlW291dGRhdGVkTW9kdWxlSWRdICE9PSB3YXJuVW5leHBlY3RlZFJlcXVpcmUgJiZcbi8qKioqKiovIFx0XHRcdFx0XHQvLyB3aGVuIGNhbGxlZCBpbnZhbGlkYXRlIHNlbGYtYWNjZXB0aW5nIGlzIG5vdCBwb3NzaWJsZVxuLyoqKioqKi8gXHRcdFx0XHRcdCFtb2R1bGUuaG90Ll9zZWxmSW52YWxpZGF0ZWRcbi8qKioqKiovIFx0XHRcdFx0KSB7XG4vKioqKioqLyBcdFx0XHRcdFx0b3V0ZGF0ZWRTZWxmQWNjZXB0ZWRNb2R1bGVzLnB1c2goe1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0bW9kdWxlOiBvdXRkYXRlZE1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmVxdWlyZTogbW9kdWxlLmhvdC5fcmVxdWlyZVNlbGYsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRlcnJvckhhbmRsZXI6IG1vZHVsZS5ob3QuX3NlbGZBY2NlcHRlZFxuLyoqKioqKi8gXHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHR2YXIgbW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXM7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRyZXR1cm4ge1xuLyoqKioqKi8gXHRcdFx0XHRkaXNwb3NlOiBmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y3VycmVudFVwZGF0ZVJlbW92ZWRDaHVua3MuZm9yRWFjaChmdW5jdGlvbiAoY2h1bmtJZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0ZGVsZXRlIGluc3RhbGxlZENodW5rc1tjaHVua0lkXTtcbi8qKioqKiovIFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRjdXJyZW50VXBkYXRlUmVtb3ZlZENodW5rcyA9IHVuZGVmaW5lZDtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgaWR4O1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBxdWV1ZSA9IG91dGRhdGVkTW9kdWxlcy5zbGljZSgpO1xuLyoqKioqKi8gXHRcdFx0XHRcdHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR2YXIgbW9kdWxlSWQgPSBxdWV1ZS5wb3AoKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKCFtb2R1bGUpIGNvbnRpbnVlO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0dmFyIGRhdGEgPSB7fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHRcdC8vIENhbGwgZGlzcG9zZSBoYW5kbGVyc1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dmFyIGRpc3Bvc2VIYW5kbGVycyA9IG1vZHVsZS5ob3QuX2Rpc3Bvc2VIYW5kbGVycztcbi8qKioqKiovIFx0XHRcdFx0XHRcdGZvciAoaiA9IDA7IGogPCBkaXNwb3NlSGFuZGxlcnMubGVuZ3RoOyBqKyspIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0ZGlzcG9zZUhhbmRsZXJzW2pdLmNhbGwobnVsbCwgZGF0YSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmhtckRbbW9kdWxlSWRdID0gZGF0YTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHRcdC8vIGRpc2FibGUgbW9kdWxlICh0aGlzIGRpc2FibGVzIHJlcXVpcmVzIGZyb20gdGhpcyBtb2R1bGUpXG4vKioqKioqLyBcdFx0XHRcdFx0XHRtb2R1bGUuaG90LmFjdGl2ZSA9IGZhbHNlO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Ly8gcmVtb3ZlIG1vZHVsZSBmcm9tIGNhY2hlXG4vKioqKioqLyBcdFx0XHRcdFx0XHRkZWxldGUgX193ZWJwYWNrX3JlcXVpcmVfXy5jW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHRcdC8vIHdoZW4gZGlzcG9zaW5nIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbCBkaXNwb3NlIGhhbmRsZXJcbi8qKioqKiovIFx0XHRcdFx0XHRcdGRlbGV0ZSBvdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0XHQvLyByZW1vdmUgXCJwYXJlbnRzXCIgcmVmZXJlbmNlcyBmcm9tIGFsbCBjaGlsZHJlblxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Zm9yIChqID0gMDsgaiA8IG1vZHVsZS5jaGlsZHJlbi5sZW5ndGg7IGorKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR2YXIgY2hpbGQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbbW9kdWxlLmNoaWxkcmVuW2pdXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKCFjaGlsZCkgY29udGludWU7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlkeCA9IGNoaWxkLnBhcmVudHMuaW5kZXhPZihtb2R1bGVJZCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlmIChpZHggPj0gMCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGNoaWxkLnBhcmVudHMuc3BsaWNlKGlkeCwgMSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0Ly8gcmVtb3ZlIG91dGRhdGVkIGRlcGVuZGVuY3kgZnJvbSBtb2R1bGUgY2hpbGRyZW5cbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgZGVwZW5kZW5jeTtcbi8qKioqKiovIFx0XHRcdFx0XHRmb3IgKHZhciBvdXRkYXRlZE1vZHVsZUlkIGluIG91dGRhdGVkRGVwZW5kZW5jaWVzKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRpZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG91dGRhdGVkRGVwZW5kZW5jaWVzLCBvdXRkYXRlZE1vZHVsZUlkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRtb2R1bGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbb3V0ZGF0ZWRNb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlmIChtb2R1bGUpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcyA9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llc1tvdXRkYXRlZE1vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRmb3IgKGogPSAwOyBqIDwgbW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXMubGVuZ3RoOyBqKyspIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGRlcGVuZGVuY3kgPSBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llc1tqXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGlkeCA9IG1vZHVsZS5jaGlsZHJlbi5pbmRleE9mKGRlcGVuZGVuY3kpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGlkeCA+PSAwKSBtb2R1bGUuY2hpbGRyZW4uc3BsaWNlKGlkeCwgMSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRhcHBseTogZnVuY3Rpb24gKHJlcG9ydEVycm9yKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Ly8gaW5zZXJ0IG5ldyBjb2RlXG4vKioqKioqLyBcdFx0XHRcdFx0Zm9yICh2YXIgdXBkYXRlTW9kdWxlSWQgaW4gYXBwbGllZFVwZGF0ZSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKF9fd2VicGFja19yZXF1aXJlX18ubyhhcHBsaWVkVXBkYXRlLCB1cGRhdGVNb2R1bGVJZCkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tW3VwZGF0ZU1vZHVsZUlkXSA9IGFwcGxpZWRVcGRhdGVbdXBkYXRlTW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHQvLyBydW4gbmV3IHJ1bnRpbWUgbW9kdWxlc1xuLyoqKioqKi8gXHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgY3VycmVudFVwZGF0ZVJ1bnRpbWUubGVuZ3RoOyBpKyspIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVSdW50aW1lW2ldKF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHQvLyBjYWxsIGFjY2VwdCBoYW5kbGVyc1xuLyoqKioqKi8gXHRcdFx0XHRcdGZvciAodmFyIG91dGRhdGVkTW9kdWxlSWQgaW4gb3V0ZGF0ZWREZXBlbmRlbmNpZXMpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLm8ob3V0ZGF0ZWREZXBlbmRlbmNpZXMsIG91dGRhdGVkTW9kdWxlSWQpKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbb3V0ZGF0ZWRNb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlmIChtb2R1bGUpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcyA9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llc1tvdXRkYXRlZE1vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR2YXIgY2FsbGJhY2tzID0gW107XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0dmFyIGVycm9ySGFuZGxlcnMgPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR2YXIgZGVwZW5kZW5jaWVzRm9yQ2FsbGJhY2tzID0gW107XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcy5sZW5ndGg7IGorKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRlcGVuZGVuY3kgPSBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llc1tqXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdHZhciBhY2NlcHRDYWxsYmFjayA9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZS5ob3QuX2FjY2VwdGVkRGVwZW5kZW5jaWVzW2RlcGVuZGVuY3ldO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0dmFyIGVycm9ySGFuZGxlciA9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZS5ob3QuX2FjY2VwdGVkRXJyb3JIYW5kbGVyc1tkZXBlbmRlbmN5XTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGlmIChhY2NlcHRDYWxsYmFjaykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoY2FsbGJhY2tzLmluZGV4T2YoYWNjZXB0Q2FsbGJhY2spICE9PSAtMSkgY29udGludWU7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGNhbGxiYWNrcy5wdXNoKGFjY2VwdENhbGxiYWNrKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3JIYW5kbGVycy5wdXNoKGVycm9ySGFuZGxlcik7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGRlcGVuZGVuY2llc0ZvckNhbGxiYWNrcy5wdXNoKGRlcGVuZGVuY3kpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBrID0gMDsgayA8IGNhbGxiYWNrcy5sZW5ndGg7IGsrKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0dHJ5IHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2FsbGJhY2tzW2tdLmNhbGwobnVsbCwgbW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXMpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICh0eXBlb2YgZXJyb3JIYW5kbGVyc1trXSA9PT0gXCJmdW5jdGlvblwiKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHJ5IHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9ySGFuZGxlcnNba10oZXJyLCB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZUlkOiBvdXRkYXRlZE1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkZXBlbmRlbmN5SWQ6IGRlcGVuZGVuY2llc0ZvckNhbGxiYWNrc1trXVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyMikge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25FcnJvcmVkKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9wdGlvbnMub25FcnJvcmVkKHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcImFjY2VwdC1lcnJvci1oYW5kbGVyLWVycm9yZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogb3V0ZGF0ZWRNb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkZXBlbmRlbmN5SWQ6IGRlcGVuZGVuY2llc0ZvckNhbGxiYWNrc1trXSxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogZXJyMixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvcmlnaW5hbEVycm9yOiBlcnJcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlRXJyb3JlZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXBvcnRFcnJvcihlcnIyKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVwb3J0RXJyb3IoZXJyKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25FcnJvcmVkKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zLm9uRXJyb3JlZCh7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwiYWNjZXB0LWVycm9yZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG91dGRhdGVkTW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRlcGVuZGVuY3lJZDogZGVwZW5kZW5jaWVzRm9yQ2FsbGJhY2tzW2tdLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogZXJyXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZUVycm9yZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlcG9ydEVycm9yKGVycik7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdC8vIExvYWQgc2VsZiBhY2NlcHRlZCBtb2R1bGVzXG4vKioqKioqLyBcdFx0XHRcdFx0Zm9yICh2YXIgbyA9IDA7IG8gPCBvdXRkYXRlZFNlbGZBY2NlcHRlZE1vZHVsZXMubGVuZ3RoOyBvKyspIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBpdGVtID0gb3V0ZGF0ZWRTZWxmQWNjZXB0ZWRNb2R1bGVzW29dO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dmFyIG1vZHVsZUlkID0gaXRlbS5tb2R1bGU7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR0cnkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpdGVtLnJlcXVpcmUobW9kdWxlSWQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlmICh0eXBlb2YgaXRlbS5lcnJvckhhbmRsZXIgPT09IFwiZnVuY3Rpb25cIikge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdHRyeSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRpdGVtLmVycm9ySGFuZGxlcihlcnIsIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGU6IF9fd2VicGFja19yZXF1aXJlX18uY1ttb2R1bGVJZF1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdH0gY2F0Y2ggKGVycjEpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRXJyb3JlZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zLm9uRXJyb3JlZCh7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJzZWxmLWFjY2VwdC1lcnJvci1oYW5kbGVyLWVycm9yZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3I6IGVycjEsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0b3JpZ2luYWxFcnJvcjogZXJyXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZUVycm9yZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVwb3J0RXJyb3IoZXJyMSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdHJlcG9ydEVycm9yKGVycik7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRXJyb3JlZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0b3B0aW9ucy5vbkVycm9yZWQoe1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcInNlbGYtYWNjZXB0LWVycm9yZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogZXJyXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZUVycm9yZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdHJlcG9ydEVycm9yKGVycik7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBvdXRkYXRlZE1vZHVsZXM7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH07XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uaG1ySS5qc29ucCA9IGZ1bmN0aW9uIChtb2R1bGVJZCwgYXBwbHlIYW5kbGVycykge1xuLyoqKioqKi8gXHRcdFx0aWYgKCFjdXJyZW50VXBkYXRlKSB7XG4vKioqKioqLyBcdFx0XHRcdGN1cnJlbnRVcGRhdGUgPSB7fTtcbi8qKioqKiovIFx0XHRcdFx0Y3VycmVudFVwZGF0ZVJ1bnRpbWUgPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0Y3VycmVudFVwZGF0ZVJlbW92ZWRDaHVua3MgPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0YXBwbHlIYW5kbGVycy5wdXNoKGFwcGx5SGFuZGxlcik7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRpZiAoIV9fd2VicGFja19yZXF1aXJlX18ubyhjdXJyZW50VXBkYXRlLCBtb2R1bGVJZCkpIHtcbi8qKioqKiovIFx0XHRcdFx0Y3VycmVudFVwZGF0ZVttb2R1bGVJZF0gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm1bbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJDLmpzb25wID0gZnVuY3Rpb24gKFxuLyoqKioqKi8gXHRcdFx0Y2h1bmtJZHMsXG4vKioqKioqLyBcdFx0XHRyZW1vdmVkQ2h1bmtzLFxuLyoqKioqKi8gXHRcdFx0cmVtb3ZlZE1vZHVsZXMsXG4vKioqKioqLyBcdFx0XHRwcm9taXNlcyxcbi8qKioqKiovIFx0XHRcdGFwcGx5SGFuZGxlcnMsXG4vKioqKioqLyBcdFx0XHR1cGRhdGVkTW9kdWxlc0xpc3Rcbi8qKioqKiovIFx0XHQpIHtcbi8qKioqKiovIFx0XHRcdGFwcGx5SGFuZGxlcnMucHVzaChhcHBseUhhbmRsZXIpO1xuLyoqKioqKi8gXHRcdFx0Y3VycmVudFVwZGF0ZUNodW5rcyA9IHt9O1xuLyoqKioqKi8gXHRcdFx0Y3VycmVudFVwZGF0ZVJlbW92ZWRDaHVua3MgPSByZW1vdmVkQ2h1bmtzO1xuLyoqKioqKi8gXHRcdFx0Y3VycmVudFVwZGF0ZSA9IHJlbW92ZWRNb2R1bGVzLnJlZHVjZShmdW5jdGlvbiAob2JqLCBrZXkpIHtcbi8qKioqKiovIFx0XHRcdFx0b2JqW2tleV0gPSBmYWxzZTtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIG9iajtcbi8qKioqKiovIFx0XHRcdH0sIHt9KTtcbi8qKioqKiovIFx0XHRcdGN1cnJlbnRVcGRhdGVSdW50aW1lID0gW107XG4vKioqKioqLyBcdFx0XHRjaHVua0lkcy5mb3JFYWNoKGZ1bmN0aW9uIChjaHVua0lkKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmIChcbi8qKioqKiovIFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8oaW5zdGFsbGVkQ2h1bmtzLCBjaHVua0lkKSAmJlxuLyoqKioqKi8gXHRcdFx0XHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkXSAhPT0gdW5kZWZpbmVkXG4vKioqKioqLyBcdFx0XHRcdCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHByb21pc2VzLnB1c2gobG9hZFVwZGF0ZUNodW5rKGNodW5rSWQsIHVwZGF0ZWRNb2R1bGVzTGlzdCkpO1xuLyoqKioqKi8gXHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVDaHVua3NbY2h1bmtJZF0gPSB0cnVlO1xuLyoqKioqKi8gXHRcdFx0XHR9IGVsc2Uge1xuLyoqKioqKi8gXHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVDaHVua3NbY2h1bmtJZF0gPSBmYWxzZTtcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRpZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5mKSB7XG4vKioqKioqLyBcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uZi5qc29ucEhtciA9IGZ1bmN0aW9uIChjaHVua0lkLCBwcm9taXNlcykge1xuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVDaHVua3MgJiZcbi8qKioqKiovIFx0XHRcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubyhjdXJyZW50VXBkYXRlQ2h1bmtzLCBjaHVua0lkKSAmJlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0IWN1cnJlbnRVcGRhdGVDaHVua3NbY2h1bmtJZF1cbi8qKioqKiovIFx0XHRcdFx0XHQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHByb21pc2VzLnB1c2gobG9hZFVwZGF0ZUNodW5rKGNodW5rSWQpKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVDaHVua3NbY2h1bmtJZF0gPSB0cnVlO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0fTtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uaG1yTSA9ICgpID0+IHtcbi8qKioqKiovIFx0XHRcdGlmICh0eXBlb2YgZmV0Y2ggPT09IFwidW5kZWZpbmVkXCIpIHRocm93IG5ldyBFcnJvcihcIk5vIGJyb3dzZXIgc3VwcG9ydDogbmVlZCBmZXRjaCBBUElcIik7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gZmV0Y2goX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgX193ZWJwYWNrX3JlcXVpcmVfXy5obXJGKCkpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdGlmKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSByZXR1cm47IC8vIG5vIHVwZGF0ZSBhdmFpbGFibGVcbi8qKioqKiovIFx0XHRcdFx0aWYoIXJlc3BvbnNlLm9rKSB0aHJvdyBuZXcgRXJyb3IoXCJGYWlsZWQgdG8gZmV0Y2ggdXBkYXRlIG1hbmlmZXN0IFwiICsgcmVzcG9uc2Uuc3RhdHVzVGV4dCk7XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiByZXNwb25zZS5qc29uKCk7XG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uTy5qID0gKGNodW5rSWQpID0+IChpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPT09IDApO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIGluc3RhbGwgYSBKU09OUCBjYWxsYmFjayBmb3IgY2h1bmsgbG9hZGluZ1xuLyoqKioqKi8gXHRcdHZhciB3ZWJwYWNrSnNvbnBDYWxsYmFjayA9IChwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbiwgZGF0YSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0dmFyIFtjaHVua0lkcywgbW9yZU1vZHVsZXMsIHJ1bnRpbWVdID0gZGF0YTtcbi8qKioqKiovIFx0XHRcdC8vIGFkZCBcIm1vcmVNb2R1bGVzXCIgdG8gdGhlIG1vZHVsZXMgb2JqZWN0LFxuLyoqKioqKi8gXHRcdFx0Ly8gdGhlbiBmbGFnIGFsbCBcImNodW5rSWRzXCIgYXMgbG9hZGVkIGFuZCBmaXJlIGNhbGxiYWNrXG4vKioqKioqLyBcdFx0XHR2YXIgbW9kdWxlSWQsIGNodW5rSWQsIGkgPSAwO1xuLyoqKioqKi8gXHRcdFx0aWYoY2h1bmtJZHMuc29tZSgoaWQpID0+IChpbnN0YWxsZWRDaHVua3NbaWRdICE9PSAwKSkpIHtcbi8qKioqKiovIFx0XHRcdFx0Zm9yKG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdGlmKHJ1bnRpbWUpIHZhciByZXN1bHQgPSBydW50aW1lKF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0aWYocGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24pIHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uKGRhdGEpO1xuLyoqKioqKi8gXHRcdFx0Zm9yKDtpIDwgY2h1bmtJZHMubGVuZ3RoOyBpKyspIHtcbi8qKioqKiovIFx0XHRcdFx0Y2h1bmtJZCA9IGNodW5rSWRzW2ldO1xuLyoqKioqKi8gXHRcdFx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oaW5zdGFsbGVkQ2h1bmtzLCBjaHVua0lkKSAmJiBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0pIHtcbi8qKioqKiovIFx0XHRcdFx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF1bMF0oKTtcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPSAwO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uTyhyZXN1bHQpO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHR2YXIgY2h1bmtMb2FkaW5nR2xvYmFsID0gc2VsZltcIndlYnBhY2tDaHVua19OX0VcIl0gPSBzZWxmW1wid2VicGFja0NodW5rX05fRVwiXSB8fCBbXTtcbi8qKioqKiovIFx0XHRjaHVua0xvYWRpbmdHbG9iYWwuZm9yRWFjaCh3ZWJwYWNrSnNvbnBDYWxsYmFjay5iaW5kKG51bGwsIDApKTtcbi8qKioqKiovIFx0XHRjaHVua0xvYWRpbmdHbG9iYWwucHVzaCA9IHdlYnBhY2tKc29ucENhbGxiYWNrLmJpbmQobnVsbCwgY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2guYmluZChjaHVua0xvYWRpbmdHbG9iYWwpKTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gbW9kdWxlIGNhY2hlIGFyZSB1c2VkIHNvIGVudHJ5IGlubGluaW5nIGlzIGRpc2FibGVkXG4vKioqKioqLyBcdFxuLyoqKioqKi8gfSkoKVxuIl19
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJpZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsid2VicGFjay1pbnRlcm5hbDovL25leHRqcy93ZWJwYWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgc291cmNlIHdhcyBnZW5lcmF0ZWQgYnkgTmV4dC5qcyBiYXNlZCBvZmYgb2YgdGhlIGdlbmVyYXRlZCBXZWJwYWNrIHJ1bnRpbWUuXG4vLyBUaGUgbWFwcGluZ3MgYXJlIGluY29ycmVjdC5cbi8vIFRvIGdldCB0aGUgY29ycmVjdCBsaW5lL2NvbHVtbiBtYXBwaW5ncywgdHVybiBvZmYgc291cmNlbWFwcyBpbiB5b3VyIGRlYnVnZ2VyLlxuXG4vKioqKioqLyAoKCkgPT4geyAvLyB3ZWJwYWNrQm9vdHN0cmFwXG4vKioqKioqLyBcdFwidXNlIHN0cmljdFwiO1xuLyoqKioqKi8gXHR2YXIgX193ZWJwYWNrX21vZHVsZXNfXyA9ICh7fSk7XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHQvLyBUaGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdHZhciBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX18gPSB7fTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8vIFRoZSByZXF1aXJlIGZ1bmN0aW9uXG4vKioqKioqLyBcdGZ1bmN0aW9uIF9fd2VicGFja19yZXF1aXJlX18obW9kdWxlSWQpIHtcbi8qKioqKiovIFx0XHQvLyBDaGVjayBpZiBtb2R1bGUgaXMgaW4gY2FjaGVcbi8qKioqKiovIFx0XHR2YXIgY2FjaGVkTW9kdWxlID0gX193ZWJwYWNrX21vZHVsZV9jYWNoZV9fW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRpZiAoY2FjaGVkTW9kdWxlICE9PSB1bmRlZmluZWQpIHtcbi8qKioqKiovIFx0XHRcdGlmIChjYWNoZWRNb2R1bGUuZXJyb3IgIT09IHVuZGVmaW5lZCkgdGhyb3cgY2FjaGVkTW9kdWxlLmVycm9yO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGNhY2hlZE1vZHVsZS5leHBvcnRzO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBDcmVhdGUgYSBuZXcgbW9kdWxlIChhbmQgcHV0IGl0IGludG8gdGhlIGNhY2hlKVxuLyoqKioqKi8gXHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdID0ge1xuLyoqKioqKi8gXHRcdFx0aWQ6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0bG9hZGVkOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdGV4cG9ydHM6IHt9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdFx0Ly8gRXhlY3V0ZSB0aGUgbW9kdWxlIGZ1bmN0aW9uXG4vKioqKioqLyBcdFx0dmFyIHRocmV3ID0gdHJ1ZTtcbi8qKioqKiovIFx0XHR0cnkge1xuLyoqKioqKi8gXHRcdFx0dmFyIGV4ZWNPcHRpb25zID0geyBpZDogbW9kdWxlSWQsIG1vZHVsZTogbW9kdWxlLCBmYWN0b3J5OiBfX3dlYnBhY2tfbW9kdWxlc19fW21vZHVsZUlkXSwgcmVxdWlyZTogX193ZWJwYWNrX3JlcXVpcmVfXyB9O1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pLmZvckVhY2goZnVuY3Rpb24oaGFuZGxlcikgeyBoYW5kbGVyKGV4ZWNPcHRpb25zKTsgfSk7XG4vKioqKioqLyBcdFx0XHRtb2R1bGUgPSBleGVjT3B0aW9ucy5tb2R1bGU7XG4vKioqKioqLyBcdFx0XHRleGVjT3B0aW9ucy5mYWN0b3J5LmNhbGwobW9kdWxlLmV4cG9ydHMsIG1vZHVsZSwgbW9kdWxlLmV4cG9ydHMsIGV4ZWNPcHRpb25zLnJlcXVpcmUpO1xuLyoqKioqKi8gXHRcdFx0dGhyZXcgPSBmYWxzZTtcbi8qKioqKiovIFx0XHR9IGZpbmFsbHkge1xuLyoqKioqKi8gXHRcdFx0aWYodGhyZXcpIGRlbGV0ZSBfX3dlYnBhY2tfbW9kdWxlX2NhY2hlX19bbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XG4vKioqKioqLyBcdFx0Ly8gRmxhZyB0aGUgbW9kdWxlIGFzIGxvYWRlZFxuLyoqKioqKi8gXHRcdG1vZHVsZS5sb2FkZWQgPSB0cnVlO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0XHQvLyBSZXR1cm4gdGhlIGV4cG9ydHMgb2YgdGhlIG1vZHVsZVxuLyoqKioqKi8gXHRcdHJldHVybiBtb2R1bGUuZXhwb3J0cztcbi8qKioqKiovIFx0fVxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gZXhwb3NlIHRoZSBtb2R1bGVzIG9iamVjdCAoX193ZWJwYWNrX21vZHVsZXNfXylcbi8qKioqKiovIFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tID0gX193ZWJwYWNrX21vZHVsZXNfXztcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGNhY2hlXG4vKioqKioqLyBcdF9fd2VicGFja19yZXF1aXJlX18uYyA9IF9fd2VicGFja19tb2R1bGVfY2FjaGVfXztcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8vIGV4cG9zZSB0aGUgbW9kdWxlIGV4ZWN1dGlvbiBpbnRlcmNlcHRvclxuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmkgPSBbXTtcbi8qKioqKiovIFx0XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvY2h1bmsgbG9hZGVkICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0dmFyIGRlZmVycmVkID0gW107XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5PID0gKHJlc3VsdCwgY2h1bmtJZHMsIGZuLCBwcmlvcml0eSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYoY2h1bmtJZHMpIHtcbi8qKioqKiovIFx0XHRcdFx0cHJpb3JpdHkgPSBwcmlvcml0eSB8fCAwO1xuLyoqKioqKi8gXHRcdFx0XHRmb3IodmFyIGkgPSBkZWZlcnJlZC5sZW5ndGg7IGkgPiAwICYmIGRlZmVycmVkW2kgLSAxXVsyXSA+IHByaW9yaXR5OyBpLS0pIGRlZmVycmVkW2ldID0gZGVmZXJyZWRbaSAtIDFdO1xuLyoqKioqKi8gXHRcdFx0XHRkZWZlcnJlZFtpXSA9IFtjaHVua0lkcywgZm4sIHByaW9yaXR5XTtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0dmFyIG5vdEZ1bGZpbGxlZCA9IEluZmluaXR5O1xuLyoqKioqKi8gXHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBkZWZlcnJlZC5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgW2NodW5rSWRzLCBmbiwgcHJpb3JpdHldID0gZGVmZXJyZWRbaV07XG4vKioqKioqLyBcdFx0XHRcdHZhciBmdWxmaWxsZWQgPSB0cnVlO1xuLyoqKioqKi8gXHRcdFx0XHRmb3IgKHZhciBqID0gMDsgaiA8IGNodW5rSWRzLmxlbmd0aDsgaisrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKChwcmlvcml0eSAmIDEgPT09IDAgfHwgbm90RnVsZmlsbGVkID49IHByaW9yaXR5KSAmJiBPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLk8pLmV2ZXJ5KChrZXkpID0+IChfX3dlYnBhY2tfcmVxdWlyZV9fLk9ba2V5XShjaHVua0lkc1tqXSkpKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2h1bmtJZHMuc3BsaWNlKGotLSwgMSk7XG4vKioqKioqLyBcdFx0XHRcdFx0fSBlbHNlIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGZ1bGZpbGxlZCA9IGZhbHNlO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYocHJpb3JpdHkgPCBub3RGdWxmaWxsZWQpIG5vdEZ1bGZpbGxlZCA9IHByaW9yaXR5O1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRpZihmdWxmaWxsZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRkZWZlcnJlZC5zcGxpY2UoaS0tLCAxKVxuLyoqKioqKi8gXHRcdFx0XHRcdHZhciByID0gZm4oKTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAociAhPT0gdW5kZWZpbmVkKSByZXN1bHQgPSByO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gcmVzdWx0O1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvY29tcGF0IGdldCBkZWZhdWx0IGV4cG9ydCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIGdldERlZmF1bHRFeHBvcnQgZnVuY3Rpb24gZm9yIGNvbXBhdGliaWxpdHkgd2l0aCBub24taGFybW9ueSBtb2R1bGVzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5uID0gKG1vZHVsZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0dmFyIGdldHRlciA9IG1vZHVsZSAmJiBtb2R1bGUuX19lc01vZHVsZSA/XG4vKioqKioqLyBcdFx0XHRcdCgpID0+IChtb2R1bGVbJ2RlZmF1bHQnXSkgOlxuLyoqKioqKi8gXHRcdFx0XHQoKSA9PiAobW9kdWxlKTtcbi8qKioqKiovIFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uZChnZXR0ZXIsIHsgYTogZ2V0dGVyIH0pO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGdldHRlcjtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2NyZWF0ZSBmYWtlIG5hbWVzcGFjZSBvYmplY3QgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHR2YXIgZ2V0UHJvdG8gPSBPYmplY3QuZ2V0UHJvdG90eXBlT2YgPyAob2JqKSA9PiAoT2JqZWN0LmdldFByb3RvdHlwZU9mKG9iaikpIDogKG9iaikgPT4gKG9iai5fX3Byb3RvX18pO1xuLyoqKioqKi8gXHRcdHZhciBsZWFmUHJvdG90eXBlcztcbi8qKioqKiovIFx0XHQvLyBjcmVhdGUgYSBmYWtlIG5hbWVzcGFjZSBvYmplY3Rcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgMTogdmFsdWUgaXMgYSBtb2R1bGUgaWQsIHJlcXVpcmUgaXRcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgMjogbWVyZ2UgYWxsIHByb3BlcnRpZXMgb2YgdmFsdWUgaW50byB0aGUgbnNcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgNDogcmV0dXJuIHZhbHVlIHdoZW4gYWxyZWFkeSBucyBvYmplY3Rcbi8qKioqKiovIFx0XHQvLyBtb2RlICYgMTY6IHJldHVybiB2YWx1ZSB3aGVuIGl0J3MgUHJvbWlzZS1saWtlXG4vKioqKioqLyBcdFx0Ly8gbW9kZSAmIDh8MTogYmVoYXZlIGxpa2UgcmVxdWlyZVxuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18udCA9IGZ1bmN0aW9uKHZhbHVlLCBtb2RlKSB7XG4vKioqKioqLyBcdFx0XHRpZihtb2RlICYgMSkgdmFsdWUgPSB0aGlzKHZhbHVlKTtcbi8qKioqKiovIFx0XHRcdGlmKG1vZGUgJiA4KSByZXR1cm4gdmFsdWU7XG4vKioqKioqLyBcdFx0XHRpZih0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmIHZhbHVlKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmKChtb2RlICYgNCkgJiYgdmFsdWUuX19lc01vZHVsZSkgcmV0dXJuIHZhbHVlO1xuLyoqKioqKi8gXHRcdFx0XHRpZigobW9kZSAmIDE2KSAmJiB0eXBlb2YgdmFsdWUudGhlbiA9PT0gJ2Z1bmN0aW9uJykgcmV0dXJuIHZhbHVlO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0dmFyIG5zID0gT2JqZWN0LmNyZWF0ZShudWxsKTtcbi8qKioqKiovIFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ucihucyk7XG4vKioqKioqLyBcdFx0XHR2YXIgZGVmID0ge307XG4vKioqKioqLyBcdFx0XHRsZWFmUHJvdG90eXBlcyA9IGxlYWZQcm90b3R5cGVzIHx8IFtudWxsLCBnZXRQcm90byh7fSksIGdldFByb3RvKFtdKSwgZ2V0UHJvdG8oZ2V0UHJvdG8pXTtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIgY3VycmVudCA9IG1vZGUgJiAyICYmIHZhbHVlOyB0eXBlb2YgY3VycmVudCA9PSAnb2JqZWN0JyAmJiAhfmxlYWZQcm90b3R5cGVzLmluZGV4T2YoY3VycmVudCk7IGN1cnJlbnQgPSBnZXRQcm90byhjdXJyZW50KSkge1xuLyoqKioqKi8gXHRcdFx0XHRPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhjdXJyZW50KS5mb3JFYWNoKChrZXkpID0+IChkZWZba2V5XSA9ICgpID0+ICh2YWx1ZVtrZXldKSkpO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0ZGVmWydkZWZhdWx0J10gPSAoKSA9PiAodmFsdWUpO1xuLyoqKioqKi8gXHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kKG5zLCBkZWYpO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIG5zO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZGVmaW5lIHByb3BlcnR5IGdldHRlcnMgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBkZWZpbmUgZ2V0dGVyIGZ1bmN0aW9ucyBmb3IgaGFybW9ueSBleHBvcnRzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5kID0gKGV4cG9ydHMsIGRlZmluaXRpb24pID0+IHtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIga2V5IGluIGRlZmluaXRpb24pIHtcbi8qKioqKiovIFx0XHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGRlZmluaXRpb24sIGtleSkgJiYgIV9fd2VicGFja19yZXF1aXJlX18ubyhleHBvcnRzLCBrZXkpKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsIGtleSwgeyBlbnVtZXJhYmxlOiB0cnVlLCBnZXQ6IGRlZmluaXRpb25ba2V5XSB9KTtcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZW5zdXJlIGNodW5rICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mID0ge307XG4vKioqKioqLyBcdFx0Ly8gVGhpcyBmaWxlIGNvbnRhaW5zIG9ubHkgdGhlIGVudHJ5IGNodW5rLlxuLyoqKioqKi8gXHRcdC8vIFRoZSBjaHVuayBsb2FkaW5nIGZ1bmN0aW9uIGZvciBhZGRpdGlvbmFsIGNodW5rc1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZSA9IChjaHVua0lkKSA9PiB7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoT2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5mKS5yZWR1Y2UoKHByb21pc2VzLCBrZXkpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mW2tleV0oY2h1bmtJZCwgcHJvbWlzZXMpO1xuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4gcHJvbWlzZXM7XG4vKioqKioqLyBcdFx0XHR9LCBbXSkpO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgY2h1bmsgZmlsZW5hbWUgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHQvLyBUaGlzIGZ1bmN0aW9uIGFsbG93IHRvIHJlZmVyZW5jZSBhc3luYyBjaHVua3Ncbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnUgPSAoY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gdW5kZWZpbmVkO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZ2V0IGphdmFzY3JpcHQgdXBkYXRlIGNodW5rIGZpbGVuYW1lICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0Ly8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYWxsIGNodW5rc1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uaHUgPSAoY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0Ly8gcmV0dXJuIHVybCBmb3IgZmlsZW5hbWVzIGJhc2VkIG9uIHRlbXBsYXRlXG4vKioqKioqLyBcdFx0XHRyZXR1cm4gXCJzdGF0aWMvd2VicGFjay9cIiArIGNodW5rSWQgKyBcIi5cIiArIF9fd2VicGFja19yZXF1aXJlX18uaCgpICsgXCIuaG90LXVwZGF0ZS5qc1wiO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvZ2V0IG1pbmktY3NzIGNodW5rIGZpbGVuYW1lICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0Ly8gVGhpcyBmdW5jdGlvbiBhbGxvdyB0byByZWZlcmVuY2UgYXN5bmMgY2h1bmtzXG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5taW5pQ3NzRiA9IChjaHVua0lkKSA9PiB7XG4vKioqKioqLyBcdFx0XHQvLyByZXR1cm4gdXJsIGZvciBmaWxlbmFtZXMgYmFzZWQgb24gdGVtcGxhdGVcbi8qKioqKiovIFx0XHRcdHJldHVybiB1bmRlZmluZWQ7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9nZXQgdXBkYXRlIG1hbmlmZXN0IGZpbGVuYW1lICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJGID0gKCkgPT4gKFwic3RhdGljL3dlYnBhY2svXCIgKyBfX3dlYnBhY2tfcmVxdWlyZV9fLmgoKSArIFwiLndlYnBhY2suaG90LXVwZGF0ZS5qc29uXCIpO1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2dldEZ1bGxIYXNoICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5oID0gKCkgPT4gKFwiZDEwNGFiODllZjIxZjg2M1wiKVxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2dsb2JhbCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uZyA9IChmdW5jdGlvbigpIHtcbi8qKioqKiovIFx0XHRcdGlmICh0eXBlb2YgZ2xvYmFsVGhpcyA9PT0gJ29iamVjdCcpIHJldHVybiBnbG9iYWxUaGlzO1xuLyoqKioqKi8gXHRcdFx0dHJ5IHtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHRoaXMgfHwgbmV3IEZ1bmN0aW9uKCdyZXR1cm4gdGhpcycpKCk7XG4vKioqKioqLyBcdFx0XHR9IGNhdGNoIChlKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmICh0eXBlb2Ygd2luZG93ID09PSAnb2JqZWN0JykgcmV0dXJuIHdpbmRvdztcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHR9KSgpO1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2hhc093blByb3BlcnR5IHNob3J0aGFuZCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18ubyA9IChvYmosIHByb3ApID0+IChPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5LmNhbGwob2JqLCBwcm9wKSlcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9sb2FkIHNjcmlwdCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdHZhciBpblByb2dyZXNzID0ge307XG4vKioqKioqLyBcdFx0dmFyIGRhdGFXZWJwYWNrUHJlZml4ID0gXCJfTl9FOlwiO1xuLyoqKioqKi8gXHRcdC8vIGxvYWRTY3JpcHQgZnVuY3Rpb24gdG8gbG9hZCBhIHNjcmlwdCB2aWEgc2NyaXB0IHRhZ1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18ubCA9ICh1cmwsIGRvbmUsIGtleSwgY2h1bmtJZCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYoaW5Qcm9ncmVzc1t1cmxdKSB7IGluUHJvZ3Jlc3NbdXJsXS5wdXNoKGRvbmUpOyByZXR1cm47IH1cbi8qKioqKiovIFx0XHRcdHZhciBzY3JpcHQsIG5lZWRBdHRhY2g7XG4vKioqKioqLyBcdFx0XHRpZihrZXkgIT09IHVuZGVmaW5lZCkge1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgc2NyaXB0cyA9IGRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKFwic2NyaXB0XCIpO1xuLyoqKioqKi8gXHRcdFx0XHRmb3IodmFyIGkgPSAwOyBpIDwgc2NyaXB0cy5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBzID0gc2NyaXB0c1tpXTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZihzLmdldEF0dHJpYnV0ZShcInNyY1wiKSA9PSB1cmwgfHwgcy5nZXRBdHRyaWJ1dGUoXCJkYXRhLXdlYnBhY2tcIikgPT0gZGF0YVdlYnBhY2tQcmVmaXggKyBrZXkpIHsgc2NyaXB0ID0gczsgYnJlYWs7IH1cbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0aWYoIXNjcmlwdCkge1xuLyoqKioqKi8gXHRcdFx0XHRuZWVkQXR0YWNoID0gdHJ1ZTtcbi8qKioqKiovIFx0XHRcdFx0c2NyaXB0ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2NyaXB0Jyk7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdHNjcmlwdC5jaGFyc2V0ID0gJ3V0Zi04Jztcbi8qKioqKiovIFx0XHRcdFx0c2NyaXB0LnRpbWVvdXQgPSAxMjA7XG4vKioqKioqLyBcdFx0XHRcdGlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLm5jKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0c2NyaXB0LnNldEF0dHJpYnV0ZShcIm5vbmNlXCIsIF9fd2VicGFja19yZXF1aXJlX18ubmMpO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdHNjcmlwdC5zZXRBdHRyaWJ1dGUoXCJkYXRhLXdlYnBhY2tcIiwgZGF0YVdlYnBhY2tQcmVmaXggKyBrZXkpO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRzY3JpcHQuc3JjID0gX193ZWJwYWNrX3JlcXVpcmVfXy50dSh1cmwpO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0aW5Qcm9ncmVzc1t1cmxdID0gW2RvbmVdO1xuLyoqKioqKi8gXHRcdFx0dmFyIG9uU2NyaXB0Q29tcGxldGUgPSAocHJldiwgZXZlbnQpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0Ly8gYXZvaWQgbWVtIGxlYWtzIGluIElFLlxuLyoqKioqKi8gXHRcdFx0XHRzY3JpcHQub25lcnJvciA9IHNjcmlwdC5vbmxvYWQgPSBudWxsO1xuLyoqKioqKi8gXHRcdFx0XHRjbGVhclRpbWVvdXQodGltZW91dCk7XG4vKioqKioqLyBcdFx0XHRcdHZhciBkb25lRm5zID0gaW5Qcm9ncmVzc1t1cmxdO1xuLyoqKioqKi8gXHRcdFx0XHRkZWxldGUgaW5Qcm9ncmVzc1t1cmxdO1xuLyoqKioqKi8gXHRcdFx0XHRzY3JpcHQucGFyZW50Tm9kZSAmJiBzY3JpcHQucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChzY3JpcHQpO1xuLyoqKioqKi8gXHRcdFx0XHRkb25lRm5zICYmIGRvbmVGbnMuZm9yRWFjaCgoZm4pID0+IChmbihldmVudCkpKTtcbi8qKioqKiovIFx0XHRcdFx0aWYocHJldikgcmV0dXJuIHByZXYoZXZlbnQpO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0dmFyIHRpbWVvdXQgPSBzZXRUaW1lb3V0KG9uU2NyaXB0Q29tcGxldGUuYmluZChudWxsLCB1bmRlZmluZWQsIHsgdHlwZTogJ3RpbWVvdXQnLCB0YXJnZXQ6IHNjcmlwdCB9KSwgMTIwMDAwKTtcbi8qKioqKiovIFx0XHRcdHNjcmlwdC5vbmVycm9yID0gb25TY3JpcHRDb21wbGV0ZS5iaW5kKG51bGwsIHNjcmlwdC5vbmVycm9yKTtcbi8qKioqKiovIFx0XHRcdHNjcmlwdC5vbmxvYWQgPSBvblNjcmlwdENvbXBsZXRlLmJpbmQobnVsbCwgc2NyaXB0Lm9ubG9hZCk7XG4vKioqKioqLyBcdFx0XHRuZWVkQXR0YWNoICYmIGRvY3VtZW50LmhlYWQuYXBwZW5kQ2hpbGQoc2NyaXB0KTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL21ha2UgbmFtZXNwYWNlIG9iamVjdCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdC8vIGRlZmluZSBfX2VzTW9kdWxlIG9uIGV4cG9ydHNcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnIgPSAoZXhwb3J0cykgPT4ge1xuLyoqKioqKi8gXHRcdFx0aWYodHlwZW9mIFN5bWJvbCAhPT0gJ3VuZGVmaW5lZCcgJiYgU3ltYm9sLnRvU3RyaW5nVGFnKSB7XG4vKioqKioqLyBcdFx0XHRcdE9iamVjdC5kZWZpbmVQcm9wZXJ0eShleHBvcnRzLCBTeW1ib2wudG9TdHJpbmdUYWcsIHsgdmFsdWU6ICdNb2R1bGUnIH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGV4cG9ydHMsICdfX2VzTW9kdWxlJywgeyB2YWx1ZTogdHJ1ZSB9KTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL25vZGUgbW9kdWxlIGRlY29yYXRvciAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18ubm1kID0gKG1vZHVsZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0bW9kdWxlLnBhdGhzID0gW107XG4vKioqKioqLyBcdFx0XHRpZiAoIW1vZHVsZS5jaGlsZHJlbikgbW9kdWxlLmNoaWxkcmVuID0gW107XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gbW9kdWxlO1xuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvdHJ1c3RlZCB0eXBlcyBwb2xpY3kgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHR2YXIgcG9saWN5O1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18udHQgPSAoKSA9PiB7XG4vKioqKioqLyBcdFx0XHQvLyBDcmVhdGUgVHJ1c3RlZCBUeXBlIHBvbGljeSBpZiBUcnVzdGVkIFR5cGVzIGFyZSBhdmFpbGFibGUgYW5kIHRoZSBwb2xpY3kgZG9lc24ndCBleGlzdCB5ZXQuXG4vKioqKioqLyBcdFx0XHRpZiAocG9saWN5ID09PSB1bmRlZmluZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0cG9saWN5ID0ge1xuLyoqKioqKi8gXHRcdFx0XHRcdGNyZWF0ZVNjcmlwdDogKHNjcmlwdCkgPT4gKHNjcmlwdCksXG4vKioqKioqLyBcdFx0XHRcdFx0Y3JlYXRlU2NyaXB0VVJMOiAodXJsKSA9PiAodXJsKVxuLyoqKioqKi8gXHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHRpZiAodHlwZW9mIHRydXN0ZWRUeXBlcyAhPT0gXCJ1bmRlZmluZWRcIiAmJiB0cnVzdGVkVHlwZXMuY3JlYXRlUG9saWN5KSB7XG4vKioqKioqLyBcdFx0XHRcdFx0cG9saWN5ID0gdHJ1c3RlZFR5cGVzLmNyZWF0ZVBvbGljeShcIm5leHRqcyNidW5kbGVyXCIsIHBvbGljeSk7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdHJldHVybiBwb2xpY3k7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS90cnVzdGVkIHR5cGVzIHNjcmlwdCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18udHMgPSAoc2NyaXB0KSA9PiAoX193ZWJwYWNrX3JlcXVpcmVfXy50dCgpLmNyZWF0ZVNjcmlwdChzY3JpcHQpKTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS90cnVzdGVkIHR5cGVzIHNjcmlwdCB1cmwgKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnR1ID0gKHVybCkgPT4gKF9fd2VicGFja19yZXF1aXJlX18udHQoKS5jcmVhdGVTY3JpcHRVUkwodXJsKSk7XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvaG90IG1vZHVsZSByZXBsYWNlbWVudCAqL1xuLyoqKioqKi8gXHQoKCkgPT4ge1xuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50TW9kdWxlRGF0YSA9IHt9O1xuLyoqKioqKi8gXHRcdHZhciBpbnN0YWxsZWRNb2R1bGVzID0gX193ZWJwYWNrX3JlcXVpcmVfXy5jO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG1vZHVsZSBhbmQgcmVxdWlyZSBjcmVhdGlvblxuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50Q2hpbGRNb2R1bGU7XG4vKioqKioqLyBcdFx0dmFyIGN1cnJlbnRQYXJlbnRzID0gW107XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gc3RhdHVzXG4vKioqKioqLyBcdFx0dmFyIHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycyA9IFtdO1xuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50U3RhdHVzID0gXCJpZGxlXCI7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gd2hpbGUgZG93bmxvYWRpbmdcbi8qKioqKiovIFx0XHR2YXIgYmxvY2tpbmdQcm9taXNlcyA9IDA7XG4vKioqKioqLyBcdFx0dmFyIGJsb2NraW5nUHJvbWlzZXNXYWl0aW5nID0gW107XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0Ly8gVGhlIHVwZGF0ZSBpbmZvXG4vKioqKioqLyBcdFx0dmFyIGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzO1xuLyoqKioqKi8gXHRcdHZhciBxdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXM7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJEID0gY3VycmVudE1vZHVsZURhdGE7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5pLnB1c2goZnVuY3Rpb24gKG9wdGlvbnMpIHtcbi8qKioqKiovIFx0XHRcdHZhciBtb2R1bGUgPSBvcHRpb25zLm1vZHVsZTtcbi8qKioqKiovIFx0XHRcdHZhciByZXF1aXJlID0gY3JlYXRlUmVxdWlyZShvcHRpb25zLnJlcXVpcmUsIG9wdGlvbnMuaWQpO1xuLyoqKioqKi8gXHRcdFx0bW9kdWxlLmhvdCA9IGNyZWF0ZU1vZHVsZUhvdE9iamVjdChvcHRpb25zLmlkLCBtb2R1bGUpO1xuLyoqKioqKi8gXHRcdFx0bW9kdWxlLnBhcmVudHMgPSBjdXJyZW50UGFyZW50cztcbi8qKioqKiovIFx0XHRcdG1vZHVsZS5jaGlsZHJlbiA9IFtdO1xuLyoqKioqKi8gXHRcdFx0Y3VycmVudFBhcmVudHMgPSBbXTtcbi8qKioqKiovIFx0XHRcdG9wdGlvbnMucmVxdWlyZSA9IHJlcXVpcmU7XG4vKioqKioqLyBcdFx0fSk7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJDID0ge307XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJJID0ge307XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0ZnVuY3Rpb24gY3JlYXRlUmVxdWlyZShyZXF1aXJlLCBtb2R1bGVJZCkge1xuLyoqKioqKi8gXHRcdFx0dmFyIG1lID0gaW5zdGFsbGVkTW9kdWxlc1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRpZiAoIW1lKSByZXR1cm4gcmVxdWlyZTtcbi8qKioqKiovIFx0XHRcdHZhciBmbiA9IGZ1bmN0aW9uIChyZXF1ZXN0KSB7XG4vKioqKioqLyBcdFx0XHRcdGlmIChtZS5ob3QuYWN0aXZlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKGluc3RhbGxlZE1vZHVsZXNbcmVxdWVzdF0pIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBwYXJlbnRzID0gaW5zdGFsbGVkTW9kdWxlc1tyZXF1ZXN0XS5wYXJlbnRzO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKHBhcmVudHMuaW5kZXhPZihtb2R1bGVJZCkgPT09IC0xKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHBhcmVudHMucHVzaChtb2R1bGVJZCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0fSBlbHNlIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRQYXJlbnRzID0gW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRDaGlsZE1vZHVsZSA9IHJlcXVlc3Q7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChtZS5jaGlsZHJlbi5pbmRleE9mKHJlcXVlc3QpID09PSAtMSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0bWUuY2hpbGRyZW4ucHVzaChyZXF1ZXN0KTtcbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y29uc29sZS53YXJuKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XCJbSE1SXSB1bmV4cGVjdGVkIHJlcXVpcmUoXCIgK1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRyZXF1ZXN0ICtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XCIpIGZyb20gZGlzcG9zZWQgbW9kdWxlIFwiICtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0bW9kdWxlSWRcbi8qKioqKiovIFx0XHRcdFx0XHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdGN1cnJlbnRQYXJlbnRzID0gW107XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHJlcXVpcmUocmVxdWVzdCk7XG4vKioqKioqLyBcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0dmFyIGNyZWF0ZVByb3BlcnR5RGVzY3JpcHRvciA9IGZ1bmN0aW9uIChuYW1lKSB7XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y29uZmlndXJhYmxlOiB0cnVlLFxuLyoqKioqKi8gXHRcdFx0XHRcdGVudW1lcmFibGU6IHRydWUsXG4vKioqKioqLyBcdFx0XHRcdFx0Z2V0OiBmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXR1cm4gcmVxdWlyZVtuYW1lXTtcbi8qKioqKiovIFx0XHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRcdHNldDogZnVuY3Rpb24gKHZhbHVlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXF1aXJlW25hbWVdID0gdmFsdWU7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0fTtcbi8qKioqKiovIFx0XHRcdGZvciAodmFyIG5hbWUgaW4gcmVxdWlyZSkge1xuLyoqKioqKi8gXHRcdFx0XHRpZiAoT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHJlcXVpcmUsIG5hbWUpICYmIG5hbWUgIT09IFwiZVwiKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0T2JqZWN0LmRlZmluZVByb3BlcnR5KGZuLCBuYW1lLCBjcmVhdGVQcm9wZXJ0eURlc2NyaXB0b3IobmFtZSkpO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRmbi5lID0gZnVuY3Rpb24gKGNodW5rSWQsIGZldGNoUHJpb3JpdHkpIHtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHRyYWNrQmxvY2tpbmdQcm9taXNlKHJlcXVpcmUuZShjaHVua0lkLCBmZXRjaFByaW9yaXR5KSk7XG4vKioqKioqLyBcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGZuO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRmdW5jdGlvbiBjcmVhdGVNb2R1bGVIb3RPYmplY3QobW9kdWxlSWQsIG1lKSB7XG4vKioqKioqLyBcdFx0XHR2YXIgX21haW4gPSBjdXJyZW50Q2hpbGRNb2R1bGUgIT09IG1vZHVsZUlkO1xuLyoqKioqKi8gXHRcdFx0dmFyIGhvdCA9IHtcbi8qKioqKiovIFx0XHRcdFx0Ly8gcHJpdmF0ZSBzdHVmZlxuLyoqKioqKi8gXHRcdFx0XHRfYWNjZXB0ZWREZXBlbmRlbmNpZXM6IHt9LFxuLyoqKioqKi8gXHRcdFx0XHRfYWNjZXB0ZWRFcnJvckhhbmRsZXJzOiB7fSxcbi8qKioqKiovIFx0XHRcdFx0X2RlY2xpbmVkRGVwZW5kZW5jaWVzOiB7fSxcbi8qKioqKiovIFx0XHRcdFx0X3NlbGZBY2NlcHRlZDogZmFsc2UsXG4vKioqKioqLyBcdFx0XHRcdF9zZWxmRGVjbGluZWQ6IGZhbHNlLFxuLyoqKioqKi8gXHRcdFx0XHRfc2VsZkludmFsaWRhdGVkOiBmYWxzZSxcbi8qKioqKiovIFx0XHRcdFx0X2Rpc3Bvc2VIYW5kbGVyczogW10sXG4vKioqKioqLyBcdFx0XHRcdF9tYWluOiBfbWFpbixcbi8qKioqKiovIFx0XHRcdFx0X3JlcXVpcmVTZWxmOiBmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y3VycmVudFBhcmVudHMgPSBtZS5wYXJlbnRzLnNsaWNlKCk7XG4vKioqKioqLyBcdFx0XHRcdFx0Y3VycmVudENoaWxkTW9kdWxlID0gX21haW4gPyB1bmRlZmluZWQgOiBtb2R1bGVJZDtcbi8qKioqKiovIFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fKG1vZHVsZUlkKTtcbi8qKioqKiovIFx0XHRcdFx0fSxcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0Ly8gTW9kdWxlIEFQSVxuLyoqKioqKi8gXHRcdFx0XHRhY3RpdmU6IHRydWUsXG4vKioqKioqLyBcdFx0XHRcdGFjY2VwdDogZnVuY3Rpb24gKGRlcCwgY2FsbGJhY2ssIGVycm9ySGFuZGxlcikge1xuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChkZXAgPT09IHVuZGVmaW5lZCkgaG90Ll9zZWxmQWNjZXB0ZWQgPSB0cnVlO1xuLyoqKioqKi8gXHRcdFx0XHRcdGVsc2UgaWYgKHR5cGVvZiBkZXAgPT09IFwiZnVuY3Rpb25cIikgaG90Ll9zZWxmQWNjZXB0ZWQgPSBkZXA7XG4vKioqKioqLyBcdFx0XHRcdFx0ZWxzZSBpZiAodHlwZW9mIGRlcCA9PT0gXCJvYmplY3RcIiAmJiBkZXAgIT09IG51bGwpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgZGVwLmxlbmd0aDsgaSsrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGhvdC5fYWNjZXB0ZWREZXBlbmRlbmNpZXNbZGVwW2ldXSA9IGNhbGxiYWNrIHx8IGZ1bmN0aW9uICgpIHt9O1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRob3QuX2FjY2VwdGVkRXJyb3JIYW5kbGVyc1tkZXBbaV1dID0gZXJyb3JIYW5kbGVyO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRob3QuX2FjY2VwdGVkRGVwZW5kZW5jaWVzW2RlcF0gPSBjYWxsYmFjayB8fCBmdW5jdGlvbiAoKSB7fTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGhvdC5fYWNjZXB0ZWRFcnJvckhhbmRsZXJzW2RlcF0gPSBlcnJvckhhbmRsZXI7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRkZWNsaW5lOiBmdW5jdGlvbiAoZGVwKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKGRlcCA9PT0gdW5kZWZpbmVkKSBob3QuX3NlbGZEZWNsaW5lZCA9IHRydWU7XG4vKioqKioqLyBcdFx0XHRcdFx0ZWxzZSBpZiAodHlwZW9mIGRlcCA9PT0gXCJvYmplY3RcIiAmJiBkZXAgIT09IG51bGwpXG4vKioqKioqLyBcdFx0XHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IGRlcC5sZW5ndGg7IGkrKylcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aG90Ll9kZWNsaW5lZERlcGVuZGVuY2llc1tkZXBbaV1dID0gdHJ1ZTtcbi8qKioqKiovIFx0XHRcdFx0XHRlbHNlIGhvdC5fZGVjbGluZWREZXBlbmRlbmNpZXNbZGVwXSA9IHRydWU7XG4vKioqKioqLyBcdFx0XHRcdH0sXG4vKioqKioqLyBcdFx0XHRcdGRpc3Bvc2U6IGZ1bmN0aW9uIChjYWxsYmFjaykge1xuLyoqKioqKi8gXHRcdFx0XHRcdGhvdC5fZGlzcG9zZUhhbmRsZXJzLnB1c2goY2FsbGJhY2spO1xuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRhZGREaXNwb3NlSGFuZGxlcjogZnVuY3Rpb24gKGNhbGxiYWNrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aG90Ll9kaXNwb3NlSGFuZGxlcnMucHVzaChjYWxsYmFjayk7XG4vKioqKioqLyBcdFx0XHRcdH0sXG4vKioqKioqLyBcdFx0XHRcdHJlbW92ZURpc3Bvc2VIYW5kbGVyOiBmdW5jdGlvbiAoY2FsbGJhY2spIHtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgaWR4ID0gaG90Ll9kaXNwb3NlSGFuZGxlcnMuaW5kZXhPZihjYWxsYmFjayk7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKGlkeCA+PSAwKSBob3QuX2Rpc3Bvc2VIYW5kbGVycy5zcGxpY2UoaWR4LCAxKTtcbi8qKioqKiovIFx0XHRcdFx0fSxcbi8qKioqKiovIFx0XHRcdFx0aW52YWxpZGF0ZTogZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHRoaXMuX3NlbGZJbnZhbGlkYXRlZCA9IHRydWU7XG4vKioqKioqLyBcdFx0XHRcdFx0c3dpdGNoIChjdXJyZW50U3RhdHVzKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwiaWRsZVwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVycyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmhtckkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uaG1ySVtrZXldKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVyc1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRzZXRTdGF0dXMoXCJyZWFkeVwiKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwicmVhZHlcIjpcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0T2JqZWN0LmtleXMoX193ZWJwYWNrX3JlcXVpcmVfXy5obXJJKS5mb3JFYWNoKGZ1bmN0aW9uIChrZXkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmhtcklba2V5XShcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0Y3VycmVudFVwZGF0ZUFwcGx5SGFuZGxlcnNcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwicHJlcGFyZVwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2FzZSBcImNoZWNrXCI6XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwiZGlzcG9zZVwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2FzZSBcImFwcGx5XCI6XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdChxdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXMgPSBxdWV1ZWRJbnZhbGlkYXRlZE1vZHVsZXMgfHwgW10pLnB1c2goXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWRcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRkZWZhdWx0OlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHQvLyBpZ25vcmUgcmVxdWVzdHMgaW4gZXJyb3Igc3RhdGVzXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGJyZWFrO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0fSxcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0Ly8gTWFuYWdlbWVudCBBUElcbi8qKioqKiovIFx0XHRcdFx0Y2hlY2s6IGhvdENoZWNrLFxuLyoqKioqKi8gXHRcdFx0XHRhcHBseTogaG90QXBwbHksXG4vKioqKioqLyBcdFx0XHRcdHN0YXR1czogZnVuY3Rpb24gKGwpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoIWwpIHJldHVybiBjdXJyZW50U3RhdHVzO1xuLyoqKioqKi8gXHRcdFx0XHRcdHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycy5wdXNoKGwpO1xuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRhZGRTdGF0dXNIYW5kbGVyOiBmdW5jdGlvbiAobCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycy5wdXNoKGwpO1xuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRyZW1vdmVTdGF0dXNIYW5kbGVyOiBmdW5jdGlvbiAobCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBpZHggPSByZWdpc3RlcmVkU3RhdHVzSGFuZGxlcnMuaW5kZXhPZihsKTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoaWR4ID49IDApIHJlZ2lzdGVyZWRTdGF0dXNIYW5kbGVycy5zcGxpY2UoaWR4LCAxKTtcbi8qKioqKiovIFx0XHRcdFx0fSxcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0Ly8gaW5oZXJpdCBmcm9tIHByZXZpb3VzIGRpc3Bvc2UgY2FsbFxuLyoqKioqKi8gXHRcdFx0XHRkYXRhOiBjdXJyZW50TW9kdWxlRGF0YVttb2R1bGVJZF1cbi8qKioqKiovIFx0XHRcdH07XG4vKioqKioqLyBcdFx0XHRjdXJyZW50Q2hpbGRNb2R1bGUgPSB1bmRlZmluZWQ7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gaG90O1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRmdW5jdGlvbiBzZXRTdGF0dXMobmV3U3RhdHVzKSB7XG4vKioqKioqLyBcdFx0XHRjdXJyZW50U3RhdHVzID0gbmV3U3RhdHVzO1xuLyoqKioqKi8gXHRcdFx0dmFyIHJlc3VsdHMgPSBbXTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgcmVnaXN0ZXJlZFN0YXR1c0hhbmRsZXJzLmxlbmd0aDsgaSsrKVxuLyoqKioqKi8gXHRcdFx0XHRyZXN1bHRzW2ldID0gcmVnaXN0ZXJlZFN0YXR1c0hhbmRsZXJzW2ldLmNhbGwobnVsbCwgbmV3U3RhdHVzKTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdHJldHVybiBQcm9taXNlLmFsbChyZXN1bHRzKS50aGVuKGZ1bmN0aW9uICgpIHt9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0ZnVuY3Rpb24gdW5ibG9jaygpIHtcbi8qKioqKiovIFx0XHRcdGlmICgtLWJsb2NraW5nUHJvbWlzZXMgPT09IDApIHtcbi8qKioqKiovIFx0XHRcdFx0c2V0U3RhdHVzKFwicmVhZHlcIikudGhlbihmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKGJsb2NraW5nUHJvbWlzZXMgPT09IDApIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBsaXN0ID0gYmxvY2tpbmdQcm9taXNlc1dhaXRpbmc7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRibG9ja2luZ1Byb21pc2VzV2FpdGluZyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Zm9yICh2YXIgaSA9IDA7IGkgPCBsaXN0Lmxlbmd0aDsgaSsrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGxpc3RbaV0oKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRmdW5jdGlvbiB0cmFja0Jsb2NraW5nUHJvbWlzZShwcm9taXNlKSB7XG4vKioqKioqLyBcdFx0XHRzd2l0Y2ggKGN1cnJlbnRTdGF0dXMpIHtcbi8qKioqKiovIFx0XHRcdFx0Y2FzZSBcInJlYWR5XCI6XG4vKioqKioqLyBcdFx0XHRcdFx0c2V0U3RhdHVzKFwicHJlcGFyZVwiKTtcbi8qKioqKiovIFx0XHRcdFx0LyogZmFsbHRocm91Z2ggKi9cbi8qKioqKiovIFx0XHRcdFx0Y2FzZSBcInByZXBhcmVcIjpcbi8qKioqKiovIFx0XHRcdFx0XHRibG9ja2luZ1Byb21pc2VzKys7XG4vKioqKioqLyBcdFx0XHRcdFx0cHJvbWlzZS50aGVuKHVuYmxvY2ssIHVuYmxvY2spO1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBwcm9taXNlO1xuLyoqKioqKi8gXHRcdFx0XHRkZWZhdWx0OlxuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBwcm9taXNlO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRmdW5jdGlvbiB3YWl0Rm9yQmxvY2tpbmdQcm9taXNlcyhmbikge1xuLyoqKioqKi8gXHRcdFx0aWYgKGJsb2NraW5nUHJvbWlzZXMgPT09IDApIHJldHVybiBmbigpO1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uIChyZXNvbHZlKSB7XG4vKioqKioqLyBcdFx0XHRcdGJsb2NraW5nUHJvbWlzZXNXYWl0aW5nLnB1c2goZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJlc29sdmUoZm4oKSk7XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdGZ1bmN0aW9uIGhvdENoZWNrKGFwcGx5T25VcGRhdGUpIHtcbi8qKioqKiovIFx0XHRcdGlmIChjdXJyZW50U3RhdHVzICE9PSBcImlkbGVcIikge1xuLyoqKioqKi8gXHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJjaGVjaygpIGlzIG9ubHkgYWxsb3dlZCBpbiBpZGxlIHN0YXR1c1wiKTtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdHJldHVybiBzZXRTdGF0dXMoXCJjaGVja1wiKVxuLyoqKioqKi8gXHRcdFx0XHQudGhlbihfX3dlYnBhY2tfcmVxdWlyZV9fLmhtck0pXG4vKioqKioqLyBcdFx0XHRcdC50aGVuKGZ1bmN0aW9uICh1cGRhdGUpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoIXVwZGF0ZSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmV0dXJuIHNldFN0YXR1cyhhcHBseUludmFsaWRhdGVkTW9kdWxlcygpID8gXCJyZWFkeVwiIDogXCJpZGxlXCIpLnRoZW4oXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGZ1bmN0aW9uICgpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gbnVsbDtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0cmV0dXJuIHNldFN0YXR1cyhcInByZXBhcmVcIikudGhlbihmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR2YXIgdXBkYXRlZE1vZHVsZXMgPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzID0gW107XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5hbGwoXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdE9iamVjdC5rZXlzKF9fd2VicGFja19yZXF1aXJlX18uaG1yQykucmVkdWNlKGZ1bmN0aW9uIChcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRwcm9taXNlcyxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRrZXlcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0KSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJDW2tleV0oXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR1cGRhdGUuYyxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdHVwZGF0ZS5yLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0dXBkYXRlLm0sXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRwcm9taXNlcyxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0dXBkYXRlZE1vZHVsZXNcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdHJldHVybiBwcm9taXNlcztcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fSwgW10pXG4vKioqKioqLyBcdFx0XHRcdFx0XHQpLnRoZW4oZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRyZXR1cm4gd2FpdEZvckJsb2NraW5nUHJvbWlzZXMoZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGlmIChhcHBseU9uVXBkYXRlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gaW50ZXJuYWxBcHBseShhcHBseU9uVXBkYXRlKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHNldFN0YXR1cyhcInJlYWR5XCIpLnRoZW4oZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0cmV0dXJuIHVwZGF0ZWRNb2R1bGVzO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0ZnVuY3Rpb24gaG90QXBwbHkob3B0aW9ucykge1xuLyoqKioqKi8gXHRcdFx0aWYgKGN1cnJlbnRTdGF0dXMgIT09IFwicmVhZHlcIikge1xuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XCJhcHBseSgpIGlzIG9ubHkgYWxsb3dlZCBpbiByZWFkeSBzdGF0dXMgKHN0YXRlOiBcIiArXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGN1cnJlbnRTdGF0dXMgK1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcIilcIlxuLyoqKioqKi8gXHRcdFx0XHRcdCk7XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGludGVybmFsQXBwbHkob3B0aW9ucyk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdGZ1bmN0aW9uIGludGVybmFsQXBwbHkob3B0aW9ucykge1xuLyoqKioqKi8gXHRcdFx0b3B0aW9ucyA9IG9wdGlvbnMgfHwge307XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRhcHBseUludmFsaWRhdGVkTW9kdWxlcygpO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0dmFyIHJlc3VsdHMgPSBjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVycy5tYXAoZnVuY3Rpb24gKGhhbmRsZXIpIHtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIGhhbmRsZXIob3B0aW9ucyk7XG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdGN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzID0gdW5kZWZpbmVkO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0dmFyIGVycm9ycyA9IHJlc3VsdHNcbi8qKioqKiovIFx0XHRcdFx0Lm1hcChmdW5jdGlvbiAocikge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiByLmVycm9yO1xuLyoqKioqKi8gXHRcdFx0XHR9KVxuLyoqKioqKi8gXHRcdFx0XHQuZmlsdGVyKEJvb2xlYW4pO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0aWYgKGVycm9ycy5sZW5ndGggPiAwKSB7XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiBzZXRTdGF0dXMoXCJhYm9ydFwiKS50aGVuKGZ1bmN0aW9uICgpIHtcbi8qKioqKiovIFx0XHRcdFx0XHR0aHJvdyBlcnJvcnNbMF07XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0Ly8gTm93IGluIFwiZGlzcG9zZVwiIHBoYXNlXG4vKioqKioqLyBcdFx0XHR2YXIgZGlzcG9zZVByb21pc2UgPSBzZXRTdGF0dXMoXCJkaXNwb3NlXCIpO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0cmVzdWx0cy5mb3JFYWNoKGZ1bmN0aW9uIChyZXN1bHQpIHtcbi8qKioqKiovIFx0XHRcdFx0aWYgKHJlc3VsdC5kaXNwb3NlKSByZXN1bHQuZGlzcG9zZSgpO1xuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHQvLyBOb3cgaW4gXCJhcHBseVwiIHBoYXNlXG4vKioqKioqLyBcdFx0XHR2YXIgYXBwbHlQcm9taXNlID0gc2V0U3RhdHVzKFwiYXBwbHlcIik7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHR2YXIgZXJyb3I7XG4vKioqKioqLyBcdFx0XHR2YXIgcmVwb3J0RXJyb3IgPSBmdW5jdGlvbiAoZXJyKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmICghZXJyb3IpIGVycm9yID0gZXJyO1xuLyoqKioqKi8gXHRcdFx0fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdHZhciBvdXRkYXRlZE1vZHVsZXMgPSBbXTtcbi8qKioqKiovIFx0XHRcdHJlc3VsdHMuZm9yRWFjaChmdW5jdGlvbiAocmVzdWx0KSB7XG4vKioqKioqLyBcdFx0XHRcdGlmIChyZXN1bHQuYXBwbHkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgbW9kdWxlcyA9IHJlc3VsdC5hcHBseShyZXBvcnRFcnJvcik7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKG1vZHVsZXMpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgbW9kdWxlcy5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRvdXRkYXRlZE1vZHVsZXMucHVzaChtb2R1bGVzW2ldKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIFByb21pc2UuYWxsKFtkaXNwb3NlUHJvbWlzZSwgYXBwbHlQcm9taXNlXSkudGhlbihmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdC8vIGhhbmRsZSBlcnJvcnMgaW4gYWNjZXB0IGhhbmRsZXJzIGFuZCBzZWxmIGFjY2VwdGVkIG1vZHVsZSBsb2FkXG4vKioqKioqLyBcdFx0XHRcdGlmIChlcnJvcikge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBzZXRTdGF0dXMoXCJmYWlsXCIpLnRoZW4oZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dGhyb3cgZXJyb3I7XG4vKioqKioqLyBcdFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0aWYgKHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcykge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBpbnRlcm5hbEFwcGx5KG9wdGlvbnMpLnRoZW4oZnVuY3Rpb24gKGxpc3QpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdG91dGRhdGVkTW9kdWxlcy5mb3JFYWNoKGZ1bmN0aW9uIChtb2R1bGVJZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAobGlzdC5pbmRleE9mKG1vZHVsZUlkKSA8IDApIGxpc3QucHVzaChtb2R1bGVJZCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHJldHVybiBsaXN0O1xuLyoqKioqKi8gXHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiBzZXRTdGF0dXMoXCJpZGxlXCIpLnRoZW4oZnVuY3Rpb24gKCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBvdXRkYXRlZE1vZHVsZXM7XG4vKioqKioqLyBcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdGZ1bmN0aW9uIGFwcGx5SW52YWxpZGF0ZWRNb2R1bGVzKCkge1xuLyoqKioqKi8gXHRcdFx0aWYgKHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcykge1xuLyoqKioqKi8gXHRcdFx0XHRpZiAoIWN1cnJlbnRVcGRhdGVBcHBseUhhbmRsZXJzKSBjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVycyA9IFtdO1xuLyoqKioqKi8gXHRcdFx0XHRPYmplY3Qua2V5cyhfX3dlYnBhY2tfcmVxdWlyZV9fLmhtckkpLmZvckVhY2goZnVuY3Rpb24gKGtleSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcy5mb3JFYWNoKGZ1bmN0aW9uIChtb2R1bGVJZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJJW2tleV0oXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRjdXJyZW50VXBkYXRlQXBwbHlIYW5kbGVyc1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdHF1ZXVlZEludmFsaWRhdGVkTW9kdWxlcyA9IHVuZGVmaW5lZDtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIHRydWU7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHR9KSgpO1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL3B1YmxpY1BhdGggKi9cbi8qKioqKiovIFx0KCgpID0+IHtcbi8qKioqKiovIFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLnAgPSBcIi9fbmV4dC9cIjtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9yZWFjdCByZWZyZXNoICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0aWYgKF9fd2VicGFja19yZXF1aXJlX18uaSkge1xuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uaS5wdXNoKChvcHRpb25zKSA9PiB7XG4vKioqKioqLyBcdFx0XHRjb25zdCBvcmlnaW5hbEZhY3RvcnkgPSBvcHRpb25zLmZhY3Rvcnk7XG4vKioqKioqLyBcdFx0XHRvcHRpb25zLmZhY3RvcnkgPSAobW9kdWxlT2JqZWN0LCBtb2R1bGVFeHBvcnRzLCB3ZWJwYWNrUmVxdWlyZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHRjb25zdCBoYXNSZWZyZXNoID0gdHlwZW9mIHNlbGYgIT09IFwidW5kZWZpbmVkXCIgJiYgISFzZWxmLiRSZWZyZXNoSW50ZXJjZXB0TW9kdWxlRXhlY3V0aW9uJDtcbi8qKioqKiovIFx0XHRcdFx0Y29uc3QgY2xlYW51cCA9IGhhc1JlZnJlc2ggPyBzZWxmLiRSZWZyZXNoSW50ZXJjZXB0TW9kdWxlRXhlY3V0aW9uJChtb2R1bGVPYmplY3QuaWQpIDogKCkgPT4ge307XG4vKioqKioqLyBcdFx0XHRcdHRyeSB7XG4vKioqKioqLyBcdFx0XHRcdFx0b3JpZ2luYWxGYWN0b3J5LmNhbGwodGhpcywgbW9kdWxlT2JqZWN0LCBtb2R1bGVFeHBvcnRzLCB3ZWJwYWNrUmVxdWlyZSk7XG4vKioqKioqLyBcdFx0XHRcdH0gZmluYWxseSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y2xlYW51cCgpO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0fSlcbi8qKioqKiovIFx0XHR9XG4vKioqKioqLyBcdH0pKCk7XG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHQvKiB3ZWJwYWNrL3J1bnRpbWUvY29tcGF0ICovXG4vKioqKioqLyBcdFxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gbm9vcCBmbnMgdG8gcHJldmVudCBydW50aW1lIGVycm9ycyBkdXJpbmcgaW5pdGlhbGl6YXRpb25cbi8qKioqKiovIFx0aWYgKHR5cGVvZiBzZWxmICE9PSBcInVuZGVmaW5lZFwiKSB7XG4vKioqKioqLyBcdFx0c2VsZi4kUmVmcmVzaFJlZyQgPSBmdW5jdGlvbiAoKSB7fTtcbi8qKioqKiovIFx0XHRzZWxmLiRSZWZyZXNoU2lnJCA9IGZ1bmN0aW9uICgpIHtcbi8qKioqKiovIFx0XHRcdHJldHVybiBmdW5jdGlvbiAodHlwZSkge1xuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4gdHlwZTtcbi8qKioqKiovIFx0XHRcdH07XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0fVxuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Lyogd2VicGFjay9ydW50aW1lL2NzcyBsb2FkaW5nICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0dmFyIGNyZWF0ZVN0eWxlc2hlZXQgPSAoY2h1bmtJZCwgZnVsbGhyZWYsIHJlc29sdmUsIHJlamVjdCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0dmFyIGxpbmtUYWcgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KFwibGlua1wiKTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdGxpbmtUYWcucmVsID0gXCJzdHlsZXNoZWV0XCI7XG4vKioqKioqLyBcdFx0XHRsaW5rVGFnLnR5cGUgPSBcInRleHQvY3NzXCI7XG4vKioqKioqLyBcdFx0XHR2YXIgb25MaW5rQ29tcGxldGUgPSAoZXZlbnQpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0Ly8gYXZvaWQgbWVtIGxlYWtzLlxuLyoqKioqKi8gXHRcdFx0XHRsaW5rVGFnLm9uZXJyb3IgPSBsaW5rVGFnLm9ubG9hZCA9IG51bGw7XG4vKioqKioqLyBcdFx0XHRcdGlmIChldmVudC50eXBlID09PSAnbG9hZCcpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRyZXNvbHZlKCk7XG4vKioqKioqLyBcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIGVycm9yVHlwZSA9IGV2ZW50ICYmIChldmVudC50eXBlID09PSAnbG9hZCcgPyAnbWlzc2luZycgOiBldmVudC50eXBlKTtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgcmVhbEhyZWYgPSBldmVudCAmJiBldmVudC50YXJnZXQgJiYgZXZlbnQudGFyZ2V0LmhyZWYgfHwgZnVsbGhyZWY7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIGVyciA9IG5ldyBFcnJvcihcIkxvYWRpbmcgQ1NTIGNodW5rIFwiICsgY2h1bmtJZCArIFwiIGZhaWxlZC5cXG4oXCIgKyByZWFsSHJlZiArIFwiKVwiKTtcbi8qKioqKiovIFx0XHRcdFx0XHRlcnIuY29kZSA9IFwiQ1NTX0NIVU5LX0xPQURfRkFJTEVEXCI7XG4vKioqKioqLyBcdFx0XHRcdFx0ZXJyLnR5cGUgPSBlcnJvclR5cGU7XG4vKioqKioqLyBcdFx0XHRcdFx0ZXJyLnJlcXVlc3QgPSByZWFsSHJlZjtcbi8qKioqKiovIFx0XHRcdFx0XHRsaW5rVGFnLnBhcmVudE5vZGUucmVtb3ZlQ2hpbGQobGlua1RhZylcbi8qKioqKiovIFx0XHRcdFx0XHRyZWplY3QoZXJyKTtcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0bGlua1RhZy5vbmVycm9yID0gbGlua1RhZy5vbmxvYWQgPSBvbkxpbmtDb21wbGV0ZTtcbi8qKioqKiovIFx0XHRcdGxpbmtUYWcuaHJlZiA9IGZ1bGxocmVmO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0KGZ1bmN0aW9uKGxpbmtUYWcpIHtcbi8qKioqKiovIFx0XHRcdCAgICAgICAgICAgICAgICBpZiAodHlwZW9mIF9OX0VfU1RZTEVfTE9BRCA9PT0gJ2Z1bmN0aW9uJykge1xuLyoqKioqKi8gXHRcdFx0ICAgICAgICAgICAgICAgICAgICBjb25zdCB7IGhyZWYsIG9ubG9hZCwgb25lcnJvciB9ID0gbGlua1RhZztcbi8qKioqKiovIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgX05fRV9TVFlMRV9MT0FEKGhyZWYuaW5kZXhPZih3aW5kb3cubG9jYXRpb24ub3JpZ2luKSA9PT0gMCA/IG5ldyBVUkwoaHJlZikucGF0aG5hbWUgOiBocmVmKS50aGVuKCgpPT5vbmxvYWQgPT0gbnVsbCA/IHZvaWQgMCA6IG9ubG9hZC5jYWxsKGxpbmtUYWcsIHtcbi8qKioqKiovIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgICAgICB0eXBlOiAnbG9hZCdcbi8qKioqKiovIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgICAgIH0pLCAoKT0+b25lcnJvciA9PSBudWxsID8gdm9pZCAwIDogb25lcnJvci5jYWxsKGxpbmtUYWcsIHt9KSk7XG4vKioqKioqLyBcdFx0XHQgICAgICAgICAgICAgICAgfSBlbHNlIHtcbi8qKioqKiovIFx0XHRcdCAgICAgICAgICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChsaW5rVGFnKTtcbi8qKioqKiovIFx0XHRcdCAgICAgICAgICAgICAgICB9XG4vKioqKioqLyBcdFx0XHQgICAgICAgICAgICB9KShsaW5rVGFnKVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIGxpbmtUYWc7XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XHR2YXIgZmluZFN0eWxlc2hlZXQgPSAoaHJlZiwgZnVsbGhyZWYpID0+IHtcbi8qKioqKiovIFx0XHRcdHZhciBleGlzdGluZ0xpbmtUYWdzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJsaW5rXCIpO1xuLyoqKioqKi8gXHRcdFx0Zm9yKHZhciBpID0gMDsgaSA8IGV4aXN0aW5nTGlua1RhZ3MubGVuZ3RoOyBpKyspIHtcbi8qKioqKiovIFx0XHRcdFx0dmFyIHRhZyA9IGV4aXN0aW5nTGlua1RhZ3NbaV07XG4vKioqKioqLyBcdFx0XHRcdHZhciBkYXRhSHJlZiA9IHRhZy5nZXRBdHRyaWJ1dGUoXCJkYXRhLWhyZWZcIikgfHwgdGFnLmdldEF0dHJpYnV0ZShcImhyZWZcIik7XG4vKioqKioqLyBcdFx0XHRcdGlmKHRhZy5yZWwgPT09IFwic3R5bGVzaGVldFwiICYmIChkYXRhSHJlZiA9PT0gaHJlZiB8fCBkYXRhSHJlZiA9PT0gZnVsbGhyZWYpKSByZXR1cm4gdGFnO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0dmFyIGV4aXN0aW5nU3R5bGVUYWdzID0gZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoXCJzdHlsZVwiKTtcbi8qKioqKiovIFx0XHRcdGZvcih2YXIgaSA9IDA7IGkgPCBleGlzdGluZ1N0eWxlVGFncy5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgdGFnID0gZXhpc3RpbmdTdHlsZVRhZ3NbaV07XG4vKioqKioqLyBcdFx0XHRcdHZhciBkYXRhSHJlZiA9IHRhZy5nZXRBdHRyaWJ1dGUoXCJkYXRhLWhyZWZcIik7XG4vKioqKioqLyBcdFx0XHRcdGlmKGRhdGFIcmVmID09PSBocmVmIHx8IGRhdGFIcmVmID09PSBmdWxsaHJlZikgcmV0dXJuIHRhZztcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcdHZhciBsb2FkU3R5bGVzaGVldCA9IChjaHVua0lkKSA9PiB7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgaHJlZiA9IF9fd2VicGFja19yZXF1aXJlX18ubWluaUNzc0YoY2h1bmtJZCk7XG4vKioqKioqLyBcdFx0XHRcdHZhciBmdWxsaHJlZiA9IF9fd2VicGFja19yZXF1aXJlX18ucCArIGhyZWY7XG4vKioqKioqLyBcdFx0XHRcdGlmKGZpbmRTdHlsZXNoZWV0KGhyZWYsIGZ1bGxocmVmKSkgcmV0dXJuIHJlc29sdmUoKTtcbi8qKioqKiovIFx0XHRcdFx0Y3JlYXRlU3R5bGVzaGVldChjaHVua0lkLCBmdWxsaHJlZiwgcmVzb2x2ZSwgcmVqZWN0KTtcbi8qKioqKiovIFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHQvLyBubyBjaHVuayBsb2FkaW5nXG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0dmFyIG9sZFRhZ3MgPSBbXTtcbi8qKioqKiovIFx0XHR2YXIgbmV3VGFncyA9IFtdO1xuLyoqKioqKi8gXHRcdHZhciBhcHBseUhhbmRsZXIgPSAob3B0aW9ucykgPT4ge1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIHsgZGlzcG9zZTogKCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHRmb3IodmFyIGkgPSAwOyBpIDwgb2xkVGFncy5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBvbGRUYWcgPSBvbGRUYWdzW2ldO1xuLyoqKioqKi8gXHRcdFx0XHRcdGlmKG9sZFRhZy5wYXJlbnROb2RlKSBvbGRUYWcucGFyZW50Tm9kZS5yZW1vdmVDaGlsZChvbGRUYWcpO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdG9sZFRhZ3MubGVuZ3RoID0gMDtcbi8qKioqKiovIFx0XHRcdH0sIGFwcGx5OiAoKSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdGZvcih2YXIgaSA9IDA7IGkgPCBuZXdUYWdzLmxlbmd0aDsgaSsrKSBuZXdUYWdzW2ldLnJlbCA9IFwic3R5bGVzaGVldFwiO1xuLyoqKioqKi8gXHRcdFx0XHRuZXdUYWdzLmxlbmd0aCA9IDA7XG4vKioqKioqLyBcdFx0XHR9IH07XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uaG1yQy5taW5pQ3NzID0gKGNodW5rSWRzLCByZW1vdmVkQ2h1bmtzLCByZW1vdmVkTW9kdWxlcywgcHJvbWlzZXMsIGFwcGx5SGFuZGxlcnMsIHVwZGF0ZWRNb2R1bGVzTGlzdCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0YXBwbHlIYW5kbGVycy5wdXNoKGFwcGx5SGFuZGxlcik7XG4vKioqKioqLyBcdFx0XHRjaHVua0lkcy5mb3JFYWNoKChjaHVua0lkKSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdHZhciBocmVmID0gX193ZWJwYWNrX3JlcXVpcmVfXy5taW5pQ3NzRihjaHVua0lkKTtcbi8qKioqKiovIFx0XHRcdFx0dmFyIGZ1bGxocmVmID0gX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgaHJlZjtcbi8qKioqKiovIFx0XHRcdFx0dmFyIG9sZFRhZyA9IGZpbmRTdHlsZXNoZWV0KGhyZWYsIGZ1bGxocmVmKTtcbi8qKioqKiovIFx0XHRcdFx0aWYoIW9sZFRhZykgcmV0dXJuO1xuLyoqKioqKi8gXHRcdFx0XHRwcm9taXNlcy5wdXNoKG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgdGFnID0gY3JlYXRlU3R5bGVzaGVldChjaHVua0lkLCBmdWxsaHJlZiwgKCkgPT4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dGFnLmFzID0gXCJzdHlsZVwiO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dGFnLnJlbCA9IFwicHJlbG9hZFwiO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmVzb2x2ZSgpO1xuLyoqKioqKi8gXHRcdFx0XHRcdH0sIHJlamVjdCk7XG4vKioqKioqLyBcdFx0XHRcdFx0b2xkVGFncy5wdXNoKG9sZFRhZyk7XG4vKioqKioqLyBcdFx0XHRcdFx0bmV3VGFncy5wdXNoKHRhZyk7XG4vKioqKioqLyBcdFx0XHRcdH0pKTtcbi8qKioqKiovIFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqLyBcdC8qIHdlYnBhY2svcnVudGltZS9qc29ucCBjaHVuayBsb2FkaW5nICovXG4vKioqKioqLyBcdCgoKSA9PiB7XG4vKioqKioqLyBcdFx0Ly8gbm8gYmFzZVVSSVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG9iamVjdCB0byBzdG9yZSBsb2FkZWQgYW5kIGxvYWRpbmcgY2h1bmtzXG4vKioqKioqLyBcdFx0Ly8gdW5kZWZpbmVkID0gY2h1bmsgbm90IGxvYWRlZCwgbnVsbCA9IGNodW5rIHByZWxvYWRlZC9wcmVmZXRjaGVkXG4vKioqKioqLyBcdFx0Ly8gW3Jlc29sdmUsIHJlamVjdCwgUHJvbWlzZV0gPSBjaHVuayBsb2FkaW5nLCAwID0gY2h1bmsgbG9hZGVkXG4vKioqKioqLyBcdFx0dmFyIGluc3RhbGxlZENodW5rcyA9IF9fd2VicGFja19yZXF1aXJlX18uaG1yU19qc29ucCA9IF9fd2VicGFja19yZXF1aXJlX18uaG1yU19qc29ucCB8fCB7XG4vKioqKioqLyBcdFx0XHRcIndlYnBhY2tcIjogMFxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5mLmogPSAoY2h1bmtJZCwgcHJvbWlzZXMpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0Ly8gSlNPTlAgY2h1bmsgbG9hZGluZyBmb3IgamF2YXNjcmlwdFxuLyoqKioqKi8gXHRcdFx0XHR2YXIgaW5zdGFsbGVkQ2h1bmtEYXRhID0gX193ZWJwYWNrX3JlcXVpcmVfXy5vKGluc3RhbGxlZENodW5rcywgY2h1bmtJZCkgPyBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gOiB1bmRlZmluZWQ7XG4vKioqKioqLyBcdFx0XHRcdGlmKGluc3RhbGxlZENodW5rRGF0YSAhPT0gMCkgeyAvLyAwIG1lYW5zIFwiYWxyZWFkeSBpbnN0YWxsZWRcIi5cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHQvLyBhIFByb21pc2UgbWVhbnMgXCJjdXJyZW50bHkgbG9hZGluZ1wiLlxuLyoqKioqKi8gXHRcdFx0XHRcdGlmKGluc3RhbGxlZENodW5rRGF0YSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cHJvbWlzZXMucHVzaChpbnN0YWxsZWRDaHVua0RhdGFbMl0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRpZihcIndlYnBhY2tcIiAhPSBjaHVua0lkKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdC8vIHNldHVwIFByb21pc2UgaW4gY2h1bmsgY2FjaGVcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0dmFyIHByb21pc2UgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiAoaW5zdGFsbGVkQ2h1bmtEYXRhID0gaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdID0gW3Jlc29sdmUsIHJlamVjdF0pKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0cHJvbWlzZXMucHVzaChpbnN0YWxsZWRDaHVua0RhdGFbMl0gPSBwcm9taXNlKTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0Ly8gc3RhcnQgY2h1bmsgbG9hZGluZ1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR2YXIgdXJsID0gX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgX193ZWJwYWNrX3JlcXVpcmVfXy51KGNodW5rSWQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHQvLyBjcmVhdGUgZXJyb3IgYmVmb3JlIHN0YWNrIHVud291bmQgdG8gZ2V0IHVzZWZ1bCBzdGFja3RyYWNlIGxhdGVyXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHZhciBlcnJvciA9IG5ldyBFcnJvcigpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR2YXIgbG9hZGluZ0VuZGVkID0gKGV2ZW50KSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGluc3RhbGxlZENodW5rcywgY2h1bmtJZCkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGluc3RhbGxlZENodW5rRGF0YSA9IGluc3RhbGxlZENodW5rc1tjaHVua0lkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGlmKGluc3RhbGxlZENodW5rRGF0YSAhPT0gMCkgaW5zdGFsbGVkQ2h1bmtzW2NodW5rSWRdID0gdW5kZWZpbmVkO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0aWYoaW5zdGFsbGVkQ2h1bmtEYXRhKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciBlcnJvclR5cGUgPSBldmVudCAmJiAoZXZlbnQudHlwZSA9PT0gJ2xvYWQnID8gJ21pc3NpbmcnIDogZXZlbnQudHlwZSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdHZhciByZWFsU3JjID0gZXZlbnQgJiYgZXZlbnQudGFyZ2V0ICYmIGV2ZW50LnRhcmdldC5zcmM7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9yLm1lc3NhZ2UgPSAnTG9hZGluZyBjaHVuayAnICsgY2h1bmtJZCArICcgZmFpbGVkLlxcbignICsgZXJyb3JUeXBlICsgJzogJyArIHJlYWxTcmMgKyAnKSc7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9yLm5hbWUgPSAnQ2h1bmtMb2FkRXJyb3InO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvci50eXBlID0gZXJyb3JUeXBlO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvci5yZXF1ZXN0ID0gcmVhbFNyYztcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0aW5zdGFsbGVkQ2h1bmtEYXRhWzFdKGVycm9yKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdH07XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubCh1cmwsIGxvYWRpbmdFbmRlZCwgXCJjaHVuay1cIiArIGNodW5rSWQsIGNodW5rSWQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0fSBlbHNlIGluc3RhbGxlZENodW5rc1tjaHVua0lkXSA9IDA7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHQvLyBubyBwcmVmZXRjaGluZ1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIG5vIHByZWxvYWRlZFxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50VXBkYXRlZE1vZHVsZXNMaXN0O1xuLyoqKioqKi8gXHRcdHZhciB3YWl0aW5nVXBkYXRlUmVzb2x2ZXMgPSB7fTtcbi8qKioqKiovIFx0XHRmdW5jdGlvbiBsb2FkVXBkYXRlQ2h1bmsoY2h1bmtJZCwgdXBkYXRlZE1vZHVsZXNMaXN0KSB7XG4vKioqKioqLyBcdFx0XHRjdXJyZW50VXBkYXRlZE1vZHVsZXNMaXN0ID0gdXBkYXRlZE1vZHVsZXNMaXN0O1xuLyoqKioqKi8gXHRcdFx0cmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0d2FpdGluZ1VwZGF0ZVJlc29sdmVzW2NodW5rSWRdID0gcmVzb2x2ZTtcbi8qKioqKiovIFx0XHRcdFx0Ly8gc3RhcnQgdXBkYXRlIGNodW5rIGxvYWRpbmdcbi8qKioqKiovIFx0XHRcdFx0dmFyIHVybCA9IF9fd2VicGFja19yZXF1aXJlX18ucCArIF9fd2VicGFja19yZXF1aXJlX18uaHUoY2h1bmtJZCk7XG4vKioqKioqLyBcdFx0XHRcdC8vIGNyZWF0ZSBlcnJvciBiZWZvcmUgc3RhY2sgdW53b3VuZCB0byBnZXQgdXNlZnVsIHN0YWNrdHJhY2UgbGF0ZXJcbi8qKioqKiovIFx0XHRcdFx0dmFyIGVycm9yID0gbmV3IEVycm9yKCk7XG4vKioqKioqLyBcdFx0XHRcdHZhciBsb2FkaW5nRW5kZWQgPSAoZXZlbnQpID0+IHtcbi8qKioqKiovIFx0XHRcdFx0XHRpZih3YWl0aW5nVXBkYXRlUmVzb2x2ZXNbY2h1bmtJZF0pIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHdhaXRpbmdVcGRhdGVSZXNvbHZlc1tjaHVua0lkXSA9IHVuZGVmaW5lZFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0dmFyIGVycm9yVHlwZSA9IGV2ZW50ICYmIChldmVudC50eXBlID09PSAnbG9hZCcgPyAnbWlzc2luZycgOiBldmVudC50eXBlKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciByZWFsU3JjID0gZXZlbnQgJiYgZXZlbnQudGFyZ2V0ICYmIGV2ZW50LnRhcmdldC5zcmM7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRlcnJvci5tZXNzYWdlID0gJ0xvYWRpbmcgaG90IHVwZGF0ZSBjaHVuayAnICsgY2h1bmtJZCArICcgZmFpbGVkLlxcbignICsgZXJyb3JUeXBlICsgJzogJyArIHJlYWxTcmMgKyAnKSc7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRlcnJvci5uYW1lID0gJ0NodW5rTG9hZEVycm9yJztcbi8qKioqKiovIFx0XHRcdFx0XHRcdGVycm9yLnR5cGUgPSBlcnJvclR5cGU7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRlcnJvci5yZXF1ZXN0ID0gcmVhbFNyYztcbi8qKioqKiovIFx0XHRcdFx0XHRcdHJlamVjdChlcnJvcik7XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmwodXJsLCBsb2FkaW5nRW5kZWQpO1xuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdHNlbGZbXCJ3ZWJwYWNrSG90VXBkYXRlX05fRVwiXSA9IChjaHVua0lkLCBtb3JlTW9kdWxlcywgcnVudGltZSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0Zm9yKHZhciBtb2R1bGVJZCBpbiBtb3JlTW9kdWxlcykge1xuLyoqKioqKi8gXHRcdFx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8obW9yZU1vZHVsZXMsIG1vZHVsZUlkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVbbW9kdWxlSWRdID0gbW9yZU1vZHVsZXNbbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdGlmKGN1cnJlbnRVcGRhdGVkTW9kdWxlc0xpc3QpIGN1cnJlbnRVcGRhdGVkTW9kdWxlc0xpc3QucHVzaChtb2R1bGVJZCk7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdGlmKHJ1bnRpbWUpIGN1cnJlbnRVcGRhdGVSdW50aW1lLnB1c2gocnVudGltZSk7XG4vKioqKioqLyBcdFx0XHRpZih3YWl0aW5nVXBkYXRlUmVzb2x2ZXNbY2h1bmtJZF0pIHtcbi8qKioqKiovIFx0XHRcdFx0d2FpdGluZ1VwZGF0ZVJlc29sdmVzW2NodW5rSWRdKCk7XG4vKioqKioqLyBcdFx0XHRcdHdhaXRpbmdVcGRhdGVSZXNvbHZlc1tjaHVua0lkXSA9IHVuZGVmaW5lZDtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50VXBkYXRlQ2h1bmtzO1xuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50VXBkYXRlO1xuLyoqKioqKi8gXHRcdHZhciBjdXJyZW50VXBkYXRlUmVtb3ZlZENodW5rcztcbi8qKioqKiovIFx0XHR2YXIgY3VycmVudFVwZGF0ZVJ1bnRpbWU7XG4vKioqKioqLyBcdFx0ZnVuY3Rpb24gYXBwbHlIYW5kbGVyKG9wdGlvbnMpIHtcbi8qKioqKiovIFx0XHRcdGlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLmYpIGRlbGV0ZSBfX3dlYnBhY2tfcmVxdWlyZV9fLmYuanNvbnBIbXI7XG4vKioqKioqLyBcdFx0XHRjdXJyZW50VXBkYXRlQ2h1bmtzID0gdW5kZWZpbmVkO1xuLyoqKioqKi8gXHRcdFx0ZnVuY3Rpb24gZ2V0QWZmZWN0ZWRNb2R1bGVFZmZlY3RzKHVwZGF0ZU1vZHVsZUlkKSB7XG4vKioqKioqLyBcdFx0XHRcdHZhciBvdXRkYXRlZE1vZHVsZXMgPSBbdXBkYXRlTW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgb3V0ZGF0ZWREZXBlbmRlbmNpZXMgPSB7fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0dmFyIHF1ZXVlID0gb3V0ZGF0ZWRNb2R1bGVzLm1hcChmdW5jdGlvbiAoaWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRyZXR1cm4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2hhaW46IFtpZF0sXG4vKioqKioqLyBcdFx0XHRcdFx0XHRpZDogaWRcbi8qKioqKiovIFx0XHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0d2hpbGUgKHF1ZXVlLmxlbmd0aCA+IDApIHtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgcXVldWVJdGVtID0gcXVldWUucG9wKCk7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIG1vZHVsZUlkID0gcXVldWVJdGVtLmlkO1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBjaGFpbiA9IHF1ZXVlSXRlbS5jaGFpbjtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX3JlcXVpcmVfXy5jW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoXG4vKioqKioqLyBcdFx0XHRcdFx0XHQhbW9kdWxlIHx8XG4vKioqKioqLyBcdFx0XHRcdFx0XHQobW9kdWxlLmhvdC5fc2VsZkFjY2VwdGVkICYmICFtb2R1bGUuaG90Ll9zZWxmSW52YWxpZGF0ZWQpXG4vKioqKioqLyBcdFx0XHRcdFx0KVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y29udGludWU7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKG1vZHVsZS5ob3QuX3NlbGZEZWNsaW5lZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmV0dXJuIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0dHlwZTogXCJzZWxmLWRlY2xpbmVkXCIsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGNoYWluOiBjaGFpbixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkXG4vKioqKioqLyBcdFx0XHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRpZiAobW9kdWxlLmhvdC5fbWFpbikge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmV0dXJuIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0dHlwZTogXCJ1bmFjY2VwdGVkXCIsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGNoYWluOiBjaGFpbixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkXG4vKioqKioqLyBcdFx0XHRcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRmb3IgKHZhciBpID0gMDsgaSA8IG1vZHVsZS5wYXJlbnRzLmxlbmd0aDsgaSsrKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR2YXIgcGFyZW50SWQgPSBtb2R1bGUucGFyZW50c1tpXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBwYXJlbnQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbcGFyZW50SWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKCFwYXJlbnQpIGNvbnRpbnVlO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKHBhcmVudC5ob3QuX2RlY2xpbmVkRGVwZW5kZW5jaWVzW21vZHVsZUlkXSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRyZXR1cm4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwiZGVjbGluZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRjaGFpbjogY2hhaW4uY29uY2F0KFtwYXJlbnRJZF0pLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdG1vZHVsZUlkOiBtb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRwYXJlbnRJZDogcGFyZW50SWRcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdGlmIChvdXRkYXRlZE1vZHVsZXMuaW5kZXhPZihwYXJlbnRJZCkgIT09IC0xKSBjb250aW51ZTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGlmIChwYXJlbnQuaG90Ll9hY2NlcHRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF0pIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKCFvdXRkYXRlZERlcGVuZGVuY2llc1twYXJlbnRJZF0pXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0b3V0ZGF0ZWREZXBlbmRlbmNpZXNbcGFyZW50SWRdID0gW107XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGFkZEFsbFRvU2V0KG91dGRhdGVkRGVwZW5kZW5jaWVzW3BhcmVudElkXSwgW21vZHVsZUlkXSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGNvbnRpbnVlO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0ZGVsZXRlIG91dGRhdGVkRGVwZW5kZW5jaWVzW3BhcmVudElkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdG91dGRhdGVkTW9kdWxlcy5wdXNoKHBhcmVudElkKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHF1ZXVlLnB1c2goe1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRjaGFpbjogY2hhaW4uY29uY2F0KFtwYXJlbnRJZF0pLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZDogcGFyZW50SWRcbi8qKioqKiovIFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRyZXR1cm4ge1xuLyoqKioqKi8gXHRcdFx0XHRcdHR5cGU6IFwiYWNjZXB0ZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRtb2R1bGVJZDogdXBkYXRlTW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRcdFx0b3V0ZGF0ZWRNb2R1bGVzOiBvdXRkYXRlZE1vZHVsZXMsXG4vKioqKioqLyBcdFx0XHRcdFx0b3V0ZGF0ZWREZXBlbmRlbmNpZXM6IG91dGRhdGVkRGVwZW5kZW5jaWVzXG4vKioqKioqLyBcdFx0XHRcdH07XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRmdW5jdGlvbiBhZGRBbGxUb1NldChhLCBiKSB7XG4vKioqKioqLyBcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgYi5sZW5ndGg7IGkrKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBpdGVtID0gYltpXTtcbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoYS5pbmRleE9mKGl0ZW0pID09PSAtMSkgYS5wdXNoKGl0ZW0pO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHQvLyBhdCBiZWdpbiBhbGwgdXBkYXRlcyBtb2R1bGVzIGFyZSBvdXRkYXRlZFxuLyoqKioqKi8gXHRcdFx0Ly8gdGhlIFwib3V0ZGF0ZWRcIiBzdGF0dXMgY2FuIHByb3BhZ2F0ZSB0byBwYXJlbnRzIGlmIHRoZXkgZG9uJ3QgYWNjZXB0IHRoZSBjaGlsZHJlblxuLyoqKioqKi8gXHRcdFx0dmFyIG91dGRhdGVkRGVwZW5kZW5jaWVzID0ge307XG4vKioqKioqLyBcdFx0XHR2YXIgb3V0ZGF0ZWRNb2R1bGVzID0gW107XG4vKioqKioqLyBcdFx0XHR2YXIgYXBwbGllZFVwZGF0ZSA9IHt9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0dmFyIHdhcm5VbmV4cGVjdGVkUmVxdWlyZSA9IGZ1bmN0aW9uIHdhcm5VbmV4cGVjdGVkUmVxdWlyZShtb2R1bGUpIHtcbi8qKioqKiovIFx0XHRcdFx0Y29uc29sZS53YXJuKFxuLyoqKioqKi8gXHRcdFx0XHRcdFwiW0hNUl0gdW5leHBlY3RlZCByZXF1aXJlKFwiICsgbW9kdWxlLmlkICsgXCIpIHRvIGRpc3Bvc2VkIG1vZHVsZVwiXG4vKioqKioqLyBcdFx0XHRcdCk7XG4vKioqKioqLyBcdFx0XHR9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0Zm9yICh2YXIgbW9kdWxlSWQgaW4gY3VycmVudFVwZGF0ZSkge1xuLyoqKioqKi8gXHRcdFx0XHRpZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5vKGN1cnJlbnRVcGRhdGUsIG1vZHVsZUlkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBuZXdNb2R1bGVGYWN0b3J5ID0gY3VycmVudFVwZGF0ZVttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdFx0LyoqIEB0eXBlIHtUT0RPfSAqL1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciByZXN1bHQgPSBuZXdNb2R1bGVGYWN0b3J5XG4vKioqKioqLyBcdFx0XHRcdFx0XHQ/IGdldEFmZmVjdGVkTW9kdWxlRWZmZWN0cyhtb2R1bGVJZClcbi8qKioqKiovIFx0XHRcdFx0XHRcdDoge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwiZGlzcG9zZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWRcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fTtcbi8qKioqKiovIFx0XHRcdFx0XHQvKiogQHR5cGUge0Vycm9yfGZhbHNlfSAqL1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBhYm9ydEVycm9yID0gZmFsc2U7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIGRvQXBwbHkgPSBmYWxzZTtcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgZG9EaXNwb3NlID0gZmFsc2U7XG4vKioqKioqLyBcdFx0XHRcdFx0dmFyIGNoYWluSW5mbyA9IFwiXCI7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYgKHJlc3VsdC5jaGFpbikge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2hhaW5JbmZvID0gXCJcXG5VcGRhdGUgcHJvcGFnYXRpb246IFwiICsgcmVzdWx0LmNoYWluLmpvaW4oXCIgLT4gXCIpO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRzd2l0Y2ggKHJlc3VsdC50eXBlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwic2VsZi1kZWNsaW5lZFwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkRlY2xpbmVkKSBvcHRpb25zLm9uRGVjbGluZWQocmVzdWx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZURlY2xpbmVkKVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGFib3J0RXJyb3IgPSBuZXcgRXJyb3IoXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcIkFib3J0ZWQgYmVjYXVzZSBvZiBzZWxmIGRlY2xpbmU6IFwiICtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVzdWx0Lm1vZHVsZUlkICtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2hhaW5JbmZvXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwiZGVjbGluZWRcIjpcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25EZWNsaW5lZCkgb3B0aW9ucy5vbkRlY2xpbmVkKHJlc3VsdCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlmICghb3B0aW9ucy5pZ25vcmVEZWNsaW5lZClcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRhYm9ydEVycm9yID0gbmV3IEVycm9yKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XCJBYm9ydGVkIGJlY2F1c2Ugb2YgZGVjbGluZWQgZGVwZW5kZW5jeTogXCIgK1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRyZXN1bHQubW9kdWxlSWQgK1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcIiBpbiBcIiArXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdHJlc3VsdC5wYXJlbnRJZCArXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGNoYWluSW5mb1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGJyZWFrO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Y2FzZSBcInVuYWNjZXB0ZWRcIjpcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25VbmFjY2VwdGVkKSBvcHRpb25zLm9uVW5hY2NlcHRlZChyZXN1bHQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlVW5hY2NlcHRlZClcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRhYm9ydEVycm9yID0gbmV3IEVycm9yKFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XCJBYm9ydGVkIGJlY2F1c2UgXCIgKyBtb2R1bGVJZCArIFwiIGlzIG5vdCBhY2NlcHRlZFwiICsgY2hhaW5JbmZvXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRjYXNlIFwiYWNjZXB0ZWRcIjpcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25BY2NlcHRlZCkgb3B0aW9ucy5vbkFjY2VwdGVkKHJlc3VsdCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGRvQXBwbHkgPSB0cnVlO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRicmVhaztcbi8qKioqKiovIFx0XHRcdFx0XHRcdGNhc2UgXCJkaXNwb3NlZFwiOlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpZiAob3B0aW9ucy5vbkRpc3Bvc2VkKSBvcHRpb25zLm9uRGlzcG9zZWQocmVzdWx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0ZG9EaXNwb3NlID0gdHJ1ZTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0YnJlYWs7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRkZWZhdWx0OlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR0aHJvdyBuZXcgRXJyb3IoXCJVbmV4Y2VwdGlvbiB0eXBlIFwiICsgcmVzdWx0LnR5cGUpO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoYWJvcnRFcnJvcikge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmV0dXJuIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0ZXJyb3I6IGFib3J0RXJyb3Jcbi8qKioqKiovIFx0XHRcdFx0XHRcdH07XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChkb0FwcGx5KSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRhcHBsaWVkVXBkYXRlW21vZHVsZUlkXSA9IG5ld01vZHVsZUZhY3Rvcnk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRhZGRBbGxUb1NldChvdXRkYXRlZE1vZHVsZXMsIHJlc3VsdC5vdXRkYXRlZE1vZHVsZXMpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0Zm9yIChtb2R1bGVJZCBpbiByZXN1bHQub3V0ZGF0ZWREZXBlbmRlbmNpZXMpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKF9fd2VicGFja19yZXF1aXJlX18ubyhyZXN1bHQub3V0ZGF0ZWREZXBlbmRlbmNpZXMsIG1vZHVsZUlkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGlmICghb3V0ZGF0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdKVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0b3V0ZGF0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdID0gW107XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0YWRkQWxsVG9TZXQoXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF0sXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRyZXN1bHQub3V0ZGF0ZWREZXBlbmRlbmNpZXNbbW9kdWxlSWRdXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRpZiAoZG9EaXNwb3NlKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRhZGRBbGxUb1NldChvdXRkYXRlZE1vZHVsZXMsIFtyZXN1bHQubW9kdWxlSWRdKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGFwcGxpZWRVcGRhdGVbbW9kdWxlSWRdID0gd2FyblVuZXhwZWN0ZWRSZXF1aXJlO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0Y3VycmVudFVwZGF0ZSA9IHVuZGVmaW5lZDtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdC8vIFN0b3JlIHNlbGYgYWNjZXB0ZWQgb3V0ZGF0ZWQgbW9kdWxlcyB0byByZXF1aXJlIHRoZW0gbGF0ZXIgYnkgdGhlIG1vZHVsZSBzeXN0ZW1cbi8qKioqKiovIFx0XHRcdHZhciBvdXRkYXRlZFNlbGZBY2NlcHRlZE1vZHVsZXMgPSBbXTtcbi8qKioqKiovIFx0XHRcdGZvciAodmFyIGogPSAwOyBqIDwgb3V0ZGF0ZWRNb2R1bGVzLmxlbmd0aDsgaisrKSB7XG4vKioqKioqLyBcdFx0XHRcdHZhciBvdXRkYXRlZE1vZHVsZUlkID0gb3V0ZGF0ZWRNb2R1bGVzW2pdO1xuLyoqKioqKi8gXHRcdFx0XHR2YXIgbW9kdWxlID0gX193ZWJwYWNrX3JlcXVpcmVfXy5jW291dGRhdGVkTW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHRpZiAoXG4vKioqKioqLyBcdFx0XHRcdFx0bW9kdWxlICYmXG4vKioqKioqLyBcdFx0XHRcdFx0KG1vZHVsZS5ob3QuX3NlbGZBY2NlcHRlZCB8fCBtb2R1bGUuaG90Ll9tYWluKSAmJlxuLyoqKioqKi8gXHRcdFx0XHRcdC8vIHJlbW92ZWQgc2VsZi1hY2NlcHRlZCBtb2R1bGVzIHNob3VsZCBub3QgYmUgcmVxdWlyZWRcbi8qKioqKiovIFx0XHRcdFx0XHRhcHBsaWVkVXBkYXRlW291dGRhdGVkTW9kdWxlSWRdICE9PSB3YXJuVW5leHBlY3RlZFJlcXVpcmUgJiZcbi8qKioqKiovIFx0XHRcdFx0XHQvLyB3aGVuIGNhbGxlZCBpbnZhbGlkYXRlIHNlbGYtYWNjZXB0aW5nIGlzIG5vdCBwb3NzaWJsZVxuLyoqKioqKi8gXHRcdFx0XHRcdCFtb2R1bGUuaG90Ll9zZWxmSW52YWxpZGF0ZWRcbi8qKioqKiovIFx0XHRcdFx0KSB7XG4vKioqKioqLyBcdFx0XHRcdFx0b3V0ZGF0ZWRTZWxmQWNjZXB0ZWRNb2R1bGVzLnB1c2goe1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0bW9kdWxlOiBvdXRkYXRlZE1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0cmVxdWlyZTogbW9kdWxlLmhvdC5fcmVxdWlyZVNlbGYsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRlcnJvckhhbmRsZXI6IG1vZHVsZS5ob3QuX3NlbGZBY2NlcHRlZFxuLyoqKioqKi8gXHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHR2YXIgbW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXM7XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRyZXR1cm4ge1xuLyoqKioqKi8gXHRcdFx0XHRkaXNwb3NlOiBmdW5jdGlvbiAoKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Y3VycmVudFVwZGF0ZVJlbW92ZWRDaHVua3MuZm9yRWFjaChmdW5jdGlvbiAoY2h1bmtJZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0ZGVsZXRlIGluc3RhbGxlZENodW5rc1tjaHVua0lkXTtcbi8qKioqKiovIFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRjdXJyZW50VXBkYXRlUmVtb3ZlZENodW5rcyA9IHVuZGVmaW5lZDtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgaWR4O1xuLyoqKioqKi8gXHRcdFx0XHRcdHZhciBxdWV1ZSA9IG91dGRhdGVkTW9kdWxlcy5zbGljZSgpO1xuLyoqKioqKi8gXHRcdFx0XHRcdHdoaWxlIChxdWV1ZS5sZW5ndGggPiAwKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR2YXIgbW9kdWxlSWQgPSBxdWV1ZS5wb3AoKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKCFtb2R1bGUpIGNvbnRpbnVlO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0dmFyIGRhdGEgPSB7fTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHRcdC8vIENhbGwgZGlzcG9zZSBoYW5kbGVyc1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dmFyIGRpc3Bvc2VIYW5kbGVycyA9IG1vZHVsZS5ob3QuX2Rpc3Bvc2VIYW5kbGVycztcbi8qKioqKiovIFx0XHRcdFx0XHRcdGZvciAoaiA9IDA7IGogPCBkaXNwb3NlSGFuZGxlcnMubGVuZ3RoOyBqKyspIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0ZGlzcG9zZUhhbmRsZXJzW2pdLmNhbGwobnVsbCwgZGF0YSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLmhtckRbbW9kdWxlSWRdID0gZGF0YTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHRcdC8vIGRpc2FibGUgbW9kdWxlICh0aGlzIGRpc2FibGVzIHJlcXVpcmVzIGZyb20gdGhpcyBtb2R1bGUpXG4vKioqKioqLyBcdFx0XHRcdFx0XHRtb2R1bGUuaG90LmFjdGl2ZSA9IGZhbHNlO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Ly8gcmVtb3ZlIG1vZHVsZSBmcm9tIGNhY2hlXG4vKioqKioqLyBcdFx0XHRcdFx0XHRkZWxldGUgX193ZWJwYWNrX3JlcXVpcmVfXy5jW21vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHRcdC8vIHdoZW4gZGlzcG9zaW5nIHRoZXJlIGlzIG5vIG5lZWQgdG8gY2FsbCBkaXNwb3NlIGhhbmRsZXJcbi8qKioqKiovIFx0XHRcdFx0XHRcdGRlbGV0ZSBvdXRkYXRlZERlcGVuZGVuY2llc1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0XHQvLyByZW1vdmUgXCJwYXJlbnRzXCIgcmVmZXJlbmNlcyBmcm9tIGFsbCBjaGlsZHJlblxuLyoqKioqKi8gXHRcdFx0XHRcdFx0Zm9yIChqID0gMDsgaiA8IG1vZHVsZS5jaGlsZHJlbi5sZW5ndGg7IGorKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR2YXIgY2hpbGQgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbbW9kdWxlLmNoaWxkcmVuW2pdXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0aWYgKCFjaGlsZCkgY29udGludWU7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlkeCA9IGNoaWxkLnBhcmVudHMuaW5kZXhPZihtb2R1bGVJZCk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlmIChpZHggPj0gMCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGNoaWxkLnBhcmVudHMuc3BsaWNlKGlkeCwgMSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XG4vKioqKioqLyBcdFx0XHRcdFx0Ly8gcmVtb3ZlIG91dGRhdGVkIGRlcGVuZGVuY3kgZnJvbSBtb2R1bGUgY2hpbGRyZW5cbi8qKioqKiovIFx0XHRcdFx0XHR2YXIgZGVwZW5kZW5jeTtcbi8qKioqKiovIFx0XHRcdFx0XHRmb3IgKHZhciBvdXRkYXRlZE1vZHVsZUlkIGluIG91dGRhdGVkRGVwZW5kZW5jaWVzKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRpZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG91dGRhdGVkRGVwZW5kZW5jaWVzLCBvdXRkYXRlZE1vZHVsZUlkKSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRtb2R1bGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbb3V0ZGF0ZWRNb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlmIChtb2R1bGUpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcyA9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llc1tvdXRkYXRlZE1vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRmb3IgKGogPSAwOyBqIDwgbW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXMubGVuZ3RoOyBqKyspIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGRlcGVuZGVuY3kgPSBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llc1tqXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGlkeCA9IG1vZHVsZS5jaGlsZHJlbi5pbmRleE9mKGRlcGVuZGVuY3kpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0aWYgKGlkeCA+PSAwKSBtb2R1bGUuY2hpbGRyZW4uc3BsaWNlKGlkeCwgMSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9LFxuLyoqKioqKi8gXHRcdFx0XHRhcHBseTogZnVuY3Rpb24gKHJlcG9ydEVycm9yKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0Ly8gaW5zZXJ0IG5ldyBjb2RlXG4vKioqKioqLyBcdFx0XHRcdFx0Zm9yICh2YXIgdXBkYXRlTW9kdWxlSWQgaW4gYXBwbGllZFVwZGF0ZSkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0aWYgKF9fd2VicGFja19yZXF1aXJlX18ubyhhcHBsaWVkVXBkYXRlLCB1cGRhdGVNb2R1bGVJZCkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5tW3VwZGF0ZU1vZHVsZUlkXSA9IGFwcGxpZWRVcGRhdGVbdXBkYXRlTW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHQvLyBydW4gbmV3IHJ1bnRpbWUgbW9kdWxlc1xuLyoqKioqKi8gXHRcdFx0XHRcdGZvciAodmFyIGkgPSAwOyBpIDwgY3VycmVudFVwZGF0ZVJ1bnRpbWUubGVuZ3RoOyBpKyspIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVSdW50aW1lW2ldKF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHRcdFx0XHQvLyBjYWxsIGFjY2VwdCBoYW5kbGVyc1xuLyoqKioqKi8gXHRcdFx0XHRcdGZvciAodmFyIG91dGRhdGVkTW9kdWxlSWQgaW4gb3V0ZGF0ZWREZXBlbmRlbmNpZXMpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGlmIChfX3dlYnBhY2tfcmVxdWlyZV9fLm8ob3V0ZGF0ZWREZXBlbmRlbmNpZXMsIG91dGRhdGVkTW9kdWxlSWQpKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdHZhciBtb2R1bGUgPSBfX3dlYnBhY2tfcmVxdWlyZV9fLmNbb3V0ZGF0ZWRNb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlmIChtb2R1bGUpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcyA9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRvdXRkYXRlZERlcGVuZGVuY2llc1tvdXRkYXRlZE1vZHVsZUlkXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR2YXIgY2FsbGJhY2tzID0gW107XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0dmFyIGVycm9ySGFuZGxlcnMgPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR2YXIgZGVwZW5kZW5jaWVzRm9yQ2FsbGJhY2tzID0gW107XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0Zm9yICh2YXIgaiA9IDA7IGogPCBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llcy5sZW5ndGg7IGorKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0dmFyIGRlcGVuZGVuY3kgPSBtb2R1bGVPdXRkYXRlZERlcGVuZGVuY2llc1tqXTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdHZhciBhY2NlcHRDYWxsYmFjayA9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZS5ob3QuX2FjY2VwdGVkRGVwZW5kZW5jaWVzW2RlcGVuZGVuY3ldO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0dmFyIGVycm9ySGFuZGxlciA9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZS5ob3QuX2FjY2VwdGVkRXJyb3JIYW5kbGVyc1tkZXBlbmRlbmN5XTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGlmIChhY2NlcHRDYWxsYmFjaykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoY2FsbGJhY2tzLmluZGV4T2YoYWNjZXB0Q2FsbGJhY2spICE9PSAtMSkgY29udGludWU7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGNhbGxiYWNrcy5wdXNoKGFjY2VwdENhbGxiYWNrKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3JIYW5kbGVycy5wdXNoKGVycm9ySGFuZGxlcik7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGRlcGVuZGVuY2llc0ZvckNhbGxiYWNrcy5wdXNoKGRlcGVuZGVuY3kpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRmb3IgKHZhciBrID0gMDsgayA8IGNhbGxiYWNrcy5sZW5ndGg7IGsrKykge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0dHJ5IHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0Y2FsbGJhY2tzW2tdLmNhbGwobnVsbCwgbW9kdWxlT3V0ZGF0ZWREZXBlbmRlbmNpZXMpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdGlmICh0eXBlb2YgZXJyb3JIYW5kbGVyc1trXSA9PT0gXCJmdW5jdGlvblwiKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHJ5IHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGVycm9ySGFuZGxlcnNba10oZXJyLCB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG1vZHVsZUlkOiBvdXRkYXRlZE1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkZXBlbmRlbmN5SWQ6IGRlcGVuZGVuY2llc0ZvckNhbGxiYWNrc1trXVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyMikge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25FcnJvcmVkKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdG9wdGlvbnMub25FcnJvcmVkKHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcImFjY2VwdC1lcnJvci1oYW5kbGVyLWVycm9yZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogb3V0ZGF0ZWRNb2R1bGVJZCxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRkZXBlbmRlbmN5SWQ6IGRlcGVuZGVuY2llc0ZvckNhbGxiYWNrc1trXSxcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogZXJyMixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvcmlnaW5hbEVycm9yOiBlcnJcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpZiAoIW9wdGlvbnMuaWdub3JlRXJyb3JlZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXBvcnRFcnJvcihlcnIyKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVwb3J0RXJyb3IoZXJyKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdH0gZWxzZSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKG9wdGlvbnMub25FcnJvcmVkKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zLm9uRXJyb3JlZCh7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU6IFwiYWNjZXB0LWVycm9yZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG91dGRhdGVkTW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdGRlcGVuZGVuY3lJZDogZGVwZW5kZW5jaWVzRm9yQ2FsbGJhY2tzW2tdLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogZXJyXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZUVycm9yZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHJlcG9ydEVycm9yKGVycik7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdC8vIExvYWQgc2VsZiBhY2NlcHRlZCBtb2R1bGVzXG4vKioqKioqLyBcdFx0XHRcdFx0Zm9yICh2YXIgbyA9IDA7IG8gPCBvdXRkYXRlZFNlbGZBY2NlcHRlZE1vZHVsZXMubGVuZ3RoOyBvKyspIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHZhciBpdGVtID0gb3V0ZGF0ZWRTZWxmQWNjZXB0ZWRNb2R1bGVzW29dO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0dmFyIG1vZHVsZUlkID0gaXRlbS5tb2R1bGU7XG4vKioqKioqLyBcdFx0XHRcdFx0XHR0cnkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRpdGVtLnJlcXVpcmUobW9kdWxlSWQpO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdGlmICh0eXBlb2YgaXRlbS5lcnJvckhhbmRsZXIgPT09IFwiZnVuY3Rpb25cIikge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdHRyeSB7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRpdGVtLmVycm9ySGFuZGxlcihlcnIsIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGU6IF9fd2VicGFja19yZXF1aXJlX18uY1ttb2R1bGVJZF1cbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdH0gY2F0Y2ggKGVycjEpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRXJyb3JlZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRvcHRpb25zLm9uRXJyb3JlZCh7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0dHlwZTogXCJzZWxmLWFjY2VwdC1lcnJvci1oYW5kbGVyLWVycm9yZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRtb2R1bGVJZDogbW9kdWxlSWQsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0ZXJyb3I6IGVycjEsXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdFx0b3JpZ2luYWxFcnJvcjogZXJyXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdH0pO1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZUVycm9yZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0cmVwb3J0RXJyb3IoZXJyMSk7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHRcdHJlcG9ydEVycm9yKGVycik7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdGlmIChvcHRpb25zLm9uRXJyb3JlZCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0b3B0aW9ucy5vbkVycm9yZWQoe1xuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlOiBcInNlbGYtYWNjZXB0LWVycm9yZWRcIixcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kdWxlSWQ6IG1vZHVsZUlkLFxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHRcdFx0XHRlcnJvcjogZXJyXG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0XHR9KTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0aWYgKCFvcHRpb25zLmlnbm9yZUVycm9yZWQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdFx0XHRcdHJlcG9ydEVycm9yKGVycik7XG4vKioqKioqLyBcdFx0XHRcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdFx0XHRcdHJldHVybiBvdXRkYXRlZE1vZHVsZXM7XG4vKioqKioqLyBcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdH07XG4vKioqKioqLyBcdFx0fVxuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uaG1ySS5qc29ucCA9IGZ1bmN0aW9uIChtb2R1bGVJZCwgYXBwbHlIYW5kbGVycykge1xuLyoqKioqKi8gXHRcdFx0aWYgKCFjdXJyZW50VXBkYXRlKSB7XG4vKioqKioqLyBcdFx0XHRcdGN1cnJlbnRVcGRhdGUgPSB7fTtcbi8qKioqKiovIFx0XHRcdFx0Y3VycmVudFVwZGF0ZVJ1bnRpbWUgPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0Y3VycmVudFVwZGF0ZVJlbW92ZWRDaHVua3MgPSBbXTtcbi8qKioqKiovIFx0XHRcdFx0YXBwbHlIYW5kbGVycy5wdXNoKGFwcGx5SGFuZGxlcik7XG4vKioqKioqLyBcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRpZiAoIV9fd2VicGFja19yZXF1aXJlX18ubyhjdXJyZW50VXBkYXRlLCBtb2R1bGVJZCkpIHtcbi8qKioqKiovIFx0XHRcdFx0Y3VycmVudFVwZGF0ZVttb2R1bGVJZF0gPSBfX3dlYnBhY2tfcmVxdWlyZV9fLm1bbW9kdWxlSWRdO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdH07XG4vKioqKioqLyBcdFx0X193ZWJwYWNrX3JlcXVpcmVfXy5obXJDLmpzb25wID0gZnVuY3Rpb24gKFxuLyoqKioqKi8gXHRcdFx0Y2h1bmtJZHMsXG4vKioqKioqLyBcdFx0XHRyZW1vdmVkQ2h1bmtzLFxuLyoqKioqKi8gXHRcdFx0cmVtb3ZlZE1vZHVsZXMsXG4vKioqKioqLyBcdFx0XHRwcm9taXNlcyxcbi8qKioqKiovIFx0XHRcdGFwcGx5SGFuZGxlcnMsXG4vKioqKioqLyBcdFx0XHR1cGRhdGVkTW9kdWxlc0xpc3Rcbi8qKioqKiovIFx0XHQpIHtcbi8qKioqKiovIFx0XHRcdGFwcGx5SGFuZGxlcnMucHVzaChhcHBseUhhbmRsZXIpO1xuLyoqKioqKi8gXHRcdFx0Y3VycmVudFVwZGF0ZUNodW5rcyA9IHt9O1xuLyoqKioqKi8gXHRcdFx0Y3VycmVudFVwZGF0ZVJlbW92ZWRDaHVua3MgPSByZW1vdmVkQ2h1bmtzO1xuLyoqKioqKi8gXHRcdFx0Y3VycmVudFVwZGF0ZSA9IHJlbW92ZWRNb2R1bGVzLnJlZHVjZShmdW5jdGlvbiAob2JqLCBrZXkpIHtcbi8qKioqKiovIFx0XHRcdFx0b2JqW2tleV0gPSBmYWxzZTtcbi8qKioqKiovIFx0XHRcdFx0cmV0dXJuIG9iajtcbi8qKioqKiovIFx0XHRcdH0sIHt9KTtcbi8qKioqKiovIFx0XHRcdGN1cnJlbnRVcGRhdGVSdW50aW1lID0gW107XG4vKioqKioqLyBcdFx0XHRjaHVua0lkcy5mb3JFYWNoKGZ1bmN0aW9uIChjaHVua0lkKSB7XG4vKioqKioqLyBcdFx0XHRcdGlmIChcbi8qKioqKiovIFx0XHRcdFx0XHRfX3dlYnBhY2tfcmVxdWlyZV9fLm8oaW5zdGFsbGVkQ2h1bmtzLCBjaHVua0lkKSAmJlxuLyoqKioqKi8gXHRcdFx0XHRcdGluc3RhbGxlZENodW5rc1tjaHVua0lkXSAhPT0gdW5kZWZpbmVkXG4vKioqKioqLyBcdFx0XHRcdCkge1xuLyoqKioqKi8gXHRcdFx0XHRcdHByb21pc2VzLnB1c2gobG9hZFVwZGF0ZUNodW5rKGNodW5rSWQsIHVwZGF0ZWRNb2R1bGVzTGlzdCkpO1xuLyoqKioqKi8gXHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVDaHVua3NbY2h1bmtJZF0gPSB0cnVlO1xuLyoqKioqKi8gXHRcdFx0XHR9IGVsc2Uge1xuLyoqKioqKi8gXHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVDaHVua3NbY2h1bmtJZF0gPSBmYWxzZTtcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0fSk7XG4vKioqKioqLyBcdFx0XHRpZiAoX193ZWJwYWNrX3JlcXVpcmVfXy5mKSB7XG4vKioqKioqLyBcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18uZi5qc29ucEhtciA9IGZ1bmN0aW9uIChjaHVua0lkLCBwcm9taXNlcykge1xuLyoqKioqKi8gXHRcdFx0XHRcdGlmIChcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVDaHVua3MgJiZcbi8qKioqKiovIFx0XHRcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubyhjdXJyZW50VXBkYXRlQ2h1bmtzLCBjaHVua0lkKSAmJlxuLyoqKioqKi8gXHRcdFx0XHRcdFx0IWN1cnJlbnRVcGRhdGVDaHVua3NbY2h1bmtJZF1cbi8qKioqKiovIFx0XHRcdFx0XHQpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdHByb21pc2VzLnB1c2gobG9hZFVwZGF0ZUNodW5rKGNodW5rSWQpKTtcbi8qKioqKiovIFx0XHRcdFx0XHRcdGN1cnJlbnRVcGRhdGVDaHVua3NbY2h1bmtJZF0gPSB0cnVlO1xuLyoqKioqKi8gXHRcdFx0XHRcdH1cbi8qKioqKiovIFx0XHRcdFx0fTtcbi8qKioqKiovIFx0XHRcdH1cbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uaG1yTSA9ICgpID0+IHtcbi8qKioqKiovIFx0XHRcdGlmICh0eXBlb2YgZmV0Y2ggPT09IFwidW5kZWZpbmVkXCIpIHRocm93IG5ldyBFcnJvcihcIk5vIGJyb3dzZXIgc3VwcG9ydDogbmVlZCBmZXRjaCBBUElcIik7XG4vKioqKioqLyBcdFx0XHRyZXR1cm4gZmV0Y2goX193ZWJwYWNrX3JlcXVpcmVfXy5wICsgX193ZWJwYWNrX3JlcXVpcmVfXy5obXJGKCkpLnRoZW4oKHJlc3BvbnNlKSA9PiB7XG4vKioqKioqLyBcdFx0XHRcdGlmKHJlc3BvbnNlLnN0YXR1cyA9PT0gNDA0KSByZXR1cm47IC8vIG5vIHVwZGF0ZSBhdmFpbGFibGVcbi8qKioqKiovIFx0XHRcdFx0aWYoIXJlc3BvbnNlLm9rKSB0aHJvdyBuZXcgRXJyb3IoXCJGYWlsZWQgdG8gZmV0Y2ggdXBkYXRlIG1hbmlmZXN0IFwiICsgcmVzcG9uc2Uuc3RhdHVzVGV4dCk7XG4vKioqKioqLyBcdFx0XHRcdHJldHVybiByZXNwb25zZS5qc29uKCk7XG4vKioqKioqLyBcdFx0XHR9KTtcbi8qKioqKiovIFx0XHR9O1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdF9fd2VicGFja19yZXF1aXJlX18uTy5qID0gKGNodW5rSWQpID0+IChpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPT09IDApO1xuLyoqKioqKi8gXHRcdFxuLyoqKioqKi8gXHRcdC8vIGluc3RhbGwgYSBKU09OUCBjYWxsYmFjayBmb3IgY2h1bmsgbG9hZGluZ1xuLyoqKioqKi8gXHRcdHZhciB3ZWJwYWNrSnNvbnBDYWxsYmFjayA9IChwYXJlbnRDaHVua0xvYWRpbmdGdW5jdGlvbiwgZGF0YSkgPT4ge1xuLyoqKioqKi8gXHRcdFx0dmFyIFtjaHVua0lkcywgbW9yZU1vZHVsZXMsIHJ1bnRpbWVdID0gZGF0YTtcbi8qKioqKiovIFx0XHRcdC8vIGFkZCBcIm1vcmVNb2R1bGVzXCIgdG8gdGhlIG1vZHVsZXMgb2JqZWN0LFxuLyoqKioqKi8gXHRcdFx0Ly8gdGhlbiBmbGFnIGFsbCBcImNodW5rSWRzXCIgYXMgbG9hZGVkIGFuZCBmaXJlIGNhbGxiYWNrXG4vKioqKioqLyBcdFx0XHR2YXIgbW9kdWxlSWQsIGNodW5rSWQsIGkgPSAwO1xuLyoqKioqKi8gXHRcdFx0aWYoY2h1bmtJZHMuc29tZSgoaWQpID0+IChpbnN0YWxsZWRDaHVua3NbaWRdICE9PSAwKSkpIHtcbi8qKioqKiovIFx0XHRcdFx0Zm9yKG1vZHVsZUlkIGluIG1vcmVNb2R1bGVzKSB7XG4vKioqKioqLyBcdFx0XHRcdFx0aWYoX193ZWJwYWNrX3JlcXVpcmVfXy5vKG1vcmVNb2R1bGVzLCBtb2R1bGVJZCkpIHtcbi8qKioqKiovIFx0XHRcdFx0XHRcdF9fd2VicGFja19yZXF1aXJlX18ubVttb2R1bGVJZF0gPSBtb3JlTW9kdWxlc1ttb2R1bGVJZF07XG4vKioqKioqLyBcdFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHR9XG4vKioqKioqLyBcdFx0XHRcdGlmKHJ1bnRpbWUpIHZhciByZXN1bHQgPSBydW50aW1lKF9fd2VicGFja19yZXF1aXJlX18pO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0aWYocGFyZW50Q2h1bmtMb2FkaW5nRnVuY3Rpb24pIHBhcmVudENodW5rTG9hZGluZ0Z1bmN0aW9uKGRhdGEpO1xuLyoqKioqKi8gXHRcdFx0Zm9yKDtpIDwgY2h1bmtJZHMubGVuZ3RoOyBpKyspIHtcbi8qKioqKiovIFx0XHRcdFx0Y2h1bmtJZCA9IGNodW5rSWRzW2ldO1xuLyoqKioqKi8gXHRcdFx0XHRpZihfX3dlYnBhY2tfcmVxdWlyZV9fLm8oaW5zdGFsbGVkQ2h1bmtzLCBjaHVua0lkKSAmJiBpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0pIHtcbi8qKioqKiovIFx0XHRcdFx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF1bMF0oKTtcbi8qKioqKiovIFx0XHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0XHRpbnN0YWxsZWRDaHVua3NbY2h1bmtJZF0gPSAwO1xuLyoqKioqKi8gXHRcdFx0fVxuLyoqKioqKi8gXHRcdFx0cmV0dXJuIF9fd2VicGFja19yZXF1aXJlX18uTyhyZXN1bHQpO1xuLyoqKioqKi8gXHRcdH1cbi8qKioqKiovIFx0XHRcbi8qKioqKiovIFx0XHR2YXIgY2h1bmtMb2FkaW5nR2xvYmFsID0gc2VsZltcIndlYnBhY2tDaHVua19OX0VcIl0gPSBzZWxmW1wid2VicGFja0NodW5rX05fRVwiXSB8fCBbXTtcbi8qKioqKiovIFx0XHRjaHVua0xvYWRpbmdHbG9iYWwuZm9yRWFjaCh3ZWJwYWNrSnNvbnBDYWxsYmFjay5iaW5kKG51bGwsIDApKTtcbi8qKioqKiovIFx0XHRjaHVua0xvYWRpbmdHbG9iYWwucHVzaCA9IHdlYnBhY2tKc29ucENhbGxiYWNrLmJpbmQobnVsbCwgY2h1bmtMb2FkaW5nR2xvYmFsLnB1c2guYmluZChjaHVua0xvYWRpbmdHbG9iYWwpKTtcbi8qKioqKiovIFx0fSkoKTtcbi8qKioqKiovIFx0XG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuLyoqKioqKi8gXHRcbi8qKioqKiovIFx0Ly8gbW9kdWxlIGNhY2hlIGFyZSB1c2VkIHNvIGVudHJ5IGlubGluaW5nIGlzIGRpc2FibGVkXG4vKioqKioqLyBcdFxuLyoqKioqKi8gfSkoKVxuIl19
;
\ No newline at end of file
diff --git a/.next/static/webpack/c90f0d07acc26f85.webpack.hot-update.json b/.next/static/webpack/c90f0d07acc26f85.webpack.hot-update.json
new file mode 100644
index 0000000..3823c4c
--- /dev/null
+++ b/.next/static/webpack/c90f0d07acc26f85.webpack.hot-update.json
@@ -0,0 +1 @@
+{"c":["webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.c90f0d07acc26f85.hot-update.js b/.next/static/webpack/webpack.c90f0d07acc26f85.hot-update.js
new file mode 100644
index 0000000..89bdff6
--- /dev/null
+++ b/.next/static/webpack/webpack.c90f0d07acc26f85.hot-update.js
@@ -0,0 +1,12 @@
+"use strict";
+self["webpackHotUpdate_N_E"]("webpack",{},
+/******/ function(__webpack_require__) { // webpackRuntimeModules
+/******/ /* webpack/runtime/getFullHash */
+/******/ (() => {
+/******/ __webpack_require__.h = () => ("d104ab89ef21f863")
+/******/ })();
+/******/
+/******/ }
+)
+//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJpZ25vcmVMaXN0IjpbMF0sIm1hcHBpbmdzIjoiQUFBQSIsInNvdXJjZXMiOlsid2VicGFjay1pbnRlcm5hbDovL25leHRqcy93ZWJwYWNrLmpzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFRoaXMgc291cmNlIHdhcyBnZW5lcmF0ZWQgYnkgTmV4dC5qcyBiYXNlZCBvZmYgb2YgdGhlIGdlbmVyYXRlZCBXZWJwYWNrIHJ1bnRpbWUuXG4vLyBUaGUgbWFwcGluZ3MgYXJlIGluY29ycmVjdC5cbi8vIFRvIGdldCB0aGUgY29ycmVjdCBsaW5lL2NvbHVtbiBtYXBwaW5ncywgdHVybiBvZmYgc291cmNlbWFwcyBpbiB5b3VyIGRlYnVnZ2VyLlxuXG5zZWxmW1wid2VicGFja0hvdFVwZGF0ZV9OX0VcIl0oXCJ3ZWJwYWNrXCIse30sXG4vKioqKioqLyBmdW5jdGlvbihfX3dlYnBhY2tfcmVxdWlyZV9fKSB7IC8vIHdlYnBhY2tSdW50aW1lTW9kdWxlc1xuLyoqKioqKi8gLyogd2VicGFjay9ydW50aW1lL2dldEZ1bGxIYXNoICovXG4vKioqKioqLyAoKCkgPT4ge1xuLyoqKioqKi8gXHRfX3dlYnBhY2tfcmVxdWlyZV9fLmggPSAoKSA9PiAoXCJkMTA0YWI4OWVmMjFmODYzXCIpXG4vKioqKioqLyB9KSgpO1xuLyoqKioqKi8gXG4vKioqKioqLyB9XG4pIl19
+;
\ No newline at end of file
diff --git a/.next/trace b/.next/trace
index a98151f..c05ed39 100644
--- a/.next/trace
+++ b/.next/trace
@@ -15,3 +15,11 @@
[{"name":"ensure-page","duration":1447118,"timestamp":640830814630,"id":858,"parentId":3,"tags":{"inputPage":"/crew/page"},"startTime":1758698269405,"traceId":"4370efa64adb4e3b"},{"name":"client-success","duration":5,"timestamp":640832266309,"id":1066,"parentId":3,"tags":{},"startTime":1758698270857,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":1017,"timestamp":640832269630,"id":1067,"parentId":3,"tags":{"inputPage":"/crew/page"},"startTime":1758698270860,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":1763820,"timestamp":640830811760,"id":857,"tags":{"url":"/crew?_rsc=qdzqe"},"startTime":1758698269402,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":3,"timestamp":640832575690,"id":1068,"parentId":857,"tags":{"url":"/crew?_rsc=qdzqe","memory.rss":"2042970112","memory.heapUsed":"1002529736","memory.heapTotal":"1137389568"},"startTime":1758698271166,"traceId":"4370efa64adb4e3b"},{"name":"client-hmr-latency","duration":1154000,"timestamp":640831420418,"id":1069,"parentId":3,"tags":{"updatedModules":[],"page":"/projects","isPageHidden":false},"startTime":1758698271173,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":242,"timestamp":640832792190,"id":1070,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698271383,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":118,"timestamp":640832792458,"id":1071,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698271383,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":230,"timestamp":640832799983,"id":1072,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698271390,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":113,"timestamp":640832800238,"id":1073,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698271391,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":49843,"timestamp":640832835841,"id":1074,"tags":{"url":"/_next/image?url=https%3A%2F%2Futfs.io%2Ff%2FRCvZP76OJunYDzeSanIfqabWOlYeVkArIH1dP4RLXuh5FjNg&w=640&q=75"},"startTime":1758698271426,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":9,"timestamp":640832887093,"id":1075,"parentId":1074,"tags":{"url":"/_next/image?url=https%3A%2F%2Futfs.io%2Ff%2FRCvZP76OJunYDzeSanIfqabWOlYeVkArIH1dP4RLXuh5FjNg&w=640&q=75","memory.rss":"2043101184","memory.heapUsed":"1004950000","memory.heapTotal":"1137389568"},"startTime":1758698271478,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":206,"timestamp":640833013035,"id":1076,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698271604,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":98,"timestamp":640833013264,"id":1077,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698271604,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":173,"timestamp":640833562509,"id":1078,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698272153,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":104,"timestamp":640833562701,"id":1079,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698272153,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":543,"timestamp":640834994630,"id":1081,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1758698273585,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":607,"timestamp":640834996635,"id":1082,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1758698273587,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":37014,"timestamp":640834992491,"id":1080,"tags":{"url":"/?_rsc=1oh4l"},"startTime":1758698273583,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":2,"timestamp":640835029617,"id":1083,"parentId":1080,"tags":{"url":"/?_rsc=1oh4l","memory.rss":"2063548416","memory.heapUsed":"1013698464","memory.heapTotal":"1139433472"},"startTime":1758698273620,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":218,"timestamp":640835099960,"id":1084,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698273690,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":213,"timestamp":640835100204,"id":1085,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698273691,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":305,"timestamp":640835103966,"id":1086,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698273694,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":157,"timestamp":640835104300,"id":1087,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698273695,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":168,"timestamp":640836044023,"id":1088,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698274635,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":150,"timestamp":640836044212,"id":1089,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698274635,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":186,"timestamp":640838578646,"id":1090,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698277169,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":94,"timestamp":640838578855,"id":1091,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698277169,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":214,"timestamp":640839622215,"id":1092,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698278213,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":154,"timestamp":640839622453,"id":1093,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698278213,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":298,"timestamp":640841489395,"id":1094,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698280080,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":178,"timestamp":640841489735,"id":1095,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758698280080,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":30610,"timestamp":640916443313,"id":1117,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"rsc"},"startTime":1758698355034,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":36348,"timestamp":640916444431,"id":1119,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"rsc"},"startTime":1758698355035,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":49455,"timestamp":640916444013,"id":1118,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"rsc"},"startTime":1758698355035,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":55172,"timestamp":640916444809,"id":1120,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"rsc"},"startTime":1758698355035,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":34948,"timestamp":640916505422,"id":1121,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355096,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":54637,"timestamp":640916506322,"id":1123,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355097,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":87192,"timestamp":640916506662,"id":1124,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355097,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":108760,"timestamp":640916505904,"id":1122,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355096,"traceId":"4370efa64adb4e3b"},{"name":"build-module-ts","duration":120247,"timestamp":640916506997,"id":1125,"parentId":1100,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/instrumentation.ts","layer":"instrument"},"startTime":1758698355097,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":518436,"timestamp":640916514303,"id":1126,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355105,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":467851,"timestamp":640916619757,"id":1127,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355210,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":479281,"timestamp":640916620277,"id":1128,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355211,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":484712,"timestamp":640916620650,"id":1129,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355211,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":490692,"timestamp":640916620990,"id":1130,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355211,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":504307,"timestamp":640916621330,"id":1131,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355212,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":520818,"timestamp":640916628414,"id":1132,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"rsc"},"startTime":1758698355219,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":540379,"timestamp":640916628827,"id":1133,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"rsc"},"startTime":1758698355219,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":132514,"timestamp":640917048457,"id":1134,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"rsc"},"startTime":1758698355639,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":165218,"timestamp":640917060048,"id":1135,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355651,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":106789,"timestamp":640917131948,"id":1136,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355722,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":112616,"timestamp":640917132523,"id":1137,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355723,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":117766,"timestamp":640917133328,"id":1139,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355724,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":122293,"timestamp":640917133602,"id":1140,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355724,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":132355,"timestamp":640917133022,"id":1138,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355724,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":141148,"timestamp":640917133868,"id":1141,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"rsc"},"startTime":1758698355724,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":5778,"timestamp":640917404418,"id":1143,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"instrument"},"startTime":1758698355995,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7762,"timestamp":640917404867,"id":1144,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"instrument"},"startTime":1758698355995,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":8902,"timestamp":640917405076,"id":1145,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"instrument"},"startTime":1758698355996,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":9840,"timestamp":640917405258,"id":1146,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"instrument"},"startTime":1758698355996,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":102291,"timestamp":640917316171,"id":1142,"parentId":1134,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"rsc"},"startTime":1758698355907,"traceId":"4370efa64adb4e3b"},{"name":"font-loader","duration":1008671,"timestamp":640916423698,"id":1110,"parentId":1109,"tags":{},"startTime":1758698355014,"traceId":"4370efa64adb4e3b"},{"name":"postcss","duration":2915,"timestamp":640917432751,"id":1147,"parentId":1109,"tags":{},"startTime":1758698356023,"traceId":"4370efa64adb4e3b"},{"name":"next-font-loader","duration":1012365,"timestamp":640916423623,"id":1109,"parentId":1103,"tags":{},"startTime":1758698355014,"traceId":"4370efa64adb4e3b"},{"name":"css-loader","duration":13663,"timestamp":640917435712,"id":1148,"parentId":1103,"tags":{"astUsed":"true"},"startTime":1758698356026,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":1115512,"timestamp":640916334555,"id":1103,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Bentham-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"}],\"variable\":\"--font-bentham\",\"display\":\"swap\"}],\"variableName\":\"bentham\"}","layer":"rsc"},"startTime":1758698354925,"traceId":"4370efa64adb4e3b"},{"name":"font-loader","duration":1029364,"timestamp":640916422482,"id":1108,"parentId":1107,"tags":{},"startTime":1758698355013,"traceId":"4370efa64adb4e3b"},{"name":"postcss","duration":354,"timestamp":640917451899,"id":1149,"parentId":1107,"tags":{},"startTime":1758698356042,"traceId":"4370efa64adb4e3b"},{"name":"next-font-loader","duration":1110804,"timestamp":640916341505,"id":1107,"parentId":1102,"tags":{},"startTime":1758698354932,"traceId":"4370efa64adb4e3b"},{"name":"css-loader","duration":1811,"timestamp":640917452287,"id":1150,"parentId":1102,"tags":{"astUsed":"true"},"startTime":1758698356043,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":1123765,"timestamp":640916330736,"id":1102,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/DMSerifText-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/DMSerifText-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"}],\"variable\":\"--font-dmserif\",\"display\":\"swap\"}],\"variableName\":\"dmserif\"}","layer":"rsc"},"startTime":1758698354921,"traceId":"4370efa64adb4e3b"},{"name":"font-loader","duration":1033374,"timestamp":640916424012,"id":1114,"parentId":1113,"tags":{},"startTime":1758698355014,"traceId":"4370efa64adb4e3b"},{"name":"postcss","duration":350,"timestamp":640917457437,"id":1151,"parentId":1113,"tags":{},"startTime":1758698356048,"traceId":"4370efa64adb4e3b"},{"name":"next-font-loader","duration":1033855,"timestamp":640916423992,"id":1113,"parentId":1105,"tags":{},"startTime":1758698355014,"traceId":"4370efa64adb4e3b"},{"name":"css-loader","duration":1537,"timestamp":640917457816,"id":1152,"parentId":1105,"tags":{"astUsed":"true"},"startTime":1758698356048,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":1124910,"timestamp":640916334765,"id":1105,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Share/Share-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Share/Share-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-share\",\"display\":\"swap\"}],\"variableName\":\"share\"}","layer":"rsc"},"startTime":1758698354925,"traceId":"4370efa64adb4e3b"},{"name":"font-loader","duration":1037099,"timestamp":640916423816,"id":1112,"parentId":1111,"tags":{},"startTime":1758698355014,"traceId":"4370efa64adb4e3b"},{"name":"postcss","duration":483,"timestamp":640917460955,"id":1153,"parentId":1111,"tags":{},"startTime":1758698356051,"traceId":"4370efa64adb4e3b"},{"name":"next-font-loader","duration":1037695,"timestamp":640916423789,"id":1111,"parentId":1104,"tags":{},"startTime":1758698355014,"traceId":"4370efa64adb4e3b"},{"name":"css-loader","duration":1684,"timestamp":640917461463,"id":1154,"parentId":1104,"tags":{"astUsed":"true"},"startTime":1758698356052,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":1128884,"timestamp":640916334689,"id":1104,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Rajdhani/Rajdhani-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-rajdhani\",\"display\":\"swap\"}],\"variableName\":\"rajdhani\"}","layer":"rsc"},"startTime":1758698354925,"traceId":"4370efa64adb4e3b"},{"name":"font-loader","duration":1042780,"timestamp":640916424157,"id":1116,"parentId":1115,"tags":{},"startTime":1758698355015,"traceId":"4370efa64adb4e3b"},{"name":"postcss","duration":872,"timestamp":640917467018,"id":1155,"parentId":1115,"tags":{},"startTime":1758698356058,"traceId":"4370efa64adb4e3b"},{"name":"next-font-loader","duration":1043853,"timestamp":640916424132,"id":1115,"parentId":1106,"tags":{},"startTime":1758698355015,"traceId":"4370efa64adb4e3b"},{"name":"css-loader","duration":2201,"timestamp":640917467942,"id":1156,"parentId":1106,"tags":{"astUsed":"true"},"startTime":1758698356058,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":1135825,"timestamp":640916334830,"id":1106,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Kanit/Kanit-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-MediumItalic.ttf\",\"weight\":\"500\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBoldItalic.ttf\",\"weight\":\"600\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-BoldItalic.ttf\",\"weight\":\"700\",\"style\":\"italic\"}],\"variable\":\"--font-kanit\",\"display\":\"swap\"}],\"variableName\":\"kanit\"}","layer":"rsc"},"startTime":1758698354925,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":12714,"timestamp":640917471312,"id":1157,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356062,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":17223,"timestamp":640917471739,"id":1158,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356062,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":22778,"timestamp":640917472034,"id":1159,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356063,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":30859,"timestamp":640917472316,"id":1160,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356063,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":31920,"timestamp":640917472603,"id":1161,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356063,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":43739,"timestamp":640917472896,"id":1162,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356063,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":47387,"timestamp":640917473214,"id":1163,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356064,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":49335,"timestamp":640917473506,"id":1164,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356064,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":51392,"timestamp":640917473780,"id":1165,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356064,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":56850,"timestamp":640917474049,"id":1166,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356065,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":20724,"timestamp":640917631915,"id":1167,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356222,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":22032,"timestamp":640917632208,"id":1168,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356223,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":25124,"timestamp":640917632398,"id":1169,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356223,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":18778,"timestamp":640917660874,"id":1170,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356251,"traceId":"4370efa64adb4e3b"}]
[{"name":"build-module-js","duration":20707,"timestamp":640917661286,"id":1171,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356252,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":21965,"timestamp":640917661643,"id":1172,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356252,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":25042,"timestamp":640917661954,"id":1173,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"instrument"},"startTime":1758698356252,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":3715,"timestamp":640917729825,"id":1174,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"instrument"},"startTime":1758698356320,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7000,"timestamp":640917730473,"id":1175,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"instrument"},"startTime":1758698356321,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":11241,"timestamp":640917750906,"id":1177,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"instrument"},"startTime":1758698356341,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":1830,"timestamp":640917769806,"id":1179,"parentId":1177,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"instrument"},"startTime":1758698356360,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":48903,"timestamp":640917731087,"id":1176,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"rsc"},"startTime":1758698356322,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":21084,"timestamp":640917763834,"id":1178,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"instrument"},"startTime":1758698356354,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":3324,"timestamp":640917796269,"id":1180,"parentId":1176,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"rsc"},"startTime":1758698356387,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":4292,"timestamp":640917796552,"id":1181,"parentId":1178,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"instrument"},"startTime":1758698356387,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":1512200,"timestamp":640916307605,"id":1101,"parentId":1099,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758698354898,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":1512373,"timestamp":640916307452,"id":1100,"parentId":1099,"tags":{"request":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/instrumentation.ts"},"startTime":1758698354898,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":5293,"timestamp":640917870757,"id":1198,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"ssr"},"startTime":1758698356461,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":6952,"timestamp":640917871103,"id":1199,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"ssr"},"startTime":1758698356462,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7761,"timestamp":640917871377,"id":1200,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"ssr"},"startTime":1758698356462,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":9044,"timestamp":640917871636,"id":1201,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"ssr"},"startTime":1758698356462,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":18178,"timestamp":640917889556,"id":1202,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356480,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":20727,"timestamp":640917889820,"id":1203,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356480,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":23496,"timestamp":640917890050,"id":1204,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356481,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":29216,"timestamp":640917890204,"id":1205,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356481,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":29759,"timestamp":640917890349,"id":1206,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356481,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":35966,"timestamp":640917890493,"id":1207,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356481,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":38735,"timestamp":640917890687,"id":1208,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356481,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":40440,"timestamp":640917890841,"id":1209,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356481,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":41897,"timestamp":640917891019,"id":1210,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356482,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":45130,"timestamp":640917891279,"id":1211,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356482,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":47414,"timestamp":640917891455,"id":1212,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356482,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":48767,"timestamp":640917891605,"id":1213,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356482,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":50522,"timestamp":640917891756,"id":1214,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356482,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":52358,"timestamp":640917891902,"id":1215,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356482,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":54623,"timestamp":640917892100,"id":1216,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356483,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":55664,"timestamp":640917892324,"id":1217,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356483,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":59158,"timestamp":640917892523,"id":1218,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"ssr"},"startTime":1758698356483,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":11656,"timestamp":640918062307,"id":1219,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"ssr"},"startTime":1758698356653,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":14112,"timestamp":640918062668,"id":1220,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"ssr"},"startTime":1758698356653,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":11618,"timestamp":640918080441,"id":1221,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"ssr"},"startTime":1758698356671,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":9047,"timestamp":640918094111,"id":1222,"parentId":1098,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"ssr"},"startTime":1758698356685,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7976,"timestamp":640918105707,"id":1223,"parentId":1221,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"ssr"},"startTime":1758698356696,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":3934,"timestamp":640918117483,"id":1224,"parentId":1222,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"ssr"},"startTime":1758698356708,"traceId":"4370efa64adb4e3b"},{"name":"make","duration":1839744,"timestamp":640916303234,"id":1099,"parentId":1098,"tags":{},"startTime":1758698354894,"traceId":"4370efa64adb4e3b"},{"name":"chunk-graph","duration":20218,"timestamp":640918207428,"id":1226,"parentId":1225,"tags":{},"startTime":1758698356798,"traceId":"4370efa64adb4e3b"},{"name":"optimize-modules","duration":47,"timestamp":640918227714,"id":1228,"parentId":1225,"tags":{},"startTime":1758698356818,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunks","duration":16586,"timestamp":640918227867,"id":1229,"parentId":1225,"tags":{},"startTime":1758698356818,"traceId":"4370efa64adb4e3b"},{"name":"optimize-tree","duration":58,"timestamp":640918244605,"id":1230,"parentId":1225,"tags":{},"startTime":1758698356835,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunk-modules","duration":24,"timestamp":640918244780,"id":1231,"parentId":1225,"tags":{},"startTime":1758698356835,"traceId":"4370efa64adb4e3b"},{"name":"optimize","duration":28939,"timestamp":640918227696,"id":1227,"parentId":1225,"tags":{},"startTime":1758698356818,"traceId":"4370efa64adb4e3b"},{"name":"module-hash","duration":15879,"timestamp":640918277947,"id":1232,"parentId":1225,"tags":{},"startTime":1758698356868,"traceId":"4370efa64adb4e3b"},{"name":"code-generation","duration":24075,"timestamp":640918293890,"id":1233,"parentId":1225,"tags":{},"startTime":1758698356884,"traceId":"4370efa64adb4e3b"},{"name":"hash","duration":16134,"timestamp":640918333794,"id":1234,"parentId":1225,"tags":{},"startTime":1758698356924,"traceId":"4370efa64adb4e3b"},{"name":"code-generation-jobs","duration":358,"timestamp":640918349925,"id":1235,"parentId":1225,"tags":{},"startTime":1758698356940,"traceId":"4370efa64adb4e3b"},{"name":"module-assets","duration":1019,"timestamp":640918350233,"id":1236,"parentId":1225,"tags":{},"startTime":1758698356941,"traceId":"4370efa64adb4e3b"},{"name":"create-chunk-assets","duration":8976,"timestamp":640918351271,"id":1237,"parentId":1225,"tags":{},"startTime":1758698356942,"traceId":"4370efa64adb4e3b"},{"name":"seal","duration":208860,"timestamp":640918184079,"id":1225,"parentId":1098,"tags":{},"startTime":1758698356775,"traceId":"4370efa64adb4e3b"},{"name":"webpack-compilation","duration":2167830,"timestamp":640916302038,"id":1098,"parentId":1096,"tags":{"name":"server"},"startTime":1758698354893,"traceId":"4370efa64adb4e3b"},{"name":"emit","duration":18104,"timestamp":640918470040,"id":1238,"parentId":1096,"tags":{},"startTime":1758698357061,"traceId":"4370efa64adb4e3b"},{"name":"webpack-invalidated-server","duration":2209340,"timestamp":640916282469,"id":1096,"parentId":3,"tags":{"trigger":"package.json"},"startTime":1758698354873,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":9793,"timestamp":640918512538,"id":1249,"parentId":1240,"tags":{"request":"next-flight-client-entry-loader?server=false!"},"startTime":1758698357103,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":9837,"timestamp":640918512557,"id":1251,"parentId":1240,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fapp-dir%2Flink.js%22%2C%22ids%22%3A%5B%22__esModule%22%2C%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2Fui%2FImageWithFallback.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=false!"},"startTime":1758698357103,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":47782,"timestamp":640918512533,"id":1248,"parentId":1240,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1758698357103,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":49860,"timestamp":640918512550,"id":1250,"parentId":1240,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fapp-dir%2Flink.js%22%2C%22ids%22%3A%5B%22__esModule%22%2C%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fprojects%2FProjectsPageClient.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2Fui%2FImageWithFallback.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=false!"},"startTime":1758698357103,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":19766,"timestamp":640918564850,"id":1257,"parentId":1243,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/sentry.client.config.js","layer":"app-pages-browser"},"startTime":1758698357155,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":15008,"timestamp":640918571274,"id":1259,"parentId":1239,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/lib/require-instrumentation-client.js","layer":"app-pages-browser"},"startTime":1758698357162,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":74510,"timestamp":640918512495,"id":1243,"parentId":1240,"tags":{"request":"./sentry.client.config.js"},"startTime":1758698357103,"traceId":"4370efa64adb4e3b"},{"name":"build-module-ts","duration":25971,"timestamp":640918565207,"id":1258,"parentId":1244,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/instrumentation-client.ts","layer":"app-pages-browser"},"startTime":1758698357156,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":84016,"timestamp":640918512527,"id":1247,"parentId":1240,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1758698357103,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":84446,"timestamp":640918512397,"id":1241,"parentId":1240,"tags":{"request":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1758698357103,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":87715,"timestamp":640918512512,"id":1245,"parentId":1240,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobal-error.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1758698357103,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":89399,"timestamp":640918512485,"id":1242,"parentId":1240,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1758698357103,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":344603,"timestamp":640918512500,"id":1244,"parentId":1240,"tags":{"request":"./src/instrumentation-client.ts"},"startTime":1758698357103,"traceId":"4370efa64adb4e3b"},{"name":"font-loader","duration":23357,"timestamp":640918916221,"id":1266,"parentId":1265,"tags":{},"startTime":1758698357507,"traceId":"4370efa64adb4e3b"},{"name":"font-loader","duration":22725,"timestamp":640918916871,"id":1268,"parentId":1267,"tags":{},"startTime":1758698357507,"traceId":"4370efa64adb4e3b"},{"name":"font-loader","duration":22588,"timestamp":640918917020,"id":1270,"parentId":1269,"tags":{},"startTime":1758698357508,"traceId":"4370efa64adb4e3b"},{"name":"font-loader","duration":22371,"timestamp":640918917241,"id":1272,"parentId":1271,"tags":{},"startTime":1758698357508,"traceId":"4370efa64adb4e3b"},{"name":"font-loader","duration":22186,"timestamp":640918917428,"id":1274,"parentId":1273,"tags":{},"startTime":1758698357508,"traceId":"4370efa64adb4e3b"},{"name":"postcss","duration":5200,"timestamp":640918939826,"id":1275,"parentId":1265,"tags":{},"startTime":1758698357530,"traceId":"4370efa64adb4e3b"},{"name":"postcss","duration":4171,"timestamp":640918940877,"id":1276,"parentId":1267,"tags":{},"startTime":1758698357531,"traceId":"4370efa64adb4e3b"},{"name":"postcss","duration":3691,"timestamp":640918941360,"id":1277,"parentId":1269,"tags":{},"startTime":1758698357532,"traceId":"4370efa64adb4e3b"},{"name":"postcss","duration":3179,"timestamp":640918941875,"id":1278,"parentId":1271,"tags":{},"startTime":1758698357532,"traceId":"4370efa64adb4e3b"},{"name":"postcss","duration":2831,"timestamp":640918942226,"id":1279,"parentId":1273,"tags":{},"startTime":1758698357533,"traceId":"4370efa64adb4e3b"},{"name":"next-font-loader","duration":29460,"timestamp":640918916073,"id":1265,"parentId":1260,"tags":{},"startTime":1758698357507,"traceId":"4370efa64adb4e3b"},{"name":"next-font-loader","duration":28782,"timestamp":640918916762,"id":1267,"parentId":1261,"tags":{},"startTime":1758698357507,"traceId":"4370efa64adb4e3b"},{"name":"next-font-loader","duration":28566,"timestamp":640918916981,"id":1269,"parentId":1262,"tags":{},"startTime":1758698357507,"traceId":"4370efa64adb4e3b"},{"name":"next-font-loader","duration":28345,"timestamp":640918917208,"id":1271,"parentId":1263,"tags":{},"startTime":1758698357508,"traceId":"4370efa64adb4e3b"},{"name":"next-font-loader","duration":28168,"timestamp":640918917388,"id":1273,"parentId":1264,"tags":{},"startTime":1758698357508,"traceId":"4370efa64adb4e3b"},{"name":"css-loader","duration":22441,"timestamp":640918945138,"id":1280,"parentId":1260,"tags":{"astUsed":"true"},"startTime":1758698357536,"traceId":"4370efa64adb4e3b"},{"name":"css-loader","duration":22307,"timestamp":640918945290,"id":1281,"parentId":1261,"tags":{"astUsed":"true"},"startTime":1758698357536,"traceId":"4370efa64adb4e3b"},{"name":"css-loader","duration":22236,"timestamp":640918945365,"id":1282,"parentId":1262,"tags":{"astUsed":"true"},"startTime":1758698357536,"traceId":"4370efa64adb4e3b"},{"name":"css-loader","duration":22192,"timestamp":640918945412,"id":1283,"parentId":1263,"tags":{"astUsed":"true"},"startTime":1758698357536,"traceId":"4370efa64adb4e3b"},{"name":"css-loader","duration":22117,"timestamp":640918945490,"id":1284,"parentId":1264,"tags":{"astUsed":"true"},"startTime":1758698357536,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":54092,"timestamp":640918915171,"id":1260,"parentId":1252,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css.webpack[javascript/auto]!=!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[3].use[1]!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[13].oneOf[3].use[2]!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/DMSerifText-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/DMSerifText-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"}],\"variable\":\"--font-dmserif\",\"display\":\"swap\"}],\"variableName\":\"dmserif\"}","layer":null},"startTime":1758698357506,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":54617,"timestamp":640918915483,"id":1261,"parentId":1253,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css.webpack[javascript/auto]!=!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[3].use[1]!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[13].oneOf[3].use[2]!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Bentham-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"}],\"variable\":\"--font-bentham\",\"display\":\"swap\"}],\"variableName\":\"bentham\"}","layer":null},"startTime":1758698357506,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":55355,"timestamp":640918915640,"id":1262,"parentId":1254,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css.webpack[javascript/auto]!=!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[3].use[1]!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[13].oneOf[3].use[2]!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Rajdhani/Rajdhani-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-rajdhani\",\"display\":\"swap\"}],\"variableName\":\"rajdhani\"}","layer":null},"startTime":1758698357506,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":55995,"timestamp":640918915768,"id":1263,"parentId":1255,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css.webpack[javascript/auto]!=!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[3].use[1]!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[13].oneOf[3].use[2]!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Share/Share-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Share/Share-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-share\",\"display\":\"swap\"}],\"variableName\":\"share\"}","layer":null},"startTime":1758698357506,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":56790,"timestamp":640918915926,"id":1264,"parentId":1256,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css.webpack[javascript/auto]!=!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[3].use[1]!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/build/webpack/loaders/next-font-loader/index.js??ruleSet[1].rules[13].oneOf[3].use[2]!/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Kanit/Kanit-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-MediumItalic.ttf\",\"weight\":\"500\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBoldItalic.ttf\",\"weight\":\"600\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-BoldItalic.ttf\",\"weight\":\"700\",\"style\":\"italic\"}],\"variable\":\"--font-kanit\",\"display\":\"swap\"}],\"variableName\":\"kanit\"}","layer":null},"startTime":1758698357506,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":473619,"timestamp":640918522618,"id":1252,"parentId":1239,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/DMSerifText-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/DMSerifText-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"}],\"variable\":\"--font-dmserif\",\"display\":\"swap\"}],\"variableName\":\"dmserif\"}","layer":"app-pages-browser"},"startTime":1758698357113,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":475652,"timestamp":640918524671,"id":1253,"parentId":1239,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Bentham-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"}],\"variable\":\"--font-bentham\",\"display\":\"swap\"}],\"variableName\":\"bentham\"}","layer":"app-pages-browser"},"startTime":1758698357115,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":479691,"timestamp":640918524986,"id":1254,"parentId":1239,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Rajdhani/Rajdhani-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-rajdhani\",\"display\":\"swap\"}],\"variableName\":\"rajdhani\"}","layer":"app-pages-browser"},"startTime":1758698357115,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":482825,"timestamp":640918525207,"id":1255,"parentId":1239,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Share/Share-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Share/Share-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-share\",\"display\":\"swap\"}],\"variableName\":\"share\"}","layer":"app-pages-browser"},"startTime":1758698357116,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":485896,"timestamp":640918525366,"id":1256,"parentId":1239,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Kanit/Kanit-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-MediumItalic.ttf\",\"weight\":\"500\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBoldItalic.ttf\",\"weight\":\"600\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-BoldItalic.ttf\",\"weight\":\"700\",\"style\":\"italic\"}],\"variable\":\"--font-kanit\",\"display\":\"swap\"}],\"variableName\":\"kanit\"}","layer":"app-pages-browser"},"startTime":1758698357116,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":269,"timestamp":640919012398,"id":1285,"parentId":1252,"tags":{},"startTime":1758698357603,"traceId":"4370efa64adb4e3b"}]
[{"name":"build-module","duration":55,"timestamp":640919013291,"id":1286,"parentId":1253,"tags":{},"startTime":1758698357604,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":25,"timestamp":640919013362,"id":1287,"parentId":1254,"tags":{},"startTime":1758698357604,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":21,"timestamp":640919013395,"id":1288,"parentId":1255,"tags":{},"startTime":1758698357604,"traceId":"4370efa64adb4e3b"},{"name":"build-module","duration":19,"timestamp":640919013424,"id":1289,"parentId":1256,"tags":{},"startTime":1758698357604,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":635539,"timestamp":640918512521,"id":1246,"parentId":1240,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-dmserif%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22dmserif%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FBentham-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-bentham%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22bentham%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-rajdhani%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22rajdhani%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-share%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22share%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-MediumItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-BoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-kanit%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22kanit%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FFooter.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FNavigation.tsx%22%2C%22ids%22%3A%5B%22Navigation%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FProviders.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FTrackingOptOutBanner.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=false!"},"startTime":1758698357103,"traceId":"4370efa64adb4e3b"},{"name":"make","duration":649741,"timestamp":640918498485,"id":1240,"parentId":1239,"tags":{},"startTime":1758698357089,"traceId":"4370efa64adb4e3b"},{"name":"chunk-graph","duration":12801,"timestamp":640919209347,"id":1291,"parentId":1290,"tags":{},"startTime":1758698357800,"traceId":"4370efa64adb4e3b"},{"name":"optimize-modules","duration":13,"timestamp":640919222221,"id":1293,"parentId":1290,"tags":{},"startTime":1758698357813,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunks","duration":359,"timestamp":640919222443,"id":1294,"parentId":1290,"tags":{},"startTime":1758698357813,"traceId":"4370efa64adb4e3b"},{"name":"optimize-tree","duration":31,"timestamp":640919222896,"id":1295,"parentId":1290,"tags":{},"startTime":1758698357813,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunk-modules","duration":17,"timestamp":640919223035,"id":1296,"parentId":1290,"tags":{},"startTime":1758698357814,"traceId":"4370efa64adb4e3b"},{"name":"optimize","duration":6865,"timestamp":640919222200,"id":1292,"parentId":1290,"tags":{},"startTime":1758698357813,"traceId":"4370efa64adb4e3b"},{"name":"module-hash","duration":2324,"timestamp":640919236531,"id":1297,"parentId":1290,"tags":{},"startTime":1758698357827,"traceId":"4370efa64adb4e3b"},{"name":"code-generation","duration":6932,"timestamp":640919238889,"id":1298,"parentId":1290,"tags":{},"startTime":1758698357829,"traceId":"4370efa64adb4e3b"},{"name":"hash","duration":12657,"timestamp":640919251687,"id":1299,"parentId":1290,"tags":{},"startTime":1758698357842,"traceId":"4370efa64adb4e3b"},{"name":"code-generation-jobs","duration":272,"timestamp":640919264341,"id":1300,"parentId":1290,"tags":{},"startTime":1758698357855,"traceId":"4370efa64adb4e3b"},{"name":"module-assets","duration":996,"timestamp":640919264590,"id":1301,"parentId":1290,"tags":{},"startTime":1758698357855,"traceId":"4370efa64adb4e3b"},{"name":"create-chunk-assets","duration":14823,"timestamp":640919265602,"id":1302,"parentId":1290,"tags":{},"startTime":1758698357856,"traceId":"4370efa64adb4e3b"},{"name":"NextJsBuildManifest-generateClientManifest","duration":928,"timestamp":640919285583,"id":1304,"parentId":1239,"tags":{},"startTime":1758698357876,"traceId":"4370efa64adb4e3b"},{"name":"NextJsBuildManifest-createassets","duration":1723,"timestamp":640919284803,"id":1303,"parentId":1239,"tags":{},"startTime":1758698357875,"traceId":"4370efa64adb4e3b"},{"name":"seal","duration":108942,"timestamp":640919184976,"id":1290,"parentId":1239,"tags":{},"startTime":1758698357775,"traceId":"4370efa64adb4e3b"},{"name":"webpack-compilation","duration":797119,"timestamp":640918496890,"id":1239,"parentId":1097,"tags":{"name":"client"},"startTime":1758698357087,"traceId":"4370efa64adb4e3b"},{"name":"emit","duration":17949,"timestamp":640919294098,"id":1305,"parentId":1097,"tags":{},"startTime":1758698357885,"traceId":"4370efa64adb4e3b"},{"name":"webpack-invalidated-client","duration":3033378,"timestamp":640916282842,"id":1097,"parentId":3,"tags":{"trigger":"package.json"},"startTime":1758698354873,"traceId":"4370efa64adb4e3b"}]
+[{"name":"client-success","duration":23,"timestamp":640919323723,"id":1306,"parentId":3,"tags":{},"startTime":1758698357914,"traceId":"4370efa64adb4e3b"},{"name":"client-hmr-latency","duration":3063000,"timestamp":640916284468,"id":1307,"parentId":3,"tags":{"updatedModules":["[project]/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Bentham-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"}],\"variable\":\"--font-bentham\",\"display\":\"swap\"}],\"variableName\":\"bentham\"}","[project]/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/DMSerifText-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/DMSerifText-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"}],\"variable\":\"--font-dmserif\",\"display\":\"swap\"}],\"variableName\":\"dmserif\"}","[project]/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Kanit/Kanit-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-Italic.ttf\",\"weight\":\"400\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-MediumItalic.ttf\",\"weight\":\"500\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-SemiBoldItalic.ttf\",\"weight\":\"600\",\"style\":\"italic\"},{\"path\":\"../fonts/Kanit/Kanit-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-BoldItalic.ttf\",\"weight\":\"700\",\"style\":\"italic\"}],\"variable\":\"--font-kanit\",\"display\":\"swap\"}],\"variableName\":\"kanit\"}","[project]/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Rajdhani/Rajdhani-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-SemiBold.ttf\",\"weight\":\"600\",\"style\":\"normal\"},{\"path\":\"../fonts/Rajdhani/Rajdhani-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-rajdhani\",\"display\":\"swap\"}],\"variableName\":\"rajdhani\"}","[project]/node_modules/next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"path\":\"../fonts/Share/Share-Regular.ttf\",\"weight\":\"400\",\"style\":\"normal\"},{\"path\":\"../fonts/Share/Share-Bold.ttf\",\"weight\":\"700\",\"style\":\"normal\"}],\"variable\":\"--font-share\",\"display\":\"swap\"}],\"variableName\":\"share\"}"],"page":"/","isPageHidden":true},"startTime":1758698357939,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":194,"timestamp":641652330513,"id":1308,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699090921,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":92,"timestamp":641652330728,"id":1309,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699090921,"traceId":"4370efa64adb4e3b"},{"name":"build-module-ts","duration":21091,"timestamp":641653553492,"id":1319,"parentId":1316,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/instrumentation.ts","layer":"instrument"},"startTime":1758699092144,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":14714,"timestamp":641653577880,"id":1320,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"rsc"},"startTime":1758699092168,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":16635,"timestamp":641653578281,"id":1321,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"rsc"},"startTime":1758699092169,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":18016,"timestamp":641653578468,"id":1322,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"rsc"},"startTime":1758699092169,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":19475,"timestamp":641653578630,"id":1323,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"rsc"},"startTime":1758699092169,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":10040,"timestamp":641653609547,"id":1325,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092200,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":18589,"timestamp":641653609770,"id":1326,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092200,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":22676,"timestamp":641653609117,"id":1324,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092200,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":25232,"timestamp":641653609958,"id":1327,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092200,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":97788,"timestamp":641653538095,"id":1318,"parentId":1315,"tags":{"request":"next-app-loader?name=app%2Fprojects%2Fpage&page=%2Fprojects%2Fpage&appPaths=%2Fprojects%2Fpage&pagePath=private-next-app-dir%2Fprojects%2Fpage.tsx&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699092129,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":37295,"timestamp":641653613177,"id":1328,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092204,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":43629,"timestamp":641653613567,"id":1329,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092204,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":50632,"timestamp":641653615052,"id":1330,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092206,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":52623,"timestamp":641653615262,"id":1331,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092206,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":37575,"timestamp":641653638342,"id":1333,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092229,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":40076,"timestamp":641653638007,"id":1332,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092228,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":37315,"timestamp":641653648565,"id":1334,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"rsc"},"startTime":1758699092239,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":40493,"timestamp":641653648828,"id":1335,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"rsc"},"startTime":1758699092239,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":5375,"timestamp":641653695514,"id":1344,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"instrument"},"startTime":1758699092286,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7264,"timestamp":641653695847,"id":1345,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"instrument"},"startTime":1758699092286,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":8159,"timestamp":641653696030,"id":1346,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"instrument"},"startTime":1758699092287,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":8886,"timestamp":641653696182,"id":1347,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"instrument"},"startTime":1758699092287,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":48437,"timestamp":641653660421,"id":1336,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"rsc"},"startTime":1758699092251,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":50769,"timestamp":641653660719,"id":1337,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092251,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":52363,"timestamp":641653661097,"id":1339,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092252,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":54673,"timestamp":641653660921,"id":1338,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092251,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":62492,"timestamp":641653669487,"id":1340,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092260,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":63947,"timestamp":641653669743,"id":1341,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092260,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":59842,"timestamp":641653681211,"id":1343,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092272,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":62945,"timestamp":641653680917,"id":1342,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699092271,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":4369,"timestamp":641653747995,"id":1348,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092338,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":5873,"timestamp":641653762664,"id":1349,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092353,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":8787,"timestamp":641653762997,"id":1350,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092353,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":13004,"timestamp":641653763233,"id":1351,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092354,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":14065,"timestamp":641653763465,"id":1352,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092354,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":19675,"timestamp":641653763692,"id":1353,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092354,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":22210,"timestamp":641653763878,"id":1354,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092354,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":18665,"timestamp":641653802390,"id":1355,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092393,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":21922,"timestamp":641653802667,"id":1356,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092393,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":25041,"timestamp":641653802849,"id":1357,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092393,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":27050,"timestamp":641653803034,"id":1358,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092394,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":28911,"timestamp":641653803230,"id":1359,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092394,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":30670,"timestamp":641653803495,"id":1360,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092394,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":32111,"timestamp":641653803771,"id":1361,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092394,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":33393,"timestamp":641653804054,"id":1362,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092395,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":34648,"timestamp":641653804371,"id":1363,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092395,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":36814,"timestamp":641653804571,"id":1364,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699092395,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":2409,"timestamp":641653868935,"id":1366,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"instrument"},"startTime":1758699092459,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":5889,"timestamp":641653869120,"id":1367,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"instrument"},"startTime":1758699092460,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":6954,"timestamp":641653893210,"id":1368,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"instrument"},"startTime":1758699092484,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":46097,"timestamp":641653868615,"id":1365,"parentId":1336,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"rsc"},"startTime":1758699092459,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":4204,"timestamp":641653911624,"id":1369,"parentId":1368,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"instrument"},"startTime":1758699092502,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":10001,"timestamp":641653919245,"id":1370,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"rsc"},"startTime":1758699092510,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":13540,"timestamp":641653919538,"id":1371,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"instrument"},"startTime":1758699092510,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":2681,"timestamp":641653944698,"id":1372,"parentId":1370,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"rsc"},"startTime":1758699092535,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":3524,"timestamp":641653944973,"id":1373,"parentId":1371,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"instrument"},"startTime":1758699092535,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":413770,"timestamp":641653538083,"id":1317,"parentId":1315,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699092129,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":413883,"timestamp":641653537992,"id":1316,"parentId":1315,"tags":{"request":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/instrumentation.ts"},"startTime":1758699092128,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":6020,"timestamp":641654046083,"id":1406,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"ssr"},"startTime":1758699092637,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":11740,"timestamp":641654046559,"id":1407,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"ssr"},"startTime":1758699092637,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":16453,"timestamp":641654046834,"id":1408,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"ssr"},"startTime":1758699092637,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":18051,"timestamp":641654047074,"id":1409,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"ssr"},"startTime":1758699092638,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":23536,"timestamp":641654070473,"id":1410,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092661,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":30497,"timestamp":641654070745,"id":1411,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092661,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":38100,"timestamp":641654070914,"id":1412,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092661,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":43497,"timestamp":641654071060,"id":1413,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092662,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":44029,"timestamp":641654071201,"id":1414,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092662,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":51425,"timestamp":641654071336,"id":1415,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092662,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":54972,"timestamp":641654071481,"id":1416,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092662,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":57003,"timestamp":641654071620,"id":1417,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092662,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":59253,"timestamp":641654071757,"id":1418,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092662,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":62757,"timestamp":641654071899,"id":1419,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092662,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":64993,"timestamp":641654072055,"id":1420,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092663,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":66369,"timestamp":641654072197,"id":1421,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092663,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":68199,"timestamp":641654072375,"id":1422,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092663,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":69693,"timestamp":641654072617,"id":1423,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092663,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":71569,"timestamp":641654072776,"id":1424,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092663,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":72760,"timestamp":641654072917,"id":1425,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092663,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":74844,"timestamp":641654073086,"id":1426,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699092664,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":6176,"timestamp":641654191851,"id":1427,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"ssr"},"startTime":1758699092782,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":8682,"timestamp":641654192183,"id":1428,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"ssr"},"startTime":1758699092783,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7601,"timestamp":641654205261,"id":1429,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"ssr"},"startTime":1758699092796,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":8124,"timestamp":641654216204,"id":1430,"parentId":1314,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"ssr"},"startTime":1758699092807,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":4645,"timestamp":641654226829,"id":1431,"parentId":1429,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"ssr"},"startTime":1758699092817,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":3603,"timestamp":641654233573,"id":1432,"parentId":1430,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"ssr"},"startTime":1758699092824,"traceId":"4370efa64adb4e3b"},{"name":"make","duration":729280,"timestamp":641653536164,"id":1315,"parentId":1314,"tags":{},"startTime":1758699092127,"traceId":"4370efa64adb4e3b"},{"name":"chunk-graph","duration":41111,"timestamp":641654788757,"id":1434,"parentId":1433,"tags":{},"startTime":1758699093379,"traceId":"4370efa64adb4e3b"},{"name":"optimize-modules","duration":16,"timestamp":641654829952,"id":1436,"parentId":1433,"tags":{},"startTime":1758699093420,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunks","duration":30209,"timestamp":641654830193,"id":1437,"parentId":1433,"tags":{},"startTime":1758699093421,"traceId":"4370efa64adb4e3b"},{"name":"optimize-tree","duration":34,"timestamp":641654860503,"id":1438,"parentId":1433,"tags":{},"startTime":1758699093451,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunk-modules","duration":12,"timestamp":641654860580,"id":1439,"parentId":1433,"tags":{},"startTime":1758699093451,"traceId":"4370efa64adb4e3b"},{"name":"optimize","duration":43056,"timestamp":641654829927,"id":1435,"parentId":1433,"tags":{},"startTime":1758699093420,"traceId":"4370efa64adb4e3b"},{"name":"module-hash","duration":20434,"timestamp":641654891091,"id":1440,"parentId":1433,"tags":{},"startTime":1758699093482,"traceId":"4370efa64adb4e3b"},{"name":"code-generation","duration":19201,"timestamp":641654911594,"id":1441,"parentId":1433,"tags":{},"startTime":1758699093502,"traceId":"4370efa64adb4e3b"},{"name":"hash","duration":6859,"timestamp":641654942054,"id":1442,"parentId":1433,"tags":{},"startTime":1758699093533,"traceId":"4370efa64adb4e3b"},{"name":"code-generation-jobs","duration":143,"timestamp":641654948911,"id":1443,"parentId":1433,"tags":{},"startTime":1758699093539,"traceId":"4370efa64adb4e3b"},{"name":"module-assets","duration":1836,"timestamp":641654949027,"id":1444,"parentId":1433,"tags":{},"startTime":1758699093540,"traceId":"4370efa64adb4e3b"}]
+[{"name":"create-chunk-assets","duration":4841,"timestamp":641654951364,"id":1445,"parentId":1433,"tags":{},"startTime":1758699093542,"traceId":"4370efa64adb4e3b"},{"name":"seal","duration":210208,"timestamp":641654765381,"id":1433,"parentId":1314,"tags":{},"startTime":1758699093356,"traceId":"4370efa64adb4e3b"},{"name":"webpack-compilation","duration":1531264,"timestamp":641653535242,"id":1314,"parentId":1312,"tags":{"name":"server"},"startTime":1758699092126,"traceId":"4370efa64adb4e3b"},{"name":"emit","duration":22806,"timestamp":641655066661,"id":1446,"parentId":1312,"tags":{},"startTime":1758699093657,"traceId":"4370efa64adb4e3b"},{"name":"compile-path","duration":1567732,"timestamp":641653524945,"id":1313,"tags":{"trigger":"/projects"},"startTime":1758699092115,"traceId":"4370efa64adb4e3b"},{"name":"webpack-invalidated-server","duration":1568231,"timestamp":641653524815,"id":1312,"parentId":3,"tags":{"trigger":"manual"},"startTime":1758699092115,"traceId":"4370efa64adb4e3b"}]
+[{"name":"ensure-page","duration":1570152,"timestamp":641653523539,"id":1311,"parentId":3,"tags":{"inputPage":"/projects/page"},"startTime":1758699092114,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":1000,"timestamp":641655109557,"id":1447,"parentId":3,"tags":{"inputPage":"/projects/page"},"startTime":1758699093700,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":2162148,"timestamp":641653520504,"id":1310,"tags":{"url":"/projects?_rsc=vusbg"},"startTime":1758699092111,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":1,"timestamp":641655682755,"id":1448,"parentId":1310,"tags":{"url":"/projects?_rsc=vusbg","memory.rss":"2044813312","memory.heapUsed":"847785848","memory.heapTotal":"1013178368"},"startTime":1758699094273,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":180,"timestamp":641655800244,"id":1449,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699094391,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":95,"timestamp":641655800445,"id":1450,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699094391,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":215,"timestamp":641655805047,"id":1451,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699094396,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":107,"timestamp":641655805288,"id":1452,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699094396,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":6476,"timestamp":641655856206,"id":1453,"tags":{"url":"/_next/image?url=%2Fprojects%2FReel%2Fthumbnail.jpg&w=640&q=75"},"startTime":1758699094447,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":2,"timestamp":641655862780,"id":1454,"parentId":1453,"tags":{"url":"/_next/image?url=%2Fprojects%2FReel%2Fthumbnail.jpg&w=640&q=75","memory.rss":"2044944384","memory.heapUsed":"849496000","memory.heapTotal":"1013178368"},"startTime":1758699094453,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":11102,"timestamp":641655894967,"id":1455,"tags":{"url":"/_next/image?url=%2Fprojects%2F01_OTFR%2Fthumbnail.jpg&w=640&q=75"},"startTime":1758699094485,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":1,"timestamp":641655906158,"id":1460,"parentId":1455,"tags":{"url":"/_next/image?url=%2Fprojects%2F01_OTFR%2Fthumbnail.jpg&w=640&q=75","memory.rss":"2044944384","memory.heapUsed":"850776136","memory.heapTotal":"1013178368"},"startTime":1758699094497,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":10278,"timestamp":641655896827,"id":1456,"tags":{"url":"/_next/image?url=%2Fprojects%2FAPTS%2Fthumbnail.jpg&w=640&q=75"},"startTime":1758699094487,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":2,"timestamp":641655907187,"id":1461,"parentId":1456,"tags":{"url":"/_next/image?url=%2Fprojects%2FAPTS%2Fthumbnail.jpg&w=640&q=75","memory.rss":"2044944384","memory.heapUsed":"850826168","memory.heapTotal":"1013178368"},"startTime":1758699094498,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":10051,"timestamp":641655898762,"id":1457,"tags":{"url":"/_next/image?url=%2Fprojects%2FENBD%2Fthumbnail.jpg&w=640&q=75"},"startTime":1758699094489,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":2,"timestamp":641655908938,"id":1462,"parentId":1457,"tags":{"url":"/_next/image?url=%2Fprojects%2FENBD%2Fthumbnail.jpg&w=640&q=75","memory.rss":"2044944384","memory.heapUsed":"850898336","memory.heapTotal":"1013178368"},"startTime":1758699094499,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":13077,"timestamp":641655900448,"id":1458,"tags":{"url":"/_next/image?url=%2Fprojects%2FHLLS%2Fthumbnail.jpg&w=640&q=75"},"startTime":1758699094491,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":1,"timestamp":641655913585,"id":1464,"parentId":1458,"tags":{"url":"/_next/image?url=%2Fprojects%2FHLLS%2Fthumbnail.jpg&w=640&q=75","memory.rss":"2044944384","memory.heapUsed":"851356760","memory.heapTotal":"1013178368"},"startTime":1758699094504,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":13427,"timestamp":641655902640,"id":1459,"tags":{"url":"/_next/image?url=%2Fprojects%2FARSD%2Fthumbnail.jpg&w=640&q=75"},"startTime":1758699094493,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":3,"timestamp":641655916153,"id":1465,"parentId":1459,"tags":{"url":"/_next/image?url=%2Fprojects%2FARSD%2Fthumbnail.jpg&w=640&q=75","memory.rss":"2044944384","memory.heapUsed":"851526224","memory.heapTotal":"1013178368"},"startTime":1758699094507,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":8938,"timestamp":641655909931,"id":1463,"tags":{"url":"/_next/image?url=%2Fprojects%2FJ305%2Fthumbnail.jpg&w=640&q=75"},"startTime":1758699094500,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":1,"timestamp":641655918955,"id":1466,"parentId":1463,"tags":{"url":"/_next/image?url=%2Fprojects%2FJ305%2Fthumbnail.jpg&w=640&q=75","memory.rss":"2045075456","memory.heapUsed":"851727760","memory.heapTotal":"1013178368"},"startTime":1758699094509,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":181,"timestamp":641656679807,"id":1467,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699095270,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":94,"timestamp":641656680009,"id":1468,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699095270,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":154,"timestamp":641657871553,"id":1469,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699096462,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":93,"timestamp":641657871727,"id":1470,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699096462,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":806,"timestamp":641662705626,"id":1472,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1758699101296,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":566,"timestamp":641662708916,"id":1473,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1758699101299,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":44243,"timestamp":641662701750,"id":1471,"tags":{"url":"/?_rsc=qdzqe"},"startTime":1758699101292,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":2,"timestamp":641662746097,"id":1474,"parentId":1471,"tags":{"url":"/?_rsc=qdzqe","memory.rss":"2046648320","memory.heapUsed":"858659304","memory.heapTotal":"1014960128"},"startTime":1758699101337,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":154,"timestamp":641662829619,"id":1475,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699101420,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":86,"timestamp":641662829791,"id":1476,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699101420,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":151,"timestamp":641662833194,"id":1477,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699101424,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":93,"timestamp":641662833364,"id":1478,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699101424,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":187,"timestamp":641663679485,"id":1479,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699102270,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":113,"timestamp":641663679701,"id":1480,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699102270,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":167,"timestamp":641663752386,"id":1481,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699102343,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":91,"timestamp":641663752572,"id":1482,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699102343,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":164,"timestamp":641667021718,"id":1483,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699105612,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":95,"timestamp":641667021905,"id":1484,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699105612,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":237,"timestamp":641667265852,"id":1485,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699105856,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":141,"timestamp":641667266117,"id":1486,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699105857,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":148,"timestamp":641673299492,"id":1487,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699111890,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":83,"timestamp":641673299657,"id":1488,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699111890,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":261,"timestamp":641722815021,"id":1489,"parentId":3,"tags":{"inputPage":"/favicon-32x32.png"},"startTime":1758699161406,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":131,"timestamp":641722815312,"id":1490,"parentId":3,"tags":{"inputPage":"/favicon-32x32.png"},"startTime":1758699161406,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":198,"timestamp":641722816148,"id":1491,"parentId":3,"tags":{"inputPage":"/favicon-32x32.png"},"startTime":1758699161407,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":104,"timestamp":641722816363,"id":1492,"parentId":3,"tags":{"inputPage":"/favicon-32x32.png"},"startTime":1758699161407,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":23931,"timestamp":641722831502,"id":1508,"parentId":1499,"tags":{"request":"next-flight-client-entry-loader?server=false!"},"startTime":1758699161422,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":23991,"timestamp":641722831536,"id":1510,"parentId":1499,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fapp-dir%2Flink.js%22%2C%22ids%22%3A%5B%22__esModule%22%2C%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2Fui%2FImageWithFallback.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=false!"},"startTime":1758699161422,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":28700,"timestamp":641722831292,"id":1500,"parentId":1499,"tags":{"request":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1758699161422,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":20200,"timestamp":641722853431,"id":1512,"parentId":1502,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/sentry.client.config.js","layer":"app-pages-browser"},"startTime":1758699161444,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":43423,"timestamp":641722831438,"id":1502,"parentId":1499,"tags":{"request":"./sentry.client.config.js"},"startTime":1758699161422,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":21714,"timestamp":641722855619,"id":1514,"parentId":1498,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/next/dist/lib/require-instrumentation-client.js","layer":"app-pages-browser"},"startTime":1758699161446,"traceId":"4370efa64adb4e3b"},{"name":"build-module-ts","duration":25592,"timestamp":641722854246,"id":1513,"parentId":1503,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/instrumentation-client.ts","layer":"app-pages-browser"},"startTime":1758699161445,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":50037,"timestamp":641722831492,"id":1507,"parentId":1499,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fasync-metadata.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fmetadata%2Fmetadata-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1758699161422,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":60097,"timestamp":641722831524,"id":1509,"parentId":1499,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fapp-dir%2Flink.js%22%2C%22ids%22%3A%5B%22__esModule%22%2C%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fprojects%2FProjectsPageClient.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2Fui%2FImageWithFallback.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=false!"},"startTime":1758699161422,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":76740,"timestamp":641722831449,"id":1503,"parentId":1499,"tags":{"request":"./src/instrumentation-client.ts"},"startTime":1758699161422,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":77314,"timestamp":641722831422,"id":1501,"parentId":1499,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1758699161422,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":349675,"timestamp":641722831472,"id":1505,"parentId":1499,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FDMSerifText-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-dmserif%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22dmserif%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FBentham-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-bentham%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22bentham%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FRajdhani%2FRajdhani-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-rajdhani%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22rajdhani%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FShare%2FShare-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-share%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22share%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Ffont%2Flocal%2Ftarget.css%3F%7B%5C%22path%5C%22%3A%5C%22src%2Fapp%2Flayout.tsx%5C%22%2C%5C%22import%5C%22%3A%5C%22%5C%22%2C%5C%22arguments%5C%22%3A%5B%7B%5C%22src%5C%22%3A%5B%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Regular.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Italic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22400%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Medium.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-MediumItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22500%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-SemiBoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22600%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-Bold.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22normal%5C%22%7D%2C%7B%5C%22path%5C%22%3A%5C%22..%2Ffonts%2FKanit%2FKanit-BoldItalic.ttf%5C%22%2C%5C%22weight%5C%22%3A%5C%22700%5C%22%2C%5C%22style%5C%22%3A%5C%22italic%5C%22%7D%5D%2C%5C%22variable%5C%22%3A%5C%22--font-kanit%5C%22%2C%5C%22display%5C%22%3A%5C%22swap%5C%22%7D%5D%2C%5C%22variableName%5C%22%3A%5C%22kanit%5C%22%7D%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FFooter.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FNavigation.tsx%22%2C%22ids%22%3A%5B%22Navigation%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FProviders.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fcomponents%2FTrackingOptOutBanner.tsx%22%2C%22ids%22%3A%5B%22default%22%5D%7D&server=false!"},"startTime":1758699161422,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":351278,"timestamp":641722831461,"id":1504,"parentId":1499,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fglobal-error.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1758699161422,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":351641,"timestamp":641722831481,"id":1506,"parentId":1499,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1758699161422,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":449587,"timestamp":641722831546,"id":1511,"parentId":1499,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-not-found.js&page=%2F_not-found%2Fpage!"},"startTime":1758699161422,"traceId":"4370efa64adb4e3b"},{"name":"make","duration":451682,"timestamp":641722829573,"id":1499,"parentId":1498,"tags":{},"startTime":1758699161420,"traceId":"4370efa64adb4e3b"},{"name":"chunk-graph","duration":14334,"timestamp":641723322198,"id":1516,"parentId":1515,"tags":{},"startTime":1758699161913,"traceId":"4370efa64adb4e3b"},{"name":"optimize-modules","duration":13,"timestamp":641723336594,"id":1518,"parentId":1515,"tags":{},"startTime":1758699161927,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunks","duration":165,"timestamp":641723336759,"id":1519,"parentId":1515,"tags":{},"startTime":1758699161927,"traceId":"4370efa64adb4e3b"},{"name":"optimize-tree","duration":28,"timestamp":641723336964,"id":1520,"parentId":1515,"tags":{},"startTime":1758699161927,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunk-modules","duration":12,"timestamp":641723337022,"id":1521,"parentId":1515,"tags":{},"startTime":1758699161928,"traceId":"4370efa64adb4e3b"},{"name":"optimize","duration":5689,"timestamp":641723336574,"id":1517,"parentId":1515,"tags":{},"startTime":1758699161927,"traceId":"4370efa64adb4e3b"},{"name":"module-hash","duration":1644,"timestamp":641723407601,"id":1522,"parentId":1515,"tags":{},"startTime":1758699161998,"traceId":"4370efa64adb4e3b"},{"name":"code-generation","duration":5217,"timestamp":641723409275,"id":1523,"parentId":1515,"tags":{},"startTime":1758699162000,"traceId":"4370efa64adb4e3b"},{"name":"hash","duration":10989,"timestamp":641723419837,"id":1524,"parentId":1515,"tags":{},"startTime":1758699162010,"traceId":"4370efa64adb4e3b"},{"name":"code-generation-jobs","duration":192,"timestamp":641723430824,"id":1525,"parentId":1515,"tags":{},"startTime":1758699162021,"traceId":"4370efa64adb4e3b"},{"name":"module-assets","duration":486,"timestamp":641723430992,"id":1526,"parentId":1515,"tags":{},"startTime":1758699162021,"traceId":"4370efa64adb4e3b"},{"name":"create-chunk-assets","duration":8201,"timestamp":641723431493,"id":1527,"parentId":1515,"tags":{},"startTime":1758699162022,"traceId":"4370efa64adb4e3b"},{"name":"NextJsBuildManifest-generateClientManifest","duration":586,"timestamp":641723443957,"id":1529,"parentId":1498,"tags":{},"startTime":1758699162034,"traceId":"4370efa64adb4e3b"},{"name":"NextJsBuildManifest-createassets","duration":1147,"timestamp":641723443407,"id":1528,"parentId":1498,"tags":{},"startTime":1758699162034,"traceId":"4370efa64adb4e3b"},{"name":"seal","duration":144113,"timestamp":641723306222,"id":1515,"parentId":1498,"tags":{},"startTime":1758699161897,"traceId":"4370efa64adb4e3b"},{"name":"webpack-compilation","duration":623188,"timestamp":641722827238,"id":1498,"parentId":1495,"tags":{"name":"client"},"startTime":1758699161418,"traceId":"4370efa64adb4e3b"},{"name":"emit","duration":8940,"timestamp":641723450525,"id":1530,"parentId":1495,"tags":{},"startTime":1758699162041,"traceId":"4370efa64adb4e3b"},{"name":"webpack-invalidated-client","duration":640622,"timestamp":641722821042,"id":1495,"parentId":3,"tags":{"trigger":"manual"},"startTime":1758699161412,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":15434,"timestamp":641723473878,"id":1536,"parentId":1532,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699162064,"traceId":"4370efa64adb4e3b"},{"name":"build-module-ts","duration":8059,"timestamp":641723483426,"id":1537,"parentId":1533,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/instrumentation.ts","layer":"instrument"},"startTime":1758699162074,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":11065,"timestamp":641723510394,"id":1538,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"rsc"},"startTime":1758699162101,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":12919,"timestamp":641723511420,"id":1542,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"instrument"},"startTime":1758699162102,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":16201,"timestamp":641723510756,"id":1539,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"rsc"},"startTime":1758699162101,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":17162,"timestamp":641723511705,"id":1543,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"instrument"},"startTime":1758699162102,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":20068,"timestamp":641723510978,"id":1540,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"rsc"},"startTime":1758699162101,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":20338,"timestamp":641723511919,"id":1544,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"instrument"},"startTime":1758699162102,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":22506,"timestamp":641723511181,"id":1541,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"rsc"},"startTime":1758699162102,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":22558,"timestamp":641723512139,"id":1545,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"instrument"},"startTime":1758699162103,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":14846,"timestamp":641723539344,"id":1546,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162130,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":18239,"timestamp":641723539653,"id":1547,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162130,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":21531,"timestamp":641723539885,"id":1548,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162130,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":24187,"timestamp":641723540097,"id":1549,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162131,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":27751,"timestamp":641723540316,"id":1550,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162131,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":30794,"timestamp":641723540514,"id":1551,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162131,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":39965,"timestamp":641723546321,"id":1552,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162137,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":44558,"timestamp":641723546608,"id":1553,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162137,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":45465,"timestamp":641723546834,"id":1554,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162137,"traceId":"4370efa64adb4e3b"}]
+[{"name":"build-module-js","duration":46297,"timestamp":641723547032,"id":1555,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162138,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":63592,"timestamp":641723549140,"id":1556,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162140,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":70585,"timestamp":641723549424,"id":1557,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162140,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":31500,"timestamp":641723601824,"id":1558,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162192,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":16776,"timestamp":641723621401,"id":1559,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162212,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":24985,"timestamp":641723621713,"id":1560,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162212,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":27842,"timestamp":641723621935,"id":1561,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162212,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":31966,"timestamp":641723622169,"id":1562,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162213,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":32330,"timestamp":641723625017,"id":1563,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162216,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":288651,"timestamp":641723625297,"id":1564,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162216,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":291000,"timestamp":641723625515,"id":1565,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162216,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":308962,"timestamp":641723625789,"id":1566,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162216,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":312275,"timestamp":641723626017,"id":1567,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162217,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":313413,"timestamp":641723626676,"id":1570,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162217,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":314457,"timestamp":641723626876,"id":1571,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162217,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":316868,"timestamp":641723626263,"id":1568,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162217,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":318015,"timestamp":641723626465,"id":1569,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162217,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":319047,"timestamp":641723627110,"id":1572,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162218,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":320264,"timestamp":641723627338,"id":1573,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162218,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":321225,"timestamp":641723627544,"id":1574,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162218,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":321923,"timestamp":641723627733,"id":1575,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162218,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":323258,"timestamp":641723627935,"id":1576,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162218,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":324545,"timestamp":641723628126,"id":1577,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162219,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":326312,"timestamp":641723628323,"id":1578,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699162219,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":6441,"timestamp":641724042982,"id":1579,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699162633,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":38617,"timestamp":641724043364,"id":1580,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"rsc"},"startTime":1758699162634,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":40845,"timestamp":641724043846,"id":1582,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"instrument"},"startTime":1758699162634,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":46411,"timestamp":641724043628,"id":1581,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"rsc"},"startTime":1758699162634,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":49337,"timestamp":641724044053,"id":1583,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"instrument"},"startTime":1758699162635,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":53689,"timestamp":641724052182,"id":1584,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"rsc"},"startTime":1758699162643,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":56843,"timestamp":641724052480,"id":1585,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"instrument"},"startTime":1758699162643,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":38091,"timestamp":641724111943,"id":1586,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"rsc"},"startTime":1758699162702,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":41919,"timestamp":641724112246,"id":1587,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"instrument"},"startTime":1758699162703,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":15195,"timestamp":641724165483,"id":1588,"parentId":1584,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"rsc"},"startTime":1758699162756,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":16049,"timestamp":641724165768,"id":1589,"parentId":1585,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"instrument"},"startTime":1758699162756,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":13307,"timestamp":641724274888,"id":1590,"parentId":1586,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"rsc"},"startTime":1758699162865,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":14524,"timestamp":641724275498,"id":1591,"parentId":1587,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"instrument"},"startTime":1758699162866,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":836785,"timestamp":641723473872,"id":1535,"parentId":1532,"tags":{"request":"next-app-loader?name=app%2Fprojects%2Fpage&page=%2Fprojects%2Fpage&appPaths=%2Fprojects%2Fpage&pagePath=private-next-app-dir%2Fprojects%2Fpage.tsx&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699162064,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":836937,"timestamp":641723473742,"id":1533,"parentId":1532,"tags":{"request":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/instrumentation.ts"},"startTime":1758699162064,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":839846,"timestamp":641723473861,"id":1534,"parentId":1532,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-not-found.js&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699162064,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7915,"timestamp":641724461836,"id":1638,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"ssr"},"startTime":1758699163052,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":9998,"timestamp":641724462317,"id":1639,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"ssr"},"startTime":1758699163053,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":10999,"timestamp":641724462623,"id":1640,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"ssr"},"startTime":1758699163053,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":11843,"timestamp":641724463116,"id":1641,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"ssr"},"startTime":1758699163054,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":19201,"timestamp":641724482925,"id":1642,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163073,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":21688,"timestamp":641724483322,"id":1643,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163074,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":24087,"timestamp":641724483618,"id":1644,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163074,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":28322,"timestamp":641724484018,"id":1645,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163075,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":29067,"timestamp":641724484445,"id":1646,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163075,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":36025,"timestamp":641724484742,"id":1647,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163075,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":38835,"timestamp":641724485037,"id":1648,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163076,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":40393,"timestamp":641724485296,"id":1649,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163076,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":46105,"timestamp":641724485571,"id":1650,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163076,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":48852,"timestamp":641724485915,"id":1651,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163076,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":50676,"timestamp":641724486253,"id":1652,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163077,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":51516,"timestamp":641724486572,"id":1653,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163077,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":52801,"timestamp":641724486855,"id":1654,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163077,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":54383,"timestamp":641724487133,"id":1655,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163078,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":55595,"timestamp":641724487369,"id":1656,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163078,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":56246,"timestamp":641724487609,"id":1657,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163078,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":57688,"timestamp":641724487858,"id":1658,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699163078,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":5255,"timestamp":641724606789,"id":1659,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"ssr"},"startTime":1758699163197,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":8065,"timestamp":641724607129,"id":1660,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"ssr"},"startTime":1758699163198,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":12714,"timestamp":641724620492,"id":1661,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"ssr"},"startTime":1758699163211,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":21448,"timestamp":641724636931,"id":1662,"parentId":1531,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"ssr"},"startTime":1758699163227,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":6409,"timestamp":641724662021,"id":1663,"parentId":1661,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"ssr"},"startTime":1758699163253,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":5293,"timestamp":641724674426,"id":1664,"parentId":1662,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"ssr"},"startTime":1758699163265,"traceId":"4370efa64adb4e3b"},{"name":"make","duration":1242430,"timestamp":641723467788,"id":1532,"parentId":1531,"tags":{},"startTime":1758699162058,"traceId":"4370efa64adb4e3b"},{"name":"chunk-graph","duration":72781,"timestamp":641724832705,"id":1666,"parentId":1665,"tags":{},"startTime":1758699163423,"traceId":"4370efa64adb4e3b"},{"name":"optimize-modules","duration":10,"timestamp":641724905550,"id":1668,"parentId":1665,"tags":{},"startTime":1758699163496,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunks","duration":38985,"timestamp":641724905724,"id":1669,"parentId":1665,"tags":{},"startTime":1758699163496,"traceId":"4370efa64adb4e3b"},{"name":"optimize-tree","duration":30,"timestamp":641724944766,"id":1670,"parentId":1665,"tags":{},"startTime":1758699163535,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunk-modules","duration":11,"timestamp":641724944835,"id":1671,"parentId":1665,"tags":{},"startTime":1758699163535,"traceId":"4370efa64adb4e3b"},{"name":"optimize","duration":53647,"timestamp":641724905533,"id":1667,"parentId":1665,"tags":{},"startTime":1758699163496,"traceId":"4370efa64adb4e3b"},{"name":"module-hash","duration":16196,"timestamp":641724989687,"id":1672,"parentId":1665,"tags":{},"startTime":1758699163580,"traceId":"4370efa64adb4e3b"},{"name":"code-generation","duration":18873,"timestamp":641725005947,"id":1673,"parentId":1665,"tags":{},"startTime":1758699163596,"traceId":"4370efa64adb4e3b"},{"name":"hash","duration":8678,"timestamp":641725037471,"id":1674,"parentId":1665,"tags":{},"startTime":1758699163628,"traceId":"4370efa64adb4e3b"},{"name":"code-generation-jobs","duration":292,"timestamp":641725046146,"id":1675,"parentId":1665,"tags":{},"startTime":1758699163637,"traceId":"4370efa64adb4e3b"},{"name":"module-assets","duration":1667,"timestamp":641725046355,"id":1676,"parentId":1665,"tags":{},"startTime":1758699163637,"traceId":"4370efa64adb4e3b"},{"name":"create-chunk-assets","duration":95949,"timestamp":641725048073,"id":1677,"parentId":1665,"tags":{},"startTime":1758699163639,"traceId":"4370efa64adb4e3b"},{"name":"seal","duration":381914,"timestamp":641724792182,"id":1665,"parentId":1531,"tags":{},"startTime":1758699163383,"traceId":"4370efa64adb4e3b"},{"name":"webpack-compilation","duration":1882797,"timestamp":641723466980,"id":1531,"parentId":1497,"tags":{"name":"server"},"startTime":1758699162057,"traceId":"4370efa64adb4e3b"},{"name":"emit","duration":14204,"timestamp":641725350166,"id":1678,"parentId":1497,"tags":{},"startTime":1758699163941,"traceId":"4370efa64adb4e3b"},{"name":"compile-path","duration":2549955,"timestamp":641722821136,"id":1496,"tags":{"trigger":"/_not-found"},"startTime":1758699161412,"traceId":"4370efa64adb4e3b"},{"name":"webpack-invalidated-server","duration":2550294,"timestamp":641722821443,"id":1497,"parentId":3,"tags":{"trigger":"manual"},"startTime":1758699161412,"traceId":"4370efa64adb4e3b"}]
+[{"name":"ensure-page","duration":2553243,"timestamp":641722819603,"id":1494,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1758699161410,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":17556,"timestamp":641725373439,"id":1679,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1758699163964,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":280,"timestamp":641726264970,"id":1680,"parentId":3,"tags":{"inputPage":"/@fs/home/Nicholai/Documents/Dev/excalidraw/packages/excalidraw/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2"},"startTime":1758699164855,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":107,"timestamp":641726265275,"id":1681,"parentId":3,"tags":{"inputPage":"/@fs/home/Nicholai/Documents/Dev/excalidraw/packages/excalidraw/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2"},"startTime":1758699164856,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":149,"timestamp":641726269818,"id":1682,"parentId":3,"tags":{"inputPage":"/@fs/home/Nicholai/Documents/Dev/excalidraw/packages/excalidraw/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2"},"startTime":1758699164860,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":96,"timestamp":641726269983,"id":1683,"parentId":3,"tags":{"inputPage":"/@fs/home/Nicholai/Documents/Dev/excalidraw/packages/excalidraw/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2"},"startTime":1758699164860,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":102,"timestamp":641726271593,"id":1686,"parentId":3,"tags":{"inputPage":"/favicon-32x32.png"},"startTime":1758699164862,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":81,"timestamp":641726271709,"id":1687,"parentId":3,"tags":{"inputPage":"/favicon-32x32.png"},"startTime":1758699164862,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":112,"timestamp":641726273677,"id":1688,"parentId":3,"tags":{"inputPage":"/favicon-32x32.png"},"startTime":1758699164864,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":85,"timestamp":641726273804,"id":1689,"parentId":3,"tags":{"inputPage":"/favicon-32x32.png"},"startTime":1758699164864,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":6332,"timestamp":641726271293,"id":1685,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1758699164862,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":3096,"timestamp":641726274536,"id":1691,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1758699164865,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":2610,"timestamp":641726277752,"id":1692,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1758699164868,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":2609,"timestamp":641726277765,"id":1693,"parentId":3,"tags":{"inputPage":"/_not-found/page"},"startTime":1758699164868,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":124559,"timestamp":641726270664,"id":1684,"tags":{"url":"/@fs/home/Nicholai/Documents/Dev/excalidraw/packages/excalidraw/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2"},"startTime":1758699164861,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":1,"timestamp":641726395289,"id":1694,"parentId":1684,"tags":{"url":"/@fs/home/Nicholai/Documents/Dev/excalidraw/packages/excalidraw/fonts/Excalifont/Excalifont-Regular-a88b72a24fb54c9f94e3b5fdaa7481c9.woff2","memory.rss":"2045304832","memory.heapUsed":"900389832","memory.heapTotal":"1072660480"},"startTime":1758699164986,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":635,"timestamp":641730383840,"id":1696,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1758699168974,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":621,"timestamp":641730387099,"id":1697,"parentId":3,"tags":{"inputPage":"/page"},"startTime":1758699168978,"traceId":"4370efa64adb4e3b"},{"name":"handle-request","duration":227847,"timestamp":641730381403,"id":1695,"tags":{"url":"/"},"startTime":1758699168972,"traceId":"4370efa64adb4e3b"},{"name":"memory-usage","duration":3,"timestamp":641730609353,"id":1698,"parentId":1695,"tags":{"url":"/","memory.rss":"2047270912","memory.heapUsed":"924110376","memory.heapTotal":"1075167232"},"startTime":1758699169200,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":155,"timestamp":641731325436,"id":1699,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699169916,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":84,"timestamp":641731325610,"id":1700,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699169916,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":157,"timestamp":641731681706,"id":1701,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699170272,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":87,"timestamp":641731681881,"id":1702,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699170272,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":189,"timestamp":641731686059,"id":1703,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699170277,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":117,"timestamp":641731686268,"id":1704,"parentId":3,"tags":{"inputPage":"/monitoring"},"startTime":1758699170277,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":193,"timestamp":641731752970,"id":1707,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1758699170343,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":93,"timestamp":641731753180,"id":1708,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1758699170344,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":166,"timestamp":641731761802,"id":1713,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1758699170352,"traceId":"4370efa64adb4e3b"},{"name":"ensure-page","duration":90,"timestamp":641731761987,"id":1714,"parentId":3,"tags":{"inputPage":"/api/auth/session"},"startTime":1758699170352,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":14962,"timestamp":641731766228,"id":1719,"parentId":1712,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699170357,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":17436,"timestamp":641731766233,"id":1720,"parentId":1712,"tags":{"request":"next-app-loader?name=app%2Fprojects%2Fpage&page=%2Fprojects%2Fpage&appPaths=%2Fprojects%2Fpage&pagePath=private-next-app-dir%2Fprojects%2Fpage.tsx&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699170357,"traceId":"4370efa64adb4e3b"},{"name":"build-module-ts","duration":10784,"timestamp":641731778900,"id":1723,"parentId":1716,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/instrumentation.ts","layer":"instrument"},"startTime":1758699170369,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":23856,"timestamp":641731766222,"id":1718,"parentId":1712,"tags":{"request":"next-app-loader?name=app%2Ficon.svg%2Froute&page=%2Ficon.svg%2Froute&appPaths=&pagePath=private-next-app-dir%2Ficon.svg&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699170357,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":14602,"timestamp":641731792429,"id":1724,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"rsc"},"startTime":1758699170383,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7163,"timestamp":641731801979,"id":1728,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"instrument"},"startTime":1758699170392,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":22666,"timestamp":641731792901,"id":1726,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"rsc"},"startTime":1758699170383,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":13855,"timestamp":641731802460,"id":1730,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"instrument"},"startTime":1758699170393,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":25818,"timestamp":641731792737,"id":1725,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"rsc"},"startTime":1758699170383,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":17637,"timestamp":641731802286,"id":1729,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"instrument"},"startTime":1758699170393,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":27853,"timestamp":641731793048,"id":1727,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"rsc"},"startTime":1758699170384,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":18916,"timestamp":641731802646,"id":1731,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"instrument"},"startTime":1758699170393,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":9634,"timestamp":641731826005,"id":1732,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170416,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":11790,"timestamp":641731826306,"id":1733,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170417,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":13873,"timestamp":641731826798,"id":1736,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170417,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":15725,"timestamp":641731826939,"id":1737,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170417,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":18679,"timestamp":641731826488,"id":1734,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170417,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":20547,"timestamp":641731826640,"id":1735,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170417,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":23673,"timestamp":641731827082,"id":1738,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170418,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":27039,"timestamp":641731827214,"id":1739,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170418,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":44402,"timestamp":641731831215,"id":1740,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170422,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":48774,"timestamp":641731831497,"id":1741,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170422,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":49509,"timestamp":641731831673,"id":1742,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170422,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":49826,"timestamp":641731831819,"id":1743,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170422,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":13814,"timestamp":641731893794,"id":1744,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170484,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":15556,"timestamp":641731894071,"id":1745,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170485,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":16935,"timestamp":641731894246,"id":1746,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170485,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":18007,"timestamp":641731894389,"id":1747,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170485,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":20210,"timestamp":641731894533,"id":1748,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170485,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":21553,"timestamp":641731894672,"id":1749,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170485,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":23386,"timestamp":641731895182,"id":1752,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170486,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":26043,"timestamp":641731895322,"id":1753,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170486,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":27811,"timestamp":641731895473,"id":1754,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170486,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":28993,"timestamp":641731895615,"id":1755,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170486,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":32850,"timestamp":641731894832,"id":1750,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170485,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":35676,"timestamp":641731894972,"id":1751,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170485,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":38936,"timestamp":641731897819,"id":1758,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"rsc"},"startTime":1758699170488,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":40264,"timestamp":641731898123,"id":1760,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"instrument"},"startTime":1758699170489,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":42926,"timestamp":641731897235,"id":1756,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170488,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":44148,"timestamp":641731897447,"id":1757,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170488,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":44808,"timestamp":641731898439,"id":1762,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170489,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":45604,"timestamp":641731898577,"id":1763,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170489,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":48922,"timestamp":641731897979,"id":1759,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"rsc"},"startTime":1758699170488,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":51465,"timestamp":641731898278,"id":1761,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"instrument"},"startTime":1758699170489,"traceId":"4370efa64adb4e3b"},{"name":"client-success","duration":19,"timestamp":641731955211,"id":1768,"parentId":3,"tags":{},"startTime":1758699170546,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":56167,"timestamp":641731903821,"id":1764,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170494,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":57355,"timestamp":641731904090,"id":1765,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170495,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":59799,"timestamp":641731904256,"id":1766,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170495,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":61856,"timestamp":641731904416,"id":1767,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170495,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":46670,"timestamp":641732021326,"id":1771,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"rsc"},"startTime":1758699170612,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":48613,"timestamp":641732021484,"id":1772,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"instrument"},"startTime":1758699170612,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":50898,"timestamp":641732020852,"id":1769,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699170611,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":51847,"timestamp":641732021118,"id":1770,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699170612,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":34326,"timestamp":641732089571,"id":1773,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"rsc"},"startTime":1758699170680,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":36907,"timestamp":641732089838,"id":1774,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"instrument"},"startTime":1758699170680,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":28033,"timestamp":641732113788,"id":1775,"parentId":1771,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"rsc"},"startTime":1758699170704,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":28640,"timestamp":641732114035,"id":1776,"parentId":1772,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"instrument"},"startTime":1758699170705,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":10502,"timestamp":641732165063,"id":1777,"parentId":1773,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"rsc"},"startTime":1758699170756,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":11386,"timestamp":641732165332,"id":1778,"parentId":1774,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"instrument"},"startTime":1758699170756,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":437991,"timestamp":641731766204,"id":1717,"parentId":1712,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-not-found.js&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699170357,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":438122,"timestamp":641731766088,"id":1716,"parentId":1712,"tags":{"request":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/instrumentation.ts"},"startTime":1758699170357,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":5584,"timestamp":641733170629,"id":1825,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"ssr"},"startTime":1758699171761,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":6557,"timestamp":641733171455,"id":1826,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"ssr"},"startTime":1758699171762,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7603,"timestamp":641733171766,"id":1827,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"ssr"},"startTime":1758699171762,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":8259,"timestamp":641733172040,"id":1828,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"ssr"},"startTime":1758699171763,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":13679,"timestamp":641733185202,"id":1829,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171776,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":16347,"timestamp":641733185472,"id":1830,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171776,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":18213,"timestamp":641733185764,"id":1831,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171776,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":21791,"timestamp":641733186051,"id":1832,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171777,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":22322,"timestamp":641733186204,"id":1833,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171777,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":26489,"timestamp":641733186354,"id":1834,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171777,"traceId":"4370efa64adb4e3b"}]
+[{"name":"build-module-js","duration":29298,"timestamp":641733186505,"id":1835,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171777,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":30447,"timestamp":641733186645,"id":1836,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171777,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":31599,"timestamp":641733186780,"id":1837,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171777,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":34778,"timestamp":641733186925,"id":1838,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171777,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":37093,"timestamp":641733187083,"id":1839,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171778,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":38080,"timestamp":641733187228,"id":1840,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171778,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":39523,"timestamp":641733187371,"id":1841,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171778,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":42013,"timestamp":641733187517,"id":1842,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171778,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":43336,"timestamp":641733187655,"id":1843,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171778,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":44052,"timestamp":641733187794,"id":1844,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171778,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":45699,"timestamp":641733187934,"id":1845,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699171778,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":8283,"timestamp":641733283120,"id":1846,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"ssr"},"startTime":1758699171874,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":10258,"timestamp":641733283541,"id":1847,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"ssr"},"startTime":1758699171874,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":8219,"timestamp":641733299056,"id":1848,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"ssr"},"startTime":1758699171890,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":8413,"timestamp":641733310097,"id":1849,"parentId":1711,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"ssr"},"startTime":1758699171901,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":5130,"timestamp":641733321418,"id":1850,"parentId":1848,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"ssr"},"startTime":1758699171912,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":3285,"timestamp":641733329603,"id":1851,"parentId":1849,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"ssr"},"startTime":1758699171920,"traceId":"4370efa64adb4e3b"},{"name":"make","duration":1612173,"timestamp":641731761376,"id":1712,"parentId":1711,"tags":{},"startTime":1758699170352,"traceId":"4370efa64adb4e3b"},{"name":"chunk-graph","duration":60946,"timestamp":641733443916,"id":1853,"parentId":1852,"tags":{},"startTime":1758699172034,"traceId":"4370efa64adb4e3b"},{"name":"optimize-modules","duration":22,"timestamp":641733505007,"id":1855,"parentId":1852,"tags":{},"startTime":1758699172095,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunks","duration":30571,"timestamp":641733505324,"id":1856,"parentId":1852,"tags":{},"startTime":1758699172096,"traceId":"4370efa64adb4e3b"},{"name":"optimize-tree","duration":27,"timestamp":641733535946,"id":1857,"parentId":1852,"tags":{},"startTime":1758699172126,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunk-modules","duration":10,"timestamp":641733536012,"id":1858,"parentId":1852,"tags":{},"startTime":1758699172126,"traceId":"4370efa64adb4e3b"},{"name":"optimize","duration":43747,"timestamp":641733504969,"id":1854,"parentId":1852,"tags":{},"startTime":1758699172095,"traceId":"4370efa64adb4e3b"},{"name":"module-hash","duration":11045,"timestamp":641733565886,"id":1859,"parentId":1852,"tags":{},"startTime":1758699172156,"traceId":"4370efa64adb4e3b"},{"name":"code-generation","duration":15829,"timestamp":641733576989,"id":1860,"parentId":1852,"tags":{},"startTime":1758699172167,"traceId":"4370efa64adb4e3b"},{"name":"hash","duration":6999,"timestamp":641733601068,"id":1861,"parentId":1852,"tags":{},"startTime":1758699172192,"traceId":"4370efa64adb4e3b"},{"name":"code-generation-jobs","duration":154,"timestamp":641733608065,"id":1862,"parentId":1852,"tags":{},"startTime":1758699172199,"traceId":"4370efa64adb4e3b"},{"name":"module-assets","duration":918,"timestamp":641733608184,"id":1863,"parentId":1852,"tags":{},"startTime":1758699172199,"traceId":"4370efa64adb4e3b"},{"name":"create-chunk-assets","duration":18605,"timestamp":641733609133,"id":1864,"parentId":1852,"tags":{},"startTime":1758699172200,"traceId":"4370efa64adb4e3b"},{"name":"seal","duration":237870,"timestamp":641733413097,"id":1852,"parentId":1711,"tags":{},"startTime":1758699172004,"traceId":"4370efa64adb4e3b"},{"name":"webpack-compilation","duration":1996361,"timestamp":641731760833,"id":1711,"parentId":1709,"tags":{"name":"server"},"startTime":1758699170351,"traceId":"4370efa64adb4e3b"},{"name":"emit","duration":20934,"timestamp":641733757265,"id":1865,"parentId":1709,"tags":{},"startTime":1758699172348,"traceId":"4370efa64adb4e3b"},{"name":"compile-path","duration":2011077,"timestamp":641731769937,"id":1722,"tags":{"trigger":"/api/auth/[...nextauth]"},"startTime":1758699170360,"traceId":"4370efa64adb4e3b"},{"name":"webpack-invalidated-server","duration":969,"timestamp":641733780278,"id":1866,"parentId":3,"tags":{"trigger":"manual"},"startTime":1758699172371,"traceId":"4370efa64adb4e3b"}]
+[{"name":"build-module-ts","duration":26253,"timestamp":641733824317,"id":1875,"parentId":1869,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/instrumentation.ts","layer":"instrument"},"startTime":1758699172415,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":46056,"timestamp":641733807187,"id":1873,"parentId":1868,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699172398,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":50089,"timestamp":641733807192,"id":1874,"parentId":1868,"tags":{"request":"next-app-loader?name=app%2Fprojects%2Fpage&page=%2Fprojects%2Fpage&appPaths=%2Fprojects%2Fpage&pagePath=private-next-app-dir%2Fprojects%2Fpage.tsx&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699172398,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":58578,"timestamp":641733807176,"id":1871,"parentId":1868,"tags":{"request":"next-app-loader?name=app%2Ficon.svg%2Froute&page=%2Ficon.svg%2Froute&appPaths=&pagePath=private-next-app-dir%2Ficon.svg&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699172398,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":14603,"timestamp":641733872230,"id":1876,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"rsc"},"startTime":1758699172463,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":16695,"timestamp":641733873560,"id":1880,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"instrument"},"startTime":1758699172464,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":20015,"timestamp":641733872638,"id":1877,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"rsc"},"startTime":1758699172463,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":20879,"timestamp":641733873822,"id":1881,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"instrument"},"startTime":1758699172464,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":23100,"timestamp":641733872993,"id":1878,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"rsc"},"startTime":1758699172463,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":23187,"timestamp":641733874024,"id":1882,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"instrument"},"startTime":1758699172465,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":25202,"timestamp":641733873307,"id":1879,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"rsc"},"startTime":1758699172464,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":25240,"timestamp":641733874221,"id":1883,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"instrument"},"startTime":1758699172465,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":16268,"timestamp":641733903910,"id":1884,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172494,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":19359,"timestamp":641733904222,"id":1885,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172495,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":22646,"timestamp":641733904442,"id":1886,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172495,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":25318,"timestamp":641733904654,"id":1887,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172495,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":31589,"timestamp":641733910520,"id":1888,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172501,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":36528,"timestamp":641733910813,"id":1889,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172501,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":124060,"timestamp":641733913013,"id":1890,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172503,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":128343,"timestamp":641733913306,"id":1891,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172504,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":133143,"timestamp":641733914723,"id":1892,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172505,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":133485,"timestamp":641733915087,"id":1893,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172506,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":140176,"timestamp":641733915384,"id":1894,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172506,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":232391,"timestamp":641733915615,"id":1895,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172506,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":11497,"timestamp":641734149650,"id":1896,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172740,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":13129,"timestamp":641734149942,"id":1897,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172740,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":14506,"timestamp":641734150123,"id":1898,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172741,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":15542,"timestamp":641734150276,"id":1899,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172741,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":17262,"timestamp":641734153908,"id":1900,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172744,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":18418,"timestamp":641734154144,"id":1901,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172745,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":21131,"timestamp":641734154339,"id":1902,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172745,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":23327,"timestamp":641734154519,"id":1903,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172745,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":24344,"timestamp":641734155002,"id":1904,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172745,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":25324,"timestamp":641734155184,"id":1905,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172746,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":26844,"timestamp":641734155352,"id":1906,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172746,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":28035,"timestamp":641734155528,"id":1907,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172746,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":30162,"timestamp":641734155691,"id":1908,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172746,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":31819,"timestamp":641734155861,"id":1909,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172746,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":33350,"timestamp":641734156067,"id":1910,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172747,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":34404,"timestamp":641734156314,"id":1911,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172747,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":35866,"timestamp":641734156579,"id":1912,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172747,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":36994,"timestamp":641734156841,"id":1913,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172747,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":39312,"timestamp":641734157115,"id":1914,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172748,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":41274,"timestamp":641734157361,"id":1915,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172748,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":29211,"timestamp":641734253686,"id":1916,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"rsc"},"startTime":1758699172844,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":30801,"timestamp":641734253920,"id":1917,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"instrument"},"startTime":1758699172844,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":32084,"timestamp":641734254115,"id":1918,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"rsc"},"startTime":1758699172845,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":32807,"timestamp":641734254418,"id":1920,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"instrument"},"startTime":1758699172845,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":35587,"timestamp":641734254274,"id":1919,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"rsc"},"startTime":1758699172845,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":37606,"timestamp":641734254596,"id":1921,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"instrument"},"startTime":1758699172845,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":43084,"timestamp":641734256992,"id":1922,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"rsc"},"startTime":1758699172847,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":44774,"timestamp":641734257199,"id":1923,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"instrument"},"startTime":1758699172848,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":14823,"timestamp":641734303478,"id":1924,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"rsc"},"startTime":1758699172894,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":17243,"timestamp":641734303821,"id":1925,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"instrument"},"startTime":1758699172894,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7175,"timestamp":641734328506,"id":1926,"parentId":1922,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"rsc"},"startTime":1758699172919,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7676,"timestamp":641734328745,"id":1927,"parentId":1923,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"instrument"},"startTime":1758699172919,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":6169,"timestamp":641734343404,"id":1928,"parentId":1924,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"rsc"},"startTime":1758699172934,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7349,"timestamp":641734343625,"id":1929,"parentId":1925,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"instrument"},"startTime":1758699172934,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":548606,"timestamp":641733807167,"id":1870,"parentId":1868,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-not-found.js&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699172398,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":548695,"timestamp":641733807092,"id":1869,"parentId":1868,"tags":{"request":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/instrumentation.ts"},"startTime":1758699172398,"traceId":"4370efa64adb4e3b"},{"name":"add-entry","duration":804269,"timestamp":641733807182,"id":1872,"parentId":1868,"tags":{"request":"next-app-loader?name=app%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute&page=%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute&appPaths=&pagePath=private-next-app-dir%2Fapi%2Fauth%2F%5B...nextauth%5D%2Froute.ts&appDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2%2Fsrc%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=mdx&rootDir=%2Fhome%2FNicholai%2FDocuments%2FDev%2Fbiohazard-vfx-2&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D&isGlobalNotFoundEnabled=!"},"startTime":1758699172398,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":3410,"timestamp":641734737385,"id":1980,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/fastify/v3/instrumentation.js","layer":"ssr"},"startTime":1758699173328,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":4340,"timestamp":641734737683,"id":1981,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/vercelai/instrumentation.js","layer":"ssr"},"startTime":1758699173328,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":4860,"timestamp":641734737846,"id":1982,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/openai/instrumentation.js","layer":"ssr"},"startTime":1758699173328,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":5380,"timestamp":641734737989,"id":1983,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@sentry/node/build/cjs/integrations/tracing/anthropic-ai/instrumentation.js","layer":"ssr"},"startTime":1758699173328,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":11360,"timestamp":641734746612,"id":1984,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-fs/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173337,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":12924,"timestamp":641734746826,"id":1985,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-express/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173337,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":14623,"timestamp":641734746985,"id":1986,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-graphql/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173337,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":17396,"timestamp":641734747130,"id":1987,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-kafkajs/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173338,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":17732,"timestamp":641734747267,"id":1988,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-lru-memoizer/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173338,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":21722,"timestamp":641734747403,"id":1989,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mongodb/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173338,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":23395,"timestamp":641734747544,"id":1990,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173338,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":24440,"timestamp":641734747679,"id":1991,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-mysql2/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173338,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":25655,"timestamp":641734747812,"id":1992,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-ioredis/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173338,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":27974,"timestamp":641734747949,"id":1993,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-pg/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173338,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":29631,"timestamp":641734748098,"id":1994,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-hapi/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173339,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":30647,"timestamp":641734748237,"id":1995,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-koa/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173339,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":31824,"timestamp":641734748374,"id":1996,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-connect/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173339,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":33029,"timestamp":641734748512,"id":1997,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-knex/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173339,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":34084,"timestamp":641734748644,"id":1998,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-tedious/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173339,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":34774,"timestamp":641734748775,"id":1999,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-generic-pool/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173339,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":36298,"timestamp":641734748906,"id":2000,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-dataloader/build/src/instrumentation.js","layer":"ssr"},"startTime":1758699173339,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":6422,"timestamp":641734823199,"id":2001,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v2-v3/instrumentation.js","layer":"ssr"},"startTime":1758699173414,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":9058,"timestamp":641734823475,"id":2002,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation-redis/build/src/v4/instrumentation.js","layer":"ssr"},"startTime":1758699173414,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7394,"timestamp":641734835958,"id":2003,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"ssr"},"startTime":1758699173426,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":7285,"timestamp":641734846220,"id":2004,"parentId":1867,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/platform/node/instrumentation.js","layer":"ssr"},"startTime":1758699173437,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":4852,"timestamp":641734856010,"id":2005,"parentId":2003,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"ssr"},"startTime":1758699173446,"traceId":"4370efa64adb4e3b"},{"name":"build-module-js","duration":3780,"timestamp":641734864270,"id":2006,"parentId":2004,"tags":{"name":"/home/Nicholai/Documents/Dev/biohazard-vfx-2/node_modules/@prisma/instrumentation/node_modules/@opentelemetry/instrumentation/build/esm/instrumentation.js","layer":"ssr"},"startTime":1758699173455,"traceId":"4370efa64adb4e3b"},{"name":"make","duration":1123880,"timestamp":641733786429,"id":1868,"parentId":1867,"tags":{},"startTime":1758699172377,"traceId":"4370efa64adb4e3b"},{"name":"chunk-graph","duration":65810,"timestamp":641734989136,"id":2008,"parentId":2007,"tags":{},"startTime":1758699173580,"traceId":"4370efa64adb4e3b"},{"name":"optimize-modules","duration":16,"timestamp":641735055030,"id":2010,"parentId":2007,"tags":{},"startTime":1758699173646,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunks","duration":69370,"timestamp":641735055087,"id":2011,"parentId":2007,"tags":{},"startTime":1758699173646,"traceId":"4370efa64adb4e3b"},{"name":"optimize-tree","duration":35,"timestamp":641735124518,"id":2012,"parentId":2007,"tags":{},"startTime":1758699173715,"traceId":"4370efa64adb4e3b"},{"name":"optimize-chunk-modules","duration":15,"timestamp":641735124608,"id":2013,"parentId":2007,"tags":{},"startTime":1758699173715,"traceId":"4370efa64adb4e3b"},{"name":"optimize","duration":89079,"timestamp":641735055004,"id":2009,"parentId":2007,"tags":{},"startTime":1758699173645,"traceId":"4370efa64adb4e3b"},{"name":"module-hash","duration":22729,"timestamp":641735170595,"id":2014,"parentId":2007,"tags":{},"startTime":1758699173761,"traceId":"4370efa64adb4e3b"},{"name":"code-generation","duration":59286,"timestamp":641735193378,"id":2015,"parentId":2007,"tags":{},"startTime":1758699173784,"traceId":"4370efa64adb4e3b"},{"name":"hash","duration":20128,"timestamp":641735283976,"id":2016,"parentId":2007,"tags":{},"startTime":1758699173874,"traceId":"4370efa64adb4e3b"},{"name":"code-generation-jobs","duration":331,"timestamp":641735304101,"id":2017,"parentId":2007,"tags":{},"startTime":1758699173895,"traceId":"4370efa64adb4e3b"},{"name":"module-assets","duration":2000,"timestamp":641735304326,"id":2018,"parentId":2007,"tags":{},"startTime":1758699173895,"traceId":"4370efa64adb4e3b"},{"name":"create-chunk-assets","duration":24242,"timestamp":641735306368,"id":2019,"parentId":2007,"tags":{},"startTime":1758699173897,"traceId":"4370efa64adb4e3b"}]
+[{"name":"seal","duration":422068,"timestamp":641734961185,"id":2007,"parentId":1867,"tags":{},"startTime":1758699173552,"traceId":"4370efa64adb4e3b"},{"name":"webpack-compilation","duration":1813815,"timestamp":641733786051,"id":1867,"parentId":3,"tags":{"name":"server"},"startTime":1758699172377,"traceId":"4370efa64adb4e3b"},{"name":"client-success","duration":11,"timestamp":641735601996,"id":2021,"parentId":3,"tags":{},"startTime":1758699174192,"traceId":"4370efa64adb4e3b"},{"name":"client-success","duration":2,"timestamp":641735602039,"id":2022,"parentId":3,"tags":{},"startTime":1758699174193,"traceId":"4370efa64adb4e3b"},{"name":"emit","duration":64932,"timestamp":641735600010,"id":2020,"parentId":3,"tags":{},"startTime":1758699174190,"traceId":"4370efa64adb4e3b"}]
diff --git a/docs/architecture.md b/docs/architecture.md
new file mode 100644
index 0000000..22455c3
--- /dev/null
+++ b/docs/architecture.md
@@ -0,0 +1,848 @@
+# Biohazard VFX Architecture Document
+
+## Introduction
+
+This document outlines the overall project architecture for Biohazard VFX, including backend systems, shared services, and non-UI specific concerns. Its primary goal is to serve as the guiding architectural blueprint for AI-driven development, ensuring consistency and adherence to chosen patterns and technologies.
+
+**Relationship to Frontend Architecture:**
+If the project includes a significant user interface, a separate Frontend Architecture Document will detail the frontend-specific design and MUST be used in conjunction with this document. Core technology stack choices documented herein (see "Tech Stack") are definitive for the entire project, including any frontend components.
+
+### Starter Template or Existing Project
+
+The Biohazard VFX project is built on a Next.js starter template with an established codebase. The architecture builds on the existing foundation with:
+
+- Next.js 15 with App Router as the foundational framework
+- Prisma ORM with SQLite for database management
+- NextAuth.js for authentication
+- Tailwind CSS for styling
+- Component-based architecture with reusable elements
+
+The existing project structure provides a solid foundation for the architecture decisions outlined in this document.
+
+### Change Log
+
+| Date | Version | Description | Author |
+|------|---------|-------------|---------|
+| 2025-09-24 | 1.0 | Initial architecture document | Winston, Architect |
+
+## High Level Architecture
+
+### Technical Summary
+
+The Biohazard VFX system follows a Next.js-based monolithic architecture with a modular component structure. Key components include a content management system, authentication layer, project portfolio, blog engine, and rich media handling. The primary technology choices center around the Next.js ecosystem with Prisma ORM, SQLite database, and Tailwind CSS. The architecture follows modern web application patterns with server-side rendering, client-side interactions, and responsive design. This architecture supports the PRD goals of creating a visually impressive portfolio site for showcasing VFX work.
+
+### High Level Overview
+
+The architecture follows a modular monolith pattern using Next.js with the App Router. The repository follows a monorepo structure with clear separation of concerns. The service architecture is a single Next.js application that handles both static content delivery and dynamic content management through the admin interface. The primary user interaction flow involves visitors browsing the portfolio and blog content, with authenticated users able to access the admin dashboard for content management. Key architectural decisions include using SQLite for simplicity and portability, NextAuth for secure authentication, and Prisma for type-safe database access.
+
+### High Level Project Diagram
+
+```mermaid
+graph TB
+ subgraph "Biohazard VFX Application"
+ A[Next.js App Router]
+ B[Pages & Layouts]
+ C[API Routes]
+ D[Components]
+ E[Hooks & Utils]
+ end
+
+ subgraph "Authentication & Authorization"
+ F[NextAuth.js]
+ G[Prisma Adapter]
+ H[Credentials Provider]
+ end
+
+ subgraph "Database"
+ I[SQLite Database]
+ J[Prisma ORM]
+ end
+
+ subgraph "Content Management"
+ K[Admin Dashboard]
+ L[Content Forms]
+ end
+
+ subgraph "External Services"
+ M[Image Optimization]
+ N[Video Streaming]
+ end
+
+ A --> B
+ A --> C
+ A --> D
+ A --> E
+
+ A --> F
+ F --> G
+ G --> I
+ J --> I
+
+ C --> K
+ K --> L
+ D --> M
+ D --> N
+
+ I <--> J
+ F --> H
+```
+
+### Architectural and Design Patterns
+
+- **Modular Monolith:** Using a single Next.js application with clear separation of concerns - _Rationale:_ Balances simplicity for current scale with maintainability and performance optimization through Next.js features
+- **Component-Based Architecture:** Reusable and composable UI elements - _Rationale:_ Enables consistent user experience and faster development with maintainable codebase
+- **Server-Side Rendering (SSR):** Next.js App Router for SEO and performance - _Rationale:_ Critical for portfolio site to ensure content is indexable and loads quickly
+- **API Routes:** Next.js API routes for backend functionality - _Rationale:_ Provides server-side processing without external API service dependencies
+- **Repository Pattern:** Prisma ORM abstracting database access - _Rationale:_ Enables type-safe database operations and simplifies data access logic
+
+## Tech Stack
+
+### Cloud Infrastructure
+
+- **Provider:** Self-hosted / Vercel
+- **Key Services:** Next.js Runtime, Static Asset Delivery, Serverless Functions
+- **Deployment Regions:** Global CDN with edge computing capabilities
+
+### Technology Stack Table
+
+| Category | Technology | Version | Purpose | Rationale |
+|----------|------------|---------|---------|-----------|
+| **Framework** | Next.js | 15.4.6 | Full-stack React framework | SSR, SSG, API routes, excellent performance and SEO |
+| **Language** | TypeScript | 5.9.2 | Primary development language | Strong typing, scalability, maintainability |
+| **Runtime** | Node.js | 20.x LTS | JavaScript runtime environment | Compatibility with Next.js and ecosystem |
+| **Database** | SQLite | 3.x | Primary database | Lightweight, portable, zero-configuration |
+| **ORM** | Prisma | 6.13.0 | Database ORM and migration tool | Type-safe queries, auto-generated client |
+| **Authentication** | NextAuth.js | 4.24.11 | Authentication system | Flexible providers, secure sessions |
+| **Styling** | Tailwind CSS | 3.4.17 | Utility-first CSS framework | Rapid UI development, consistent styling |
+| **UI Components** | Custom Component Library | - | Reusable UI elements | Consistent UX, maintainable interface |
+| **Animation** | Framer Motion | 12.23.12 | Animation library | Smooth, performant animations |
+| **Icons** | Lucide React, Tabler Icons | 0.542.0, 3.34.1 | Icon components | Lightweight, consistent icon set |
+| **Forms** | React Hook Form | 7.62.0 | Form management | Efficient form handling with validation |
+| **Validation** | Zod | 4.0.15 | Schema validation | TypeScript integration, runtime validation |
+| **Testing** | Vitest, React Testing Library | - | Testing framework | Unit and integration testing |
+| **Linting** | ESLint | 9.32.0 | Code linting | Code quality and consistency |
+| **Formatting** | Prettier | - | Code formatting | Consistent code style |
+| **Package Manager** | npm/yarn | - | Dependency management | Standard Node.js ecosystem tooling |
+
+## Data Models
+
+### User
+
+**Purpose:** Represents authenticated users with roles for access control
+
+**Key Attributes:**
+- id: String - Unique identifier for the user
+- email: String - User's email address, unique
+- name: String - User's display name
+- password: String - Hashed password
+- role: Role - User's permission level (ADMIN, EDITOR)
+- avatar: String? - Optional profile image URL
+- createdAt: DateTime - Account creation timestamp
+- updatedAt: DateTime - Last modification timestamp
+
+**Relationships:**
+- One-to-many with BlogPost (author)
+- One-to-many with Account (user accounts)
+- One-to-many with Session (user sessions)
+
+### Project
+
+**Purpose:** Represents portfolio items with before/after VFX work
+
+**Key Attributes:**
+- id: String - Unique identifier for the project
+- title: String - Project title
+- description: String? - Detailed description of the project
+- thumbnail: String - URL to thumbnail image
+- size: Size - Project size classification (BIG, SMALL)
+- embed: String? - Embedded media URL
+- video: String? - Project video URL
+- credits: String - Project credits information
+- info: String - Additional project information
+- category: String? - Project category
+- tags: String? - Comma-separated tags
+- featured: Boolean - Whether project is featured
+- published: Boolean - Whether project is published
+- publishedAt: DateTime? - Publishing timestamp
+- createdAt: DateTime - Creation timestamp
+- updatedAt: DateTime - Last modification timestamp
+
+**Relationships:**
+- No direct relationships with other models
+
+### BlogPost
+
+**Purpose:** Represents blog articles published on the platform
+
+**Key Attributes:**
+- id: String - Unique identifier for the blog post
+- title: String - Blog post title
+- slug: String - URL-friendly identifier, unique
+- content: String - Blog post content in markdown
+- excerpt: String? - Brief summary of the post
+- featuredImage: String? - URL to featured image
+- category: String? - Blog category
+- tags: String? - Comma-separated tags
+- published: Boolean - Whether post is published
+- publishedAt: DateTime? - Publishing timestamp
+- authorId: String - Reference to author user
+- createdAt: DateTime - Creation timestamp
+- updatedAt: DateTime - Last modification timestamp
+
+**Relationships:**
+- Many-to-one with User (author)
+
+### TeamMember
+
+**Purpose:** Represents team members in the VFX studio
+
+**Key Attributes:**
+- id: String - Unique identifier for the team member
+- name: String - Team member's name
+- title: String - Professional title
+- quote: String? - Personal quote or bio
+- image: String - URL to team member image
+- instagram: String? - Instagram handle
+- order: Int - Display order
+- createdAt: DateTime - Creation timestamp
+- updatedAt: DateTime - Last modification timestamp
+
+**Relationships:**
+- No direct relationships with other models
+
+### FAQ
+
+**Purpose:** Frequently asked questions for the website visitors
+
+**Key Attributes:**
+- id: String - Unique identifier for the FAQ
+- question: String - The question text
+- answer: String - The answer text
+- order: Int - Display order
+- published: Boolean - Whether FAQ is published
+- createdAt: DateTime - Creation timestamp
+- updatedAt: DateTime - Last modification timestamp
+
+**Relationships:**
+- No direct relationships with other models
+
+### SiteAsset
+
+**Purpose:** Site-wide media assets controllable from admin
+
+**Key Attributes:**
+- id: String - Unique identifier for the asset
+- key: String - Unique key for referencing (e.g. "home.hero.image")
+- label: String - Human-readable name
+- type: AssetType - Type of asset (IMAGE, VIDEO)
+- url: String - Asset URL
+- alt: String? - Alt text for accessibility
+- createdAt: DateTime - Creation timestamp
+- updatedAt: DateTime - Last modification timestamp
+
+**Relationships:**
+- No direct relationships with other models
+
+## Components
+
+### App Component
+
+**Responsibility:** Entry point for the Next.js application with layout and routing management
+
+**Key Interfaces:**
+- Root layout with metadata
+- Global styling and font loading
+- Page routing through App Router
+
+**Dependencies:** Next.js, Providers, Navigation, Footer
+
+**Technology Stack:** Next.js App Router, React, Tailwind CSS
+
+### Providers Component
+
+**Responsibility:** Manages application-wide providers and contexts
+
+**Key Interfaces:**
+- SessionProvider for authentication state
+- ThemeProvider for dark/light mode
+- MotionConfig for animations
+- LoadingProvider for loading states
+- Toaster for notifications
+
+**Dependencies:** NextAuth.js, next-themes, framer-motion, custom providers
+
+**Technology Stack:** React Context API, NextAuth.js, framer-motion
+
+### Authentication Layer
+
+**Responsibility:** Handles user authentication and authorization
+
+**Key Interfaces:**
+- API routes for NextAuth
+- Session management
+- Role-based access control
+
+**Dependencies:** NextAuth.js, Prisma, bcrypt
+
+**Technology Stack:** NextAuth.js, Prisma ORM, bcryptjs
+
+### Content Management System
+
+**Responsibility:** Admin dashboard for managing all content types
+
+**Key Interfaces:**
+- Project management interface
+- Blog post editor
+- Team member management
+- FAQ editor
+- Site asset management
+
+**Dependencies:** Prisma, React Hook Form, Zod
+
+**Technology Stack:** Next.js API routes, Prisma ORM, React Hook Form, Zod
+
+### UI Components Library
+
+**Responsibility:** Reusable UI elements across the application
+
+**Key Interfaces:**
+- Button components with various styles
+- Card components for content display
+- Form components with validation
+- Motion components for animations
+- Custom UI elements like the Compare component
+
+**Dependencies:** Tailwind CSS, framer-motion, lucide-react, tabler-icons-react
+
+**Technology Stack:** React, Tailwind CSS, framer-motion
+
+### Component Diagrams
+
+```mermaid
+graph TB
+ subgraph "UI Layer"
+ A[Navigation] --> B[Layout Components]
+ C[Footer] --> B
+ D[Header] --> B
+ E[Page Components] --> B
+ F[UI Components] --> E
+ end
+
+ subgraph "Logic Layer"
+ G[Providers]
+ H[Authentication]
+ I[Content Management]
+ J[Data Fetching]
+ end
+
+ subgraph "Data Layer"
+ K[Prisma Client]
+ L[SQLite Database]
+ M[API Routes]
+ end
+
+ B --> G
+ E --> G
+ G --> H
+ G --> I
+ I --> K
+ J --> K
+ M --> K
+ K --> L
+ H --> K
+```
+
+## External APIs
+
+### Database API
+
+**Purpose:** Prisma ORM for database operations
+
+**Documentation:** https://www.prisma.io/docs
+
+**Base URL(s):** Local connection to SQLite file
+
+**Authentication:** Direct file access, no authentication required
+
+**Rate Limits:** N/A
+
+**Key Endpoints Used:**
+- `model.findUnique()` - Retrieve specific records
+- `model.findMany()` - Retrieve multiple records
+- `model.create()` - Create new records
+- `model.update()` - Update existing records
+- `model.delete()` - Delete records
+
+**Integration Notes:** Type-safe database access through Prisma schema, connection pooling handled automatically
+
+### NextAuth API
+
+**Purpose:** Authentication and session management
+
+**Documentation:** https://next-auth.js.org/getting-started/introduction
+
+**Base URL(s):** /api/auth/[...nextauth]
+
+**Authentication:** Credentials provider with email/password
+
+**Rate Limits:** N/A
+
+**Key Endpoints Used:**
+- `POST /api/auth/signin` - Sign in endpoint
+- `POST /api/auth/signout` - Sign out endpoint
+- `GET /api/auth/session` - Get current session
+- `GET /api/auth/csrf` - Get CSRF token
+
+**Integration Notes:** Session tokens stored in secure, HTTP-only cookies
+
+## Core Workflows
+
+```mermaid
+sequenceDiagram
+ participant U as User
+ participant N as Next.js App
+ participant A as Authentication
+ participant P as Prisma
+ participant D as Database
+
+ U->>N: Visit website
+ N->>P: Fetch public content
+ P->>D: Query projects/blog posts
+ D->>P: Return data
+ P->>N: Processed data
+ N->>U: Render page
+
+ U->>N: Navigate to admin login
+ N->>U: Show login form
+ U->>A: Submit credentials
+ A->>P: Verify user
+ P->>D: Check user credentials
+ D->>P: Return user data
+ P->>A: User verified
+ A->>U: Issue session token
+ U->>N: Access admin dashboard
+ N->>P: Fetch admin data
+ P->>D: Query admin content
+ D->>P: Return admin data
+ P->>N: Processed admin data
+ N->>U: Render admin interface
+```
+
+## Database Schema
+
+```sql
+-- Users table for authentication
+CREATE TABLE users (
+ id TEXT PRIMARY KEY,
+ email TEXT UNIQUE NOT NULL,
+ name TEXT NOT NULL,
+ password TEXT NOT NULL,
+ role TEXT DEFAULT 'ADMIN',
+ avatar TEXT,
+ createdAt DATETIME DEFAULT CURRENT_TIMESTAMP,
+ updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP
+);
+
+-- Projects table for portfolio items
+CREATE TABLE projects (
+ id TEXT PRIMARY KEY,
+ title TEXT NOT NULL,
+ description TEXT,
+ thumbnail TEXT NOT NULL,
+ size TEXT DEFAULT 'SMALL',
+ embed TEXT,
+ video TEXT,
+ credits TEXT NOT NULL,
+ info TEXT NOT NULL,
+ category TEXT,
+ tags TEXT,
+ featured BOOLEAN DEFAULT 0,
+ published BOOLEAN DEFAULT 1,
+ publishedAt DATETIME,
+ createdAt DATETIME DEFAULT CURRENT_TIMESTAMP,
+ updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP
+);
+
+-- Blog posts table
+CREATE TABLE blog_posts (
+ id TEXT PRIMARY KEY,
+ title TEXT NOT NULL,
+ slug TEXT UNIQUE NOT NULL,
+ content TEXT NOT NULL,
+ excerpt TEXT,
+ featuredImage TEXT,
+ category TEXT,
+ tags TEXT,
+ published BOOLEAN DEFAULT 0,
+ publishedAt DATETIME,
+ authorId TEXT NOT NULL,
+ createdAt DATETIME DEFAULT CURRENT_TIMESTAMP,
+ updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP,
+ FOREIGN KEY (authorId) REFERENCES users(id)
+);
+
+-- Team members table
+CREATE TABLE team_members (
+ id TEXT PRIMARY KEY,
+ name TEXT NOT NULL,
+ title TEXT NOT NULL,
+ quote TEXT,
+ image TEXT NOT NULL,
+ instagram TEXT,
+ order INTEGER DEFAULT 0,
+ createdAt DATETIME DEFAULT CURRENT_TIMESTAMP,
+ updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP
+);
+
+-- FAQs table
+CREATE TABLE faqs (
+ id TEXT PRIMARY KEY,
+ question TEXT NOT NULL,
+ answer TEXT NOT NULL,
+ order INTEGER DEFAULT 0,
+ published BOOLEAN DEFAULT 1,
+ createdAt DATETIME DEFAULT CURRENT_TIMESTAMP,
+ updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP
+);
+
+-- Site assets table
+CREATE TABLE site_assets (
+ id TEXT PRIMARY KEY,
+ key TEXT UNIQUE NOT NULL,
+ label TEXT NOT NULL,
+ type TEXT NOT NULL,
+ url TEXT NOT NULL,
+ alt TEXT,
+ createdAt DATETIME DEFAULT CURRENT_TIMESTAMP,
+ updatedAt DATETIME DEFAULT CURRENT_TIMESTAMP
+);
+
+-- NextAuth required tables
+CREATE TABLE accounts (
+ id TEXT PRIMARY KEY,
+ userId TEXT NOT NULL,
+ type TEXT NOT NULL,
+ provider TEXT NOT NULL,
+ providerAccountId TEXT NOT NULL,
+ refresh_token TEXT,
+ access_token TEXT,
+ expires_at INTEGER,
+ token_type TEXT,
+ scope TEXT,
+ id_token TEXT,
+ session_state TEXT,
+ FOREIGN KEY (userId) REFERENCES users(id) ON DELETE CASCADE,
+ UNIQUE (provider, providerAccountId)
+);
+
+CREATE TABLE sessions (
+ id TEXT PRIMARY KEY,
+ sessionToken TEXT UNIQUE NOT NULL,
+ userId TEXT NOT NULL,
+ expires DATETIME NOT NULL,
+ FOREIGN KEY (userId) REFERENCES users(id) ON DELETE CASCADE
+);
+
+CREATE TABLE verification_tokens (
+ identifier TEXT NOT NULL,
+ token TEXT UNIQUE NOT NULL,
+ expires DATETIME NOT NULL,
+ UNIQUE (identifier, token)
+);
+
+-- Indexes for performance
+CREATE INDEX idx_projects_featured ON projects(featured, published);
+CREATE INDEX idx_projects_category ON projects(category);
+CREATE INDEX idx_blog_posts_published ON blog_posts(published, publishedAt);
+CREATE INDEX idx_blog_posts_author ON blog_posts(authorId);
+CREATE INDEX idx_faqs_published ON faqs(published);
+```
+
+## Source Tree
+
+```
+biohazard-vfx-nextjs/
+├── src/
+│ ├── app/ # Next.js App Router pages
+│ │ ├── admin/ # Admin dashboard pages
+│ │ │ ├── page.tsx # Admin dashboard
+│ │ │ ├── projects/ # Project management
+│ │ │ ├── blog/ # Blog management
+│ │ │ ├── team/ # Team management
+│ │ │ ├── faq/ # FAQ management
+│ │ │ └── media/ # Media management
+│ │ ├── api/ # API routes
+│ │ │ └── auth/
+│ │ │ └── [...nextauth]/
+│ │ │ └── route.ts # NextAuth API route
+│ │ ├── projects/ # Public project pages
+│ │ ├── blog/ # Public blog pages
+│ │ ├── globals.css # Global styles
+│ │ ├── layout.tsx # Root layout
+│ │ ├── page.tsx # Home page
+│ │ └── ... # Other public pages
+│ ├── components/ # Reusable UI components
+│ │ ├── admin/ # Admin-specific components
+│ │ ├── motion/ # Animation components
+│ │ ├── ui/ # Base UI components
+│ │ ├── Buttons.tsx # Button components
+│ │ ├── Cards.tsx # Card components
+│ │ ├── Forms.tsx # Form components
+│ │ ├── Navigation.tsx # Navigation components
+│ │ └── ... # Other components
+│ ├── fonts/ # Custom font files
+│ ├── hooks/ # Custom React hooks
+│ ├── lib/ # Shared utilities
+│ │ ├── auth.ts # Authentication utilities
+│ │ ├── prisma.ts # Prisma client
+│ │ ├── metadata.ts # Metadata utilities
+│ │ └── utils.ts # General utilities
+│ ├── pages_legacy_backup/ # Legacy pages router backup
+│ ├── types/ # TypeScript type definitions
+│ ├── public/ # Static assets
+│ │ ├── images/ # Image assets
+│ │ ├── videos/ # Video assets
+│ │ └── ... # Other static files
+│ ├── instrumentation.ts # Sentry instrumentation
+│ └── instrumentation-client.ts # Client instrumentation
+├── prisma/ # Prisma configuration
+│ ├── schema.prisma # Database schema
+│ ├── seed.ts # Database seed script
+│ └── migrate-static-content.ts # Migration script
+├── docs/ # Documentation
+│ └── architecture.md # This document
+├── .env.example # Environment variables example
+├── .env.local # Local environment variables
+├── next.config.js # Next.js configuration
+├── tailwind.config.js # Tailwind CSS configuration
+├── tsconfig.json # TypeScript configuration
+├── package.json # Project dependencies
+└── README.md # Project documentation
+```
+
+## Infrastructure and Deployment
+
+### Infrastructure as Code
+
+- **Tool:** Vercel Platform as a Service
+- **Location:** `vercel.json`
+- **Approach:** Configuration-based deployment with automatic environment detection
+
+### Deployment Strategy
+
+- **Strategy:** Git-based continuous deployment
+- **CI/CD Platform:** Vercel's built-in CI/CD
+- **Pipeline Configuration:** `vercel.json` and GitHub integration
+
+### Environments
+
+- **Development:** Local development environment - Node.js 20.x with hot reloading
+- **Preview:** Branch-based preview deployments - Auto-generated for pull requests
+- **Production:** Main branch deployment - Live production site with CDN distribution
+
+### Environment Promotion Flow
+
+```
+Feature Branch → Pull Request → Preview Deployment → Merge to Main → Production Deploy
+```
+
+### Rollback Strategy
+
+- **Primary Method:** Version-based rollback through Vercel dashboard
+- **Trigger Conditions:** Critical errors detected in production
+- **Recovery Time Objective:** 5-10 minutes for rollback execution
+
+## Error Handling Strategy
+
+### General Approach
+
+- **Error Model:** Next.js error boundaries and try-catch patterns
+- **Exception Hierarchy:** Custom error classes extending base Error
+- **Error Propagation:** Proper error bubbling with meaningful messages
+
+### Logging Standards
+
+- **Library:** Built-in Next.js logging plus Sentry for error tracking
+- **Format:** Structured JSON logs with timestamp, level, message, and context
+- **Levels:** info, warn, error, debug
+- **Required Context:**
+ - Correlation ID: UUID per request chain
+ - Service Context: Current page/API route
+ - User Context: Non-sensitive user information only
+
+### Error Handling Patterns
+
+#### External API Errors
+
+- **Retry Policy:** Exponential backoff with 3 attempts
+- **Circuit Breaker:** Not implemented (not needed for current architecture)
+- **Timeout Configuration:** 10s for API calls, 30s for file uploads
+- **Error Translation:** Generic error messages for user-facing errors
+
+#### Business Logic Errors
+
+- **Custom Exceptions:** ValidationError, AuthorizationError, ResourceNotFoundError
+- **User-Facing Errors:** Human-readable messages via toast notifications
+- **Error Codes:** Standardized error codes for API responses
+
+#### Data Consistency
+
+- **Transaction Strategy:** Prisma transactions for multi-step operations
+- **Compensation Logic:** Not applicable for current use cases
+- **Idempotency:** Not required for current architecture
+
+## Coding Standards
+
+### Core Standards
+
+- **Languages & Runtimes:** TypeScript 5.9.2, Node.js 20.x LTS
+- **Style & Linting:** ESLint with Next.js recommended rules, Prettier for formatting
+- **Test Organization:** Co-located tests with component files (Component.test.tsx)
+
+### Critical Rules
+
+- **Never use console.log in production code** - use proper logging
+- **All database queries must use Prisma client** - no direct SQL
+- **API responses must follow Next.js patterns** - no custom response formats
+- **All external inputs must be validated** - use Zod schemas
+- **Authentication checks required** - use session validation middleware
+- **Image optimization mandatory** - use Next.js Image component
+- **Accessibility compliance** - follow WCAG 2.1 AA guidelines
+
+### Language-Specific Guidelines
+
+#### TypeScript Specifics
+
+- **Strict Mode:** Enable strict TypeScript compiler options
+- **Type Safety:** Prefer types over interfaces for internal types
+- **Null Handling:** Use optional chaining and nullish coalescing
+- **Async/Await:** Always handle promise rejections appropriately
+
+## Test Strategy and Standards
+
+### Testing Philosophy
+
+- **Approach:** Test-driven development for critical business logic, test-after for UI components
+- **Coverage Goals:** 80% line coverage for business logic, 70% for UI components
+- **Test Pyramid:** 70% unit tests, 20% integration tests, 10% end-to-end tests
+
+### Test Types and Organization
+
+#### Unit Tests
+
+- **Framework:** Vitest
+- **File Convention:** ComponentName.test.tsx, utilName.test.ts
+- **Location:** Co-located with source files
+- **Mocking Library:** Vitest built-in mocking
+- **Coverage Requirement:** All public functions and methods
+
+**AI Agent Requirements:**
+- Generate tests for all public methods
+- Cover edge cases and error conditions
+- Follow AAA pattern (Arrange, Act, Assert)
+- Mock all external dependencies
+
+#### Integration Tests
+
+- **Scope:** API routes, database operations, authentication flows
+- **Location:** `__tests__/integration/`
+- **Test Infrastructure:**
+ - **Database:** In-memory SQLite for tests
+ - **Authentication:** Mock sessions
+
+#### End-to-End Tests
+
+- **Framework:** Playwright
+- **Scope:** Critical user journeys (login, content creation)
+- **Environment:** Preview deployment or local
+- **Test Data:** Seed specific test data
+
+### Test Data Management
+
+- **Strategy:** Test factories with Prisma seed
+- **Fixtures:** Located in `__tests__/fixtures/`
+- **Factories:** Factory pattern for test data creation
+- **Cleanup:** After each test run, reset database state
+
+### Continuous Testing
+
+- **CI Integration:** Run tests on each push and PR
+- **Performance Tests:** Not currently implemented
+- **Security Tests:** Dependency scanning with npm audit
+
+## Security
+
+### Input Validation
+
+- **Validation Library:** Zod
+- **Validation Location:** API routes and form submissions
+- **Required Rules:**
+ - All external inputs MUST be validated
+ - Validation at API boundary before processing
+ - Whitelist approach preferred over blacklist
+
+### Authentication & Authorization
+
+- **Auth Method:** NextAuth.js with credentials provider
+- **Session Management:** JWT in secure, HTTP-only cookies
+- **Required Patterns:**
+ - Server-side authentication check for protected routes
+ - Role-based access control for admin features
+
+### Secrets Management
+
+- **Development:** Environment variables in .env.local
+- **Production:** Vercel environment variables
+- **Code Requirements:**
+ - NEVER hardcode secrets
+ - Access via environment variables only
+ - No secrets in logs or error messages
+
+### API Security
+
+- **Rate Limiting:** Basic rate limiting via middleware
+- **CORS Policy:** Restrictive CORS policy
+- **Security Headers:** Next.js default headers plus additional security headers
+- **HTTPS Enforcement:** Automatic on production deployment
+
+### Data Protection
+
+- **Encryption at Rest:** Provided by hosting platform
+- **Encryption in Transit:** HTTPS required for all connections
+- **PII Handling:** Minimize collection and storage of personal information
+- **Logging Restrictions:** No sensitive data in logs
+
+### Dependency Security
+
+- **Scanning Tool:** npm audit, GitHub dependabot
+- **Update Policy:** Weekly dependency updates
+- **Approval Process:** Review for security vulnerabilities
+
+### Security Testing
+
+- **SAST Tool:** GitHub code scanning
+- **DAST Tool:** Not currently implemented
+- **Penetration Testing:** Periodic manual testing
+
+## Checklist Results Report
+
+The architecture document has been reviewed against the architect checklist standards and confirmed to include all required sections with appropriate detail for AI-driven development.
+
+## Next Steps
+
+After completing the architecture:
+
+1. If project has UI components:
+ - Use "Frontend Architecture Mode"
+ - Provide this document as input
+
+2. For all projects:
+ - Review with Product Owner
+ - Begin story implementation with Dev agent
+ - Set up infrastructure with DevOps agent
+
+3. Include specific prompts for next agents if needed
+
+### Architect Prompt
+
+Create a detailed frontend architecture document that builds upon the backend architecture established in this document. Focus on the component design system, UI patterns, responsive design approach, and user experience flows that complement the Next.js foundation and content management system defined here.
\ No newline at end of file
diff --git a/docs/brainstorming-session-results.md b/docs/brainstorming-session-results.md
new file mode 100644
index 0000000..e53f1d7
--- /dev/null
+++ b/docs/brainstorming-session-results.md
@@ -0,0 +1,313 @@
+# Biohazard VFX Website — Brainstorming Session Results
+
+Session Topic: Finishing the Biohazard VFX website by adding core features and unifying UX/UI
+
+Context
+- Project type: Brownfield
+- Ideation breadth: A few ideas (focused)
+- Document capture: Yes
+
+Approach Selected
+- Option 2: Analyst recommends techniques
+- Planned technique flow: Five Whys → SCAMPER → Mind Mapping → Role Playing
+
+---
+
+## Executive Summary
+- To be completed after session.
+
+---
+
+## Technique 1: Five Whys (Root Cause Discovery)
+Description: Ask “why” iteratively to uncover root causes of UX/UI fragmentation.
+
+Prompts & Responses
+- Why #1: Fonts and styling are inconsistent across the site, and the top navigation doesn’t align with the site’s ideology; overall, the site lacks a clear identity and feels unsatisfying.
+- Why #2: Brand direction is unclear; after a year+ of development, none of the explored directions felt right/satisfying.
+- Why #3: Decisions haven’t landed due to very high personal quality bar/perfectionism; the brand intent is clear (great VFX powered by pipeline/infrastructure; artist-first; strong ally to directors; long-term partnerships) but hasn’t been distilled into a concise direction.
+ - Why #4: Because there were no decision criteria or timeboxed cycles to force commitment; moodboards existed but were hard to translate into shippable UI; perfectionism raised the bar beyond launchable.
+ - Why #5: Underlying fears: misrepresenting brand/work quality, accumulating tech debt if committing prematurely, and too many plausible directions to compare objectively.
+
+Insights (emerging)
+- Early signals: Missing design system or tokens; conflicting component libraries or ad-hoc overrides; unclear brand/positioning guiding visual hierarchy and nav model.
+- Foundation gap: No finalized brand brief (audience, promise, attributes, tone, visual language) to anchor consistent UI and navigation model.
+- Brand pillars (emerging): Artist-first ethos; pipeline/infrastructure excellence; director partnership & reliability; premium cinematic craft; tech-enabled artistry.
+ - Selected causes: No decision criteria; no timeboxed decision cycles; moodboards exist but are hard to implement; perfectionism blocking commitment.
+ - Brand words (chosen): Meticulous, Robust, Collaborative, Artist-first.
+
+---
+
+## Technique 2: SCAMPER (Feature Refinement)
+Description: Substitute, Combine, Adapt, Modify/Magnify/Minify, Put to another use, Eliminate, Reverse.
+Targets: Core features to be identified post-Five Whys.
+
+Notes
+- [to be filled]
+
+Focus Targets (selected)
+- T1: Global typography + color tokens (design system)
+- T2: Top navigation + IA (structure & labels)
+
+SCAMPER — T1: Global Typography + Color Tokens
+- Substitute
+ - Typography: Choose 1 display/headline + 1 body font; remove others. Candidates from repo: Rajdhani, Kanit, Share (globals also reference Bentham, DM Serif). Proposed default: H: Rajdhani 600/700; Body: Kanit 400/500. Agree? If not, specify pair and weights.
+ - Color tokens: Establish base surface (Dark vs Light), primary brand, accent, neutrals scale. Preference?
+ - Decision: [awaiting]
+ - Decision (finalized): Headings Rajdhani 600/700; Body Kanit 400/500; Dark-first UI; palette direction: black + orange; standardize on shadcn/ui CSS component patterns.
+- Combine
+ - Unify to a single type scale (e.g., 12–72 with 8px step), map to tokens `--font-size-{xs..6xl}` and Tailwind `theme.extend.fontFamily` + `fontSize`.
+ - Combine color usage into tokens: `--color-bg`, `--color-fg`, `--brand.primary`, `--brand.accent`, `--muted`, `--border`.
+ - Decision (finalized): Type scale Cinematic = 12, 16, 20, 24, 32, 40, 48, 60, 72, 96. Colors = bg #0b0b0b; surfaces #121212, #181818; fg #e6e6e6; muted #a3a3a3; border #2a2a2a; brand.primary #cc3a00; brand.accent #d97706.
+- Adapt
+ - Adapt from existing asset `Biohazard Stylesheet rev01.jpg` and current `newfonts/` to finalize specimens and usage.
+ - Decision: [awaiting]
+- Modify/Magnify/Minify
+ - Tighten letter-spacing on headings; reduce palette to 3–5 core colors; ensure WCAG AA on text.
+ - Decision: [awaiting]
+- Put to another use
+ - Extend tokens to spacing, radii, shadows, motion durations for full system consistency.
+ - Decision: [awaiting]
+- Eliminate
+ - Remove ad-hoc CSS overrides, unused fonts (Bentham/DM Serif) if not in final pair; consolidate Tailwind font config.
+ - Decision: [awaiting]
+- Reverse
+ - Consider “dark-first” UI (bio-industrial feel), with occasional light surfaces for case study readability.
+ - Decision: [awaiting]
+
+SCAMPER — T2: Top Navigation + IA
+- Substitute
+ - Replace labels to better reflect brand goals. Options: [Work] [Pipeline] [Studio] [Contact] or [Projects] [Process] [About] [Contact]. Choose 4.
+ - Decision (finalized): Top-level = Projects, Process, Studio, Contact. Sub-items = Projects: Reel, Case Studies; Process: Pipeline, Tools, Infrastructure; Studio: About, Team, Values; Contact: Smart Form.
+- Combine
+ - Merge Reel into Projects (hero CTA to reel within Projects); merge Capabilities under Process (Pipeline, Tools, Infrastructure).
+ - Combine nav structure with layout: Left-aligned persistent sidebar paired with main content area; keep top bar minimal (logo + hamburger on mobile only).
+ - Decision (finalized): Use a vertical, left sidebar as the primary site navigation across internal pages; homepage may show the same sidebar after the hero (or collapsed to icon-only).
+- Adapt
+ - Adapt IA to director mental model: Primary tasks = view reel, skim case studies, understand pipeline reliability, contact quickly.
+ - Use shadcn/ui primitives: Accordion (for expandable sections), ScrollArea (for overflow), Tooltip (for collapsed icon-only state), Sheet (mobile drawer), Command (palette shortcut).
+ - Decision (finalized): Sidebar groups expand/collapse on click (not hover). Persist open state per section during route changes.
+- Modify/Magnify/Minify
+ - Keep to 4 top-level items; emphasize Projects and Contact visually.
+ - Styling: ALL CAPS labels, rectangular buttons, high-contrast black/orange/white palette. Use Rajdhani (caps) for nav text with slight letter-spacing for readability.
+ - Visual affordances: Active item has left border 2px in brand.primary (#cc3a00) and subtle bg (#121212). Hover uses brand.accent/copper (#d97706) for underline or icon tint.
+ - Layout: Sidebar width 240px desktop (collapsible to 72px icon-only); sticky full viewport height; content area has max-width container and grid offset.
+ - Decision (finalized): Click-to-expand subnav; active state with orange border; sidebar sticky; collapsed mode optional for case study focus.
+- Put to another use
+ - Use subnav descriptions sparingly for credibility (e.g., Tools: Houdini, Nuke, Unreal, custom pipeline) within the Process section; avoid clutter.
+ - Add a persistent Contact CTA at bottom of sidebar using accent style; optional social icons minimal.
+ - Decision (finalized): Contact CTA pinned to bottom of sidebar; Process sub-items may include concise toolchain references.
+- Eliminate
+ - Drop low-value or not-ready sections from nav; no Blog until active; avoid mega menus.
+ - Remove hover-to-expand patterns (reduce accidental opens); keep interactions deliberate.
+ - Decision (finalized): No Blog for now; no hover expansion; no mega menus.
+- Reverse
+ - Consider icon-only collapsed sidebar with tooltips as an alternate focused mode; full-screen command palette as secondary nav.
+ - Decision (finalized): Provide Command palette (⌘K/CTRL+K) for power users; allow toggling between expanded/collapsed sidebar.
+
+---
+
+## Technique 3: Mind Mapping (IA/Flow Unification)
+Description: Map central concept → primary sections → flows → components.
+
+Branches
+- Central concept: Biohazard VFX — cinematic craft, pipeline excellence, artist-first collaboration
+
+- Projects
+ - Reel (landing CTA; also accessible within Projects)
+ - Case Studies (index grid/list, filters: type/tool/year)
+ - Case Study Detail `/projects/[slug]` (hero video/stills → problem → approach → pipeline highlights → results → credits → CTA)
+ - Components: media player, gallery, tag badges, stats, tech stack icons, CTA block
+
+- Process
+ - Pipeline (overview: ingest → tracking → FX → lighting → comp → review; reliability, versioning, QC)
+ - Tools (Houdini/Nuke/Unreal/custom pipeline; show capability badges succinctly)
+ - Infrastructure (render, storage, automation, CI/CD for assets)
+ - Components: stepper/timeline, badge list, icon grid, diagram, code/CLI snippets optional
+
+- Studio
+ - About (mission, ethos: meticulous, robust, collaborative, artist-first)
+ - Team (select bios, lightweight)
+ - Values (principles; client partnership focus)
+ - Components: text sections, avatars, quote/testimonial, logo wall (if any)
+
+- Contact
+ - Smart Form (brief intake: project type, timeline, budget range, references/links)
+ - Confirmation page (what happens next, SLA)
+ - Components: form fields, file/url inputs, privacy note, success state
+
+- Global
+ - Sidebar Nav (left, persistent 240px; collapsible 72px; click-expand groups)
+ - Command Palette (⌘K/Ctrl+K) for quick navigation
+ - Footer (copyright, minimal links)
+ - Theme tokens (dark-first; black/orange; type scale)
+
+Primary user journeys (directors/producers)
+- J1: Home → Watch Reel → Scan 2–3 Case Studies → Contact via Smart Form
+- J2: Home → Process (Pipeline reliability) → Contact → Follow-up reel/case study as validation
+- J3: Google/Bing → Deep link to Case Study → Explore Process → Contact
+
+Success signals and CTAs
+- Reel completion or 50% watch → suggestion: view Case Studies
+- Case Study end → CTA: Contact / See Process
+- Process page → CTA: Contact / View Projects
+
+Information architecture → suggested routes
+- `/projects` (index) → `/projects/reel`, `/projects/case-studies`, `/projects/[slug]`
+- `/process` → `/process/pipeline`, `/process/tools`, `/process/infrastructure`
+- `/studio` → `/studio/about`, `/studio/team`, `/studio/values`
+- `/contact`
+
+Shadcn/ui primitives to standardize
+- Navigation: `Accordion`, `ScrollArea`, `Tooltip`, `Sheet`, `Command`
+- Content: `Tabs`, `Card`, `Badge`, `Separator`, `Table`, `Breadcrumb`
+- Forms: `Form`, `Input`, `Textarea`, `Select`, `Button`, `Checkbox`, `RadioGroup`, `Toast`
+- Media: custom player wrapper for consistency (poster overlays, controls)
+
+---
+
+## Scrolling Behavior Standardization (Sticky Split Pattern)
+Goal: Consistent split‑screen, sticky scrolling interactions site‑wide (inspired by Basement Foundry) without scroll‑jacking, with graceful fallbacks.
+
+Pattern: Sticky Split Section
+- Layout
+ - Desktop: Two columns. Left = sticky narrative (copy, headings, CTAs). Right = scroll track that reveals media/panels as the user scrolls each section. Optionally invert sides.
+ - Mobile: Stack vertically. Narrative above media. Sticky reduced or disabled to avoid awkward behavior; use reveal-on-view.
+- Mechanics
+ - Each section height: 150–250vh (tunable by content). The narrative column is `position: sticky; top: clamp(64px, 8vh, 96px)`.
+ - The media track contains panels (1..N). As scroll progresses through the section, panels transition (fade/scale/translate) or pin/unpin.
+ - Implementation: use native sticky + `IntersectionObserver` for entering/leaving + `framer-motion` for progress interpolation. Optional `lenis` for smoothing, with reduced‑motion disabling.
+ - Fallbacks: if reduced motion is enabled or JS disabled, show panels as a static vertical stack.
+- Tokens/Vars
+ - `--sticky-top`: sticky offset; `--panel-gap`: spacing; `--reveal-ease`: cubic‑bezier; `--reveal-duration`.
+ - Color tokens from brand palette apply to active states and progress indicators.
+- Accessibility
+ - Respect `prefers-reduced-motion`; maintain keyboard focus order; ensure content is reachable without scrolling effects; provide visible focus rings.
+ - Avoid scroll‑jacking; use passive listeners; do not block native wheel/touch.
+- Performance
+ - Avoid large `position: fixed` layers; prefer `will-change: transform` on animating elements; lazy‑load media; compress images/video.
+
+Suggested Component API (no code yet)
+- `` wraps one split section.
+- `` holds the narrative area (sticky column).
+- `` holds the scrollable/revealed media panels.
+- `` one panel within the track; reveals based on section progress.
+- Hook: `useSectionProgress(id)` returns 0..1 progress for motion transforms.
+
+Where to Apply
+- Home hero (narrative left, brand reel teaser right) → CTA to Reel.
+- Case Studies (problem → approach → pipeline highlights → results) with per‑phase panels.
+- Process (pipeline steps) with stepper timeline and panel per step.
+- Studio (values/ethos) with subtle reveals rather than heavy motion.
+
+Adoption Steps
+1) Define CSS vars and Tailwind utilities for sticky offsets, spacing, and motion tokens.
+2) Build `StickySplit` primitives using shadcn/ui conventions and `framer-motion`.
+3) Integrate on Home, Projects index/detail, and Process pages first.
+4) QA across breakpoints; verify reduced-motion and keyboard navigation.
+
+Acceptance Criteria
+- All major pages use the same Sticky Split interaction pattern where applicable.
+- No scroll‑jacking; reduced‑motion mode provides static content with reveals on view.
+- FPS remains smooth on desktop and mobile; LCP unaffected significantly on hero.
+- Visuals adhere to dark‑first palette with orange accents for active/progress.
+
+---
+
+## Technique 4: Role Playing (Stakeholder Perspectives)
+Perspectives: Producer, Client, Artist
+
+Findings
+- Producer: [to be filled]
+- Client: [to be filled]
+- Artist: [to be filled]
+
+---
+
+## Idea Categorization
+- Immediate Opportunities: [to be filled]
+- Future Innovations: [to be filled]
+- Moonshots: [to be filled]
+- Insights & Learnings: [to be filled]
+
+---
+
+## Action Planning
+- Top 3 Priorities: [to be filled]
+- Next Steps: [to be filled]
+- Resources/Research Needed: [to be filled]
+- Timeline Considerations: [to be filled]
+
+---
+
+## Reflection & Follow-up
+- What worked well: [to be filled]
+- Further exploration areas: [to be filled]
+- Recommended follow-up techniques: [to be filled]
+- Open questions: [to be filled]
+
+---
+
+## Brand Brief (Draft)
+Audience
+- Primary: Film/TV directors and producers seeking dependable, cinematic VFX partners
+- Secondary: Studio/agency partners evaluating technical reliability and collaboration fit
+
+Positioning Statement
+- Biohazard VFX delivers meticulous, robust, artist-first visual effects—engineered by a modern pipeline and infrastructure—to help directors realize their vision with confidence and speed.
+
+Value Proposition
+- Cinematic craft × engineered pipeline = predictable excellence. You get elite artistry backed by systems that scale, version, and quality‑check the work end‑to‑end.
+
+Brand Attributes (must read in the experience)
+- Meticulous • Robust • Collaborative • Artist‑first • Trusted • Cinematic
+
+Voice & Tone
+- Precise, confident, minimal. Show more than tell. Avoid hype; be specific.
+
+Visual Language
+- Dark‑first UI; high contrast (black/orange/white). Primary #cc3a00, accent #d97706.
+- Typography: Rajdhani (caps) for headings; Kanit for body; tight spacing, clean rhythm.
+- Motion: purposeful; conveys process and transitions; honors reduced‑motion.
+
+Interaction Principles
+- Sticky Split sections to reveal depth as you scroll; no scroll‑jacking.
+- Clear CTAs; frictionless paths to reel, case studies, and contact.
+
+Information Architecture Priorities
+- Projects first (Reel, Case Studies) → Process (Pipeline, Tools, Infrastructure) → Contact.
+- Studio (About, Team, Values) supports credibility; keep it concise.
+
+Trust Signals
+- Pipeline/infra highlights; selected logos/quotes; toolchain badges used sparingly.
+
+Content Priorities
+- What we did (case studies), how we work (pipeline), how to start (contact).
+
+---
+
+## Decision Checklist (Ship Gate)
+Mark Pass/Fail for each before merging a change.
+
+1) Brand Alignment
+- Does the page communicate Meticulous, Robust, Collaborative, Artist‑first within 5 seconds (type, color, layout, copy)?
+
+2) IA & CTA Clarity
+- Is the primary CTA obvious (Reel/Projects/Contact) with 1 clear next step per view?
+
+3) Design System Compliance
+- Uses tokens (type scale, colors), Rajdhani/Kanit pairing, shadcn/ui patterns. No ad‑hoc inline styles unless justified.
+
+4) Accessibility & Motion
+- Contrast AA+, keyboard navigation, focus states, alt text, reduced‑motion fallbacks.
+
+5) Performance Budget
+- Hero media optimized; LCP < 2.5s (desktop), CLS < 0.1; defer non‑critical JS; lazy‑load galleries/video.
+
+6) Decision Discipline
+- Work was timeboxed; options compared against this checklist; decision recorded and committed.
+
+Ship Threshold
+- Ship when all 6 Pass, or 5 Pass with one Minor Waived (documented) and a follow‑up task scheduled.
+
+Recommended Cadence
+- Explore (≤45m) → Decide (≤15m) → Implement (≤2h) → Review (≤30m) with this checklist.
diff --git a/docs/prd.md b/docs/prd.md
new file mode 100644
index 0000000..5daee60
--- /dev/null
+++ b/docs/prd.md
@@ -0,0 +1,255 @@
+# Biohazard VFX — Brownfield Enhancement PRD (Ready)
+
+Note: This PRD is sharded for collaboration. See shard files in `docs/prd/` (start at `docs/prd/00-index.md`).
+
+Status: Ready — confirmations applied (typography, palette, IA, epic, contact persistence; sidebar nav not collapsible)
+Version: v4
+
+---
+
+## Intro Project Analysis and Context
+
+### Existing Project Overview
+- Analysis Source: IDE-based fresh analysis of current repository (`biohazard-vfx-nextjs`).
+
+#### Current Project State
+- Type: Next.js 15 (App Router) + React 19 + TypeScript + TailwindCSS
+- UI libs: shadcn/ui primitives (via `class-variance-authority`, `tailwindcss-animate`), Lucide icons, custom components
+- Motion & scrolling: `framer-motion`/`motion`, `lenis`
+- Data layer: Prisma 6 with NextAuth; routes exist for `projects`, `blog`, `faq`, `team`, `assets`
+- Observability: Sentry configured (`@sentry/nextjs`), client/server configs present
+- IA present today (selected):
+ - Public: `/projects`, `/projects/[id]`, `/faq`, `/contact`, `/privacy`, `/terms`
+ - Admin: `/admin`, `/admin/{projects,blog,faq}`, `/admin/login`
+- Docs: Architecture docs referenced in core-config are missing (`docs/architecture/*`), so this PRD derives from code and brainstorming results.
+
+### Available Documentation Analysis
+- Primary input: `docs/brainstorming-session-results.md` (Five Whys, SCAMPER, IA/journeys, sticky split pattern, design tokens, typography pairs).
+- Additional docs: `README.md`, `VISUAL_ENHANCEMENTS*` provide context but are not canonical.
+
+### Enhancement Complexity Assessment
+- Significant, multi-story enhancement: unify design system, navigation and IA, add sticky split components, standardize pages (Projects, Process, Studio, Contact), and establish tokens/typography. This warrants a full PRD with sequenced stories.
+
+---
+
+## Problem Statement and Goals
+
+### Problem
+- UX/UI fragmentation (inconsistent fonts, ad-hoc styles), unclear IA and navigation model, and lack of codified design system hinder clarity, polish, and delivery velocity.
+
+### Goals
+- Establish a coherent brand-forward design system (tokens: color, type, spacing, motion).
+- Standardize IA and navigation (sidebar nav + command palette) aligned to key user journeys.
+- Implement reusable sticky split pattern for narrative + media without scroll‑jacking.
+- Upgrade core pages: Projects (reel + case studies), Process, Studio, Contact (smart form).
+- Preserve existing functionality and content while improving presentation and flows.
+
+### Out of Scope (initial release)
+- Custom CMS; third‑party marketing automation; deep analytics beyond Sentry/basic events.
+
+---
+
+## Users and Stakeholders
+- Primary: Directors/Producers evaluating capability and reliability.
+- Secondary: Studio partners, collaborators, and recruits.
+- Internal: Biohazard team (content ops, case study publishing, admin views).
+
+---
+
+## Functional Requirements (FR)
+FR1: Global design tokens for color, typography, spacing, and motion are defined and consumed across components.
+FR2: Select and apply one headline/display font and one body font globally; remove conflicting fonts.
+FR3: Sidebar navigation (persistent, not collapsible) reflects target IA groups: Projects, Process, Studio, Contact.
+FR4: Command palette (Cmd/Ctrl+K) for quick navigation and actions.
+FR5: Projects section includes Reel, Case Studies index with filters, and Case Study detail pages.
+FR6: Process section includes Pipeline, Tools, and Infrastructure subpages.
+FR7: Studio section includes About, Team, Values pages.
+FR8: Contact page implements smart intake form (project type, timeline, budget range, refs) with clear confirmation and next steps.
+FR9: Sticky Split component pattern implemented and reusable across Home/Projects/Process/Studio.
+FR10: Accessibility supports reduced motion, keyboard navigation, and visible focus management.
+
+## Compatibility Requirements (CR)
+CR1: Preserve existing public routes behavior and SEO where applicable (redirects if slugs change).
+CR2: Maintain database schema and NextAuth integration; no breaking changes to auth flows.
+CR3: UI/UX consistency with new tokens without breaking existing admin functions.
+CR4: Integration compatibility with current API routes (`/api/*`) and Prisma models.
+
+---
+
+## UI Enhancement Goals
+
+### Integration with Existing UI
+- Adopt Tailwind design tokens via CSS variables layered on current config; refactor shadcn components to consume tokens.
+- Consolidate color usage to a dark‑first palette (brand black/orange + neutrals) per brainstorming doc.
+- Typography: Headings Rajdhani 600/700; Body Kanit 400/500. [Confirmed]
+
+### Modified/New Screens and Views
+- Global: Layout with Sidebar Nav (not collapsible) and Command Palette; Footer.
+- Projects: Reel, Case Studies index (filters: type/tool/year), Case Study detail.
+- Process: Pipeline, Tools, Infrastructure.
+- Studio: About, Team, Values.
+- Contact: Smart Form + Confirmation page.
+
+### UI Consistency Requirements
+- Tokenized spacing scale; motion presets; focus rings; media player wrapper for consistency.
+- Sticky Split pattern components and hooks as a shared lib; mobile fallbacks and reduced‑motion support.
+
+---
+
+## Technical Constraints and Integration Requirements
+
+### Existing Technology Stack
+**Languages**: TypeScript
+**Frameworks**: Next.js 15 (App Router), React 19, TailwindCSS
+**Database**: Prisma (SQLite/Postgres depending on env), NextAuth; optional Cloudflare D1 for contact submissions [Approved]
+**Infrastructure**: Next build/start, Sentry for monitoring; no infra files for Vercel/CI in repo
+**External Dependencies**: framer-motion/motion, lenis, uploadthing, shadcn primitives, zod, react-hook-form
+
+### Integration Approach
+**Database Integration Strategy**: No schema changes required; augment only content display and forms; ensure Contact writes via existing patterns or route additions without breaking Prisma clients.
+**API Integration Strategy**: Reuse `/api/*` routes; add new endpoints cautiously (e.g., contact submissions) and version if needed. For contact persistence, allow optional integration with a Cloudflare Worker/D1 via server-side fetch, without impacting existing Prisma schema.
+**Frontend Integration Strategy**: Introduce tokens and new components incrementally; gate behind feature flags if needed; refactor pages to consume tokens with minimal churn.
+**Testing Integration Strategy**: Component tests for tokens and Sticky Split mechanics; route smoke tests; accessibility checks; performance snapshots.
+
+### Code Organization and Standards
+**File Structure Approach**: Keep `src/app/*` routes; add shared components under `src/components/ui/*` and `src/components/patterns/sticky-split/*`.
+**Naming Conventions**: PascalCase for components, kebab for route segments, token names as `--bh-*`.
+**Coding Standards**: ESLint + Prettier existing; maintain strict TS; avoid one‑off inline styles.
+**Documentation Standards**: Co-locate README.md per component/pattern for usage; update main docs after shard.
+
+### Deployment and Operations
+**Build Process Integration**: Ensure no increase in warnings; tree-shake unused fonts/components.
+**Deployment Strategy**: Incremental deploys; feature flags if needed; maintain redirects for IA adjustments.
+**Monitoring and Logging**: Extend Sentry breadcrumbs for navigation and key CTA events.
+**Configuration Management**: `.env` unchanged; add envs for contact handling only if required (e.g., Cloudflare credentials, D1 binding endpoint).
+
+### Risk Assessment and Mitigation
+**Technical Risks**: Global style regressions; performance drops from animation; font loading flashes.
+**Integration Risks**: Breaking admin routes/layouts; IA changes affecting deep links.
+**Deployment Risks**: CSS purge issues; caching of old assets.
+**Mitigation Strategies**: Token gating and gradual rollout; perf budgets (CLS/LCP targets); redirects and manual QA script; font preloading.
+
+---
+
+## Epic and Story Structure
+
+Epic Structure Decision: Single epic focused on UX/UI unification with sequenced, low‑risk increments. [Confirmed]
+
+### Epic 1: UX/UI Unification and Core Pages
+**Epic Goal**: Unify design system and IA, implement reusable patterns, and elevate core pages while preserving existing functionality.
+
+**Integration Requirements**: Each story verifies non‑regression on existing routes and key interactions; redirects for IA changes; accessibility and performance checks included.
+
+#### Story 1.1 Design Tokens and Typography
+As a visitor, I want a cohesive visual language so that the site feels premium and consistent.
+
+Acceptance Criteria
+1: Global CSS variables for color, spacing, radii, shadows, and motion exist and are documented.
+2: Headline font and body font applied globally; extraneous fonts removed.
+3: Tailwind config consumes tokens; shadcn primitives reflect tokens.
+Integration Verification
+IV1: No layout regressions in `/projects`, `/faq`, `/contact`.
+IV2: Admin pages remain functional and readable.
+IV3: Performance: no >10% increase in CSS/JS bundle.
+
+#### Story 1.2 Global Layout, Sidebar Nav, Command Palette
+As a user, I want clear navigation so that I can find Projects, Process, Studio, and Contact quickly.
+
+Acceptance Criteria
+1: Sidebar navigation (persistent 240px; not collapsible) groups routes as defined.
+2: Command palette opens via Cmd/Ctrl+K with navigation to key routes.
+3: Footer includes minimal links; responsive behavior verified.
+Integration Verification
+IV1: Deep links to existing `/projects/[id]` still resolve.
+IV2: Keyboard navigation and focus order preserved.
+IV3: No layout shift >0.1 CLS on nav open/close.
+
+#### Story 1.3 Sticky Split Pattern Library
+As a storyteller, I want a sticky split component so that narrative and media synchronize during scroll.
+
+Acceptance Criteria
+1: `` components implemented with docs.
+2: Reduced‑motion mode disables heavy animations gracefully.
+3: Mobile layout stacks content; performance budget respected.
+Integration Verification
+IV1: No scroll‑jacking; passive listeners only.
+IV2: A11y tree/focus unaffected.
+IV3: Frame budget within 16ms on mid‑range devices.
+
+#### Story 1.4 Projects Section Revamp
+As a prospect, I want a Reel and clear Case Studies so that I can assess capability fast.
+
+Acceptance Criteria
+1: `/projects` index offers Reel + Case Studies tabs with filters.
+2: Case Study detail template with hero, problem, approach, pipeline, results, credits, CTA.
+3: Media player wrapper standardized.
+Integration Verification
+IV1: Existing project data remains valid.
+IV2: SEO: titles/descriptions preserved or migrated.
+IV3: Page renders within current TTFB/LCP budgets.
+
+#### Story 1.5 Process Pages
+As a technical stakeholder, I want pipeline/tools/infrastructure pages so that I understand reliability and stack.
+
+Acceptance Criteria
+1: `/process/{pipeline,tools,infrastructure}` pages implemented with sticky split or light reveals.
+2: Badge and icon components for stack and capabilities.
+3: Cross‑links to Projects and Contact.
+Integration Verification
+IV1: No regressions to other routes.
+IV2: A11y checks pass.
+IV3: Bundle size growth <10% vs prior story.
+
+#### Story 1.6 Studio Pages
+As a partner, I want About, Team, and Values so that I can understand ethos and people.
+
+Acceptance Criteria
+1: `/studio/{about,team,values}` with content placeholders.
+2: Quote/testimonial and logo wall optional components.
+3: Global tokens applied.
+Integration Verification
+IV1: Nav and links correct.
+IV2: No console errors.
+IV3: Lighthouse a11y ≥ 90.
+
+#### Story 1.7 Contact Smart Form
+As an inquirer, I want a guided contact form so that I can convey project essentials quickly.
+
+Acceptance Criteria
+1: Fields: project type, timeline, budget range, references/links; validation via zod.
+2: Success page with next steps/SLA.
+3: Optional route to persist submissions (or email integration) without breaking existing auth.
+Integration Verification
+IV1: Rate limiting or basic abuse mitigation.
+IV2: Error states accessible and clear.
+IV3: No PII leakage in logs.
+
+#### Story 1.8 Hardening: Performance, Accessibility, SEO
+As a steward, I want the site to be fast and accessible so that it reflects professional standards.
+
+Acceptance Criteria
+1: CLS < 0.1; LCP within target for hero pages; images lazy‑loaded.
+2: Keyboard navigation across all interactive elements; visible focus rings.
+3: Sentry breadcrumbs for nav/CTA; basic event tracking for key flows.
+Integration Verification
+IV1: Compare metrics to pre‑enhancement baselines.
+IV2: No new 4xx/5xx in Sentry after launch.
+IV3: Sitemap/robots updated if IA changed.
+
+---
+
+## Non‑Functional Requirements (NFR)
+- Accessibility: Respect `prefers-reduced-motion`; maintain focus order; ARIA where needed.
+- Performance: No story may increase bundle size by >10% without explicit approval.
+- Reliability: No breaking changes to existing APIs or auth; error boundaries for new components.
+- Observability: Sentry enabled across new interactions; console clean.
+
+---
+
+## Decisions (Resolved)
+- Typography: Rajdhani (600/700) headings, Kanit (400/500) body — Approved.
+- Brand palette: Dark‑first black/orange + neutrals — Approved.
+- Navigation: Left sidebar (240px), not collapsible + Command Palette — Approved.
+- IA routes: `/projects`, `/process`, `/studio`, `/contact` with listed children — Approved.
+- Epic structure: Single-epic with Story 1.1 → 1.8 — Approved.
+- Contact handling: Persist submissions allowed; Cloudflare D1 acceptable; no compliance constraints — Approved.
diff --git a/docs/prd/00-index.md b/docs/prd/00-index.md
new file mode 100644
index 0000000..0e9ae40
--- /dev/null
+++ b/docs/prd/00-index.md
@@ -0,0 +1,11 @@
+PRD Index
+
+- 01 Intro and Context — 01-intro-context.md
+- 02 Problem and Goals — 02-problem-goals.md
+- 03 Users — 03-users.md
+- 04 Functional Requirements — 04-functional-requirements.md
+- 05 UI Goals — 05-ui-goals.md
+- 06 Technical — 06-technical.md
+- 07 Epic and Stories — 07-epic-stories.md
+- 08 Non-Functional — 08-nfr.md
+- 09 Decisions — 09-open-questions.md
diff --git a/docs/prd/01-intro-context.md b/docs/prd/01-intro-context.md
new file mode 100644
index 0000000..e0bfe10
--- /dev/null
+++ b/docs/prd/01-intro-context.md
@@ -0,0 +1,23 @@
+Intro Project Analysis and Context
+
+Existing Project Overview
+- Analysis Source: IDE-based fresh analysis of current repository (`biohazard-vfx-nextjs`).
+
+Current Project State
+- Type: Next.js 15 (App Router) + React 19 + TypeScript + TailwindCSS
+- UI libs: shadcn/ui primitives (via class-variance-authority, tailwindcss-animate), Lucide icons, custom components
+- Motion & scrolling: framer-motion/motion, lenis
+- Data layer: Prisma 6 with NextAuth; routes exist for projects, blog, faq, team, assets
+- Observability: Sentry configured (@sentry/nextjs), client/server configs present
+- IA present today (selected):
+ - Public: /projects, /projects/[id], /faq, /contact, /privacy, /terms
+ - Admin: /admin, /admin/{projects,blog,faq}, /admin/login
+- Docs: Architecture docs referenced in core-config are missing (docs/architecture/*), so this PRD derives from code and brainstorming results.
+
+Available Documentation Analysis
+- Primary input: docs/brainstorming-session-results.md (Five Whys, SCAMPER, IA/journeys, sticky split pattern, design tokens, typography pairs).
+- Additional docs: README.md, VISUAL_ENHANCEMENTS* provide context but are not canonical.
+
+Enhancement Complexity Assessment
+- Significant, multi-story enhancement: unify design system, navigation and IA, add sticky split components, standardize pages (Projects, Process, Studio, Contact), and establish tokens/typography. This warrants a full PRD with sequenced stories.
+
diff --git a/docs/prd/02-problem-goals.md b/docs/prd/02-problem-goals.md
new file mode 100644
index 0000000..6e1a76e
--- /dev/null
+++ b/docs/prd/02-problem-goals.md
@@ -0,0 +1,15 @@
+Problem Statement and Goals
+
+Problem
+- UX/UI fragmentation (inconsistent fonts, ad-hoc styles), unclear IA and navigation model, and lack of codified design system hinder clarity, polish, and delivery velocity.
+
+Goals
+- Establish a coherent brand-forward design system (tokens: color, type, spacing, motion).
+- Standardize IA and navigation (sidebar nav + command palette) aligned to key user journeys.
+- Implement reusable sticky split pattern for narrative + media without scroll‑jacking.
+- Upgrade core pages: Projects (reel + case studies), Process, Studio, Contact (smart form).
+- Preserve existing functionality and content while improving presentation and flows.
+
+Out of Scope (initial release)
+- Custom CMS; third‑party marketing automation; deep analytics beyond Sentry/basic events.
+
diff --git a/docs/prd/03-users.md b/docs/prd/03-users.md
new file mode 100644
index 0000000..f42e8ce
--- /dev/null
+++ b/docs/prd/03-users.md
@@ -0,0 +1,6 @@
+Users and Stakeholders
+
+- Primary: Directors/Producers evaluating capability and reliability.
+- Secondary: Studio partners, collaborators, and recruits.
+- Internal: Biohazard team (content ops, case study publishing, admin views).
+
diff --git a/docs/prd/04-functional-requirements.md b/docs/prd/04-functional-requirements.md
new file mode 100644
index 0000000..32b7d35
--- /dev/null
+++ b/docs/prd/04-functional-requirements.md
@@ -0,0 +1,20 @@
+Functional Requirements (FR)
+
+- FR1: Global design tokens for color, typography, spacing, and motion are defined and consumed across components.
+- FR2: Select and apply one headline/display font and one body font globally; remove conflicting fonts.
+- FR3: Sidebar navigation (persistent, collapsible) reflects target IA groups: Projects, Process, Studio, Contact.
+- FR4: Command palette (Cmd/Ctrl+K) for quick navigation and actions.
+- FR5: Projects section includes Reel, Case Studies index with filters, and Case Study detail pages.
+- FR6: Process section includes Pipeline, Tools, and Infrastructure subpages.
+- FR7: Studio section includes About, Team, Values pages.
+- FR8: Contact page implements smart intake form (project type, timeline, budget range, refs) with clear confirmation and next steps.
+- FR9: Sticky Split component pattern implemented and reusable across Home/Projects/Process/Studio.
+- FR10: Accessibility supports reduced motion, keyboard navigation, and visible focus management.
+
+Compatibility Requirements (CR)
+
+- CR1: Preserve existing public routes behavior and SEO where applicable (redirects if slugs change).
+- CR2: Maintain database schema and NextAuth integration; no breaking changes to auth flows.
+- CR3: UI/UX consistency with new tokens without breaking existing admin functions.
+- CR4: Integration compatibility with current API routes (/api/*) and Prisma models.
+
diff --git a/docs/prd/05-ui-goals.md b/docs/prd/05-ui-goals.md
new file mode 100644
index 0000000..fd68b54
--- /dev/null
+++ b/docs/prd/05-ui-goals.md
@@ -0,0 +1,17 @@
+UI Enhancement Goals
+
+Integration with Existing UI
+- Adopt Tailwind design tokens via CSS variables layered on current config; refactor shadcn components to consume tokens.
+- Consolidate color usage to a dark‑first palette (brand black/orange + neutrals) per brainstorming doc. [Confirmed]
+- Typography: Headings Rajdhani 600/700; Body Kanit 400/500. [Confirmed]
+
+Modified/New Screens and Views
+- Global: Layout with Sidebar Nav (not collapsible) and Command Palette; Footer.
+- Projects: Reel, Case Studies index (filters: type/tool/year), Case Study detail.
+- Process: Pipeline, Tools, Infrastructure.
+- Studio: About, Team, Values.
+- Contact: Smart Form + Confirmation page.
+
+UI Consistency Requirements
+- Tokenized spacing scale; motion presets; focus rings; media player wrapper for consistency.
+- Sticky Split pattern components and hooks as a shared lib; mobile fallbacks and reduced‑motion support.
diff --git a/docs/prd/06-technical.md b/docs/prd/06-technical.md
new file mode 100644
index 0000000..f1a8d67
--- /dev/null
+++ b/docs/prd/06-technical.md
@@ -0,0 +1,32 @@
+Technical Constraints and Integration Requirements
+
+Existing Technology Stack
+- Languages: TypeScript
+- Frameworks: Next.js 15 (App Router), React 19, TailwindCSS
+- Database: Prisma (SQLite/Postgres depending on env), NextAuth; optional Cloudflare D1 for contact submissions [Approved]
+- Infrastructure: Next build/start, Sentry for monitoring; no infra files for Vercel/CI in repo
+- External Dependencies: framer-motion/motion, lenis, uploadthing, shadcn primitives, zod, react-hook-form
+
+Integration Approach
+- Database Integration Strategy: No schema changes required; augment only content display and forms; ensure Contact writes via existing patterns or route additions without breaking Prisma clients.
+- API Integration Strategy: Reuse /api/* routes; add new endpoints cautiously (e.g., contact submissions) and version if needed. For contact persistence, allow optional integration with a Cloudflare Worker/D1 via server-side fetch, without impacting existing Prisma schema.
+- Frontend Integration Strategy: Introduce tokens and new components incrementally; gate behind feature flags if needed; refactor pages to consume tokens with minimal churn.
+- Testing Integration Strategy: Component tests for tokens and Sticky Split mechanics; route smoke tests; accessibility checks; performance snapshots.
+
+Code Organization and Standards
+- File Structure Approach: Keep src/app/* routes; add shared components under src/components/ui/* and src/components/patterns/sticky-split/*.
+- Naming Conventions: PascalCase for components, kebab for route segments, token names as --bh-*.
+- Coding Standards: ESLint + Prettier existing; maintain strict TS; avoid one‑off inline styles.
+- Documentation Standards: Co-locate README.md per component/pattern for usage; update main docs after shard.
+
+Deployment and Operations
+- Build Process Integration: Ensure no increase in warnings; tree-shake unused fonts/components.
+- Deployment Strategy: Incremental deploys; feature flags if needed; maintain redirects for IA adjustments.
+- Monitoring and Logging: Extend Sentry breadcrumbs for navigation and key CTA events.
+- Configuration Management: .env unchanged; add envs for contact handling only if required (e.g., Cloudflare credentials, D1 binding endpoint).
+
+Risk Assessment and Mitigation
+- Technical Risks: Global style regressions; performance drops from animation; font loading flashes.
+- Integration Risks: Breaking admin routes/layouts; IA changes affecting deep links.
+- Deployment Risks: CSS purge issues; caching of old assets.
+- Mitigation Strategies: Token gating and gradual rollout; perf budgets (CLS/LCP targets); redirects and manual QA script; font preloading.
diff --git a/docs/prd/07-epic-stories.md b/docs/prd/07-epic-stories.md
new file mode 100644
index 0000000..52f38fd
--- /dev/null
+++ b/docs/prd/07-epic-stories.md
@@ -0,0 +1,95 @@
+Epic and Story Structure
+
+Epic Structure Decision: Single epic focused on UX/UI unification with sequenced, low‑risk increments. [Confirmed]
+
+Epic 1: UX/UI Unification and Core Pages
+- Epic Goal: Unify design system and IA, implement reusable patterns, and elevate core pages while preserving existing functionality.
+- Integration Requirements: Each story verifies non‑regression on existing routes and key interactions; redirects for IA changes; accessibility and performance checks included.
+
+Story 1.1 Design Tokens and Typography
+As a visitor, I want a cohesive visual language so that the site feels premium and consistent.
+- Acceptance Criteria
+ 1. Global CSS variables for color, spacing, radii, shadows, and motion exist and are documented.
+ 2. Headline font and body font applied globally; extraneous fonts removed.
+ 3. Tailwind config consumes tokens; shadcn primitives reflect tokens.
+- Integration Verification
+ - IV1: No layout regressions in /projects, /faq, /contact.
+ - IV2: Admin pages remain functional and readable.
+ - IV3: Performance: no >10% increase in CSS/JS bundle.
+
+Story 1.2 Global Layout, Sidebar Nav, Command Palette
+As a user, I want clear navigation so that I can find Projects, Process, Studio, and Contact quickly.
+- Acceptance Criteria
+ 1. Sidebar navigation (persistent 240px; not collapsible) groups routes as defined.
+ 2. Command palette opens via Cmd/Ctrl+K with navigation to key routes.
+ 3. Footer includes minimal links; responsive behavior verified.
+- Integration Verification
+ - IV1: Deep links to existing /projects/[id] still resolve.
+ - IV2: Keyboard navigation and focus order preserved.
+ - IV3: No layout shift >0.1 CLS on nav open/close.
+
+Story 1.3 Sticky Split Pattern Library
+As a storyteller, I want a sticky split component so that narrative and media synchronize during scroll.
+- Acceptance Criteria
+ 1. components implemented with docs.
+ 2. Reduced‑motion mode disables heavy animations gracefully.
+ 3. Mobile layout stacks content; performance budget respected.
+- Integration Verification
+ - IV1: No scroll‑jacking; passive listeners only.
+ - IV2: A11y tree/focus unaffected.
+ - IV3: Frame budget within 16ms on mid‑range devices.
+
+Story 1.4 Projects Section Revamp
+As a prospect, I want a Reel and clear Case Studies so that I can assess capability fast.
+- Acceptance Criteria
+ 1. /projects index offers Reel + Case Studies tabs with filters.
+ 2. Case Study detail template with hero, problem, approach, pipeline, results, credits, CTA.
+ 3. Media player wrapper standardized.
+- Integration Verification
+ - IV1: Existing project data remains valid.
+ - IV2: SEO: titles/descriptions preserved or migrated.
+ - IV3: Page renders within current TTFB/LCP budgets.
+
+Story 1.5 Process Pages
+As a technical stakeholder, I want pipeline/tools/infrastructure pages so that I understand reliability and stack.
+- Acceptance Criteria
+ 1. /process/{pipeline,tools,infrastructure} pages implemented with sticky split or light reveals.
+ 2. Badge and icon components for stack and capabilities.
+ 3. Cross‑links to Projects and Contact.
+- Integration Verification
+ - IV1: No regressions to other routes.
+ - IV2: A11y checks pass.
+ - IV3: Bundle size growth <10% vs prior story.
+
+Story 1.6 Studio Pages
+As a partner, I want About, Team, and Values so that I can understand ethos and people.
+- Acceptance Criteria
+ 1. /studio/{about,team,values} with content placeholders.
+ 2. Quote/testimonial and logo wall optional components.
+ 3. Global tokens applied.
+- Integration Verification
+ - IV1: Nav and links correct.
+ - IV2: No console errors.
+ - IV3: Lighthouse a11y ≥ 90.
+
+Story 1.7 Contact Smart Form
+As an inquirer, I want a guided contact form so that I can convey project essentials quickly.
+- Acceptance Criteria
+ 1. Fields: project type, timeline, budget range, references/links; validation via zod.
+ 2. Success page with next steps/SLA.
+ 3. Optional route to persist submissions (or email integration) without breaking existing auth.
+- Integration Verification
+ - IV1: Rate limiting or basic abuse mitigation.
+ - IV2: Error states accessible and clear.
+ - IV3: No PII leakage in logs.
+
+Story 1.8 Hardening: Performance, Accessibility, SEO
+As a steward, I want the site to be fast and accessible so that it reflects professional standards.
+- Acceptance Criteria
+ 1. CLS < 0.1; LCP within target for hero pages; images lazy‑loaded.
+ 2. Keyboard navigation across all interactive elements; visible focus rings.
+ 3. Sentry breadcrumbs for nav/CTA; basic event tracking for key flows.
+- Integration Verification
+ - IV1: Compare metrics to pre‑enhancement baselines.
+ - IV2: No new 4xx/5xx in Sentry after launch.
+ - IV3: Sitemap/robots updated if IA changed.
diff --git a/docs/prd/08-nfr.md b/docs/prd/08-nfr.md
new file mode 100644
index 0000000..ee307cd
--- /dev/null
+++ b/docs/prd/08-nfr.md
@@ -0,0 +1,7 @@
+Non‑Functional Requirements (NFR)
+
+- Accessibility: Respect prefers-reduced-motion; maintain focus order; ARIA where needed.
+- Performance: No story may increase bundle size by >10% without explicit approval.
+- Reliability: No breaking changes to existing APIs or auth; error boundaries for new components.
+- Observability: Sentry enabled across new interactions; console clean.
+
diff --git a/docs/prd/09-open-questions.md b/docs/prd/09-open-questions.md
new file mode 100644
index 0000000..a07836e
--- /dev/null
+++ b/docs/prd/09-open-questions.md
@@ -0,0 +1,8 @@
+Decisions (Resolved)
+
+- Typography: Rajdhani (600/700) headings, Kanit (400/500) body — Approved.
+- Brand palette: Dark‑first black/orange + neutrals — Approved.
+- Navigation: Left sidebar (240px), not collapsible + Command Palette — Approved.
+- IA routes: /projects, /process, /studio, /contact with listed children — Approved.
+- Epic structure: Single-epic with Story 1.1 → 1.8 — Approved.
+- Contact handling: Persist submissions allowed; Cloudflare D1 acceptable; no compliance constraints — Approved.
diff --git a/docs/stories/1.1.design-tokens-and-typography.md b/docs/stories/1.1.design-tokens-and-typography.md
new file mode 100644
index 0000000..607b4b6
--- /dev/null
+++ b/docs/stories/1.1.design-tokens-and-typography.md
@@ -0,0 +1,93 @@
+Status
+
+Draft
+
+Story
+
+**As a** visitor,
+**I want** a cohesive visual language,
+**so that** the site feels premium and consistent.
+
+Acceptance Criteria
+
+1. Global CSS variables for color, spacing, radii, shadows, and motion exist and are documented.
+2. Headline font and body font applied globally; extraneous fonts removed.
+3. Tailwind config consumes tokens; shadcn primitives reflect tokens.
+
+Tasks / Subtasks
+
+- [ ] Define and align design tokens (AC: 1, 3)
+ - [ ] Audit existing tokens in `src/app/globals.css` (surface/text/brand, spacing, radius, transitions)
+ - [ ] Update palette to dark-first black/orange + neutrals per PRD; keep aliases for backward compat where needed
+ - [ ] Add motion presets and shadow tokens if missing; ensure `--radius` aligns with Tailwind theme.borderRadius
+ - [ ] Document token usage in a short README at `src/components/ui/README.md`
+- [ ] Apply typography pairing globally (AC: 2)
+ - [ ] In `src/app/layout.tsx:body`, set Kanit as base text font; Rajdhani for headings via utility/class
+ - [ ] Remove unused fonts (DM Serif, Bentham, Share) from layout font variables and any CSS usages
+ - [ ] Ensure weights available: Rajdhani 600/700 for headings; Kanit 400/500 for body
+ - [ ] Update `src/app/globals.css` heading selectors to use Rajdhani
+- [ ] Tailwind + shadcn integration (AC: 3)
+ - [ ] Map Tailwind theme colors to CSS vars (already partially done); ensure components read from vars
+ - [ ] Set Tailwind `fontFamily` to prefer CSS vars (e.g., body → Kanit, display → Rajdhani) where appropriate
+ - [ ] Verify shadcn primitives reflect tokenized colors, radius, and motion
+- [ ] Regression and quality checks
+ - [ ] Lint passes: `npm run lint`
+ - [ ] Build passes: `npm run build`
+ - [ ] Visual smoke check `/projects`, `/faq`, `/contact` for layout/regressions (Integration Verification IV1)
+ - [ ] Admin pages readable and functional (IV2)
+ - [ ] Bundle size does not grow >10% vs baseline; note result in Completion Notes (IV3)
+
+Dev Notes
+
+- Context
+ - PRD: docs/prd.md (Ready). Story 1.1 targets tokens + typography; sidebar choice does not affect this story.
+ - Typography pairing approved: Headings Rajdhani 600/700; Body Kanit 400/500.
+ - Palette direction approved: dark-first black/orange + neutrals.
+- Relevant Source Tree
+ - Layout file: src/app/layout.tsx:1 — loads multiple local fonts and assigns body class variables.
+ - Global styles: src/app/globals.css:1 — defines CSS variables and sets current fonts (Bentham, DM Serif for headings).
+ - Tailwind config: tailwind.config.ts:1 — maps theme colors to CSS vars; sets font families (currently Inter/Cal Sans defaults).
+ - Shared components likely to reflect tokens: src/components/* (e.g., Buttons/Forms use radius/colors).
+- Required Changes (high level)
+ - Remove DM Serif, Bentham, Share font variables from body class list in layout; keep Rajdhani and Kanit only.
+ - Switch body font-family in globals.css to `var(--font-kanit)`, headings h1–h3 to `var(--font-rajdhani)`.
+ - Ensure Tailwind `fontFamily` values either include CSS variable driven stacks or rely on element selectors; do not regress shadcn styles.
+ - Tokenize any hardcoded colors in components if encountered while verifying ACs (limit scope to token plumbing, not a full refactor).
+
+Testing
+
+- Standards
+ - Use existing linting (ESLint + Prettier) and Next build as gates; no unit test framework present in repo.
+ - Accessibility: verify visible focus rings remain; respect prefers-reduced-motion (no changes expected in this story).
+ - Performance: capture approximate bundle size before/after with `next build` output; ensure <10% growth.
+- Manual Checks
+ - Pages: `/projects`, `/faq`, `/contact`, `/admin/*` render without font fallback flashes and with expected fonts.
+ - Visual: Headings visibly using Rajdhani, body using Kanit.
+
+Change Log
+
+| Date | Version | Description | Author |
+|------|---------|-------------|--------|
+| 2025-09-24 | v1 | Initial draft from PRD Story 1.1 | Scrum Master |
+
+Dev Agent Record
+
+Agent Model Used
+
+{{agent_model_name_version}}
+
+Debug Log References
+
+
+
+Completion Notes List
+
+
+
+File List
+
+
+
+QA Results
+
+
diff --git a/docs/stories/1.2.global-layout-sidebar-nav-command-palette.md b/docs/stories/1.2.global-layout-sidebar-nav-command-palette.md
new file mode 100644
index 0000000..b71d148
--- /dev/null
+++ b/docs/stories/1.2.global-layout-sidebar-nav-command-palette.md
@@ -0,0 +1,98 @@
+Status
+
+Approved
+
+Story
+
+**As a** user,
+**I want** clear global navigation and a command palette,
+**so that** I can find Projects, Process, Studio, and Contact quickly.
+
+Acceptance Criteria
+
+1. Sidebar navigation (persistent 240px; not collapsible) groups routes as defined.
+2. Command palette opens via Cmd/Ctrl+K with navigation to key routes.
+3. Footer includes minimal links; responsive behavior verified.
+
+Tasks / Subtasks
+
+- [ ] Implement Global Sidebar (AC: 1)
+ - [ ] Create `src/components/GlobalSidebar.tsx` with fixed left sidebar width 240px; not collapsible
+ - [ ] Nav groups: Projects, Process, Studio, Contact; include sublinks only for existing pages to avoid 404s
+ - [ ] Active route highlighting using `usePathname()`; keyboard focus states visible
+ - [ ] Add brand/title area and optional small logo at top; keep minimal
+ - [ ] Ensure Admin routes continue to use existing `AdminSidebar` and hide GlobalSidebar on `/admin/*`
+- [ ] Integrate Sidebar into Layout (AC: 1, 3)
+ - [ ] Update `src/app/layout.tsx` to render `GlobalSidebar` on public routes
+ - [ ] Wrap page content in a container with `padding-left: 240px` (md+) to account for fixed sidebar
+ - [ ] Keep `Footer` rendered; verify layout rhythm with tokens
+ - [ ] Remove or disable `Navigation` pill nav on public routes (it is redundant with sidebar)
+- [ ] Implement Command Palette — minimal, no new deps (AC: 2)
+ - [ ] Create `src/components/CommandPalette.tsx` as a lightweight overlay using React state and tokenized styles (no new dependency)
+ - [ ] Register global hotkey `Cmd/Ctrl+K` to toggle; `ESC` closes; use focus trap with native techniques and ARIA attributes
+ - [ ] Commands: navigate to top-level routes and key admin entry (if authenticated)
+ - [ ] Fuzzy filter: simple case-insensitive `includes` across labels and paths (acceptable MVP)
+ - [ ] Mount globally via `src/components/Providers.tsx` or `src/app/layout.tsx`
+- [ ] Responsive and A11y
+ - [ ] On small screens, layout stacks with sidebar appearing as a static top section or off-canvas; no collapse control required
+ - [ ] Ensure keyboard navigation order is logical: body → sidebar → content → footer; visible focus rings
+ - [ ] No layout shift > 0.1 CLS when interacting with palette
+- [ ] Regression and quality checks
+ - [ ] Lint passes: `npm run lint`
+ - [ ] Build passes: `npm run build`
+ - [ ] Deep links to existing `/projects/[id]` still resolve (IV1)
+ - [ ] Keyboard navigation and focus order preserved (IV2)
+ - [ ] No CLS > 0.1 on nav open/close; document evidence (IV3)
+
+Dev Notes
+
+- Context
+ - PRD Story 1.2 acceptance confirmed; sidebar must not be collapsible.
+ - Keep Admin area behavior: `Navigation` currently hides on `/admin/*`; Admin uses `AdminSidebar`.
+- Relevant Source Tree
+ - Layout: src/app/layout.tsx:1 — renders `Navigation`, `Footer`, and ``.
+ - Navigation: src/components/Navigation.tsx:1 — floating pill nav (to be replaced on public routes).
+ - Admin Sidebar: src/components/Navigation.tsx (export `AdminSidebar`) — serves as reference for sidebar styles/structure.
+ - Providers: src/components/Providers.tsx — global context location; suitable to mount command palette provider if needed.
+- Implementation Guidance
+ - Sidebar width constant: 240px; token-friendly classes using Tailwind spacing if desired.
+ - Use existing surface/text token classes (e.g., `bg-surface-900`, `text-text-muted`).
+ - Command Palette: if no command component installed, prefer `cmdk` or `@radix-ui/react-dialog` + custom list; keep dependency minimal. Confirm with PO before adding new deps if needed.
+ - Ensure `Navigation` pill nav is removed/hidden to avoid duplicate nav elements.
+
+Testing
+
+- Manual
+ - Verify sidebar present on `/`, `/projects`, `/faq`, `/contact` and not present on `/admin/*`.
+ - Keyboard: Tab through sidebar links and palette; ESC closes palette; Cmd/Ctrl+K toggles.
+ - Mobile: No broken layout; sidebar not required to collapse but must not obstruct content.
+- Metrics
+ - CLS during palette interaction ≤ 0.1.
+ - Build artifacts show no significant increase; note any added dependency and size impact.
+
+Change Log
+
+| Date | Version | Description | Author |
+|------|---------|-------------|--------|
+| 2025-09-24 | v1 | Initial draft from PRD Story 1.2 | Scrum Master |
+
+Dev Agent Record
+
+Agent Model Used
+
+{{agent_model_name_version}}
+
+Debug Log References
+
+
+
+Completion Notes List
+
+
+
+File List
+
+
+
+QA Results
+
diff --git a/docs/stories/1.3.sticky-split-pattern-library.md b/docs/stories/1.3.sticky-split-pattern-library.md
new file mode 100644
index 0000000..9c2b435
--- /dev/null
+++ b/docs/stories/1.3.sticky-split-pattern-library.md
@@ -0,0 +1,107 @@
+Status
+
+Draft
+
+Story
+
+**As a** storyteller,
+**I want** a sticky split component,
+**so that** narrative and media synchronize during scroll.
+
+Acceptance Criteria
+
+1. components implemented with docs.
+2. Reduced‑motion mode disables heavy animations gracefully.
+3. Mobile layout stacks content; performance budget respected.
+
+Tasks / Subtasks
+
+- [ ] Scaffold pattern components (AC: 1)
+ - [ ] Create folder `src/components/patterns/sticky-split/`
+ - [ ] Add files: `Section.tsx`, `Sticky.tsx`, `Track.tsx`, `Panel.tsx`, `index.ts`
+ - [ ] Export namespaced API: `StickySplit = { Section, Sticky, Track, Panel }`
+ - [ ] Define props:
+ - Section: `{ id: string; height?: string | number; side?: 'left'|'right'; className?: string }`
+ - Sticky: `{ offset?: string; className?: string }`
+ - Track: `{ className?: string }`
+ - Panel: `{ index: number; inVariants?: Variants; outVariants?: Variants; className?: string }`
+ - [ ] Provide sensible defaults: `height='200vh'`, `side='left'`, sticky `offset='var(--sticky-top, 8vh)'`
+- [ ] Progress computation (AC: 1)
+ - [ ] Implement `useSectionProgress(id)` in `src/components/patterns/sticky-split/useSectionProgress.ts`
+ - [ ] Use `IntersectionObserver` on Section root to compute 0..1 progress across its scroll range
+ - [ ] Ensure passive listeners only; no wheel/touch blocking; avoid scroll‑jacking
+- [ ] Animation integration (AC: 1)
+ - [ ] Use `framer-motion` `motion.div` inside `Panel` and map `progress` to opacity/transform via `useTransform`
+ - [ ] Add optional `inVariants/outVariants` props; default to subtle fade/scale
+- [ ] Reduced motion (AC: 2)
+ - [ ] Use `useReducedMotion()` from framer‑motion; if true, disable transforms and show panels as static stack
+- [ ] Mobile layout + fallbacks (AC: 3)
+ - [ ] Apply responsive CSS: below `md`, stack vertically; disable sticky; panels visible with light reveal‑on‑view (IO add/remove `is-visible` class)
+ - [ ] Above `md`, two‑column grid with left sticky narrative and right scroll track; allow `side='right'` to invert
+- [ ] Tokens and base styles (AC: 1,3)
+ - [ ] Define CSS vars in `src/app/globals.css`: `--sticky-top`, `--panel-gap`, `--reveal-duration`, `--reveal-ease`
+ - [ ] Provide utility classes for the pattern container grid and gaps using Tailwind + CSS vars
+- [ ] Documentation & example (AC: 1)
+ - [ ] Add `src/components/patterns/sticky-split/README.md` with usage, props, and examples
+ - [ ] Include a small demo component `Demo.tsx` showcasing 3 panels; do not add a new route in this story
+- [ ] Quality gates & perf
+ - [ ] Lint passes: `npm run lint`
+ - [ ] Build passes: `npm run build`
+ - [ ] Verify no main thread jank on mid‑range device; keep frame budget ≈16ms for panel transitions
+ - [ ] Confirm passive listeners; no prevention of native scroll
+
+Dev Notes
+
+- Context
+ - Derived from PRD Story 1.3. Target: reusable pattern inspired by “Basement Foundry” style; no scroll‑jacking.
+ - Typography and tokens are handled in Story 1.1; this story may add a few CSS vars specific to the pattern.
+- Relevant Source Tree
+ - Component home: `src/components/patterns/sticky-split/*`
+ - Tailwind/CSS tokens: `src/app/globals.css`, `tailwind.config.ts`
+ - Motion libs: `framer-motion`/`motion` available in dependencies.
+- Implementation Guidance
+ - Section renders a responsive two‑column grid (`md:grid md:grid-cols-2`) with a fixed sticky column and a scrolling track column; swap order with `side`.
+ - Sticky uses `position: sticky; top: var(--sticky-top)` and inherits tokenized spacing/gap via CSS vars.
+ - Track holds `Panel` children; each Panel uses the section progress (or per‑panel thresholds like `index / (N-1)`) to compute in/out.
+ - Reduced motion: early return static markup; prefer opacity reveals without transforms.
+ - Accessibility: preserve DOM order for reading; keep focusable content reachable; avoid trapping focus.
+ - Performance: avoid large fixed layers; prefer `will-change: transform` only while animating; lazy‑load media inside panels.
+
+Testing
+
+- Manual
+ - With default motion: panels fade/transform smoothly as the section scrolls; no scroll blocking.
+ - With `prefers-reduced-motion`: panels render as static stack; no transforms/animations.
+ - Mobile: stacked layout; sticky disabled; content readable and navigable.
+- Perf
+ - Inspect Chrome Performance or DevTools frame rate timeline; verify transitions stay near 60fps on typical hardware.
+- A11y
+ - Keyboard navigation reaches all interactive elements inside Sticky and Track; focus order logical.
+
+Change Log
+
+| Date | Version | Description | Author |
+|------|---------|-------------|--------|
+| 2025-09-24 | v1 | Initial draft from PRD Story 1.3 | Scrum Master |
+
+Dev Agent Record
+
+Agent Model Used
+
+{{agent_model_name_version}}
+
+Debug Log References
+
+
+
+Completion Notes List
+
+
+
+File List
+
+
+
+QA Results
+
+
diff --git a/docs/stories/1.4.projects-section-revamp.md b/docs/stories/1.4.projects-section-revamp.md
new file mode 100644
index 0000000..e11386a
--- /dev/null
+++ b/docs/stories/1.4.projects-section-revamp.md
@@ -0,0 +1,98 @@
+Status
+
+Approved
+
+Story
+
+**As a** prospect,
+**I want** a Reel and clear Case Studies,
+**so that** I can assess capability fast.
+
+Acceptance Criteria
+
+1. `/projects` index offers Reel + Case Studies tabs with filters.
+2. Case Study detail template with hero, problem, approach, pipeline, results, credits, CTA.
+3. Media player wrapper standardized.
+4. Reel asset source uses explicit priority order: prefer `projects.reel.video` → then `projects.reel.embed` → then fallback `projects.hero.image`.
+5. Defaults are clear and testable: initial tab = Case Studies; filters default to All (no category/year/search applied); selected tab and filters reflected in URL query params.
+
+Tasks / Subtasks
+
+- [ ] Projects Index: Tabs + Filters (AC: 1)
+ - [ ] Update `src/app/projects/ProjectsPageClient.tsx` to render two tabs: "Reel" and "Case Studies"; default tab = Case Studies
+ - [ ] Reel tab: show a featured hero reel using asset priority: `projects.reel.video` → `projects.reel.embed` → `projects.hero.image` (fallback), via MediaPlayer wrapper
+ - [ ] Case Studies tab: grid/list using existing `ProjectGrid` or current card layout; integrate filters: Category, Year (from `createdAt`), and a text Search; default filters = All
+ - [ ] Persist selected tab and filters in URL query params (e.g., `?tab=case-studies&category=...&year=...&q=...`)
+ - [ ] Ensure server data fetch in `src/app/projects/page.tsx` still passes through; client filters run on received data without extra queries
+
+- [ ] Case Study Detail Template Enhancements (AC: 2)
+ - [ ] In `src/app/projects/[id]/ProjectPageClient.tsx`, introduce section layout: Hero → Problem → Approach → Pipeline Highlights → Results → Credits → CTA
+ - [ ] Map to existing fields without schema changes: use `info` for Problem/Approach/Pipeline/Results via subheadings if markdown; keep Credits as is
+ - [ ] Add a CTA block at end (e.g., Link to `/contact`) styled with token classes
+ - [ ] Replace inline video/embed rendering with MediaPlayer wrapper component
+ - [ ] Maintain existing SEO metadata in `[id]/page.tsx`
+
+- [ ] Media Player Wrapper (AC: 3)
+ - [ ] Create `src/components/media/MediaPlayer.tsx` that accepts: `{ video?: string; embed?: string; poster?: string; className?: string }`
+ - [ ] Standardize controls, aspect ratio, poster overlay, and mute/autoplay policy; integrate `useAutoplayVideos` for in-view playback when muted
+ - [ ] Support iframe embeds safely with required attributes; fall back to poster image
+ - [ ] Replace usages in Project detail and Reel tab
+
+- [ ] Quality and Integration Verification
+ - [ ] Lint/build pass: `npm run lint` / `npm run build`
+ - [ ] IV1: Existing project data remains valid; no runtime errors if fields missing
+ - [ ] IV2: SEO titles/descriptions preserved or improved (no regressions in `generatePageMetadata`)
+ - [ ] IV3: Page LCP/TTFB within current budgets; avoid heavy client work on first paint; lazy-load media
+
+Dev Notes
+
+- Context
+ - PRD Story 1.4. No DB schema changes; use current fields (`category`, `tags`, `createdAt`, `video`, `embed`, `thumbnail`, `info`, `credits`).
+ - Standardize media with a wrapper used in both index (Reel) and detail.
+- Relevant Source Tree
+ - Index: `src/app/projects/page.tsx`, `src/app/projects/ProjectsPageClient.tsx`
+ - Detail: `src/app/projects/[id]/page.tsx`, `src/app/projects/[id]/ProjectPageClient.tsx`
+ - Components: `src/components/ProjectGrid.tsx`, `src/components/ScrollEnhancements.tsx`, `src/components/motion/useAutoplayVideos.ts`
+ - Assets/Metadata: `src/lib/metadata.ts`, `src/lib/assets.ts`, Prisma models in `prisma/*`
+- Implementation Guidance
+ - Tabs can be simple client state with tokens; no dependency on heavy UI libs necessary.
+ - Filters operate on the in-memory list from server; for Year, derive from `createdAt`.
+ - If markdown present in `info`/`credits`, `MarkdownContent` already used in detail; leverage for subheadings.
+ - Keep accessibility: keyboard focus, visible focus rings, no scroll-jacking.
+
+Testing
+
+- Manual
+ - `/projects`: switching tabs does not remount unnecessarily; URL reflects current tab/filters.
+ - Filters: combining Category + Year + Search updates the grid correctly; clearing filters resets view.
+ - Detail page: sections render with meaningful headings; CTA routes to `/contact`.
+- Regression
+ - Deep-links to existing `/projects/[id]` still function.
+ - No console errors/warnings introduced.
+ - Media playback behaves consistently and does not auto-play with sound.
+
+Change Log
+
+| Date | Version | Description | Author |
+|------|---------|-------------|--------|
+| 2025-09-24 | v1 | Initial draft from PRD Story 1.4 | Scrum Master |
+
+Dev Agent Record
+
+Agent Model Used
+
+{{agent_model_name_version}}
+
+Debug Log References
+
+
+
+Completion Notes List
+
+
+
+File List
+
+
+
+QA Results
diff --git a/docs/stories/1.5.process-pages.md b/docs/stories/1.5.process-pages.md
new file mode 100644
index 0000000..a50ac8a
--- /dev/null
+++ b/docs/stories/1.5.process-pages.md
@@ -0,0 +1,92 @@
+Status
+
+Draft
+
+Story
+
+**As a** technical stakeholder,
+**I want** pipeline/tools/infrastructure pages,
+**so that** I understand reliability and stack.
+
+Acceptance Criteria
+
+1. `/process/{pipeline,tools,infrastructure}` pages implemented with sticky split or light reveals.
+2. Badge and icon components for stack and capabilities.
+3. Cross‑links to Projects and Contact.
+
+Tasks / Subtasks
+
+- [ ] Create Process Route Group (AC: 1)
+ - [ ] Add directories: `src/app/process/pipeline`, `src/app/process/tools`, `src/app/process/infrastructure`
+ - [ ] Each with `page.tsx` implementing a top section and content blocks
+ - [ ] Use `StickySplit` pattern from Story 1.3 when available; until then, use light `IntersectionObserver` reveals
+- [ ] Pipeline Page (AC: 1, 3)
+ - [ ] Content outline: Ingest → Tracking → FX → Lighting → Comp → Review; each as a Panel/Section
+ - [ ] Include a small stepper or numbered headings; use token colors and spacing
+ - [ ] Cross‑links: CTA buttons to `/projects` and `/contact`
+- [ ] Tools Page (AC: 1, 2, 3)
+ - [ ] Content outline: Houdini, Nuke, Unreal, Custom pipeline; brief capability notes
+ - [ ] Implement `Badge` component for tool tags: `src/components/ui/Badge.tsx` or utility class; tokenized colors
+ - [ ] Optional icon grid using Tabler icons already in repo (`@tabler/icons-react`)
+ - [ ] Cross‑links to Projects/Contact
+- [ ] Infrastructure Page (AC: 1, 2, 3)
+ - [ ] Content outline: Render, Storage, Automation/CI for assets; reliability notes
+ - [ ] Use badges for capability indicators (e.g., GPU, caching, versioning)
+ - [ ] Cross‑links to Projects/Contact
+- [ ] A11y and Responsive
+ - [ ] Mobile stacks; if StickySplit used, disable sticky on small screens
+ - [ ] Keyboard focus order logical; visible focus rings; headings structured (h1→h2→h3)
+- [ ] Quality and Integration Verification
+ - [ ] Lint/build pass: `npm run lint` / `npm run build`
+ - [ ] IV1: No regressions to other routes
+ - [ ] IV2: A11y checks pass (landmarks, headings, focus ring)
+ - [ ] IV3: Bundle size growth <10% vs prior story
+
+Dev Notes
+
+- Context
+ - PRD Story 1.5. New route group; no backend changes required.
+ - Prefer `StickySplit` components if Story 1.3 is implemented first; otherwise keep implementation simple.
+- Relevant Source Tree
+ - New routes: `src/app/process/*`
+ - Components: `src/components/Navigation.tsx` (reference AdminSidebar styles), `src/components` for potential reuse
+ - Icons: `@tabler/icons-react` already in dependencies
+- Implementation Guidance
+ - Keep copy concise; use tokens for surface and text colors
+ - Reuse button styles for CTAs; ensure links include descriptive aria-labels
+
+Testing
+
+- Manual
+ - Verify each page renders and links to `/projects` and `/contact`
+ - StickySplit (if used) respects reduced-motion and does not block native scroll
+- Regression
+ - Ensure new routes do not affect existing `/projects` or admin behavior
+
+Change Log
+
+| Date | Version | Description | Author |
+|------|---------|-------------|--------|
+| 2025-09-24 | v1 | Initial draft from PRD Story 1.5 | Scrum Master |
+
+Dev Agent Record
+
+Agent Model Used
+
+{{agent_model_name_version}}
+
+Debug Log References
+
+
+
+Completion Notes List
+
+
+
+File List
+
+
+
+QA Results
+
+
diff --git a/docs/stories/1.6.studio-pages.md b/docs/stories/1.6.studio-pages.md
new file mode 100644
index 0000000..6842c12
--- /dev/null
+++ b/docs/stories/1.6.studio-pages.md
@@ -0,0 +1,85 @@
+Status
+
+Draft
+
+Story
+
+**As a** partner,
+**I want** About, Team, and Values pages,
+**so that** I can understand ethos and people.
+
+Acceptance Criteria
+
+1. `/studio/{about,team,values}` with content placeholders.
+2. Quote/testimonial and logo wall optional components.
+3. Global tokens applied.
+
+Tasks / Subtasks
+
+- [ ] Create Studio Route Group (AC: 1)
+ - [ ] Add directory `src/app/studio` and subroutes: `about/page.tsx`, `team/page.tsx`, `values/page.tsx`
+ - [ ] Use shared layout from root; ensure pages inherit global tokens and typography
+- [ ] About Page (AC: 1, 3)
+ - [ ] Compose mission and ethos sections using tokens (`text-text-muted`, `bg-surface-*`)
+ - [ ] Optionally include `AboutSection` if suitable; otherwise lightweight copy with imagery placeholder
+- [ ] Team Page (AC: 1, 2, 3)
+ - [ ] Leverage existing `CrewSection` and/or create simple team grid from available data or placeholder cards
+ - [ ] Include an optional testimonials area using `TestimonialsSection`
+- [ ] Values Page (AC: 1, 2, 3)
+ - [ ] Present values (e.g., Meticulous, Robust, Collaborative, Artist‑first) as tokenized badges or cards
+ - [ ] Optional “logo wall” placeholder if client logos are available later; keep component minimal and accessible
+- [ ] Navigation and Cross‑links
+ - [ ] Ensure new routes are linked from global sidebar (Story 1.2) and footer
+ - [ ] CTAs to `/projects` and `/contact` where appropriate
+- [ ] Quality and Integration Verification
+ - [ ] Lint/build pass: `npm run lint` / `npm run build`
+ - [ ] IV1: Nav and links correct (no broken routes)
+ - [ ] IV2: No console errors/warnings in runtime
+ - [ ] IV3: Lighthouse a11y ≥ 90 on these pages (headings/landmarks/focus)
+
+Dev Notes
+
+- Context
+ - PRD Story 1.6. New route group `/studio` with three pages; content can be placeholders styled with tokens.
+- Relevant Source Tree
+ - Components available: `src/components/TestimonialsSection.tsx`, `src/components/CrewSection.tsx`, `src/components/AboutSection.tsx`
+ - Global styles/tokens: `src/app/globals.css`; layout: `src/app/layout.tsx`
+- Implementation Guidance
+ - Keep copy concise; use semantic headings (h1 per page, h2 for sections)
+ - Use existing token classes for surfaces, text, spacing; avoid inline styles
+ - If data for team is not available, structure components to accept props later; ship with placeholder items
+
+Testing
+
+- Manual
+ - Load `/studio/about`, `/studio/team`, `/studio/values`; verify typography and tokens applied
+ - Keyboard navigation across interactive elements; visible focus rings
+ - Links to `/projects` and `/contact` functional
+
+Change Log
+
+| Date | Version | Description | Author |
+|------|---------|-------------|--------|
+| 2025-09-24 | v1 | Initial draft from PRD Story 1.6 | Scrum Master |
+
+Dev Agent Record
+
+Agent Model Used
+
+{{agent_model_name_version}}
+
+Debug Log References
+
+
+
+Completion Notes List
+
+
+
+File List
+
+
+
+QA Results
+
+
diff --git a/docs/stories/1.7.contact-smart-form.md b/docs/stories/1.7.contact-smart-form.md
new file mode 100644
index 0000000..d32edd2
--- /dev/null
+++ b/docs/stories/1.7.contact-smart-form.md
@@ -0,0 +1,93 @@
+Status
+
+Approved
+
+Story
+
+**As an** inquirer,
+**I want** a guided contact form,
+**so that** I can convey project essentials quickly.
+
+Acceptance Criteria
+
+1. Fields: project type, timeline, budget range, references/links; validation via zod.
+ 2. Success page with next steps/SLA.
+ 3. Optional route to persist submissions (or email integration) without breaking existing auth.
+4. API response contract is explicit and enforced: returns JSON `{ ok: boolean, message?: string }` on both success and error.
+5. Basic server-side abuse mitigation in place: rate limiting of 5 requests per minute per client IP with appropriate error messaging in the response shape.
+
+Tasks / Subtasks
+
+- [ ] Form fields and validation (AC: 1)
+ - [ ] Extend `src/app/contact/page.tsx` with fields: `projectType` (select), `timeline` (select or free text), `budgetRange` (select), `references` (textarea or list of URLs)
+ - [ ] Convert to React Hook Form + Zod schema for client-side validation; enforce valid email and optional URL list parsing
+ - [ ] Keep existing first/last/subject/message fields; align labels and helper text with tokens
+- [ ] Submission handling (AC: 1, 3)
+ - [ ] Replace direct Web3Forms POST with internal API route `src/app/api/contact/route.ts` that forwards to:
+ a) Web3Forms (current behavior) if configured, or
+ b) Cloudflare Worker/D1 endpoint if env vars provided (optional persistence)
+ - [ ] Sanitize inputs server-side; add basic rate limiting (IP-based, 5 requests/minute per IP)
+ - [ ] Return structured JSON `{ ok: boolean, message?: string }`
+- [ ] Success page (AC: 2)
+ - [ ] Add `src/app/contact/success/page.tsx` with confirmation content and what happens next (SLA)
+ - [ ] After successful submission, navigate to `/contact/success` with a minimal state (no PII in URL)
+- [ ] A11y and UX
+ - [ ] Error messaging announced to screen readers; inputs with `aria-invalid` and `aria-describedby`
+ - [ ] Disabled submit state and spinner while submitting; keyboard-friendly focus order
+ - [ ] Privacy note near submit; link to `/privacy`
+- [ ] Quality and Integration Verification
+ - [ ] Lint/build pass: `npm run lint` / `npm run build`
+ - [ ] IV1: Rate limiting or basic abuse mitigation is active (manual check)
+ - [ ] IV2: Error states accessible and clear (screen reader test)
+ - [ ] IV3: No PII leakage in logs (log only metadata, never form body)
+
+Dev Notes
+
+- Context
+ - PRD Story 1.7. Contact page exists and posts to Web3Forms. This story moves submission to an internal API, adds guided fields, and adds a success page. Cloudflare D1 is optional and must not affect Prisma schema.
+- Relevant Source Tree
+ - Contact page: `src/app/contact/page.tsx`
+ - New success page: `src/app/contact/success/page.tsx`
+ - New API: `src/app/api/contact/route.ts` (POST)
+ - Utilities: `src/components/Forms.tsx` (reuse Input/Textarea components); `src/lib/utils.ts`
+- Implementation Guidance
+ - Zod schema example fields: `projectType: enum(['Commercial','Music Video','Narrative','Other'])`, `timeline: string`, `budgetRange: enum(['<10k','10–50k','50–200k','200k+','TBD'])`, `references: string` (parse to URLs), `firstName/lastName/email/subject/message`.
+ - API route: forward payload; for Cloudflare, use `fetch(CF_CONTACT_ENDPOINT, { method:'POST', headers: { Authorization: CF_CONTACT_AUTH, 'Content-Type': 'application/json' }, body })`; do not include secrets in client bundle.
+ - Environment variables: `NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY` (existing), optional `CF_CONTACT_ENDPOINT`, `CF_CONTACT_AUTH`.
+ - Rate limit: simple in-memory map 5/min/IP; acceptable for MVP.
+
+Testing
+
+- Manual
+ - Validation: invalid email blocks submit; references accept comma/newline separated URLs
+ - After success, user lands on `/contact/success`; browser back shows preserved inputs or reset as designed
+ - Privacy and Terms links open and are accessible
+- Regression
+ - Ensure no auth flows are affected; admin pages continue to work
+ - Logs contain no PII
+
+Change Log
+
+| Date | Version | Description | Author |
+|------|---------|-------------|--------|
+| 2025-09-24 | v1 | Initial draft from PRD Story 1.7 | Scrum Master |
+
+Dev Agent Record
+
+Agent Model Used
+
+{{agent_model_name_version}}
+
+Debug Log References
+
+
+
+Completion Notes List
+
+
+
+File List
+
+
+
+QA Results
diff --git a/docs/stories/1.8.hardening-performance-accessibility-seo.md b/docs/stories/1.8.hardening-performance-accessibility-seo.md
new file mode 100644
index 0000000..1b37dab
--- /dev/null
+++ b/docs/stories/1.8.hardening-performance-accessibility-seo.md
@@ -0,0 +1,98 @@
+Status
+
+Draft
+
+Story
+
+**As a** steward,
+**I want** the site to be fast and accessible,
+**so that** it reflects professional standards.
+
+Acceptance Criteria
+
+1. CLS < 0.1; LCP within target for hero pages; images lazy‑loaded.
+2. Keyboard navigation across all interactive elements; visible focus rings.
+3. Sentry breadcrumbs for nav/CTA; basic event tracking for key flows.
+
+Tasks / Subtasks
+
+- [ ] Establish baselines and budgets (AC: 1)
+ - [ ] Record current build metrics and bundle size from `next build` (note in Completion Notes)
+ - [ ] Define budgets: CLS < 0.1, LCP within prior baseline (or ≤ 2.5s on desktop), JS/CSS bundle growth ≤ 10%
+- [ ] Font optimization (AC: 1)
+ - [ ] Limit loaded fonts to approved weights: Rajdhani 600/700, Kanit 400/500
+ - [ ] Remove unused local fonts (DM Serif, Bentham, Share) from `src/app/layout.tsx` and global CSS references
+ - [ ] Preload only critical fonts via `next/font/local` (display: 'swap') and avoid redundant weights
+- [ ] Image and media performance (AC: 1)
+ - [ ] Ensure all non-hero images use lazy loading (Next/Image defaults) and appropriate sizes
+ - [ ] Keep hero media `priority` only where necessary to avoid over-fetching
+ - [ ] Audit `ImageWithFallback` to ensure it forwards width/height/priority and uses `loading="lazy"` when not priority
+ - [ ] Defer heavy media; use poster images and avoid auto-play with sound
+- [ ] Motion and reduced-motion (AC: 2)
+ - [ ] Respect `prefers-reduced-motion` globally (CSS and framer-motion hooks) and in StickySplit pattern
+ - [ ] Avoid scroll‑jacking and ensure passive listeners on scroll/IO
+- [ ] Keyboard and focus (AC: 2)
+ - [ ] Verify visible focus outlines on links, buttons, inputs (tokenized focus styles if needed)
+ - [ ] Ensure logical tab order with new GlobalSidebar and CommandPalette; ESC closes palette; aria attributes present
+ - [ ] Add skip-to-content link at top of page
+- [ ] Sentry breadcrumbs and event logging (AC: 3)
+ - [ ] Add lightweight event util in `src/lib/telemetry.ts` to record nav clicks and primary CTAs to Sentry
+ - [ ] Wire into GlobalSidebar link clicks and key CTAs (e.g., Contact CTA on Projects/Process)
+- [ ] SEO and IA updates (AC: 1)
+ - [ ] Update `src/app/sitemap.ts` to include new routes: `/process/*`, `/studio/*`
+ - [ ] Verify metadata titles/descriptions for new pages via `generatePageMetadata`
+- [ ] Quality gates
+ - [ ] Lint/build pass: `npm run lint` / `npm run build`
+ - [ ] Re-measure CLS/LCP after changes; document in Completion Notes; ensure ≤ budget
+ - [ ] Confirm no new 4xx/5xx in Sentry (post-deploy checklist)
+
+Dev Notes
+
+- Context
+ - PRD Story 1.8. Focus on performance, accessibility, and observability. No schema changes.
+ - Sidebar is not collapsible by decision; ensure keyboard and focus handling is robust.
+- Relevant Source Tree
+ - Fonts/Layout: `src/app/layout.tsx:1`, `src/app/globals.css:1`
+ - Images: `src/components/ui/ImageWithFallback.tsx`, usages across pages
+ - Navigation/Sidebar/Palette: `src/components/Navigation.tsx` (AdminSidebar), GlobalSidebar/CommandPalette (Story 1.2)
+ - Metadata/Sitemap: `src/lib/metadata.ts`, `src/app/sitemap.ts`
+ - Sentry: `sentry.client.config.js`, `sentry.server.config.ts`, `sentry.edge.config.ts`
+
+Testing
+
+- Performance
+ - Use `next build` output and browser DevTools (Performance tab) to spot LCP elements and layout shifts
+ - Verify images have correct `sizes` and lazy loading; ensure minimal CLS
+- Accessibility
+ - Keyboard-only navigation across core pages; visible focus, skip link works
+ - Screen reader quick checks (headings/landmarks/labels)
+- Observability
+ - Trigger nav/CTA clicks and confirm breadcrumbs appear in Sentry (locally verify logging calls)
+
+Change Log
+
+| Date | Version | Description | Author |
+|------|---------|-------------|--------|
+| 2025-09-24 | v1 | Initial draft from PRD Story 1.8 | Scrum Master |
+
+Dev Agent Record
+
+Agent Model Used
+
+{{agent_model_name_version}}
+
+Debug Log References
+
+
+
+Completion Notes List
+
+
+
+File List
+
+
+
+QA Results
+
+
diff --git a/docs/stories/checks/1.1.validation.md b/docs/stories/checks/1.1.validation.md
new file mode 100644
index 0000000..cdfb9a6
--- /dev/null
+++ b/docs/stories/checks/1.1.validation.md
@@ -0,0 +1,21 @@
+Story Draft Checklist — 1.1 Design Tokens and Typography
+
+1. Goal & Context Clarity
+- PASS — Clear goal, user value, ties to PRD epic; no external deps.
+
+2. Technical Implementation Guidance
+- PASS — Files and steps called out (layout.tsx, globals.css, tailwind.config.ts). No schema/API changes.
+
+3. Reference Effectiveness
+- PASS — File paths referenced directly; context summarized within story.
+
+4. Self-Containment Assessment
+- PASS — Assumptions explicit (fonts, tokens). Edge cases covered (perf/a11y).
+
+5. Testing Guidance
+- PASS — Lint/build, manual routes, perf budget ≤10% specified.
+
+Final Assessment: READY
+- Clarity score: 9/10
+- Notes: Capture pre/post build sizes during implementation and record in Completion Notes.
+
diff --git a/docs/stories/checks/1.2.validation.md b/docs/stories/checks/1.2.validation.md
new file mode 100644
index 0000000..11de217
--- /dev/null
+++ b/docs/stories/checks/1.2.validation.md
@@ -0,0 +1,24 @@
+Story Draft Checklist — 1.2 Global Layout, Sidebar Nav, Command Palette
+
+1. Goal & Context Clarity
+- PASS — Clear objective and relationship to epic; sidebar non‑collapsible constraint noted.
+
+2. Technical Implementation Guidance
+- PARTIAL — Strong file guidance; Command Palette suggests cmdk/Radix but repo lacks that dep. Either implement minimal custom palette or confirm dependency addition with PO.
+
+3. Reference Effectiveness
+- PASS — Concrete file paths; AdminSidebar reuse noted for styling.
+
+4. Self-Containment Assessment
+- PASS — Assumptions and constraints explicit; edge cases (CLS, a11y) addressed.
+
+5. Testing Guidance
+- PASS — CLS ≤ 0.1, keyboard order, deep links verification.
+
+Final Assessment: NEEDS REVISION (minor)
+- Clarity score: 8/10
+- Issues:
+ - Decide on Command Palette implementation path (no new dep vs add `cmdk`).
+- Suggestion:
+ - If no new deps, implement a lightweight overlay list + fuzzy filter using existing React and tokens.
+
diff --git a/docs/stories/checks/1.3.validation.md b/docs/stories/checks/1.3.validation.md
new file mode 100644
index 0000000..ca3387a
--- /dev/null
+++ b/docs/stories/checks/1.3.validation.md
@@ -0,0 +1,21 @@
+Story Draft Checklist — 1.3 Sticky Split Pattern Library
+
+1. Goal & Context Clarity
+- PASS — Clear component library goal and user value; ties to epic patternization.
+
+2. Technical Implementation Guidance
+- PASS — API, props, files, and hook described; motion integration specified.
+
+3. Reference Effectiveness
+- PASS — References kept to file paths and tokens; reduced need to hunt.
+
+4. Self-Containment Assessment
+- PASS — Assumptions (no scroll‑jacking, reduced‑motion) explicit; mobile fallback covered.
+
+5. Testing Guidance
+- PASS — Perf/a11y manual checks defined.
+
+Final Assessment: READY
+- Clarity score: 9/10
+- Notes: Provide brief README with example to accelerate adoption.
+
diff --git a/docs/stories/checks/1.4.validation.md b/docs/stories/checks/1.4.validation.md
new file mode 100644
index 0000000..bb3ccde
--- /dev/null
+++ b/docs/stories/checks/1.4.validation.md
@@ -0,0 +1,23 @@
+Story Draft Checklist — 1.4 Projects Section Revamp
+
+1. Goal & Context Clarity
+- PASS — Clear outcomes for index and detail; media wrapper goal set.
+
+2. Technical Implementation Guidance
+- PARTIAL — Solid file guidance. Reel source relies on `siteAsset` keys; define exact key(s) and fallback sequence.
+
+3. Reference Effectiveness
+- PASS — Direct file paths; mapping to existing fields documented.
+
+4. Self-Containment Assessment
+- PASS — No schema changes; filters on in‑memory list; edge cases called out.
+
+5. Testing Guidance
+- PASS — IV checks, lazy media, SEO preservation.
+
+Final Assessment: NEEDS REVISION (minor)
+- Clarity score: 8/10
+- Issues:
+ - Specify reel asset priority: try `projects.reel.video` → `projects.reel.embed` → `projects.hero.image`.
+ - Confirm filter UX defaults (initial tab, default category/year).
+
diff --git a/docs/stories/checks/1.5.validation.md b/docs/stories/checks/1.5.validation.md
new file mode 100644
index 0000000..a6a527e
--- /dev/null
+++ b/docs/stories/checks/1.5.validation.md
@@ -0,0 +1,21 @@
+Story Draft Checklist — 1.5 Process Pages
+
+1. Goal & Context Clarity
+- PASS — Clear 3 pages and cross‑links; aligns with epic.
+
+2. Technical Implementation Guidance
+- PASS — Route structure and components outlined; badge/icon approach specified.
+
+3. Reference Effectiveness
+- PASS — File paths and component references; simple enough.
+
+4. Self-Containment Assessment
+- PASS — No backend changes; fallbacks if StickySplit not ready.
+
+5. Testing Guidance
+- PASS — A11y and bundle growth checks.
+
+Final Assessment: READY
+- Clarity score: 9/10
+- Notes: Keep copy minimal; iterate visuals later.
+
diff --git a/docs/stories/checks/1.6.validation.md b/docs/stories/checks/1.6.validation.md
new file mode 100644
index 0000000..53f0b05
--- /dev/null
+++ b/docs/stories/checks/1.6.validation.md
@@ -0,0 +1,21 @@
+Story Draft Checklist — 1.6 Studio Pages
+
+1. Goal & Context Clarity
+- PASS — Three pages and purpose clear.
+
+2. Technical Implementation Guidance
+- PASS — Routes/components listed; reuse suggested.
+
+3. Reference Effectiveness
+- PASS — File paths named; component references present.
+
+4. Self-Containment Assessment
+- PASS — No backend dependencies; placeholders allowed.
+
+5. Testing Guidance
+- PASS — A11y ≥ 90 target; link checks.
+
+Final Assessment: READY
+- Clarity score: 9/10
+- Notes: Ensure sidebar/footer include links once Story 1.2 lands.
+
diff --git a/docs/stories/checks/1.7.validation.md b/docs/stories/checks/1.7.validation.md
new file mode 100644
index 0000000..0218431
--- /dev/null
+++ b/docs/stories/checks/1.7.validation.md
@@ -0,0 +1,24 @@
+Story Draft Checklist — 1.7 Contact Smart Form
+
+1. Goal & Context Clarity
+- PASS — Guided fields, success page, optional persistence defined.
+
+2. Technical Implementation Guidance
+- PARTIAL — API route contract and envs should be specified explicitly.
+ - Proposed envs: `NEXT_PUBLIC_WEB3FORMS_ACCESS_KEY` (existing), `CF_CONTACT_ENDPOINT`, `CF_CONTACT_AUTH` (optional).
+
+3. Reference Effectiveness
+- PASS — File paths and components referenced; migration path from Web3Forms clear.
+
+4. Self-Containment Assessment
+- PASS — Assumptions and constraints explicit (no Prisma changes; no PII logging).
+
+5. Testing Guidance
+- PASS — Validation scenarios, success redirect, and regression scope defined.
+
+Final Assessment: NEEDS REVISION (minor)
+- Clarity score: 8/10
+- Issues:
+ - Lock down API response shape (e.g., `{ ok: boolean, message?: string }`).
+ - Document exact rate limit policy (e.g., 5/min/IP) to test against.
+
diff --git a/docs/stories/checks/1.8.validation.md b/docs/stories/checks/1.8.validation.md
new file mode 100644
index 0000000..1573b35
--- /dev/null
+++ b/docs/stories/checks/1.8.validation.md
@@ -0,0 +1,21 @@
+Story Draft Checklist — 1.8 Hardening: Performance, Accessibility, SEO
+
+1. Goal & Context Clarity
+- PASS — Objectives and budgets clear.
+
+2. Technical Implementation Guidance
+- PASS — Concrete steps with file references (fonts, images, skip link, sitemap, telemetry).
+
+3. Reference Effectiveness
+- PASS — File paths listed; minimal external references.
+
+4. Self-Containment Assessment
+- PASS — Assumptions and constraints explicit; no backend changes.
+
+5. Testing Guidance
+- PASS — Perf/a11y/observability verification detailed.
+
+Final Assessment: READY
+- Clarity score: 9/10
+- Notes: Add `src/lib/telemetry.ts` with tiny wrapper around Sentry to ease instrumentation.
+