nicholai e3e3a91bdf
Some checks failed
Build and Push to Docker Hub / Push Docker image to Docker Hub (push) Has been cancelled
Build and Push Docker Image / build-and-push (push) Has been cancelled
1.6-7-8 implemented
2025-09-24 19:23:57 -06:00

1150 lines
798 KiB
JavaScript

/*
* 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/projects/page";
exports.ids = ["app/projects/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%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=!":
/*!****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
!*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?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=! ***!
\****************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__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 module0 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/layout.tsx */ \"(rsc)/./src/app/layout.tsx\"));\nconst module1 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/global-error.tsx */ \"(rsc)/./src/app/global-error.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__.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 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));\nconst page6 = () => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/projects/page.tsx */ \"(rsc)/./src/app/projects/page.tsx\"));\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: [\n 'projects',\n {\n children: ['__PAGE__', {}, {\n page: [page6, \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\"],\n \n }]\n },\n {\n \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 },\n {\n 'layout': [module0, \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/layout.tsx\"],\n'global-error': [module1, \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/global-error.tsx\"],\n'global-error': [module2, \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/global-error.tsx\"],\n'not-found': [module3, \"next/dist/client/components/builtin/not-found.js\"],\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 = [\"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\"];\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: \"/projects/page\",\n pathname: \"/projects\",\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 = \"/projects/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/bmFtZT1hcHAlMkZwcm9qZWN0cyUyRnBhZ2UmcGFnZT0lMkZwcm9qZWN0cyUyRnBhZ2UmYXBwUGF0aHM9JTJGcHJvamVjdHMlMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGcHJvamVjdHMlMkZwYWdlLnRzeCZhcHBEaXI9JTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGc3JjJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9bWR4JnJvb3REaXI9JTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEJmlzR2xvYmFsTm90Rm91bmRFbmFibGVkPSEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSxzQkFBc0Isb0pBQW9HO0FBQzFILHNCQUFzQixnS0FBMEc7QUFDaEksc0JBQXNCLGdLQUEwRztBQUNoSSxzQkFBc0IsaU9BQXFGO0FBQzNHLHNCQUFzQixpT0FBcUY7QUFDM0csc0JBQXNCLHVPQUF3RjtBQUM5RyxvQkFBb0Isa0tBQTJHO0FBRzdIO0FBR0E7QUFDMkU7QUFDTDtBQUNUO0FBQ087QUFDTztBQUNPO0FBQ1A7QUFDSztBQUNZO0FBQ1c7QUFDeEI7QUFDRjtBQUNhO0FBQ2lFO0FBQ2hGO0FBQ1g7QUFDUTtB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TjtBQUNBLDRDQUE0Qyw2RkFBZTtBQUMzRDtBQUNBO0FBQ0E7QUFDQTtBQUNBLGtDQUFrQywyRkFBbUI7QUFDckQ7QUFDQTtBQUNBLGlCQUFpQjtBQUNqQixhQUFhO0FBQ2I7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQSIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImNvbnN0IG1vZHVsZTAgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvbGF5b3V0LnRzeFwiKTtcbmNvbnN0IG1vZHVsZTEgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvZ2xvYmFsLWVycm9yLnRzeFwiKTtcbmNvbnN0IG1vZHVsZTIgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvZ2xvYmFsLWVycm9yLnRzeFwiKTtcbmNvbnN0IG1vZHVsZTMgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL25vdC1mb3VuZC5qc1wiKTtcbmNvbnN0IG1vZHVsZTQgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL2ZvcmJpZGRlbi5qc1wiKTtcbmNvbnN0IG1vZHVsZTUgPSAoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL3VuYXV0aG9yaXplZC5qc1wiKTtcbmNvbnN0IHBhZ2U2ID0gKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvYXBwL3Byb2plY3RzL3BhZ2UudHN4XCIpO1xuaW1wb3J0IHsgQXBwUGFnZVJvdXRlTW9kdWxlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS9tb2R1bGUuY29tcGlsZWRcIiB3aXRoIHtcbiAgICAndHVyYm9wYWNrLXRyYW5zaXRpb24nOiAnbmV4dC1zc3InXG59O1xuaW1wb3J0IHsgUm91dGVLaW5kIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvcm91dGUta2luZFwiIHdpdGgge1xuICAgICd0dXJib3BhY2stdHJhbnNpdGlvbic6ICduZXh0LXNlcnZlci11dGlsaXR5J1xufTtcbmltcG9ydCB7IGdldFJldmFsaWRhdGVSZWFzb24gfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9pbnN0cnVtZW50YXRpb24vdXRpbHNcIjtcbmltcG9ydCB7IGdldFRyYWNlciwgU3BhbktpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvdHJhY2VyXCI7XG5pbXBvcnQgeyBnZXRSZXF1ZXN0TWV0YSB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3QtbWV0YVwiO1xuaW1wb3J0IHsgQmFzZVNlcnZlclNwYW4gfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvdHJhY2UvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBpbnRlcm9wRGVmYXVsdCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvaW50ZXJvcC1kZWZhdWx0XCI7XG5pbXBvcnQgeyBOb2RlTmV4dFJlcXVlc3QsIE5vZGVOZXh0UmVzcG9uc2UgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9iYXNlLWh0dHAvbm9kZVwiO1xuaW1wb3J0IHsgY2hlY2tJc0FwcFBQUkVuYWJsZWQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvZXhwZXJpbWVudGFsL3BwclwiO1xuaW1wb3J0IHsgZ2V0RmFsbGJhY2tSb3V0ZVBhcmFtcyB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JlcXVlc3QvZmFsbGJhY2stcGFyYW1zXCI7XG5pbXBvcnQgeyBzZXRSZWZlcmVuY2VNYW5pZmVzdHNTaW5nbGV0b24gfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VuY3J5cHRpb24tdXRpbHNcIjtcbmltcG9ydCB7IGlzSHRtbEJvdFJlcXVlc3QsIHNob3VsZFNlcnZlU3RyZWFtaW5nTWV0YWRhdGEgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9saWIvc3RyZWFtaW5nLW1ldGFkYXRhXCI7XG5pbXBvcnQgeyBjcmVhdGVTZXJ2ZXJNb2R1bGVNYXAgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2FjdGlvbi11dGlsc1wiO1xuaW1wb3J0IHsgbm9ybWFsaXplQXBwUGF0aCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzXCI7XG5pbXBvcnQgeyBnZXRJc1Bvc3NpYmxlU2VydmVyQWN0aW9uIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvbGliL3NlcnZlci1hY3Rpb24tcmVxdWVzdC1tZXRhXCI7XG5pbXBvcnQgeyBSU0NfSEVBREVSLCBORVhUX1JPVVRFUl9QUkVGRVRDSF9IRUFERVIsIE5FWFRfSVNfUFJFUkVOREVSX0hFQURFUiwgTkVYVF9ESURfUE9TVFBPTkVfSEVBREVSIH0gZnJvbSBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLWhlYWRlcnNcIjtcbmltcG9ydCB7IGdldEJvdFR5cGUsIGlzQm90IH0gZnJvbSBcIm5leHQvZGlzdC9zaGFyZWQvbGliL3JvdXRlci91dGlscy9pcy1ib3RcIjtcbmltcG9ydCB7IENhY2hlZFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3Jlc3BvbnNlLWNhY2hlXCI7XG5pbXBvcnQgeyBGYWxsYmFja01vZGUsIHBhcnNlRmFsbGJhY2tGaWVsZCB9IGZyb20gXCJuZXh0L2Rpc3QvbGliL2ZhbGxiYWNrXCI7XG5pbXBvcnQgUmVuZGVyUmVzdWx0IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL3JlbmRlci1yZXN1bHRcIjtcbmltcG9ydCB7IENBQ0hFX09ORV9ZRUFSLCBORVhUX0NBQ0hFX1RBR1NfSEVBREVSIH0gZnJvbSBcIm5leHQvZGlzdC9saWIvY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBFTkNPREVEX1RBR1MgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9zdHJlYW0tdXRpbHMvZW5jb2RlZC10YWdzXCI7XG5pbXBvcnQgeyBzZW5kUmVuZGVyUmVzdWx0IH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvc2VuZC1wYXlsb2FkXCI7XG5pbXBvcnQgeyBOb0ZhbGxiYWNrRXJyb3IgfSBmcm9tIFwibmV4dC9kaXN0L3NoYXJlZC9saWIvbm8tZmFsbGJhY2stZXJyb3IuZXh0ZXJuYWxcIjtcbi8vIFdlIGluamVjdCB0aGUgdHJlZSBhbmQgcGFnZXMgaGVyZSBzbyB0aGF0IHdlIGNhbiB1c2UgdGhlbSBpbiB0aGUgcm91dGVcbi8vIG1vZHVsZS5cbmNvbnN0IHRyZWUgPSB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICcnLFxuICAgICAgICB7XG4gICAgICAgIGNoaWxkcmVuOiBbXG4gICAgICAgICdwcm9qZWN0cycsXG4gICAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFsnX19QQUdFX18nLCB7fSwge1xuICAgICAgICAgIHBhZ2U6IFtwYWdlNiwgXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvYXBwL3Byb2plY3RzL3BhZ2UudHN4XCJdLFxuICAgICAgICAgIFxuICAgICAgICB9XVxuICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICBcbiAgICAgICAgbWV0YWRhdGE6IHtcbiAgICBpY29uOiBbKGFzeW5jIChwcm9wcykgPT4gKGF3YWl0IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC1tZXRhZGF0YS1pbWFnZS1sb2FkZXI/dHlwZT1pY29uJnNlZ21lbnQ9JmJhc2VQYXRoPSZwYWdlRXh0ZW5zaW9ucz10c3gmcGFnZUV4dGVuc2lvbnM9dHMmcGFnZUV4dGVuc2lvbnM9anN4JnBhZ2VFeHRlbnNpb25zPW1keCEvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvYXBwL2ljb24uc3ZnP19fbmV4dF9tZXRhZGF0YV9fXCIpKS5kZWZhdWx0KHByb3BzKSldLFxuICAgIGFwcGxlOiBbXSxcbiAgICBvcGVuR3JhcGg6IFtdLFxuICAgIHR3aXR0ZXI6IFtdLFxuICAgIG1hbmlmZXN0OiBcIi9tYW5pZmVzdC53ZWJtYW5pZmVzdFwiXG4gIH1cbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgJ2xheW91dCc6IFttb2R1bGUwLCBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvbGF5b3V0LnRzeFwiXSxcbidnbG9iYWwtZXJyb3InOiBbbW9kdWxlMSwgXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvYXBwL2dsb2JhbC1lcnJvci50c3hcIl0sXG4nZ2xvYmFsLWVycm9yJzogW21vZHVsZTIsIFwiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2FwcC9nbG9iYWwtZXJyb3IudHN4XCJdLFxuJ25vdC1mb3VuZCc6IFttb2R1bGUzLCBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9idWlsdGluL25vdC1mb3VuZC5qc1wiXSxcbidmb3JiaWRkZW4nOiBbbW9kdWxlNCwgXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvYnVpbHRpbi9mb3JiaWRkZW4uanNcIl0sXG4ndW5hdXRob3JpemVkJzogW21vZHVsZTUsIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2J1aWx0aW4vdW5hdXRob3JpemVkLmpzXCJdLFxuICAgICAgICBtZXRhZGF0YToge1xuICAgIGljb246IFsoYXN5bmMgKHByb3BzKSA9PiAoYXdhaXQgaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0LW1ldGFkYXRhLWltYWdlLWxvYWRlcj90eXBlPWljb24mc2VnbWVudD0mYmFzZVBhdGg9JnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9bWR4IS9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvaWNvbi5zdmc/X19uZXh0X21ldGFkYXRhX19cIikpLmRlZmF1bHQocHJvcHMpKV0sXG4gICAgYXBwbGU6IFtdLFxuICAgIG9wZW5HcmFwaDogW10sXG4gICAgdHdpdHRlcjogW10sXG4gICAgbWFuaWZlc3Q6IFwiL21hbmlmZXN0LndlYm1hbmlmZXN0XCJcbiAgfVxuICAgICAgfVxuICAgICAgXVxuICAgICAgfS5jaGlsZHJlbjtcbmNvbnN0IHBhZ2VzID0gW1wiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2FwcC9wcm9qZWN0cy9wYWdlLnRzeFwiXTtcbmV4cG9ydCB7IHRyZWUsIHBhZ2VzIH07XG5pbXBvcnQgR2xvYmFsRXJyb3IgZnJvbSBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvZ2xvYmFsLWVycm9yLnRzeFwiIHdpdGgge1xuICAgICd0dXJib3BhY2stdHJhbnNpdGlvbic6ICduZXh0LXNlcnZlci11dGlsaXR5J1xufTtcbmV4cG9ydCB7IEdsb2JhbEVycm9yIH07XG5jb25zdCBfX25leHRfYXBwX3JlcXVpcmVfXyA9IF9fd2VicGFja19yZXF1aXJlX19cbmNvbnN0IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKClcbmV4cG9ydCBjb25zdCBfX25leHRfYXBwX18gPSB7XG4gICAgcmVxdWlyZTogX19uZXh0X2FwcF9yZXF1aXJlX18sXG4gICAgbG9hZENodW5rOiBfX25leHRfYXBwX2xvYWRfY2h1bmtfX1xufTtcbmltcG9ydCAqIGFzIGVudHJ5QmFzZSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2VcIiB3aXRoIHtcbiAgICAndHVyYm9wYWNrLXRyYW5zaXRpb24nOiAnbmV4dC1zZXJ2ZXItdXRpbGl0eSdcbn07XG5pbXBvcnQgeyBSZWRpcmVjdFN0YXR1c0NvZGUgfSBmcm9tIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlZGlyZWN0LXN0YXR1cy1jb2RlXCI7XG5leHBvcnQgKiBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2VcIiB3aXRoIHtcbiAgICAndHVyYm9wYWNrLXRyYW5zaXRpb24nOiAnbmV4dC1zZXJ2ZXItdXRpbGl0eSdcbn07XG4vLyBDcmVhdGUgYW5kIGV4cG9ydCB0aGUgcm91dGUgbW9kdWxlIHRoYXQgd2lsbCBiZSBjb25zdW1lZC5cbmV4cG9ydCBjb25zdCByb3V0ZU1vZHVsZSA9IG5ldyBBcHBQYWdlUm91dGVNb2R1bGUoe1xuICAgIGRlZmluaXRpb246IHtcbiAgICAgICAga2luZDogUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICBwYWdlOiBcIi9wcm9qZWN0cy9wYWdlXCIsXG4gICAgICAgIHBhdGhuYW1lOiBcIi9wcm9qZWN0c1wiLFxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZW4ndCB1c2VkIGluIHByb2R1Y3Rpb24uXG4gICAgICAgIGJ1bmRsZVBhdGg6ICcnLFxuICAgICAgICBmaWxlbmFtZTogJycsXG4gICAgICAgIGFwcFBhdGhzOiBbXVxuICAgIH0sXG4gICAgdXNlcmxhbmQ6IHtcbiAgICAgICAgbG9hZGVyVHJlZTogdHJlZVxuICAgIH0sXG4gICAgZGlzdERpcjogcHJvY2Vzcy5lbnYuX19ORVhUX1JFTEFUSVZFX0RJU1RfRElSIHx8ICcnLFxuICAgIHByb2plY3REaXI6IHByb2Nlc3MuZW52Ll9fTkVYVF9SRUxBVElWRV9QUk9KRUNUX0RJUiB8fCAnJ1xufSk7XG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gaGFuZGxlcihyZXEsIHJlcywgY3R4KSB7XG4gICAgdmFyIF90aGlzO1xuICAgIGxldCBzcmNQYWdlID0gXCIvcHJvamVjdHMvcGFnZVwiO1xuICAgIC8vIHR1cmJvcGFjayBkb2Vzbid0IG5vcm1hbGl6ZSBgL2luZGV4YCBpbiB0aGUgcGFnZSBuYW1lXG4gICAgLy8gc28gd2UgbmVlZCB0byB0byBwcm9jZXNzIGR5bmFtaWMgcm91dGVzIHByb3Blcmx5XG4gICAgLy8gVE9ETzogZml4IHR1cmJvcGFjayBwcm92aWRpbmcgZGlmZmVyaW5nIHZhbHVlIGZyb20gd2VicGFja1xuICAgIGlmIChwcm9jZXNzLmVudi5UVVJCT1BBQ0spIHtcbiAgICAgICAgc3JjUGFnZSA9IHNyY1BhZ2UucmVwbGFjZSgvXFwvaW5kZXgkLywgJycpIHx8ICcvJztcbiAgICB9IGVsc2UgaWYgKHNyY1BhZ2UgPT09ICcvaW5kZXgnKSB7XG4gICAgICAgIC8vIHdlIGFsd2F5cyBub3JtYWxpemUgL2luZGV4IHNwZWNpZmljYWxseVxuICAgICAgICBzcmNQYWdlID0gJy8nO1xuICAgIH1cbiAgICBjb25zdCBtdWx0aVpvbmVEcmFmdE1vZGUgPSBwcm9jZXNzLmVudi5fX05FWFRfTVVMVElfWk9ORV9EUkFGVF9NT0RFO1xuICAgIGNvbnN0IGluaXRpYWxQb3N0cG9uZWQgPSBnZXRSZXF1ZXN0TWV0YShyZXEsICdwb3N0cG9uZWQnKTtcbiAgICAvLyBUT0RPOiByZXBsYWNlIHdpdGggbW9yZSBzcGVjaWZpYyBmbGFnc1xuICAgIGNvbnN0IG1pbmltYWxNb2RlID0gZ2V0UmVxdWVzdE1ldGEocmVxLCAnbWluaW1hbE1vZGUnKTtcbiAgICBjb25zdCBwcmVwYXJlUmVzdWx0ID0gYXdhaXQgcm91dGVNb2R1bGUucHJlcGFyZShyZXEsIHJlcywge1xuICAgICAgICBzcmNQYWdlLFxuICAgICAgICBtdWx0aVpvbmVEcmFmdE1vZGVcbiAgICB9KTtcbiAgICBpZiAoIXByZXBhcmVSZXN1bHQpIHtcbiAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDA7XG4gICAgICAgIHJlcy5lbmQoJ0JhZCBSZXF1ZXN0Jyk7XG4gICAgICAgIGN0eC53YWl0VW50aWwgPT0gbnVsbCA/IHZvaWQgMCA6IGN0eC53YWl0VW50aWwuY2FsbChjdHgsIFByb21pc2UucmVzb2x2ZSgpKTtcbiAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIGNvbnN0IHsgYnVpbGRJZCwgcXVlcnksIHBhcmFtcywgcGFyc2VkVXJsLCBwYWdlSXNEeW5hbWljLCBidWlsZE1hbmlmZXN0LCBuZXh0Rm9udE1hbmlmZXN0LCByZWFjdExvYWRhYmxlTWFuaWZlc3QsIHNlcnZlckFjdGlvbnNNYW5pZmVzdCwgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsIHN1YnJlc291cmNlSW50ZWdyaXR5TWFuaWZlc3QsIHByZXJlbmRlck1hbmlmZXN0LCBpc0RyYWZ0TW9kZSwgcmVzb2x2ZWRQYXRobmFtZSwgcmV2YWxpZGF0ZU9ubHlHZW5lcmF0ZWQsIHJvdXRlclNlcnZlckNvbnRleHQsIG5leHRDb25maWcgfSA9IHByZXBhcmVSZXN1bHQ7XG4gICAgY29uc3QgcGF0aG5hbWUgPSBwYXJzZWRVcmwucGF0aG5hbWUgfHwgJy8nO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRTcmNQYWdlID0gbm9ybWFsaXplQXBwUGF0aChzcmNQYWdlKTtcbiAgICBsZXQgeyBpc09uRGVtYW5kUmV2YWxpZGF0ZSB9ID0gcHJlcGFyZVJlc3VsdDtcbiAgICBjb25zdCBwcmVyZW5kZXJJbmZvID0gcHJlcmVuZGVyTWFuaWZlc3QuZHluYW1pY1JvdXRlc1tub3JtYWxpemVkU3JjUGFnZV07XG4gICAgY29uc3QgaXNQcmVyZW5kZXJlZCA9IHByZXJlbmRlck1hbmlmZXN0LnJvdXRlc1tyZXNvbHZlZFBhdGhuYW1lXTtcbiAgICBsZXQgaXNTU0cgPSBCb29sZWFuKHByZXJlbmRlckluZm8gfHwgaXNQcmVyZW5kZXJlZCB8fCBwcmVyZW5kZXJNYW5pZmVzdC5yb3V0ZXNbbm9ybWFsaXplZFNyY1BhZ2VdKTtcbiAgICBjb25zdCB1c2VyQWdlbnQgPSByZXEuaGVhZGVyc1sndXNlci1hZ2VudCddIHx8ICcnO1xuICAgIGNvbnN0IGJvdFR5cGUgPSBnZXRCb3RUeXBlKHVzZXJBZ2VudCk7XG4gICAgY29uc3QgaXNIdG1sQm90ID0gaXNIdG1sQm90UmVxdWVzdChyZXEpO1xuICAgIC8qKlxuICAgKiBJZiB0cnVlLCB0aGlzIGluZGljYXRlcyB0aGF0IHRoZSByZXF1ZXN0IGJlaW5nIG1hZGUgaXMgZm9yIGFuIGFwcFxuICAgKiBwcmVmZXRjaCByZXF1ZXN0LlxuICAgKi8gY29uc3QgaXNQcmVmZXRjaFJTQ1JlcXVlc3QgPSBnZXRSZXF1ZXN0TWV0YShyZXEsICdpc1ByZWZldGNoUlNDUmVxdWVzdCcpID8/IEJvb2xlYW4ocmVxLmhlYWRlcnNbTkVYVF9ST1VURVJfUFJFRkVUQ0hfSEVBREVSXSk7XG4gICAgLy8gTk9URTogRG9uJ3QgZGVsZXRlIGhlYWRlcnNbUlNDXSB5ZXQsIGl0IHN0aWxsIG5lZWRzIHRvIGJlIHVzZWQgaW4gcmVuZGVyVG9IVE1MIGxhdGVyXG4gICAgY29uc3QgaXNSU0NSZXF1ZXN0ID0gZ2V0UmVxdWVzdE1ldGEocmVxLCAnaXNSU0NSZXF1ZXN0JykgPz8gQm9vbGVhbihyZXEuaGVhZGVyc1tSU0NfSEVBREVSXSk7XG4gICAgY29uc3QgaXNQb3NzaWJsZVNlcnZlckFjdGlvbiA9IGdldElzUG9zc2libGVTZXJ2ZXJBY3Rpb24ocmVxKTtcbiAgICAvKipcbiAgICogSWYgdGhlIHJvdXRlIGJlaW5nIHJlbmRlcmVkIGlzIGFuIGFwcCBwYWdlLCBhbmQgdGhlIHBwciBmZWF0dXJlIGhhcyBiZWVuXG4gICAqIGVuYWJsZWQsIHRoZW4gdGhlIGdpdmVuIHJvdXRlIF9jb3VsZF8gc3VwcG9ydCBQUFIuXG4gICAqLyBjb25zdCBjb3VsZFN1cHBvcnRQUFIgPSBjaGVja0lzQXBwUFBSRW5hYmxlZChuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5wcHIpO1xuICAgIC8vIFdoZW4gZW5hYmxlZCwgdGhpcyB3aWxsIGFsbG93IHRoZSB1c2Ugb2YgdGhlIGA/X19uZXh0cHByb25seWAgcXVlcnkgdG9cbiAgICAvLyBlbmFibGUgZGVidWdnaW5nIG9mIHRoZSBzdGF0aWMgc2hlbGwuXG4gICAgY29uc3QgaGFzRGVidWdTdGF0aWNTaGVsbFF1ZXJ5ID0gcHJvY2Vzcy5lbnYuX19ORVhUX0VYUEVSSU1FTlRBTF9TVEFUSUNfU0hFTExfREVCVUdHSU5HID09PSAnMScgJiYgdHlwZW9mIHF1ZXJ5Ll9fbmV4dHBwcm9ubHkgIT09ICd1bmRlZmluZWQnICYmIGNvdWxkU3VwcG9ydFBQUjtcbiAgICAvLyBXaGVuIGVuYWJsZWQsIHRoaXMgd2lsbCBhbGxvdyB0aGUgdXNlIG9mIHRoZSBgP19fbmV4dHBwcm9ubHlgIHF1ZXJ5XG4gICAgLy8gdG8gZW5hYmxlIGRlYnVnZ2luZyBvZiB0aGUgZmFsbGJhY2sgc2hlbGwuXG4gICAgY29uc3QgaGFzRGVidWdGYWxsYmFja1NoZWxsUXVlcnkgPSBoYXNEZWJ1Z1N0YXRpY1NoZWxsUXVlcnkgJiYgcXVlcnkuX19uZXh0cHByb25seSA9PT0gJ2ZhbGxiYWNrJztcbiAgICAvLyBUaGlzIHBhZ2Ugc3VwcG9ydHMgUFBSIGlmIGl0IGlzIG1hcmtlZCBhcyBiZWluZyBgUEFSVElBTExZX1NUQVRJQ2AgaW4gdGhlXG4gICAgLy8gcHJlcmVuZGVyIG1hbmlmZXN0IGFuZCB0aGlzIGlzIGFuIGFwcCBwYWdlLlxuICAgIGNvbnN0IGlzUm91dGVQUFJFbmFibGVkID0gY291bGRTdXBwb3J0UFBSICYmICgoKF90aGlzID0gcHJlcmVuZGVyTWFuaWZlc3Qucm91dGVzW25vcm1hbGl6ZWRTcmNQYWdlXSA/PyBwcmVyZW5kZXJNYW5pZmVzdC5keW5hbWljUm91dGVzW25vcm1hbGl6ZWRTcmNQYWdlXSkgPT0gbnVsbCA/IHZvaWQgMCA6IF90aGlzLnJlbmRlcmluZ01vZGUpID09PSAnUEFSVElBTExZX1NUQVRJQycgfHwgLy8gSWRlYWxseSB3ZSdkIHdhbnQgdG8gY2hlY2sgdGhlIGFwcENvbmZpZyB0byBzZWUgaWYgdGhpcyBwYWdlIGhhcyBQUFJcbiAgICAvLyBlbmFibGVkIG9yIG5vdCwgYnV0IHRoYXQgd291bGQgcmVxdWlyZSBwbHVtYmluZyB0aGUgYXBwQ29uZmlnIHRocm91Z2hcbiAgICAvLyB0byB0aGUgc2VydmVyIGR1cmluZyBkZXZlbG9wbWVudC4gV2UgYXNzdW1lIHRoYXQgdGhlIHBhZ2Ugc3VwcG9ydHMgaXRcbiAgICAvLyBidXQgb25seSBkdXJpbmcgZGV2ZWxvcG1lbnQuXG4gICAgaGFzRGVidWdTdGF0aWNTaGVsbFF1ZXJ5ICYmIChyb3V0ZU1vZHVsZS5pc0RldiA9PT0gdHJ1ZSB8fCAocm91dGVyU2VydmVyQ29udGV4dCA9PSBudWxsID8gdm9pZCAwIDogcm91dGVyU2VydmVyQ29udGV4dC5leHBlcmltZW50YWxUZXN0UHJveHkpID09PSB0cnVlKSk7XG4gICAgY29uc3QgaXNEZWJ1Z1N0YXRpY1NoZWxsID0gaGFzRGVidWdTdGF0aWNTaGVsbFF1ZXJ5ICYmIGlzUm91dGVQUFJFbmFibGVkO1xuICAgIC8vIFdlIHNob3VsZCBlbmFibGUgZGVidWdnaW5nIGR5bmFtaWMgYWNjZXNzZXMgd2hlbiB0aGUgc3RhdGljIHNoZWxsXG4gICAgLy8gZGVidWdnaW5nIGhhcyBiZWVuIGVuYWJsZWQgYW5kIHdlJ3JlIGFsc28gaW4gZGV2ZWxvcG1lbnQgbW9kZS5cbiAgICBjb25zdCBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzID0gaXNEZWJ1Z1N0YXRpY1NoZWxsICYmIHJvdXRlTW9kdWxlLmlzRGV2ID09PSB0cnVlO1xuICAgIGNvbnN0IGlzRGVidWdGYWxsYmFja1NoZWxsID0gaGFzRGVidWdGYWxsYmFja1NoZWxsUXVlcnkgJiYgaXNSb3V0ZVBQUkVuYWJsZWQ7XG4gICAgLy8gSWYgd2UncmUgaW4gbWluaW1hbCBtb2RlLCB0aGVuIHRyeSB0byBnZXQgdGhlIHBvc3Rwb25lZCBpbmZvcm1hdGlvbiBmcm9tXG4gICAgLy8gdGhlIHJlcXVlc3QgbWV0YWRhdGEuIElmIGF2YWlsYWJsZSwgdXNlIGl0IGZvciByZXN1bWluZyB0aGUgcG9zdHBvbmVkXG4gICAgLy8gcmVuZGVyLlxuICAgIGNvbnN0IG1pbmltYWxQb3N0cG9uZWQgPSBpc1JvdXRlUFBSRW5hYmxlZCA/IGluaXRpYWxQb3N0cG9uZWQgOiB1bmRlZmluZWQ7XG4gICAgLy8gSWYgUFBSIGlzIGVuYWJsZWQsIGFuZCB0aGlzIGlzIGEgUlNDIHJlcXVlc3QgKGJ1dCBub3QgYSBwcmVmZXRjaCksIHRoZW5cbiAgICAvLyB3ZSBjYW4gdXNlIHRoaXMgZmFjdCB0byBvbmx5IGdlbmVyYXRlIHRoZSBmbGlnaHQgZGF0YSBmb3IgdGhlIHJlcXVlc3RcbiAgICAvLyBiZWNhdXNlIHdlIGNhbid0IGNhY2hlIHRoZSBIVE1MIChhcyBpdCdzIGFsc28gZHluYW1pYykuXG4gICAgY29uc3QgaXNEeW5hbWljUlNDUmVxdWVzdCA9IGlzUm91dGVQUFJFbmFibGVkICYmIGlzUlNDUmVxdWVzdCAmJiAhaXNQcmVmZXRjaFJTQ1JlcXVlc3Q7XG4gICAgLy8gTmVlZCB0byByZWFkIHRoaXMgYmVmb3JlIGl0J3Mgc3RyaXBwZWQgYnkgc3RyaXBGbGlnaHRIZWFkZXJzLiBXZSBkb24ndFxuICAgIC8vIG5lZWQgdG8gdHJhbnNmZXIgaXQgdG8gdGhlIHJlcXVlc3QgbWV0YSBiZWNhdXNlIGl0J3Mgb25seSByZWFkXG4gICAgLy8gd2l0aGluIHRoaXMgZnVuY3Rpb247IHRoZSBzdGF0aWMgc2VnbWVudCBkYXRhIHNob3VsZCBoYXZlIGFscmVhZHkgYmVlblxuICAgIC8vIGdlbmVyYXRlZCwgc28gd2Ugd2lsbCBhbHdheXMgZWl0aGVyIHJldHVybiBhIHN0YXRpYyByZXNwb25zZSBvciBhIDQwNC5cbiAgICBjb25zdCBzZWdtZW50UHJlZmV0Y2hIZWFkZXIgPSBnZXRSZXF1ZXN0TWV0YShyZXEsICdzZWdtZW50UHJlZmV0Y2hSU0NSZXF1ZXN0Jyk7XG4gICAgLy8gVE9ETzogaW52ZXN0aWdhdGUgZXhpc3RpbmcgYnVnIHdpdGggc2hvdWxkU2VydmVTdHJlYW1pbmdNZXRhZGF0YSBhbHdheXNcbiAgICAvLyBiZWluZyB0cnVlIGZvciBhIHJldmFsaWRhdGUgZHVlIHRvIG1vZGlmeWluZyB0aGUgYmFzZS1zZXJ2ZXIgdGhpcy5yZW5kZXJPcHRzXG4gICAgLy8gd2hlbiBmaXhpbmcgdGhpcyB0byBjb3JyZWN0IGxvZ2ljIGl0IGNhdXNlcyBoeWRyYXRpb24gaXNzdWUgc2luY2Ugd2Ugc2V0XG4gICAgLy8gc2VydmVTdHJlYW1pbmdNZXRhZGF0YSB0byB0cnVlIGR1cmluZyBleHBvcnRcbiAgICBsZXQgc2VydmVTdHJlYW1pbmdNZXRhZGF0YSA9ICF1c2VyQWdlbnQgPyB0cnVlIDogc2hvdWxkU2VydmVTdHJlYW1pbmdNZXRhZGF0YSh1c2VyQWdlbnQsIG5leHRDb25maWcuaHRtbExpbWl0ZWRCb3RzKTtcbiAgICBpZiAoaXNIdG1sQm90ICYmIGlzUm91dGVQUFJFbmFibGVkKSB7XG4gICAgICAgIGlzU1NHID0gZmFsc2U7XG4gICAgICAgIHNlcnZlU3RyZWFtaW5nTWV0YWRhdGEgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gSW4gZGV2ZWxvcG1lbnQsIHdlIGFsd2F5cyB3YW50IHRvIGdlbmVyYXRlIGR5bmFtaWMgSFRNTC5cbiAgICBsZXQgc3VwcG9ydHNEeW5hbWljUmVzcG9uc2UgPSAvLyBJZiB3ZSdyZSBpbiBkZXZlbG9wbWVudCwgd2UgYWx3YXlzIHN1cHBvcnQgZHluYW1pYyBIVE1MLCB1bmxlc3MgaXQnc1xuICAgIC8vIGEgZGF0YSByZXF1ZXN0LCBpbiB3aGljaCBjYXNlIHdlIG9ubHkgcHJvZHVjZSBzdGF0aWMgSFRNTC5cbiAgICByb3V0ZU1vZHVsZS5pc0RldiA9PT0gdHJ1ZSB8fCAvLyBJZiB0aGlzIGlzIG5vdCBTU0cgb3IgZG9lcyBub3QgaGF2ZSBzdGF0aWMgcGF0aHMsIHRoZW4gaXQgc3VwcG9ydHNcbiAgICAvLyBkeW5hbWljIEhUTUwuXG4gICAgIWlzU1NHIHx8IC8vIElmIHRoaXMgcmVxdWVzdCBoYXMgcHJvdmlkZWQgcG9zdHBvbmVkIGRhdGEsIGl0IHN1cHBvcnRzIGR5bmFtaWNcbiAgICAvLyBIVE1MLlxuICAgIHR5cGVvZiBpbml0aWFsUG9zdHBvbmVkID09PSAnc3RyaW5nJyB8fCAvLyBJZiB0aGlzIGlzIGEgZHluYW1pYyBSU0MgcmVxdWVzdCwgdGhlbiB0aGlzIHJlbmRlciBzdXBwb3J0cyBkeW5hbWljXG4gICAgLy8gSFRNTCAoaXQncyBkeW5hbWljKS5cbiAgICBpc0R5bmFtaWNSU0NSZXF1ZXN0O1xuICAgIC8vIFdoZW4gaHRtbCBib3RzIHJlcXVlc3QgUFBSIHBhZ2UsIHBlcmZvcm0gdGhlIGZ1bGwgZHluYW1pYyByZW5kZXJpbmcuXG4gICAgY29uc3Qgc2hvdWxkV2FpdE9uQWxsUmVhZHkgPSBpc0h0bWxCb3QgJiYgaXNSb3V0ZVBQUkVuYWJsZWQ7XG4gICAgbGV0IHNzZ0NhY2hlS2V5ID0gbnVsbDtcbiAgICBpZiAoIWlzRHJhZnRNb2RlICYmIGlzU1NHICYmICFzdXBwb3J0c0R5bmFtaWNSZXNwb25zZSAmJiAhaXNQb3NzaWJsZVNlcnZlckFjdGlvbiAmJiAhbWluaW1hbFBvc3Rwb25lZCAmJiAhaXNEeW5hbWljUlNDUmVxdWVzdCkge1xuICAgICAgICBzc2dDYWNoZUtleSA9IHJlc29sdmVkUGF0aG5hbWU7XG4gICAgfVxuICAgIC8vIHRoZSBzdGF0aWNQYXRoS2V5IGRpZmZlcnMgZnJvbSBzc2dDYWNoZUtleSBzaW5jZVxuICAgIC8vIHNzZ0NhY2hlS2V5IGlzIG51bGwgaW4gZGV2IHNpbmNlIHdlJ3JlIGFsd2F5cyBpbiBcImR5bmFtaWNcIlxuICAgIC8vIG1vZGUgaW4gZGV2IHRvIGJ5cGFzcyB0aGUgY2FjaGUsIGJ1dCB3ZSBzdGlsbCBuZWVkIHRvIGhvbm9yXG4gICAgLy8gZHluYW1pY1BhcmFtcyA9IGZhbHNlIGluIGRldiBtb2RlXG4gICAgbGV0IHN0YXRpY1BhdGhLZXkgPSBzc2dDYWNoZUtleTtcbiAgICBpZiAoIXN0YXRpY1BhdGhLZXkgJiYgcm91dGVNb2R1bGUuaXNEZXYpIHtcbiAgICAgICAgc3RhdGljUGF0aEtleSA9IHJlc29sdmVkUGF0aG5hbWU7XG4gICAgfVxuICAgIGNvbnN0IENvbXBvbmVudE1vZCA9IHtcbiAgICAgICAgLi4uZW50cnlCYXNlLFxuICAgICAgICB0cmVlLFxuICAgICAgICBwYWdlcyxcbiAgICAgICAgR2xvYmFsRXJyb3IsXG4gICAgICAgIGhhbmRsZXIsXG4gICAgICAgIHJvdXRlTW9kdWxlLFxuICAgICAgICBfX25leHRfYXBwX19cbiAgICB9O1xuICAgIC8vIEJlZm9yZSByZW5kZXJpbmcgKHdoaWNoIGluaXRpYWxpemVzIGNvbXBvbmVudCB0cmVlIG1vZHVsZXMpLCB3ZSBoYXZlIHRvXG4gICAgLy8gc2V0IHRoZSByZWZlcmVuY2UgbWFuaWZlc3RzIHRvIG91ciBnbG9iYWwgc3RvcmUgc28gU2VydmVyIEFjdGlvbidzXG4gICAgLy8gZW5jcnlwdGlvbiB1dGlsIGNhbiBhY2Nlc3MgdG8gdGhlbSBhdCB0aGUgdG9wIGxldmVsIG9mIHRoZSBwYWdlIG1vZHVsZS5cbiAgICBpZiAoc2VydmVyQWN0aW9uc01hbmlmZXN0ICYmIGNsaWVudFJlZmVyZW5jZU1hbmlmZXN0KSB7XG4gICAgICAgIHNldFJlZmVyZW5jZU1hbmlmZXN0c1NpbmdsZXRvbih7XG4gICAgICAgICAgICBwYWdlOiBzcmNQYWdlLFxuICAgICAgICAgICAgY2xpZW50UmVmZXJlbmNlTWFuaWZlc3QsXG4gICAgICAgICAgICBzZXJ2ZXJBY3Rpb25zTWFuaWZlc3QsXG4gICAgICAgICAgICBzZXJ2ZXJNb2R1bGVNYXA6IGNyZWF0ZVNlcnZlck1vZHVsZU1hcCh7XG4gICAgICAgICAgICAgICAgc2VydmVyQWN0aW9uc01hbmlmZXN0XG4gICAgICAgICAgICB9KVxuICAgICAgICB9KTtcbiAgICB9XG4gICAgY29uc3QgbWV0aG9kID0gcmVxLm1ldGhvZCB8fCAnR0VUJztcbiAgICBjb25zdCB0cmFjZXIgPSBnZXRUcmFjZXIoKTtcbiAgICBjb25zdCBhY3RpdmVTcGFuID0gdHJhY2VyLmdldEFjdGl2ZVNjb3BlU3BhbigpO1xuICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IGludm9rZVJvdXRlTW9kdWxlID0gYXN5bmMgKHNwYW4sIGNvbnRleHQpPT57XG4gICAgICAgICAgICBjb25zdCBuZXh0UmVxID0gbmV3IE5vZGVOZXh0UmVxdWVzdChyZXEpO1xuICAgICAgICAgICAgY29uc3QgbmV4dFJlcyA9IG5ldyBOb2RlTmV4dFJlc3BvbnNlKHJlcyk7XG4gICAgICAgICAgICAvLyBUT0RPOiBhZGFwdCBmb3IgcHV0dGluZyB0aGUgUkRDIGluc2lkZSB0aGUgcG9zdHBvbmVkIGRhdGFcbiAgICAgICAgICAgIC8vIElmIHdlJ3JlIGluIGRldiwgYW5kIHRoaXMgaXNuJ3QgYSBwcmVmZXRjaCBvciBhIHNlcnZlciBhY3Rpb24sXG4gICAgICAgICAgICAvLyB3ZSBzaG91bGQgc2VlZCB0aGUgcmVzdW1lIGRhdGEgY2FjaGUuXG4gICAgICAgICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcpIHtcbiAgICAgICAgICAgICAgICBpZiAobmV4dENvbmZpZy5leHBlcmltZW50YWwuZHluYW1pY0lPICYmICFpc1ByZWZldGNoUlNDUmVxdWVzdCAmJiAhY29udGV4dC5yZW5kZXJPcHRzLmlzUG9zc2libGVTZXJ2ZXJBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgd2FybXVwID0gYXdhaXQgcm91dGVNb2R1bGUud2FybXVwKG5leHRSZXEsIG5leHRSZXMsIGNvbnRleHQpO1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgd2FybXVwIGlzIHN1Y2Nlc3NmdWwsIHdlIHNob3VsZCB1c2UgdGhlIHJlc3VtZSBkYXRhXG4gICAgICAgICAgICAgICAgICAgIC8vIGNhY2hlIGZyb20gdGhlIHdhcm11cC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHdhcm11cC5tZXRhZGF0YS5yZW5kZXJSZXN1bWVEYXRhQ2FjaGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQucmVuZGVyT3B0cy5yZW5kZXJSZXN1bWVEYXRhQ2FjaGUgPSB3YXJtdXAubWV0YWRhdGEucmVuZGVyUmVzdW1lRGF0YUNhY2hlO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHJvdXRlTW9kdWxlLnJlbmRlcihuZXh0UmVxLCBuZXh0UmVzLCBjb250ZXh0KS5maW5hbGx5KCgpPT57XG4gICAgICAgICAgICAgICAgaWYgKCFzcGFuKSByZXR1cm47XG4gICAgICAgICAgICAgICAgc3Bhbi5zZXRBdHRyaWJ1dGVzKHtcbiAgICAgICAgICAgICAgICAgICAgJ2h0dHAuc3RhdHVzX2NvZGUnOiByZXMuc3RhdHVzQ29kZSxcbiAgICAgICAgICAgICAgICAgICAgJ25leHQucnNjJzogZmFsc2VcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBjb25zdCByb290U3BhbkF0dHJpYnV0ZXMgPSB0cmFjZXIuZ2V0Um9vdFNwYW5BdHRyaWJ1dGVzKCk7XG4gICAgICAgICAgICAgICAgLy8gV2Ugd2VyZSB1bmFibGUgdG8gZ2V0IGF0dHJpYnV0ZXMsIHByb2JhYmx5IE9URUwgaXMgbm90IGVuYWJsZWRcbiAgICAgICAgICAgICAgICBpZiAoIXJvb3RTcGFuQXR0cmlidXRlcykge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGlmIChyb290U3BhbkF0dHJpYnV0ZXMuZ2V0KCduZXh0LnNwYW5fdHlwZScpICE9PSBCYXNlU2VydmVyU3Bhbi5oYW5kbGVSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihgVW5leHBlY3RlZCByb290IHNwYW4gdHlwZSAnJHtyb290U3BhbkF0dHJpYnV0ZXMuZ2V0KCduZXh0LnNwYW5fdHlwZScpfScuIFBsZWFzZSByZXBvcnQgdGhpcyBOZXh0LmpzIGlzc3VlIGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qc2ApO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IHJvdXRlID0gcm9vdFNwYW5BdHRyaWJ1dGVzLmdldCgnbmV4dC5yb3V0ZScpO1xuICAgICAgICAgICAgICAgIGlmIChyb3V0ZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gYCR7bWV0aG9kfSAke3JvdXRlfWA7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4uc2V0QXR0cmlidXRlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAnbmV4dC5yb3V0ZSc6IHJvdXRlLFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2h0dHAucm91dGUnOiByb3V0ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICduZXh0LnNwYW5fbmFtZSc6IG5hbWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIHNwYW4udXBkYXRlTmFtZShuYW1lKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBzcGFuLnVwZGF0ZU5hbWUoYCR7bWV0aG9kfSAke3JlcS51cmx9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGRvUmVuZGVyID0gYXN5bmMgKHsgc3BhbiwgcG9zdHBvbmVkLCBmYWxsYmFja1JvdXRlUGFyYW1zIH0pPT57XG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0ge1xuICAgICAgICAgICAgICAgIHF1ZXJ5LFxuICAgICAgICAgICAgICAgIHBhcmFtcyxcbiAgICAgICAgICAgICAgICBwYWdlOiBub3JtYWxpemVkU3JjUGFnZSxcbiAgICAgICAgICAgICAgICBzaGFyZWRDb250ZXh0OiB7XG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkSWRcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNlcnZlckNvbXBvbmVudHNIbXJDYWNoZTogZ2V0UmVxdWVzdE1ldGEocmVxLCAnc2VydmVyQ29tcG9uZW50c0htckNhY2hlJyksXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tSb3V0ZVBhcmFtcyxcbiAgICAgICAgICAgICAgICByZW5kZXJPcHRzOiB7XG4gICAgICAgICAgICAgICAgICAgIEFwcDogKCk9Pm51bGwsXG4gICAgICAgICAgICAgICAgICAgIERvY3VtZW50OiAoKT0+bnVsbCxcbiAgICAgICAgICAgICAgICAgICAgcGFnZUNvbmZpZzoge30sXG4gICAgICAgICAgICAgICAgICAgIENvbXBvbmVudE1vZCxcbiAgICAgICAgICAgICAgICAgICAgQ29tcG9uZW50OiBpbnRlcm9wRGVmYXVsdChDb21wb25lbnRNb2QpLFxuICAgICAgICAgICAgICAgICAgICBwYXJhbXMsXG4gICAgICAgICAgICAgICAgICAgIHJvdXRlTW9kdWxlLFxuICAgICAgICAgICAgICAgICAgICBwYWdlOiBzcmNQYWdlLFxuICAgICAgICAgICAgICAgICAgICBwb3N0cG9uZWQsXG4gICAgICAgICAgICAgICAgICAgIHNob3VsZFdhaXRPbkFsbFJlYWR5LFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZVN0cmVhbWluZ01ldGFkYXRhLFxuICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c0R5bmFtaWNSZXNwb25zZTogdHlwZW9mIHBvc3Rwb25lZCA9PT0gJ3N0cmluZycgfHwgc3VwcG9ydHNEeW5hbWljUmVzcG9uc2UsXG4gICAgICAgICAgICAgICAgICAgIGJ1aWxkTWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgIG5leHRGb250TWFuaWZlc3QsXG4gICAgICAgICAgICAgICAgICAgIHJlYWN0TG9hZGFibGVNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgc3VicmVzb3VyY2VJbnRlZ3JpdHlNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgc2VydmVyQWN0aW9uc01hbmlmZXN0LFxuICAgICAgICAgICAgICAgICAgICBjbGllbnRSZWZlcmVuY2VNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICAgICAgc2V0SXNyU3RhdHVzOiByb3V0ZXJTZXJ2ZXJDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZXJTZXJ2ZXJDb250ZXh0LnNldElzclN0YXR1cyxcbiAgICAgICAgICAgICAgICAgICAgZGlyOiByb3V0ZU1vZHVsZS5wcm9qZWN0RGlyLFxuICAgICAgICAgICAgICAgICAgICBpc0RyYWZ0TW9kZSxcbiAgICAgICAgICAgICAgICAgICAgaXNSZXZhbGlkYXRlOiBpc1NTRyAmJiAhcG9zdHBvbmVkICYmICFpc0R5bmFtaWNSU0NSZXF1ZXN0LFxuICAgICAgICAgICAgICAgICAgICBib3RUeXBlLFxuICAgICAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgaXNQb3NzaWJsZVNlcnZlckFjdGlvbixcbiAgICAgICAgICAgICAgICAgICAgYXNzZXRQcmVmaXg6IG5leHRDb25maWcuYXNzZXRQcmVmaXgsXG4gICAgICAgICAgICAgICAgICAgIG5leHRDb25maWdPdXRwdXQ6IG5leHRDb25maWcub3V0cHV0LFxuICAgICAgICAgICAgICAgICAgICBjcm9zc09yaWdpbjogbmV4dENvbmZpZy5jcm9zc09yaWdpbixcbiAgICAgICAgICAgICAgICAgICAgdHJhaWxpbmdTbGFzaDogbmV4dENvbmZpZy50cmFpbGluZ1NsYXNoLFxuICAgICAgICAgICAgICAgICAgICBwcmV2aWV3UHJvcHM6IHByZXJlbmRlck1hbmlmZXN0LnByZXZpZXcsXG4gICAgICAgICAgICAgICAgICAgIGRlcGxveW1lbnRJZDogbmV4dENvbmZpZy5kZXBsb3ltZW50SWQsXG4gICAgICAgICAgICAgICAgICAgIGVuYWJsZVRhaW50aW5nOiBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC50YWludCxcbiAgICAgICAgICAgICAgICAgICAgaHRtbExpbWl0ZWRCb3RzOiBuZXh0Q29uZmlnLmh0bWxMaW1pdGVkQm90cyxcbiAgICAgICAgICAgICAgICAgICAgZGV2dG9vbFNlZ21lbnRFeHBsb3JlcjogbmV4dENvbmZpZy5leHBlcmltZW50YWwuZGV2dG9vbFNlZ21lbnRFeHBsb3JlcixcbiAgICAgICAgICAgICAgICAgICAgcmVhY3RNYXhIZWFkZXJzTGVuZ3RoOiBuZXh0Q29uZmlnLnJlYWN0TWF4SGVhZGVyc0xlbmd0aCxcbiAgICAgICAgICAgICAgICAgICAgbXVsdGlab25lRHJhZnRNb2RlLFxuICAgICAgICAgICAgICAgICAgICBpbmNyZW1lbnRhbENhY2hlOiBnZXRSZXF1ZXN0TWV0YShyZXEsICdpbmNyZW1lbnRhbENhY2hlJyksXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlTGlmZVByb2ZpbGVzOiBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5jYWNoZUxpZmUsXG4gICAgICAgICAgICAgICAgICAgIGJhc2VQYXRoOiBuZXh0Q29uZmlnLmJhc2VQYXRoLFxuICAgICAgICAgICAgICAgICAgICBzZXJ2ZXJBY3Rpb25zOiBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5zZXJ2ZXJBY3Rpb25zLFxuICAgICAgICAgICAgICAgICAgICAuLi5pc0RlYnVnU3RhdGljU2hlbGwgfHwgaXNEZWJ1Z0R5bmFtaWNBY2Nlc3NlcyA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG5leHRFeHBvcnQ6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0c0R5bmFtaWNSZXNwb25zZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1N0YXRpY0dlbmVyYXRpb246IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JldmFsaWRhdGU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzOiBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzXG4gICAgICAgICAgICAgICAgICAgIH0gOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgZXhwZXJpbWVudGFsOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZVRpbWU6IG5leHRDb25maWcuZXhwaXJlVGltZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0YWxlVGltZXM6IG5leHRDb25maWcuZXhwZXJpbWVudGFsLnN0YWxlVGltZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWljSU86IEJvb2xlYW4obmV4dENvbmZpZy5leHBlcmltZW50YWwuZHluYW1pY0lPKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsaWVudFNlZ21lbnRDYWNoZTogQm9vbGVhbihuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5jbGllbnRTZWdtZW50Q2FjaGUpLFxuICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY09uSG92ZXI6IEJvb2xlYW4obmV4dENvbmZpZy5leHBlcmltZW50YWwuZHluYW1pY09uSG92ZXIpLFxuICAgICAgICAgICAgICAgICAgICAgICAgaW5saW5lQ3NzOiBCb29sZWFuKG5leHRDb25maWcuZXhwZXJpbWVudGFsLmlubGluZUNzcyksXG4gICAgICAgICAgICAgICAgICAgICAgICBhdXRoSW50ZXJydXB0czogQm9vbGVhbihuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5hdXRoSW50ZXJydXB0cyksXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGllbnRUcmFjZU1ldGFkYXRhOiBuZXh0Q29uZmlnLmV4cGVyaW1lbnRhbC5jbGllbnRUcmFjZU1ldGFkYXRhIHx8IFtdXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHdhaXRVbnRpbDogY3R4LndhaXRVbnRpbCxcbiAgICAgICAgICAgICAgICAgICAgb25DbG9zZTogKGNiKT0+e1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLm9uKCdjbG9zZScsIGNiKTtcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgb25BZnRlclRhc2tFcnJvcjogKCk9Pnt9LFxuICAgICAgICAgICAgICAgICAgICBvbkluc3RydW1lbnRhdGlvblJlcXVlc3RFcnJvcjogKGVycm9yLCBfcmVxdWVzdCwgZXJyb3JDb250ZXh0KT0+cm91dGVNb2R1bGUub25SZXF1ZXN0RXJyb3IocmVxLCBlcnJvciwgZXJyb3JDb250ZXh0LCByb3V0ZXJTZXJ2ZXJDb250ZXh0KSxcbiAgICAgICAgICAgICAgICAgICAgZXJyOiBnZXRSZXF1ZXN0TWV0YShyZXEsICdpbnZva2VFcnJvcicpLFxuICAgICAgICAgICAgICAgICAgICBkZXY6IHJvdXRlTW9kdWxlLmlzRGV2XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IGF3YWl0IGludm9rZVJvdXRlTW9kdWxlKHNwYW4sIGNvbnRleHQpO1xuICAgICAgICAgICAgY29uc3QgeyBtZXRhZGF0YSB9ID0gcmVzdWx0O1xuICAgICAgICAgICAgY29uc3QgeyBjYWNoZUNvbnRyb2wsIGhlYWRlcnMgPSB7fSwgLy8gQWRkIGFueSBmZXRjaCB0YWdzIHRoYXQgd2VyZSBvbiB0aGUgcGFnZSB0byB0aGUgcmVzcG9uc2UgaGVhZGVycy5cbiAgICAgICAgICAgIGZldGNoVGFnczogY2FjaGVUYWdzIH0gPSBtZXRhZGF0YTtcbiAgICAgICAgICAgIGlmIChjYWNoZVRhZ3MpIHtcbiAgICAgICAgICAgICAgICBoZWFkZXJzW05FWFRfQ0FDSEVfVEFHU19IRUFERVJdID0gY2FjaGVUYWdzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUHVsbCBhbnkgZmV0Y2ggbWV0cmljcyBmcm9tIHRoZSByZW5kZXIgb250byB0aGUgcmVxdWVzdC5cbiAgICAgICAgICAgIDtcbiAgICAgICAgICAgIHJlcS5mZXRjaE1ldHJpY3MgPSBtZXRhZGF0YS5mZXRjaE1ldHJpY3M7XG4gICAgICAgICAgICAvLyB3ZSBkb24ndCB0aHJvdyBzdGF0aWMgdG8gZHluYW1pYyBlcnJvcnMgaW4gZGV2IGFzIGlzU1NHXG4gICAgICAgICAgICAvLyBpcyBhIGJlc3QgZ3Vlc3MgaW4gZGV2IHNpbmNlIHdlIGRvbid0IGhhdmUgdGhlIHByZXJlbmRlciBwYXNzXG4gICAgICAgICAgICAvLyB0byBrbm93IHdoZXRoZXIgdGhlIHBhdGggaXMgYWN0dWFsbHkgc3RhdGljIG9yIG5vdFxuICAgICAgICAgICAgaWYgKGlzU1NHICYmIChjYWNoZUNvbnRyb2wgPT0gbnVsbCA/IHZvaWQgMCA6IGNhY2hlQ29udHJvbC5yZXZhbGlkYXRlKSA9PT0gMCAmJiAhcm91dGVNb2R1bGUuaXNEZXYgJiYgIWlzUm91dGVQUFJFbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdGljQmFpbG91dEluZm8gPSBtZXRhZGF0YS5zdGF0aWNCYWlsb3V0SW5mbztcbiAgICAgICAgICAgICAgICBjb25zdCBlcnIgPSBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKGBQYWdlIGNoYW5nZWQgZnJvbSBzdGF0aWMgdG8gZHluYW1pYyBhdCBydW50aW1lICR7cmVzb2x2ZWRQYXRobmFtZX0keyhzdGF0aWNCYWlsb3V0SW5mbyA9PSBudWxsID8gdm9pZCAwIDogc3RhdGljQmFpbG91dEluZm8uZGVzY3JpcHRpb24pID8gYCwgcmVhc29uOiAke3N0YXRpY0JhaWxvdXRJbmZvLmRlc2NyaXB0aW9ufWAgOiBgYH1gICsgYFxcbnNlZSBtb3JlIGhlcmUgaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvYXBwLXN0YXRpYy10by1keW5hbWljLWVycm9yYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMTMyXCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICBpZiAoc3RhdGljQmFpbG91dEluZm8gPT0gbnVsbCA/IHZvaWQgMCA6IHN0YXRpY0JhaWxvdXRJbmZvLnN0YWNrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHN0YWNrID0gc3RhdGljQmFpbG91dEluZm8uc3RhY2s7XG4gICAgICAgICAgICAgICAgICAgIGVyci5zdGFjayA9IGVyci5tZXNzYWdlICsgc3RhY2suc3Vic3RyaW5nKHN0YWNrLmluZGV4T2YoJ1xcbicpKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhyb3cgZXJyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICB2YWx1ZToge1xuICAgICAgICAgICAgICAgICAgICBraW5kOiBDYWNoZWRSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgICAgICAgICAgICAgIGh0bWw6IHJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgaGVhZGVycyxcbiAgICAgICAgICAgICAgICAgICAgcnNjRGF0YTogbWV0YWRhdGEuZmxpZ2h0RGF0YSxcbiAgICAgICAgICAgICAgICAgICAgcG9zdHBvbmVkOiBtZXRhZGF0YS5wb3N0cG9uZWQsXG4gICAgICAgICAgICAgICAgICAgIHN0YXR1czogbWV0YWRhdGEuc3RhdHVzQ29kZSxcbiAgICAgICAgICAgICAgICAgICAgc2VnbWVudERhdGE6IG1ldGFkYXRhLnNlZ21lbnREYXRhXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2xcbiAgICAgICAgICAgIH07XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IHJlc3BvbnNlR2VuZXJhdG9yID0gYXN5bmMgKHsgaGFzUmVzb2x2ZWQsIHByZXZpb3VzQ2FjaGVFbnRyeSwgaXNSZXZhbGlkYXRpbmcsIHNwYW4gfSk9PntcbiAgICAgICAgICAgIGNvbnN0IGlzUHJvZHVjdGlvbiA9IHJvdXRlTW9kdWxlLmlzRGV2ID09PSBmYWxzZTtcbiAgICAgICAgICAgIGNvbnN0IGRpZFJlc3BvbmQgPSBoYXNSZXNvbHZlZCB8fCByZXMud3JpdGFibGVFbmRlZDtcbiAgICAgICAgICAgIC8vIHNraXAgb24tZGVtYW5kIHJldmFsaWRhdGUgaWYgY2FjaGUgaXMgbm90IHByZXNlbnQgYW5kXG4gICAgICAgICAgICAvLyByZXZhbGlkYXRlLWlmLWdlbmVyYXRlZCBpcyBzZXRcbiAgICAgICAgICAgIGlmIChpc09uRGVtYW5kUmV2YWxpZGF0ZSAmJiByZXZhbGlkYXRlT25seUdlbmVyYXRlZCAmJiAhcHJldmlvdXNDYWNoZUVudHJ5ICYmICFtaW5pbWFsTW9kZSkge1xuICAgICAgICAgICAgICAgIGlmIChyb3V0ZXJTZXJ2ZXJDb250ZXh0ID09IG51bGwgPyB2b2lkIDAgOiByb3V0ZXJTZXJ2ZXJDb250ZXh0LnJlbmRlcjQwNCkge1xuICAgICAgICAgICAgICAgICAgICBhd2FpdCByb3V0ZXJTZXJ2ZXJDb250ZXh0LnJlbmRlcjQwNChyZXEsIHJlcyk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSA0MDQ7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5lbmQoJ1RoaXMgcGFnZSBjb3VsZCBub3QgYmUgZm91bmQnKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBsZXQgZmFsbGJhY2tNb2RlO1xuICAgICAgICAgICAgaWYgKHByZXJlbmRlckluZm8pIHtcbiAgICAgICAgICAgICAgICBmYWxsYmFja01vZGUgPSBwYXJzZUZhbGxiYWNrRmllbGQocHJlcmVuZGVySW5mby5mYWxsYmFjayk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBXaGVuIHNlcnZpbmcgYSBib3QgcmVxdWVzdCwgd2Ugd2FudCB0byBzZXJ2ZSBhIGJsb2NraW5nIHJlbmRlciBhbmQgbm90XG4gICAgICAgICAgICAvLyB0aGUgcHJlcmVuZGVyZWQgcGFnZS4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIGNvcnJlY3QgY29udGVudCBpcyBzZXJ2ZWRcbiAgICAgICAgICAgIC8vIHRvIHRoZSBib3QgaW4gdGhlIGhlYWQuXG4gICAgICAgICAgICBpZiAoZmFsbGJhY2tNb2RlID09PSBGYWxsYmFja01vZGUuUFJFUkVOREVSICYmIGlzQm90KHVzZXJBZ2VudCkpIHtcbiAgICAgICAgICAgICAgICBmYWxsYmFja01vZGUgPSBGYWxsYmFja01vZGUuQkxPQ0tJTkdfU1RBVElDX1JFTkRFUjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICgocHJldmlvdXNDYWNoZUVudHJ5ID09IG51bGwgPyB2b2lkIDAgOiBwcmV2aW91c0NhY2hlRW50cnkuaXNTdGFsZSkgPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgaXNPbkRlbWFuZFJldmFsaWRhdGUgPSB0cnVlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gVE9ETzogYWRhcHQgZm9yIFBQUlxuICAgICAgICAgICAgLy8gb25seSBhbGxvdyBvbi1kZW1hbmQgcmV2YWxpZGF0ZSBmb3IgZmFsbGJhY2s6IHRydWUvYmxvY2tpbmdcbiAgICAgICAgICAgIC8vIG9yIGZvciBwcmVyZW5kZXJlZCBmYWxsYmFjazogZmFsc2UgcGF0aHNcbiAgICAgICAgICAgIGlmIChpc09uRGVtYW5kUmV2YWxpZGF0ZSAmJiAoZmFsbGJhY2tNb2RlICE9PSBGYWxsYmFja01vZGUuTk9UX0ZPVU5EIHx8IHByZXZpb3VzQ2FjaGVFbnRyeSkpIHtcbiAgICAgICAgICAgICAgICBmYWxsYmFja01vZGUgPSBGYWxsYmFja01vZGUuQkxPQ0tJTkdfU1RBVElDX1JFTkRFUjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghbWluaW1hbE1vZGUgJiYgZmFsbGJhY2tNb2RlICE9PSBGYWxsYmFja01vZGUuQkxPQ0tJTkdfU1RBVElDX1JFTkRFUiAmJiBzdGF0aWNQYXRoS2V5ICYmICFkaWRSZXNwb25kICYmICFpc0RyYWZ0TW9kZSAmJiBwYWdlSXNEeW5hbWljICYmIChpc1Byb2R1Y3Rpb24gfHwgIWlzUHJlcmVuZGVyZWQpKSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgdGhlIHBhZ2UgaGFzIGR5bmFtaWNQYXJhbXM6IGZhbHNlIGFuZCB0aGlzIHBhdGhuYW1lIHdhc24ndFxuICAgICAgICAgICAgICAgIC8vIHByZXJlbmRlcmVkIHRyaWdnZXIgdGhlIG5vIGZhbGxiYWNrIGhhbmRsaW5nXG4gICAgICAgICAgICAgICAgaWYgKC8vIEluIGRldmVsb3BtZW50LCBmYWxsIHRocm91Z2ggdG8gcmVuZGVyIHRvIGhhbmRsZSBtaXNzaW5nXG4gICAgICAgICAgICAgICAgLy8gZ2V0U3RhdGljUGF0aHMuXG4gICAgICAgICAgICAgICAgKGlzUHJvZHVjdGlvbiB8fCBwcmVyZW5kZXJJbmZvKSAmJiAvLyBXaGVuIGZhbGxiYWNrIGlzbid0IHByZXNlbnQsIGFib3J0IHRoaXMgcmVuZGVyIHNvIHdlIDQwNFxuICAgICAgICAgICAgICAgIGZhbGxiYWNrTW9kZSA9PT0gRmFsbGJhY2tNb2RlLk5PVF9GT1VORCkge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgTm9GYWxsYmFja0Vycm9yKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCBmYWxsYmFja1Jlc3BvbnNlO1xuICAgICAgICAgICAgICAgIGlmIChpc1JvdXRlUFBSRW5hYmxlZCAmJiAhaXNSU0NSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIHVzZSB0aGUgcmVzcG9uc2UgY2FjaGUgaGVyZSB0byBoYW5kbGUgdGhlIHJldmFsaWRhdGlvbiBhbmRcbiAgICAgICAgICAgICAgICAgICAgLy8gbWFuYWdlbWVudCBvZiB0aGUgZmFsbGJhY2sgc2hlbGwuXG4gICAgICAgICAgICAgICAgICAgIGZhbGxiYWNrUmVzcG9uc2UgPSBhd2FpdCByb3V0ZU1vZHVsZS5oYW5kbGVSZXNwb25zZSh7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUtleTogaXNQcm9kdWN0aW9uID8gbm9ybWFsaXplZFNyY1BhZ2UgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgICAgICAgICAgbmV4dENvbmZpZyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlS2luZDogUm91dGVLaW5kLkFQUF9QQUdFLFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNGYWxsYmFjazogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHByZXJlbmRlck1hbmlmZXN0LFxuICAgICAgICAgICAgICAgICAgICAgICAgaXNSb3V0ZVBQUkVuYWJsZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICByZXNwb25zZUdlbmVyYXRvcjogYXN5bmMgKCk9PmRvUmVuZGVyKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3BhbixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gV2UgcGFzcyBgdW5kZWZpbmVkYCBhcyByZW5kZXJpbmcgYSBmYWxsYmFjayBpc24ndCByZXN1bWVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIGhlcmUuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc3Rwb25lZDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmYWxsYmFja1JvdXRlUGFyYW1zOiAvLyBJZiB3ZSdyZSBpbiBwcm9kdWN0aW9uIG9yIHdlJ3JlIGRlYnVnZ2luZyB0aGUgZmFsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gc2hlbGwgdGhlbiB3ZSBzaG91bGQgcG9zdHBvbmUgd2hlbiBkeW5hbWljIHBhcmFtcyBhcmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gYWNjZXNzZWQuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzUHJvZHVjdGlvbiB8fCBpc0RlYnVnRmFsbGJhY2tTaGVsbCA/IGdldEZhbGxiYWNrUm91dGVQYXJhbXMobm9ybWFsaXplZFNyY1BhZ2UpIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgd2FpdFVudGlsOiBjdHgud2FpdFVudGlsXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAvLyBJZiB0aGUgZmFsbGJhY2sgcmVzcG9uc2Ugd2FzIHNldCB0byBudWxsLCB0aGVuIHdlIHNob3VsZCByZXR1cm4gbnVsbC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrUmVzcG9uc2UgPT09IG51bGwpIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAvLyBPdGhlcndpc2UsIGlmIHdlIGRpZCBnZXQgYSBmYWxsYmFjayByZXNwb25zZSwgd2Ugc2hvdWxkIHJldHVybiBpdC5cbiAgICAgICAgICAgICAgICAgICAgaWYgKGZhbGxiYWNrUmVzcG9uc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFJlbW92ZSB0aGUgY2FjaGUgY29udHJvbCBmcm9tIHRoZSByZXNwb25zZSB0byBwcmV2ZW50IGl0IGZyb20gYmVpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIHVzZWQgaW4gdGhlIHN1cnJvdW5kaW5nIGNhY2hlLlxuICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlIGZhbGxiYWNrUmVzcG9uc2UuY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGZhbGxiYWNrUmVzcG9uc2U7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBPbmx5IHJlcXVlc3RzIHRoYXQgYXJlbid0IHJldmFsaWRhdGluZyBjYW4gYmUgcmVzdW1lZC4gSWYgd2UgaGF2ZSB0aGVcbiAgICAgICAgICAgIC8vIG1pbmltYWwgcG9zdHBvbmVkIGRhdGEsIHRoZW4gd2Ugc2hvdWxkIHJlc3VtZSB0aGUgcmVuZGVyIHdpdGggaXQuXG4gICAgICAgICAgICBjb25zdCBwb3N0cG9uZWQgPSAhaXNPbkRlbWFuZFJldmFsaWRhdGUgJiYgIWlzUmV2YWxpZGF0aW5nICYmIG1pbmltYWxQb3N0cG9uZWQgPyBtaW5pbWFsUG9zdHBvbmVkIDogdW5kZWZpbmVkO1xuICAgICAgICAgICAgLy8gV2hlbiB3ZSdyZSBpbiBtaW5pbWFsIG1vZGUsIGlmIHdlJ3JlIHRyeWluZyB0byBkZWJ1ZyB0aGUgc3RhdGljIHNoZWxsLFxuICAgICAgICAgICAgLy8gd2Ugc2hvdWxkIGp1c3QgcmV0dXJuIG5vdGhpbmcgaW5zdGVhZCBvZiByZXN1bWluZyB0aGUgZHluYW1pYyByZW5kZXIuXG4gICAgICAgICAgICBpZiAoKGlzRGVidWdTdGF0aWNTaGVsbCB8fCBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzKSAmJiB0eXBlb2YgcG9zdHBvbmVkICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogMSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBraW5kOiBDYWNoZWRSb3V0ZUtpbmQuUEFHRVMsXG4gICAgICAgICAgICAgICAgICAgICAgICBodG1sOiBSZW5kZXJSZXN1bHQuZnJvbVN0YXRpYygnJyksXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWdlRGF0YToge30sXG4gICAgICAgICAgICAgICAgICAgICAgICBoZWFkZXJzOiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICBzdGF0dXM6IHVuZGVmaW5lZFxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBkeW5hbWljIHJvdXRlIHdpdGggUFBSIGVuYWJsZWQgYW5kIHRoZSBkZWZhdWx0IHJvdXRlXG4gICAgICAgICAgICAvLyBtYXRjaGVzIHdlcmUgc2V0LCB0aGVuIHdlIHNob3VsZCBwYXNzIHRoZSBmYWxsYmFjayByb3V0ZSBwYXJhbXMgdG9cbiAgICAgICAgICAgIC8vIHRoZSByZW5kZXJlciBhcyB0aGlzIGlzIGEgZmFsbGJhY2sgcmV2YWxpZGF0aW9uIHJlcXVlc3QuXG4gICAgICAgICAgICBjb25zdCBmYWxsYmFja1JvdXRlUGFyYW1zID0gcGFnZUlzRHluYW1pYyAmJiBpc1JvdXRlUFBSRW5hYmxlZCAmJiAoZ2V0UmVxdWVzdE1ldGEocmVxLCAncmVuZGVyRmFsbGJhY2tTaGVsbCcpIHx8IGlzRGVidWdGYWxsYmFja1NoZWxsKSA/IGdldEZhbGxiYWNrUm91dGVQYXJhbXMocGF0aG5hbWUpIDogbnVsbDtcbiAgICAgICAgICAgIC8vIFBlcmZvcm0gdGhlIHJlbmRlci5cbiAgICAgICAgICAgIHJldHVybiBkb1JlbmRlcih7XG4gICAgICAgICAgICAgICAgc3BhbixcbiAgICAgICAgICAgICAgICBwb3N0cG9uZWQsXG4gICAgICAgICAgICAgICAgZmFsbGJhY2tSb3V0ZVBhcmFtc1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH07XG4gICAgICAgIGNvbnN0IGhhbmRsZVJlc3BvbnNlID0gYXN5bmMgKHNwYW4pPT57XG4gICAgICAgICAgICB2YXIgX2NhY2hlRW50cnlfdmFsdWUsIF9jYWNoZWREYXRhX2hlYWRlcnM7XG4gICAgICAgICAgICBjb25zdCBjYWNoZUVudHJ5ID0gYXdhaXQgcm91dGVNb2R1bGUuaGFuZGxlUmVzcG9uc2Uoe1xuICAgICAgICAgICAgICAgIGNhY2hlS2V5OiBzc2dDYWNoZUtleSxcbiAgICAgICAgICAgICAgICByZXNwb25zZUdlbmVyYXRvcjogKGMpPT5yZXNwb25zZUdlbmVyYXRvcih7XG4gICAgICAgICAgICAgICAgICAgICAgICBzcGFuLFxuICAgICAgICAgICAgICAgICAgICAgICAgLi4uY1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICByb3V0ZUtpbmQ6IFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZSxcbiAgICAgICAgICAgICAgICBpc1JvdXRlUFBSRW5hYmxlZCxcbiAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgbmV4dENvbmZpZyxcbiAgICAgICAgICAgICAgICBwcmVyZW5kZXJNYW5pZmVzdCxcbiAgICAgICAgICAgICAgICB3YWl0VW50aWw6IGN0eC53YWl0VW50aWxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGlzRHJhZnRNb2RlKSB7XG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcignQ2FjaGUtQ29udHJvbCcsICdwcml2YXRlLCBuby1jYWNoZSwgbm8tc3RvcmUsIG1heC1hZ2U9MCwgbXVzdC1yZXZhbGlkYXRlJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJbiBkZXYsIHdlIHNob3VsZCBub3QgY2FjaGUgcGFnZXMgZm9yIGFueSByZWFzb24uXG4gICAgICAgICAgICBpZiAocm91dGVNb2R1bGUuaXNEZXYpIHtcbiAgICAgICAgICAgICAgICByZXMuc2V0SGVhZGVyKCdDYWNoZS1Db250cm9sJywgJ25vLXN0b3JlLCBtdXN0LXJldmFsaWRhdGUnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICghY2FjaGVFbnRyeSkge1xuICAgICAgICAgICAgICAgIGlmIChzc2dDYWNoZUtleSkge1xuICAgICAgICAgICAgICAgICAgICAvLyBBIGNhY2hlIGVudHJ5IG1pZ2h0IG5vdCBiZSBnZW5lcmF0ZWQgaWYgYSByZXNwb25zZSBpcyB3cml0dGVuXG4gICAgICAgICAgICAgICAgICAgIC8vIGluIGBnZXRJbml0aWFsUHJvcHNgIG9yIGBnZXRTZXJ2ZXJTaWRlUHJvcHNgLCBidXQgdGhvc2Ugc2hvdWxkbid0XG4gICAgICAgICAgICAgICAgICAgIC8vIGhhdmUgYSBjYWNoZSBrZXkuIElmIHdlIGRvIGhhdmUgYSBjYWNoZSBrZXkgYnV0IHdlIGRvbid0IGVuZCB1cFxuICAgICAgICAgICAgICAgICAgICAvLyB3aXRoIGEgY2FjaGUgZW50cnksIHRoZW4gZWl0aGVyIE5leHQuanMgb3IgdGhlIGFwcGxpY2F0aW9uIGhhcyBhXG4gICAgICAgICAgICAgICAgICAgIC8vIGJ1ZyB0aGF0IG5lZWRzIGZpeGluZy5cbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignaW52YXJpYW50OiBjYWNoZSBlbnRyeSByZXF1aXJlZCBidXQgbm90IGdlbmVyYXRlZCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU2MlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgaWYgKCgoX2NhY2hlRW50cnlfdmFsdWUgPSBjYWNoZUVudHJ5LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlRW50cnlfdmFsdWUua2luZCkgIT09IENhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSkge1xuICAgICAgICAgICAgICAgIHZhciBfY2FjaGVFbnRyeV92YWx1ZTE7XG4gICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YXJpYW50IGFwcC1wYWdlIGhhbmRsZXIgcmVjZWl2ZWQgaW52YWxpZCBjYWNoZSBlbnRyeSAkeyhfY2FjaGVFbnRyeV92YWx1ZTEgPSBjYWNoZUVudHJ5LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlRW50cnlfdmFsdWUxLmtpbmR9YCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFNzA3XCIsXG4gICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGNvbnN0IGRpZFBvc3Rwb25lID0gdHlwZW9mIGNhY2hlRW50cnkudmFsdWUucG9zdHBvbmVkID09PSAnc3RyaW5nJztcbiAgICAgICAgICAgIGlmIChpc1NTRyAmJiAvLyBXZSBkb24ndCB3YW50IHRvIHNlbmQgYSBjYWNoZSBoZWFkZXIgZm9yIHJlcXVlc3RzIHRoYXQgY29udGFpbiBkeW5hbWljXG4gICAgICAgICAgICAvLyBkYXRhLiBJZiB0aGlzIGlzIGEgRHluYW1pYyBSU0MgcmVxdWVzdCBvciB3YXNuJ3QgYSBQcmVmZXRjaCBSU0NcbiAgICAgICAgICAgIC8vIHJlcXVlc3QsIHRoZW4gd2Ugc2hvdWxkIHNldCB0aGUgY2FjaGUgaGVhZGVyLlxuICAgICAgICAgICAgIWlzRHluYW1pY1JTQ1JlcXVlc3QgJiYgKCFkaWRQb3N0cG9uZSB8fCBpc1ByZWZldGNoUlNDUmVxdWVzdCkpIHtcbiAgICAgICAgICAgICAgICBpZiAoIW1pbmltYWxNb2RlKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIHNldCB4LW5leHRqcy1jYWNoZSBoZWFkZXIgdG8gbWF0Y2ggdGhlIGhlYWRlclxuICAgICAgICAgICAgICAgICAgICAvLyB3ZSBzZXQgZm9yIHRoZSBpbWFnZS1vcHRpbWl6ZXJcbiAgICAgICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcigneC1uZXh0anMtY2FjaGUnLCBpc09uRGVtYW5kUmV2YWxpZGF0ZSA/ICdSRVZBTElEQVRFRCcgOiBjYWNoZUVudHJ5LmlzTWlzcyA/ICdNSVNTJyA6IGNhY2hlRW50cnkuaXNTdGFsZSA/ICdTVEFMRScgOiAnSElUJyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFNldCBhIGhlYWRlciB1c2VkIGJ5IHRoZSBjbGllbnQgcm91dGVyIHRvIHNpZ25hbCB0aGUgcmVzcG9uc2UgaXMgc3RhdGljXG4gICAgICAgICAgICAgICAgLy8gYW5kIHNob3VsZCByZXNwZWN0IHRoZSBgc3RhdGljYCBjYWNoZSBzdGFsZVRpbWUgdmFsdWUuXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcihORVhUX0lTX1BSRVJFTkRFUl9IRUFERVIsICcxJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb25zdCB7IHZhbHVlOiBjYWNoZWREYXRhIH0gPSBjYWNoZUVudHJ5O1xuICAgICAgICAgICAgLy8gQ29lcmNlIHRoZSBjYWNoZSBjb250cm9sIHBhcmFtZXRlciBmcm9tIHRoZSByZW5kZXIuXG4gICAgICAgICAgICBsZXQgY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgLy8gSWYgdGhpcyBpcyBhIHJlc3VtZSByZXF1ZXN0IGluIG1pbmltYWwgbW9kZSBpdCBpcyBzdHJlYW1lZCB3aXRoIGR5bmFtaWNcbiAgICAgICAgICAgIC8vIGNvbnRlbnQgYW5kIHNob3VsZCBub3QgYmUgY2FjaGVkLlxuICAgICAgICAgICAgaWYgKG1pbmltYWxQb3N0cG9uZWQpIHtcbiAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWluaW1hbE1vZGUgJiYgaXNSU0NSZXF1ZXN0ICYmICFpc1ByZWZldGNoUlNDUmVxdWVzdCAmJiBpc1JvdXRlUFBSRW5hYmxlZCkge1xuICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbCA9IHtcbiAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogMCxcbiAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfSBlbHNlIGlmICghcm91dGVNb2R1bGUuaXNEZXYpIHtcbiAgICAgICAgICAgICAgICAvLyBJZiB0aGlzIGlzIGEgcHJldmlldyBtb2RlIHJlcXVlc3QsIHdlIHNob3VsZG4ndCBjYWNoZSBpdFxuICAgICAgICAgICAgICAgIGlmIChpc0RyYWZ0TW9kZSkge1xuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2wgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXZhbGlkYXRlOiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKCFpc1NTRykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlcy5nZXRIZWFkZXIoJ0NhY2hlLUNvbnRyb2wnKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGNhY2hlRW50cnkuY2FjaGVDb250cm9sKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIElmIHRoZSBjYWNoZSBlbnRyeSBoYXMgYSBjYWNoZSBjb250cm9sIHdpdGggYSByZXZhbGlkYXRlIHZhbHVlIHRoYXQnc1xuICAgICAgICAgICAgICAgICAgICAvLyBhIG51bWJlciwgdXNlIGl0LlxuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNhY2hlRW50cnkuY2FjaGVDb250cm9sLnJldmFsaWRhdGUgPT09ICdudW1iZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2YXIgX2NhY2hlRW50cnlfY2FjaGVDb250cm9sO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGNhY2hlRW50cnkuY2FjaGVDb250cm9sLnJldmFsaWRhdGUgPCAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YWxpZCByZXZhbGlkYXRlIGNvbmZpZ3VyYXRpb24gcHJvdmlkZWQ6ICR7Y2FjaGVFbnRyeS5jYWNoZUNvbnRyb2wucmV2YWxpZGF0ZX0gPCAxYCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogXCJFMjJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZ3VyYWJsZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IGNhY2hlRW50cnkuY2FjaGVDb250cm9sLnJldmFsaWRhdGUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiAoKF9jYWNoZUVudHJ5X2NhY2hlQ29udHJvbCA9IGNhY2hlRW50cnkuY2FjaGVDb250cm9sKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlRW50cnlfY2FjaGVDb250cm9sLmV4cGlyZSkgPz8gbmV4dENvbmZpZy5leHBpcmVUaW1lXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sID0ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IENBQ0hFX09ORV9ZRUFSLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY2FjaGVFbnRyeS5jYWNoZUNvbnRyb2wgPSBjYWNoZUNvbnRyb2w7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHNlZ21lbnRQcmVmZXRjaEhlYWRlciA9PT0gJ3N0cmluZycgJiYgKGNhY2hlZERhdGEgPT0gbnVsbCA/IHZvaWQgMCA6IGNhY2hlZERhdGEua2luZCkgPT09IENhY2hlZFJvdXRlS2luZC5BUFBfUEFHRSAmJiBjYWNoZWREYXRhLnNlZ21lbnREYXRhKSB7XG4gICAgICAgICAgICAgICAgdmFyIF9jYWNoZWREYXRhX2hlYWRlcnMxO1xuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSBwcmVmZXRjaCByZXF1ZXN0IGlzc3VlZCBieSB0aGUgY2xpZW50IFNlZ21lbnQgQ2FjaGUuIFRoZXNlXG4gICAgICAgICAgICAgICAgLy8gc2hvdWxkIG5ldmVyIHJlYWNoIHRoZSBhcHBsaWNhdGlvbiBsYXllciAobGFtYmRhKS4gV2Ugc2hvdWxkIGVpdGhlclxuICAgICAgICAgICAgICAgIC8vIHJlc3BvbmQgZnJvbSB0aGUgY2FjaGUgKEhJVCkgb3IgcmVzcG9uZCB3aXRoIDIwNCBObyBDb250ZW50IChNSVNTKS5cbiAgICAgICAgICAgICAgICAvLyBTZXQgYSBoZWFkZXIgdG8gaW5kaWNhdGUgdGhhdCBQUFIgaXMgZW5hYmxlZCBmb3IgdGhpcyByb3V0ZS4gVGhpc1xuICAgICAgICAgICAgICAgIC8vIGxldHMgdGhlIGNsaWVudCBkaXN0aW5ndWlzaCBiZXR3ZWVuIGEgcmVndWxhciBjYWNoZSBtaXNzIGFuZCBhIGNhY2hlXG4gICAgICAgICAgICAgICAgLy8gbWlzcyBkdWUgdG8gUFBSIGJlaW5nIGRpc2FibGVkLiBJbiBvdGhlciBjb250ZXh0cyB0aGlzIGhlYWRlciBpcyB1c2VkXG4gICAgICAgICAgICAgICAgLy8gdG8gaW5kaWNhdGUgdGhhdCB0aGUgcmVzcG9uc2UgY29udGFpbnMgZHluYW1pYyBkYXRhLCBidXQgaGVyZSB3ZSdyZVxuICAgICAgICAgICAgICAgIC8vIG9ubHkgdXNpbmcgaXQgdG8gaW5kaWNhdGUgdGhhdCB0aGUgZmVhdHVyZSBpcyBlbmFibGVkIOKAlCB0aGUgc2VnbWVudFxuICAgICAgICAgICAgICAgIC8vIHJlc3BvbnNlIGl0c2VsZiBjb250YWlucyB3aGV0aGVyIHRoZSBkYXRhIGlzIGR5bmFtaWMuXG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcihORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIsICcyJyk7XG4gICAgICAgICAgICAgICAgLy8gQWRkIHRoZSBjYWNoZSB0YWdzIGhlYWRlciB0byB0aGUgcmVzcG9uc2UgaWYgaXQgZXhpc3RzIGFuZCB3ZSdyZSBpblxuICAgICAgICAgICAgICAgIC8vIG1pbmltYWwgbW9kZSB3aGlsZSByZW5kZXJpbmcgYSBzdGF0aWMgcGFnZS5cbiAgICAgICAgICAgICAgICBjb25zdCB0YWdzID0gKF9jYWNoZWREYXRhX2hlYWRlcnMxID0gY2FjaGVkRGF0YS5oZWFkZXJzKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlZERhdGFfaGVhZGVyczFbTkVYVF9DQUNIRV9UQUdTX0hFQURFUl07XG4gICAgICAgICAgICAgICAgaWYgKG1pbmltYWxNb2RlICYmIGlzU1NHICYmIHRhZ3MgJiYgdHlwZW9mIHRhZ3MgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoTkVYVF9DQUNIRV9UQUdTX0hFQURFUiwgdGFncyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGNvbnN0IG1hdGNoZWRTZWdtZW50ID0gY2FjaGVkRGF0YS5zZWdtZW50RGF0YS5nZXQoc2VnbWVudFByZWZldGNoSGVhZGVyKTtcbiAgICAgICAgICAgICAgICBpZiAobWF0Y2hlZFNlZ21lbnQgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBDYWNoZSBoaXRcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHNlbmRSZW5kZXJSZXN1bHQoe1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzLFxuICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3JzYycsXG4gICAgICAgICAgICAgICAgICAgICAgICBnZW5lcmF0ZUV0YWdzOiBuZXh0Q29uZmlnLmdlbmVyYXRlRXRhZ3MsXG4gICAgICAgICAgICAgICAgICAgICAgICBwb3dlcmVkQnlIZWFkZXI6IG5leHRDb25maWcucG93ZXJlZEJ5SGVhZGVyLFxuICAgICAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBSZW5kZXJSZXN1bHQuZnJvbVN0YXRpYyhtYXRjaGVkU2VnbWVudCksXG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGNhY2hlRW50cnkuY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAvLyBDYWNoZSBtaXNzLiBFaXRoZXIgYSBjYWNoZSBlbnRyeSBmb3IgdGhpcyByb3V0ZSBoYXMgbm90IGJlZW4gZ2VuZXJhdGVkXG4gICAgICAgICAgICAgICAgLy8gKHdoaWNoIHRlY2huaWNhbGx5IHNob3VsZCBub3QgYmUgcG9zc2libGUgd2hlbiBQUFIgaXMgZW5hYmxlZCwgYmVjYXVzZVxuICAgICAgICAgICAgICAgIC8vIGF0IGEgbWluaW11bSB0aGVyZSBzaG91bGQgYWx3YXlzIGJlIGEgZmFsbGJhY2sgZW50cnkpIG9yIHRoZXJlJ3Mgbm9cbiAgICAgICAgICAgICAgICAvLyBtYXRjaCBmb3IgdGhlIHJlcXVlc3RlZCBzZWdtZW50LiBSZXNwb25kIHdpdGggYSAyMDQgTm8gQ29udGVudC4gV2VcbiAgICAgICAgICAgICAgICAvLyBkb24ndCBib3RoZXIgdG8gcmVzcG9uZCB3aXRoIDQwNCwgYmVjYXVzZSB0aGVzZSByZXF1ZXN0cyBhcmUgb25seVxuICAgICAgICAgICAgICAgIC8vIGlzc3VlZCBhcyBwYXJ0IG9mIGEgcHJlZmV0Y2guXG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDQ7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbmRSZW5kZXJSZXN1bHQoe1xuICAgICAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3JzYycsXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlRXRhZ3M6IG5leHRDb25maWcuZ2VuZXJhdGVFdGFncyxcbiAgICAgICAgICAgICAgICAgICAgcG93ZXJlZEJ5SGVhZGVyOiBuZXh0Q29uZmlnLnBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBSZW5kZXJSZXN1bHQuZnJvbVN0YXRpYygnJyksXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDogY2FjaGVFbnRyeS5jYWNoZUNvbnRyb2xcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIElmIHRoZXJlJ3MgYSBjYWxsYmFjayBmb3IgYG9uQ2FjaGVFbnRyeWAsIGNhbGwgaXQgd2l0aCB0aGUgY2FjaGUgZW50cnlcbiAgICAgICAgICAgIC8vIGFuZCB0aGUgcmV2YWxpZGF0ZSBvcHRpb25zLlxuICAgICAgICAgICAgY29uc3Qgb25DYWNoZUVudHJ5ID0gZ2V0UmVxdWVzdE1ldGEocmVxLCAnb25DYWNoZUVudHJ5Jyk7XG4gICAgICAgICAgICBpZiAob25DYWNoZUVudHJ5KSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmluaXNoZWQgPSBhd2FpdCBvbkNhY2hlRW50cnkoe1xuICAgICAgICAgICAgICAgICAgICAuLi5jYWNoZUVudHJ5LFxuICAgICAgICAgICAgICAgICAgICAvLyBUT0RPOiByZW1vdmUgdGhpcyB3aGVuIHVwc3RyZWFtIGRvZXNuJ3RcbiAgICAgICAgICAgICAgICAgICAgLy8gYWx3YXlzIGV4cGVjdCB0aGlzIHZhbHVlIHRvIGJlIFwiUEFHRVwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAuLi5jYWNoZUVudHJ5LnZhbHVlLFxuICAgICAgICAgICAgICAgICAgICAgICAga2luZDogJ1BBR0UnXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCB7XG4gICAgICAgICAgICAgICAgICAgIHVybDogZ2V0UmVxdWVzdE1ldGEocmVxLCAnaW5pdFVSTCcpXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgaWYgKGZpbmlzaGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE86IG1heWJlIHdlIGhhdmUgdG8gZW5kIHRoZSByZXF1ZXN0P1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGUgcmVxdWVzdCBoYXMgYSBwb3N0cG9uZWQgc3RhdGUgYW5kIGl0J3MgYSByZXN1bWUgcmVxdWVzdCB3ZVxuICAgICAgICAgICAgLy8gc2hvdWxkIGVycm9yLlxuICAgICAgICAgICAgaWYgKGRpZFBvc3Rwb25lICYmIG1pbmltYWxQb3N0cG9uZWQpIHtcbiAgICAgICAgICAgICAgICB0aHJvdyBPYmplY3QuZGVmaW5lUHJvcGVydHkobmV3IEVycm9yKCdJbnZhcmlhbnQ6IHBvc3Rwb25lZCBzdGF0ZSBzaG91bGQgbm90IGJlIHByZXNlbnQgb24gYSByZXN1bWUgcmVxdWVzdCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTM5NlwiLFxuICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBpZiAoY2FjaGVkRGF0YS5oZWFkZXJzKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgaGVhZGVycyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4uY2FjaGVkRGF0YS5oZWFkZXJzXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICBpZiAoIW1pbmltYWxNb2RlIHx8ICFpc1NTRykge1xuICAgICAgICAgICAgICAgICAgICBkZWxldGUgaGVhZGVyc1tORVhUX0NBQ0hFX1RBR1NfSEVBREVSXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKGhlYWRlcnMpKXtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ3VuZGVmaW5lZCcpIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdiBvZiB2YWx1ZSl7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzLmFwcGVuZEhlYWRlcihrZXksIHYpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlID0gdmFsdWUudG9TdHJpbmcoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcy5hcHBlbmRIZWFkZXIoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXMuYXBwZW5kSGVhZGVyKGtleSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gQWRkIHRoZSBjYWNoZSB0YWdzIGhlYWRlciB0byB0aGUgcmVzcG9uc2UgaWYgaXQgZXhpc3RzIGFuZCB3ZSdyZSBpblxuICAgICAgICAgICAgLy8gbWluaW1hbCBtb2RlIHdoaWxlIHJlbmRlcmluZyBhIHN0YXRpYyBwYWdlLlxuICAgICAgICAgICAgY29uc3QgdGFncyA9IChfY2FjaGVkRGF0YV9oZWFkZXJzID0gY2FjaGVkRGF0YS5oZWFkZXJzKSA9PSBudWxsID8gdm9pZCAwIDogX2NhY2hlZERhdGFfaGVhZGVyc1tORVhUX0NBQ0hFX1RBR1NfSEVBREVSXTtcbiAgICAgICAgICAgIGlmIChtaW5pbWFsTW9kZSAmJiBpc1NTRyAmJiB0YWdzICYmIHR5cGVvZiB0YWdzID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIHJlcy5zZXRIZWFkZXIoTkVYVF9DQUNIRV9UQUdTX0hFQURFUiwgdGFncyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB0aGUgcmVxdWVzdCBpcyBhIGRhdGEgcmVxdWVzdCwgdGhlbiB3ZSBzaG91bGRuJ3Qgc2V0IHRoZSBzdGF0dXMgY29kZVxuICAgICAgICAgICAgLy8gZnJvbSB0aGUgcmVzcG9uc2UgYmVjYXVzZSBpdCBzaG91bGQgYWx3YXlzIGJlIDIwMC4gVGhpcyBzaG91bGQgYmUgZ2F0ZWRcbiAgICAgICAgICAgIC8vIGJlaGluZCB0aGUgZXhwZXJpbWVudGFsIFBQUiBmbGFnLlxuICAgICAgICAgICAgaWYgKGNhY2hlZERhdGEuc3RhdHVzICYmICghaXNSU0NSZXF1ZXN0IHx8ICFpc1JvdXRlUFBSRW5hYmxlZCkpIHtcbiAgICAgICAgICAgICAgICByZXMuc3RhdHVzQ29kZSA9IGNhY2hlZERhdGEuc3RhdHVzO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gUmVkaXJlY3QgaW5mb3JtYXRpb24gaXMgZW5jb2RlZCBpbiBSU0MgcGF5bG9hZCwgc28gd2UgZG9uJ3QgbmVlZCB0byB1c2UgcmVkaXJlY3Qgc3RhdHVzIGNvZGVzXG4gICAgICAgICAgICBpZiAoIW1pbmltYWxNb2RlICYmIGNhY2hlZERhdGEuc3RhdHVzICYmIFJlZGlyZWN0U3RhdHVzQ29kZVtjYWNoZWREYXRhLnN0YXR1c10gJiYgaXNSU0NSZXF1ZXN0KSB7XG4gICAgICAgICAgICAgICAgcmVzLnN0YXR1c0NvZGUgPSAyMDA7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBNYXJrIHRoYXQgdGhlIHJlcXVlc3QgZGlkIHBvc3Rwb25lLlxuICAgICAgICAgICAgaWYgKGRpZFBvc3Rwb25lKSB7XG4gICAgICAgICAgICAgICAgcmVzLnNldEhlYWRlcihORVhUX0RJRF9QT1NUUE9ORV9IRUFERVIsICcxJyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB3ZSBkb24ndCBnbyB0aHJvdWdoIHRoaXMgYmxvY2sgd2hlbiBwcmV2aWV3IG1vZGUgaXMgdHJ1ZVxuICAgICAgICAgICAgLy8gYXMgcHJldmlldyBtb2RlIGlzIGEgZHluYW1pYyByZXF1ZXN0IChieXBhc3NlcyBjYWNoZSkgYW5kIGRvZXNuJ3RcbiAgICAgICAgICAgIC8vIGdlbmVyYXRlIGJvdGggSFRNTCBhbmQgcGF5bG9hZHMgaW4gdGhlIHNhbWUgcmVxdWVzdCBzbyBjb250aW51ZSB0byBqdXN0XG4gICAgICAgICAgICAvLyByZXR1cm4gdGhlIGdlbmVyYXRlZCBwYXlsb2FkXG4gICAgICAgICAgICBpZiAoaXNSU0NSZXF1ZXN0ICYmICFpc0RyYWZ0TW9kZSkge1xuICAgICAgICAgICAgICAgIC8vIElmIHRoaXMgaXMgYSBkeW5hbWljIFJTQyByZXF1ZXN0LCB0aGVuIHN0cmVhbSB0aGUgcmVzcG9uc2UuXG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjYWNoZWREYXRhLnJzY0RhdGEgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChjYWNoZWREYXRhLnBvc3Rwb25lZCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignSW52YXJpYW50OiBFeHBlY3RlZCBwb3N0cG9uZWQgdG8gYmUgdW5kZWZpbmVkJyksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkUzNzJcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBzZW5kUmVuZGVyUmVzdWx0KHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU6ICdyc2MnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVFdGFnczogbmV4dENvbmZpZy5nZW5lcmF0ZUV0YWdzLFxuICAgICAgICAgICAgICAgICAgICAgICAgcG93ZXJlZEJ5SGVhZGVyOiBuZXh0Q29uZmlnLnBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc3VsdDogY2FjaGVkRGF0YS5odG1sLFxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gRHluYW1pYyBSU0MgcmVzcG9uc2VzIGNhbm5vdCBiZSBjYWNoZWQsIGV2ZW4gaWYgdGhleSdyZVxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gY29uZmlndXJlZCB3aXRoIGBmb3JjZS1zdGF0aWNgIGJlY2F1c2Ugd2UgaGF2ZSBubyB3YXkgb2ZcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIGRpc3Rpbmd1aXNoaW5nIGJldHdlZW4gYGZvcmNlLXN0YXRpY2AgYW5kIHBhZ2VzIHRoYXQgaGF2ZSBub1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gcG9zdHBvbmVkIHN0YXRlLlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gVE9ETzogZGlzdGluZ3Vpc2ggYGZvcmNlLXN0YXRpY2AgZnJvbSBwYWdlcyB3aXRoIG5vIHBvc3Rwb25lZCBzdGF0ZSAoc3RhdGljKVxuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVDb250cm9sOiBpc0R5bmFtaWNSU0NSZXF1ZXN0ID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldmFsaWRhdGU6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gOiBjYWNoZUVudHJ5LmNhY2hlQ29udHJvbFxuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gQXMgdGhpcyBpc24ndCBhIHByZWZldGNoIHJlcXVlc3QsIHdlIHNob3VsZCBzZXJ2ZSB0aGUgc3RhdGljIGZsaWdodFxuICAgICAgICAgICAgICAgIC8vIGRhdGEuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbmRSZW5kZXJSZXN1bHQoe1xuICAgICAgICAgICAgICAgICAgICByZXEsXG4gICAgICAgICAgICAgICAgICAgIHJlcyxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogJ3JzYycsXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlRXRhZ3M6IG5leHRDb25maWcuZ2VuZXJhdGVFdGFncyxcbiAgICAgICAgICAgICAgICAgICAgcG93ZXJlZEJ5SGVhZGVyOiBuZXh0Q29uZmlnLnBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBSZW5kZXJSZXN1bHQuZnJvbVN0YXRpYyhjYWNoZWREYXRhLnJzY0RhdGEpLFxuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGNhY2hlRW50cnkuY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBUaGlzIGlzIGEgcmVxdWVzdCBmb3IgSFRNTCBkYXRhLlxuICAgICAgICAgICAgbGV0IGJvZHkgPSBjYWNoZWREYXRhLmh0bWw7XG4gICAgICAgICAgICAvLyBJZiB0aGVyZSdzIG5vIHBvc3Rwb25lZCBzdGF0ZSwgd2Ugc2hvdWxkIGp1c3Qgc2VydmUgdGhlIEhUTUwuIFRoaXNcbiAgICAgICAgICAgIC8vIHNob3VsZCBhbHNvIGJlIHRoZSBjYXNlIGZvciBhIHJlc3VtZSByZXF1ZXN0IGJlY2F1c2UgaXQncyBjb21wbGV0ZWRcbiAgICAgICAgICAgIC8vIGFzIGEgc2VydmVyIHJlbmRlciAocmF0aGVyIHRoYW4gYSBzdGF0aWMgcmVuZGVyKS5cbiAgICAgICAgICAgIGlmICghZGlkUG9zdHBvbmUgfHwgbWluaW1hbE1vZGUpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gc2VuZFJlbmRlclJlc3VsdCh7XG4gICAgICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICAgICAgcmVzLFxuICAgICAgICAgICAgICAgICAgICB0eXBlOiAnaHRtbCcsXG4gICAgICAgICAgICAgICAgICAgIGdlbmVyYXRlRXRhZ3M6IG5leHRDb25maWcuZ2VuZXJhdGVFdGFncyxcbiAgICAgICAgICAgICAgICAgICAgcG93ZXJlZEJ5SGVhZGVyOiBuZXh0Q29uZmlnLnBvd2VyZWRCeUhlYWRlcixcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0OiBib2R5LFxuICAgICAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IGNhY2hlRW50cnkuY2FjaGVDb250cm9sXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyBJZiB3ZSdyZSBkZWJ1Z2dpbmcgdGhlIHN0YXRpYyBzaGVsbCBvciB0aGUgZHluYW1pYyBBUEkgYWNjZXNzZXMsIHdlXG4gICAgICAgICAgICAvLyBzaG91bGQganVzdCBzZXJ2ZSB0aGUgSFRNTCB3aXRob3V0IHJlc3VtaW5nIHRoZSByZW5kZXIuIFRoZSByZXR1cm5lZFxuICAgICAgICAgICAgLy8gSFRNTCB3aWxsIGJlIHRoZSBzdGF0aWMgc2hlbGwgc28gYWxsIHRoZSBEeW5hbWljIEFQSSdzIHdpbGwgYmUgdXNlZFxuICAgICAgICAgICAgLy8gZHVyaW5nIHN0YXRpYyBnZW5lcmF0aW9uLlxuICAgICAgICAgICAgaWYgKGlzRGVidWdTdGF0aWNTaGVsbCB8fCBpc0RlYnVnRHluYW1pY0FjY2Vzc2VzKSB7XG4gICAgICAgICAgICAgICAgLy8gU2luY2Ugd2UncmUgbm90IHJlc3VtaW5nIHRoZSByZW5kZXIsIHdlIG5lZWQgdG8gYXQgbGVhc3QgYWRkIHRoZVxuICAgICAgICAgICAgICAgIC8vIGNsb3NpbmcgYm9keSBhbmQgaHRtbCB0YWdzIHRvIGNyZWF0ZSB2YWxpZCBIVE1MLlxuICAgICAgICAgICAgICAgIGJvZHkuY2hhaW4obmV3IFJlYWRhYmxlU3RyZWFtKHtcbiAgICAgICAgICAgICAgICAgICAgc3RhcnQgKGNvbnRyb2xsZXIpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2xsZXIuZW5xdWV1ZShFTkNPREVEX1RBR1MuQ0xPU0VELkJPRFlfQU5EX0hUTUwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbGxlci5jbG9zZSgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSkpO1xuICAgICAgICAgICAgICAgIHJldHVybiBzZW5kUmVuZGVyUmVzdWx0KHtcbiAgICAgICAgICAgICAgICAgICAgcmVxLFxuICAgICAgICAgICAgICAgICAgICByZXMsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6ICdodG1sJyxcbiAgICAgICAgICAgICAgICAgICAgZ2VuZXJhdGVFdGFnczogbmV4dENvbmZpZy5nZW5lcmF0ZUV0YWdzLFxuICAgICAgICAgICAgICAgICAgICBwb3dlcmVkQnlIZWFkZXI6IG5leHRDb25maWcucG93ZXJlZEJ5SGVhZGVyLFxuICAgICAgICAgICAgICAgICAgICByZXN1bHQ6IGJvZHksXG4gICAgICAgICAgICAgICAgICAgIGNhY2hlQ29udHJvbDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgIGV4cGlyZTogdW5kZWZpbmVkXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIFRoaXMgcmVxdWVzdCBoYXMgcG9zdHBvbmVkLCBzbyBsZXQncyBjcmVhdGUgYSBuZXcgdHJhbnNmb3JtZXIgdGhhdCB0aGVcbiAgICAgICAgICAgIC8vIGR5bmFtaWMgZGF0YSBjYW4gcGlwZSB0byB0aGF0IHdpbGwgYXR0YWNoIHRoZSBkeW5hbWljIGRhdGEgdG8gdGhlIGVuZFxuICAgICAgICAgICAgLy8gb2YgdGhlIHJlc3BvbnNlLlxuICAgICAgICAgICAgY29uc3QgdHJhbnNmb3JtZXIgPSBuZXcgVHJhbnNmb3JtU3RyZWFtKCk7XG4gICAgICAgICAgICBib2R5LmNoYWluKHRyYW5zZm9ybWVyLnJlYWRhYmxlKTtcbiAgICAgICAgICAgIC8vIFBlcmZvcm0gdGhlIHJlbmRlciBhZ2FpbiwgYnV0IHRoaXMgdGltZSwgcHJvdmlkZSB0aGUgcG9zdHBvbmVkIHN0YXRlLlxuICAgICAgICAgICAgLy8gV2UgZG9uJ3QgYXdhaXQgYmVjYXVzZSB3ZSB3YW50IHRoZSByZXN1bHQgdG8gc3RhcnQgc3RyZWFtaW5nIG5vdywgYW5kXG4gICAgICAgICAgICAvLyB3ZSd2ZSBhbHJlYWR5IGNoYWluZWQgdGhlIHRyYW5zZm9ybWVyJ3MgcmVhZGFibGUgdG8gdGhlIHJlbmRlciByZXN1bHQuXG4gICAgICAgICAgICBkb1JlbmRlcih7XG4gICAgICAgICAgICAgICAgc3BhbixcbiAgICAgICAgICAgICAgICBwb3N0cG9uZWQ6IGNhY2hlZERhdGEucG9zdHBvbmVkLFxuICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgYSByZXN1bWUgcmVuZGVyLCBub3QgYSBmYWxsYmFjayByZW5kZXIsIHNvIHdlIGRvbid0IG5lZWQgdG9cbiAgICAgICAgICAgICAgICAvLyBzZXQgdGhpcy5cbiAgICAgICAgICAgICAgICBmYWxsYmFja1JvdXRlUGFyYW1zOiBudWxsXG4gICAgICAgICAgICB9KS50aGVuKGFzeW5jIChyZXN1bHQpPT57XG4gICAgICAgICAgICAgICAgdmFyIF9yZXN1bHRfdmFsdWU7XG4gICAgICAgICAgICAgICAgaWYgKCFyZXN1bHQpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcignSW52YXJpYW50OiBleHBlY3RlZCBhIHJlc3VsdCB0byBiZSByZXR1cm5lZCcpLCBcIl9fTkVYVF9FUlJPUl9DT0RFXCIsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlOiBcIkU0NjNcIixcbiAgICAgICAgICAgICAgICAgICAgICAgIGVudW1lcmFibGU6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoKChfcmVzdWx0X3ZhbHVlID0gcmVzdWx0LnZhbHVlKSA9PSBudWxsID8gdm9pZCAwIDogX3Jlc3VsdF92YWx1ZS5raW5kKSAhPT0gQ2FjaGVkUm91dGVLaW5kLkFQUF9QQUdFKSB7XG4gICAgICAgICAgICAgICAgICAgIHZhciBfcmVzdWx0X3ZhbHVlMTtcbiAgICAgICAgICAgICAgICAgICAgdGhyb3cgT2JqZWN0LmRlZmluZVByb3BlcnR5KG5ldyBFcnJvcihgSW52YXJpYW50OiBleHBlY3RlZCBhIHBhZ2UgcmVzcG9uc2UsIGdvdCAkeyhfcmVzdWx0X3ZhbHVlMSA9IHJlc3VsdC52YWx1ZSkgPT0gbnVsbCA/IHZvaWQgMCA6IF9yZXN1bHRfdmFsdWUxLmtpbmR9YCksIFwiX19ORVhUX0VSUk9SX0NPREVcIiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IFwiRTMwNVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWd1cmFibGU6IHRydWVcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIFBpcGUgdGhlIHJlc3VtZSByZXN1bHQgdG8gdGhlIHRyYW5zZm9ybWVyLlxuICAgICAgICAgICAgICAgIGF3YWl0IHJlc3VsdC52YWx1ZS5odG1sLnBpcGVUbyh0cmFuc2Zvcm1lci53cml0YWJsZSk7XG4gICAgICAgICAgICB9KS5jYXRjaCgoZXJyKT0+e1xuICAgICAgICAgICAgICAgIC8vIEFuIGVycm9yIG9jY3VycmVkIGR1cmluZyBwaXBpbmcgb3IgcHJlcGFyaW5nIHRoZSByZW5kZXIsIGFib3J0XG4gICAgICAgICAgICAgICAgLy8gdGhlIHRyYW5zZm9ybWVycyB3cml0ZXIgc28gd2UgY2FuIHRlcm1pbmF0ZSB0aGUgc3RyZWFtLlxuICAgICAgICAgICAgICAgIHRyYW5zZm9ybWVyLndyaXRhYmxlLmFib3J0KGVycikuY2F0Y2goKGUpPT57XG4gICAgICAgICAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoXCJjb3VsZG4ndCBhYm9ydCB0cmFuc2Zvcm1lclwiLCBlKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuIHNlbmRSZW5kZXJSZXN1bHQoe1xuICAgICAgICAgICAgICAgIHJlcSxcbiAgICAgICAgICAgICAgICByZXMsXG4gICAgICAgICAgICAgICAgdHlwZTogJ2h0bWwnLFxuICAgICAgICAgICAgICAgIGdlbmVyYXRlRXRhZ3M6IG5leHRDb25maWcuZ2VuZXJhdGVFdGFncyxcbiAgICAgICAgICAgICAgICBwb3dlcmVkQnlIZWFkZXI6IG5leHRDb25maWcucG93ZXJlZEJ5SGVhZGVyLFxuICAgICAgICAgICAgICAgIHJlc3VsdDogYm9keSxcbiAgICAgICAgICAgICAgICAvLyBXZSBkb24ndCB3YW50IHRvIGNhY2hlIHRoZSByZXNwb25zZSBpZiBpdCBoYXMgcG9zdHBvbmVkIGRhdGEgYmVjYXVzZVxuICAgICAgICAgICAgICAgIC8vIHRoZSByZXNwb25zZSBiZWluZyBzZW50IHRvIHRoZSBjbGllbnQgaXQncyBkeW5hbWljIHBhcnRzIGFyZSBzdHJlYW1lZFxuICAgICAgICAgICAgICAgIC8vIHRvIHRoZSBjbGllbnQgb24gdGhlIHNhbWUgcmVxdWVzdC5cbiAgICAgICAgICAgICAgICBjYWNoZUNvbnRyb2w6IHtcbiAgICAgICAgICAgICAgICAgICAgcmV2YWxpZGF0ZTogMCxcbiAgICAgICAgICAgICAgICAgICAgZXhwaXJlOiB1bmRlZmluZWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfTtcbiAgICAgICAgLy8gVE9ETzogYWN0aXZlU3BhbiBjb2RlIHBhdGggaXMgZm9yIHdoZW4gd3JhcHBlZCBieVxuICAgICAgICAvLyBuZXh0LXNlcnZlciBjYW4gYmUgcmVtb3ZlZCB3aGVuIHRoaXMgaXMgbm8gbG9uZ2VyIHVzZWRcbiAgICAgICAgaWYgKGFjdGl2ZVNwYW4pIHtcbiAgICAgICAgICAgIGF3YWl0IGhhbmRsZVJlc3BvbnNlKGFjdGl2ZVNwYW4pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIGF3YWl0IHRyYWNlci53aXRoUHJvcGFnYXRlZENvbnRleHQocmVxLmhlYWRlcnMsICgpPT50cmFjZXIudHJhY2UoQmFzZVNlcnZlclNwYW4uaGFuZGxlUmVxdWVzdCwge1xuICAgICAgICAgICAgICAgICAgICBzcGFuTmFtZTogYCR7bWV0aG9kfSAke3JlcS51cmx9YCxcbiAgICAgICAgICAgICAgICAgICAga2luZDogU3BhbktpbmQuU0VSVkVSLFxuICAgICAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAnaHR0cC5tZXRob2QnOiBtZXRob2QsXG4gICAgICAgICAgICAgICAgICAgICAgICAnaHR0cC50YXJnZXQnOiByZXEudXJsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9LCBoYW5kbGVSZXNwb25zZSkpO1xuICAgICAgICB9XG4gICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIC8vIGlmIHdlIGFyZW4ndCB3cmFwcGVkIGJ5IGJhc2Utc2VydmVyIGhhbmRsZSBoZXJlXG4gICAgICAgIGlmICghYWN0aXZlU3BhbiAmJiAhKGVyciBpbnN0YW5jZW9mIE5vRmFsbGJhY2tFcnJvcikpIHtcbiAgICAgICAgICAgIGF3YWl0IHJvdXRlTW9kdWxlLm9uUmVxdWVzdEVycm9yKHJlcSwgZXJyLCB7XG4gICAgICAgICAgICAgICAgcm91dGVyS2luZDogJ0FwcCBSb3V0ZXInLFxuICAgICAgICAgICAgICAgIHJvdXRlUGF0aDogc3JjUGFnZSxcbiAgICAgICAgICAgICAgICByb3V0ZVR5cGU6ICdyZW5kZXInLFxuICAgICAgICAgICAgICAgIHJldmFsaWRhdGVSZWFzb246IGdldFJldmFsaWRhdGVSZWFzb24oe1xuICAgICAgICAgICAgICAgICAgICBpc1JldmFsaWRhdGU6IGlzU1NHLFxuICAgICAgICAgICAgICAgICAgICBpc09uRGVtYW5kUmV2YWxpZGF0ZVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICB9LCByb3V0ZXJTZXJ2ZXJDb250ZXh0KTtcbiAgICAgICAgfVxuICAgICAgICAvLyByZXRocm93IHNvIHRoYXQgd2UgY2FuIGhhbmRsZSBzZXJ2aW5nIGVycm9yIHBhZ2VcbiAgICAgICAgdGhyb3cgZXJyO1xuICAgIH1cbn1cblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXBhZ2UuanMubWFwIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?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=!\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%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%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-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%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%2FAppShell.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%2FProviders.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%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%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-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%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%2FAppShell.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%2FProviders.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/AppShell.tsx */ \"(rsc)/./src/components/AppShell.tsx\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/Providers.tsx */ \"(rsc)/./src/components/Providers.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRnNyYyUyRmFwcCUyRmdsb2JhbHMuY3NzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZmb250JTJGbG9jYWwlMkZ0YXJnZXQuY3NzJTNGJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMnNyYyUyRmFwcCUyRmxheW91dC50c3glNUMlMjIlMkMlNUMlMjJpbXBvcnQlNUMlMjIlM0ElNUMlMjIlNUMlMjIlMkMlNUMlMjJhcmd1bWVudHMlNUMlMjIlM0ElNUIlN0IlNUMlMjJzcmMlNUMlMjIlM0ElNUIlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRlJhamRoYW5pJTJGUmFqZGhhbmktU2VtaUJvbGQudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNjAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlMkMlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRlJhamRoYW5pJTJGUmFqZGhhbmktQm9sZC50dGYlNUMlMjIlMkMlNUMlMjJ3ZWlnaHQlNUMlMjIlM0ElNUMlMjI3MDAlNUMlMjIlMkMlNUMlMjJzdHlsZSU1QyUyMiUzQSU1QyUyMm5vcm1hbCU1QyUyMiU3RCU1RCUyQyU1QyUyMnZhcmlhYmxlJTVDJTIyJTNBJTVDJTIyLS1mb250LXJhamRoYW5pJTVDJTIyJTJDJTVDJTIyZGlzcGxheSU1QyUyMiUzQSU1QyUyMnN3YXAlNUMlMjIlN0QlNUQlMkMlNUMlMjJ2YXJpYWJsZU5hbWUlNUMlMjIlM0ElNUMlMjJyYWpkaGFuaSU1QyUyMiU3RCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZm9udCUyRmxvY2FsJTJGdGFyZ2V0LmNzcyUzRiU3QiU1QyUyMnBhdGglNUMlMjIlM0ElNUMlMjJzcmMlMkZhcHAlMkZsYXlvdXQudHN4JTVDJTIyJTJDJTVDJTIyaW1wb3J0JTVDJTIyJTNBJTVDJTIyJTVDJTIyJTJDJTVDJTIyYXJndW1lbnRzJTVDJTIyJTNBJTVCJTdCJTVDJTIyc3JjJTVDJTIyJTNBJTVCJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZLYW5pdCUyRkthbml0LVJlZ3VsYXIudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNDAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlMkMlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRkthbml0JTJGS2FuaXQtTWVkaXVtLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjUwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZLYW5pdCUyRkthbml0LU1lZGl1bUl0YWxpYy50dGYlNUMlMjIlMkMlNUMlMjJ3ZWlnaHQlNUMlMjIlM0ElNUMlMjI1MDAlNUMlMjIlMkMlNUMlMjJzdHlsZSU1QyUyMiUzQSU1QyUyMml0YWxpYyU1QyUyMiU3RCU1RCUyQyU1QyUyMnZhcmlhYmxlJTVDJTIyJTNBJTVDJTIyLS1mb250LWthbml0JTVDJTIyJTJDJTVDJTIyZGlzcGxheSU1QyUyMiUzQSU1QyUyMnN3YXAlNUMlMjIlN0QlNUQlMkMlNUMlMjJ2YXJpYWJsZU5hbWUlNUMlMjIlM0ElNUMlMjJrYW5pdCU1QyUyMiU3RCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZzcmMlMkZjb21wb25lbnRzJTJGQXBwU2hlbGwudHN4JTIyJTJDJTIyaWRzJTIyJTNBJTVCJTIyZGVmYXVsdCUyMiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZzcmMlMkZjb21wb25lbnRzJTJGUHJvdmlkZXJzLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMmRlZmF1bHQlMjIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLHNLQUEwSTtBQUMxSTtBQUNBLHdLQUEySSIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiZGVmYXVsdFwiXSAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL0FwcFNoZWxsLnRzeFwiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiZGVmYXVsdFwiXSAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL1Byb3ZpZGVycy50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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%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%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-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%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%2FAppShell.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%2FProviders.tsx%22%2C%22ids%22%3A%5B%22default%22%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%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%2FTrackedLinkButton.tsx%22%2C%22ids%22%3A%5B%22TrackedLinkButton%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=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%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%2FTrackedLinkButton.tsx%22%2C%22ids%22%3A%5B%22TrackedLinkButton%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=true! ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/projects/ProjectsPageClient.tsx */ \"(rsc)/./src/app/projects/ProjectsPageClient.tsx\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/TrackedLinkButton.tsx */ \"(rsc)/./src/components/TrackedLinkButton.tsx\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/ui/ImageWithFallback.tsx */ \"(rsc)/./src/components/ui/ImageWithFallback.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRnNyYyUyRmFwcCUyRnByb2plY3RzJTJGUHJvamVjdHNQYWdlQ2xpZW50LnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMmRlZmF1bHQlMjIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGc3JjJTJGY29tcG9uZW50cyUyRlRyYWNrZWRMaW5rQnV0dG9uLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMlRyYWNrZWRMaW5rQnV0dG9uJTIyJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRnNyYyUyRmNvbXBvbmVudHMlMkZ1aSUyRkltYWdlV2l0aEZhbGxiYWNrLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMmRlZmF1bHQlMjIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLDhMQUFzSjtBQUN0SjtBQUNBLHdMQUE2SjtBQUM3SjtBQUNBLDhMQUFzSiIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiZGVmYXVsdFwiXSAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvcHJvamVjdHMvUHJvamVjdHNQYWdlQ2xpZW50LnRzeFwiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiVHJhY2tlZExpbmtCdXR0b25cIl0gKi8gXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy9UcmFja2VkTGlua0J1dHRvbi50c3hcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiwgd2VicGFja0V4cG9ydHM6IFtcImRlZmF1bHRcIl0gKi8gXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy91aS9JbWFnZVdpdGhGYWxsYmFjay50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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%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%2FTrackedLinkButton.tsx%22%2C%22ids%22%3A%5B%22TrackedLinkButton%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=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__ = (\"25eb747a96d0\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2dsb2JhbHMuY3NzIiwibWFwcGluZ3MiOiI7Ozs7QUFBQSxpRUFBZSxjQUFjO0FBQzdCLElBQUksS0FBVSxFQUFFLEVBQXVCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvYXBwL2dsb2JhbHMuY3NzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiMjVlYjc0N2E5NmQwXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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 */ \"next/dist/server/app-render/work-unit-async-storage.external.js\");\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_AppShell__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/AppShell */ \"(rsc)/./src/components/AppShell.tsx\");\n/* harmony import */ var next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_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_7__ = __webpack_require__(/*! next/font/local/target.css?{\"path\":\"src/app/layout.tsx\",\"import\":\"\",\"arguments\":[{\"src\":[{\"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-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_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_7___default = /*#__PURE__*/__webpack_require__.n(next_font_local_target_css_path_src_app_layout_tsx_import_arguments_src_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_7__);\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_Medium_ttf_weight_500_style_normal_path_fonts_Kanit_Kanit_MediumItalic_ttf_weight_500_style_italic_variable_font_kanit_display_swap_variableName_kanit___WEBPACK_IMPORTED_MODULE_8__ = __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-Medium.ttf\",\"weight\":\"500\",\"style\":\"normal\"},{\"path\":\"../fonts/Kanit/Kanit-MediumItalic.ttf\",\"weight\":\"500\",\"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-Medium.ttf\\\",\\\"weight\\\":\\\"500\\\",\\\"style\\\":\\\"normal\\\"},{\\\"path\\\":\\\"../fonts/Kanit/Kanit-MediumItalic.ttf\\\",\\\"weight\\\":\\\"500\\\",\\\"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_Medium_ttf_weight_500_style_normal_path_fonts_Kanit_Kanit_MediumItalic_ttf_weight_500_style_italic_variable_font_kanit_display_swap_variableName_kanit___WEBPACK_IMPORTED_MODULE_8___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_Medium_ttf_weight_500_style_normal_path_fonts_Kanit_Kanit_MediumItalic_ttf_weight_500_style_italic_variable_font_kanit_display_swap_variableName_kanit___WEBPACK_IMPORTED_MODULE_8__);\n/* harmony import */ var _sentry_nextjs__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! @sentry/nextjs */ \"(rsc)/./node_modules/@sentry/nextjs/build/cjs/index.server.js\");\n/* harmony import */ var _sentry_nextjs__WEBPACK_IMPORTED_MODULE_9___default = /*#__PURE__*/__webpack_require__.n(_sentry_nextjs__WEBPACK_IMPORTED_MODULE_9__);\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 \"data-scroll-behavior\": \"smooth\",\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_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_7___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_Medium_ttf_weight_500_style_normal_path_fonts_Kanit_Kanit_MediumItalic_ttf_weight_500_style_italic_variable_font_kanit_display_swap_variableName_kanit___WEBPACK_IMPORTED_MODULE_8___default().variable)} min-h-screen bg-background text-foreground antialiased`,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(_components_Providers__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(_components_AppShell__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n children: children\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/layout.tsx\",\n lineNumber: 68,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/layout.tsx\",\n lineNumber: 67,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/layout.tsx\",\n lineNumber: 64,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/layout.tsx\",\n lineNumber: 58,\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_9__.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvYXBwL2xheW91dC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFpRE8sTUFBTUEsV0FBcUJDLHVEQUFZQTtBQUUvQixTQUFTQyxVQUFBQSxDQUFXLEVBQ2pDQyxRQUFRLEVBR1Q7QUFDQyx5QkFDRUMsNkRBQUEsQ0FBQ0MsTUFBQUEsRUFBQUE7UUFDQ0MsSUFBQUEsRUFBSztRQUNMQyxTQUFBQSxFQUFVO1FBQ1ZDLHdCQUF3QjtRQUN4QkMsc0JBQUFBLEVBQXFCO0FBRXJCLGdDQUFBTCw2REFBQSxDQUFDTSxNQUFBQSxFQUFBQTtZQUNDSCxTQUFBQSxFQUFXLEdBQUdJLG9UQUFpQixDQUFDLENBQUMsRUFBRUUsbVdBQWMsQ0FBQyx1REFBdUQsQ0FBQztBQUUxRyxvQ0FBQVQsNkRBQUEsQ0FBQ1UsNkRBQUFBLEVBQUFBO0FBQ0Msd0NBQUFWLDZEQUFBLENBQUNXLDREQUFBQSxFQUFBQTtBQUFVWixvQkFBQUEsUUFBQUEsRUFBQUE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUtyQjs7QUNuRUE7QUFDQTs7QUFFQSxNQUFNLGtCQUFrQixHQUFHLEVBQUUsR0FBRyw0RkFBVSxFQUFFOztBQUU1QyxNQUFNLG1CQUFtQjtBQUN6QixFQUFFLHNCQUFzQixJQUFJO0FBQzVCLE1BQU0sa0JBQWtCLENBQUM7QUFDekIsTUFBTSxxQkFBcUIsSUFBSTtBQUMvQixRQUFRLGtCQUFrQixDQUFDO0FBQzNCLFFBQVEsU0FBUzs7QUFFakIsTUFBTSxlQUFlLEdBQUdhLFVBQTZCOztBQUVyRCxJQUFJLHNCQUFzQjtBQUMxQixJQUFJLE9BQU8sZUFBZSxLQUFLLFVBQVUsRUFBRTtBQUMzQztBQUNBO0FBQ0E7QUFDQSxFQUFFLHNCQUFzQixHQUFHLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRTtBQUN0RCxJQUFJLEtBQUssRUFBRSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxJQUFJLEtBQUs7QUFDaEQsTUFBTSxJQUFJLGlCQUFpQixHQUFHLFNBQVM7QUFDdkMsTUFBTSxJQUFJLGFBQWEsR0FBRyxTQUFTO0FBQ25DLE1BQU0sSUFBSSxPQUFPLEdBQUcsU0FBUzs7QUFFN0I7QUFDQSxNQUFNLElBQUk7QUFDVixRQUFRLE1BQU0saUJBQWlCLEdBQUcsbUJBQW1CLEVBQUUsUUFBUSxFQUFFO0FBQ2pFLFFBQVEsaUJBQWlCLEdBQUcsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxTQUFTO0FBQ3ZGLFFBQVEsYUFBYSxHQUFHLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUztBQUM5RSxRQUFRLE9BQU8sR0FBRyxpQkFBaUIsRUFBRSxPQUFPO0FBQzVDLE1BQU0sQ0FBQyxDQUFDLE1BQU07QUFDZDtBQUNBLE1BQU07O0FBRU4sTUFBTSxPQUFPLHlFQUFvQyxDQUFDLGdCQUFnQixFQUFFO0FBQ3BFLFFBQVEsY0FBYyxFQUFFLEdBQUc7QUFDM0IsUUFBUSxhQUFhLEVBQUUsUUFBUTtBQUMvQixRQUFRLGlCQUFpQjtBQUN6QixRQUFRLGFBQWE7QUFDckIsUUFBUSxPQUFPO0FBQ2YsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUM7QUFDN0IsSUFBSSxDQUFDO0FBQ0wsR0FBRyxDQUFDO0FBQ0osQ0FBQyxNQUFNO0FBQ1AsRUFBRSxzQkFBc0IsR0FBRyxlQUFlO0FBQzFDOztBQUVLLE1BQUMsZ0JBQWdCLEdBT2xCOztBQUVDLE1BQUMscUJBQXFCLEdBT3ZCOztBQUVDLE1BQUMsZ0JBQWdCLEdBT2xCOztBQUVDLE1BQUMsd0JBQXdCLEdBQUciLCJzb3VyY2VzIjpbInNyYy9hcHAvbGF5b3V0LnRzeCIsInNlbnRyeS13cmFwcGVyLW1vZHVsZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IE1ldGFkYXRhIH0gZnJvbSAnbmV4dCdcbmltcG9ydCB7IGJhc2VNZXRhZGF0YSB9IGZyb20gJ0AvbGliL21ldGFkYXRhJ1xuaW1wb3J0ICcuL2dsb2JhbHMuY3NzJ1xuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5pbXBvcnQgUHJvdmlkZXJzIGZyb20gJ0AvY29tcG9uZW50cy9Qcm92aWRlcnMnXG5pbXBvcnQgQXBwU2hlbGwgZnJvbSAnQC9jb21wb25lbnRzL0FwcFNoZWxsJ1xuXG5pbXBvcnQgbG9jYWxGb250IGZyb20gJ25leHQvZm9udC9sb2NhbCdcblxuY29uc3QgcmFqZGhhbmkgPSBsb2NhbEZvbnQoe1xuICBzcmM6IFtcbiAgICB7XG4gICAgICBwYXRoOiAnLi4vZm9udHMvUmFqZGhhbmkvUmFqZGhhbmktU2VtaUJvbGQudHRmJyxcbiAgICAgIHdlaWdodDogJzYwMCcsXG4gICAgICBzdHlsZTogJ25vcm1hbCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBwYXRoOiAnLi4vZm9udHMvUmFqZGhhbmkvUmFqZGhhbmktQm9sZC50dGYnLFxuICAgICAgd2VpZ2h0OiAnNzAwJyxcbiAgICAgIHN0eWxlOiAnbm9ybWFsJyxcbiAgICB9LFxuICBdLFxuICB2YXJpYWJsZTogJy0tZm9udC1yYWpkaGFuaScsXG4gIGRpc3BsYXk6ICdzd2FwJyxcbn0pXG5cbmNvbnN0IGthbml0ID0gbG9jYWxGb250KHtcbiAgc3JjOiBbXG4gICAge1xuICAgICAgcGF0aDogJy4uL2ZvbnRzL0thbml0L0thbml0LVJlZ3VsYXIudHRmJyxcbiAgICAgIHdlaWdodDogJzQwMCcsXG4gICAgICBzdHlsZTogJ25vcm1hbCcsXG4gICAgfSxcbiAgICB7XG4gICAgICBwYXRoOiAnLi4vZm9udHMvS2FuaXQvS2FuaXQtTWVkaXVtLnR0ZicsXG4gICAgICB3ZWlnaHQ6ICc1MDAnLFxuICAgICAgc3R5bGU6ICdub3JtYWwnLFxuICAgIH0sXG4gICAge1xuICAgICAgcGF0aDogJy4uL2ZvbnRzL0thbml0L0thbml0LU1lZGl1bUl0YWxpYy50dGYnLFxuICAgICAgd2VpZ2h0OiAnNTAwJyxcbiAgICAgIHN0eWxlOiAnaXRhbGljJyxcbiAgICB9LFxuICBdLFxuICB2YXJpYWJsZTogJy0tZm9udC1rYW5pdCcsXG4gIGRpc3BsYXk6ICdzd2FwJyxcbn0pXG5cbmV4cG9ydCBjb25zdCBtZXRhZGF0YTogTWV0YWRhdGEgPSBiYXNlTWV0YWRhdGFcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7XG4gIGNoaWxkcmVuLFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG59KSB7XG4gIHJldHVybiAoXG4gICAgPGh0bWxcbiAgICAgIGxhbmc9XCJlblwiXG4gICAgICBjbGFzc05hbWU9XCJkYXJrXCJcbiAgICAgIHN1cHByZXNzSHlkcmF0aW9uV2FybmluZ1xuICAgICAgZGF0YS1zY3JvbGwtYmVoYXZpb3I9XCJzbW9vdGhcIlxuICAgID5cbiAgICAgIDxib2R5XG4gICAgICAgIGNsYXNzTmFtZT17YCR7cmFqZGhhbmkudmFyaWFibGV9ICR7a2FuaXQudmFyaWFibGV9IG1pbi1oLXNjcmVlbiBiZy1iYWNrZ3JvdW5kIHRleHQtZm9yZWdyb3VuZCBhbnRpYWxpYXNlZGB9XG4gICAgICA+XG4gICAgICAgIDxQcm92aWRlcnM+XG4gICAgICAgICAgPEFwcFNoZWxsPntjaGlsZHJlbn08L0FwcFNoZWxsPlxuICAgICAgICA8L1Byb3ZpZGVycz5cbiAgICAgIDwvYm9keT5cbiAgICA8L2h0bWw+XG4gIClcbn1cbiIsImltcG9ydCAqIGFzIG9yaWdNb2R1bGUgZnJvbSAnbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsLmpzJztcbmltcG9ydCAqIGFzIHNlcnZlckNvbXBvbmVudE1vZHVsZSBmcm9tICdfX1NFTlRSWV9XUkFQUElOR19UQVJHRVRfRklMRV9fLmNqcyc7XG5leHBvcnQgKiBmcm9tICdfX1NFTlRSWV9XUkFQUElOR19UQVJHRVRfRklMRV9fLmNqcyc7XG5pbXBvcnQgKiBhcyBTZW50cnkgZnJvbSAnQHNlbnRyeS9uZXh0anMnO1xuXG4vLyBAdHMtZXhwZWN0LWVycm9yIEJlY2F1c2Ugd2UgY2Fubm90IGJlIHN1cmUgaWYgdGhlIFJlcXVlc3RBc3luY1N0b3JhZ2UgbW9kdWxlIGV4aXN0cyAoaXQgaXMgbm90IHBhcnQgb2YgdGhlIE5leHQuanMgcHVibGljXG4vLyBBUEkpIHdlIHVzZSBhIHNoaW0gaWYgaXQgZG9lc24ndCBleGlzdC4gVGhlIGxvZ2ljIGZvciB0aGlzIGlzIGluIHRoZSB3cmFwcGluZyBsb2FkZXIuXG5cbmNvbnN0IGFzeW5jU3RvcmFnZU1vZHVsZSA9IHsgLi4ub3JpZ01vZHVsZSB9IDtcblxuY29uc3QgcmVxdWVzdEFzeW5jU3RvcmFnZSA9XG4gICd3b3JrVW5pdEFzeW5jU3RvcmFnZScgaW4gYXN5bmNTdG9yYWdlTW9kdWxlXG4gICAgPyBhc3luY1N0b3JhZ2VNb2R1bGUud29ya1VuaXRBc3luY1N0b3JhZ2VcbiAgICA6ICdyZXF1ZXN0QXN5bmNTdG9yYWdlJyBpbiBhc3luY1N0b3JhZ2VNb2R1bGVcbiAgICAgID8gYXN5bmNTdG9yYWdlTW9kdWxlLnJlcXVlc3RBc3luY1N0b3JhZ2VcbiAgICAgIDogdW5kZWZpbmVkO1xuXG5jb25zdCBzZXJ2ZXJDb21wb25lbnQgPSBzZXJ2ZXJDb21wb25lbnRNb2R1bGUuZGVmYXVsdDtcblxubGV0IHdyYXBwZWRTZXJ2ZXJDb21wb25lbnQ7XG5pZiAodHlwZW9mIHNlcnZlckNvbXBvbmVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBGb3Igc29tZSBvZGQgTmV4dC5qcyBtYWdpYyByZWFzb24sIGBoZWFkZXJzKClgIHdpbGwgbm90IHdvcmsgaWYgdXNlZCBpbnNpZGUgYHdyYXBTZXJ2ZXJDb21wb25lbnRzV2l0aFNlbnRyeWAuXG4gIC8vIEN1cnJlbnQgYXNzdW1wdGlvbiBpcyB0aGF0IE5leHQuanMgYXBwbGllcyBzb21lIGxvYWRlciBtYWdpYyB0byB1c2VyZmlsZXMsIGJ1dCBub3QgZmlsZXMgaW4gbm9kZV9tb2R1bGVzLiBUaGlzIGZpbGVcbiAgLy8gaXMgdGVjaG5pY2FsbHkgYSB1c2VyZmlsZSBzbyBpdCBnZXRzIHRoZSBsb2FkZXIgbWFnaWMgYXBwbGllZC5cbiAgd3JhcHBlZFNlcnZlckNvbXBvbmVudCA9IG5ldyBQcm94eShzZXJ2ZXJDb21wb25lbnQsIHtcbiAgICBhcHBseTogKG9yaWdpbmFsRnVuY3Rpb24sIHRoaXNBcmcsIGFyZ3MpID0+IHtcbiAgICAgIGxldCBzZW50cnlUcmFjZUhlYWRlciA9IHVuZGVmaW5lZDtcbiAgICAgIGxldCBiYWdnYWdlSGVhZGVyID0gdW5kZWZpbmVkO1xuICAgICAgbGV0IGhlYWRlcnMgPSB1bmRlZmluZWQ7XG5cbiAgICAgIC8vIFdlIHRyeS1jYXRjaCBoZXJlIGp1c3QgaW4gYHJlcXVlc3RBc3luY1N0b3JhZ2VgIGlzIHVuZGVmaW5lZCBzaW5jZSBpdCBtYXkgbm90IGJlIGRlZmluZWRcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RBc3luY1N0b3JlID0gcmVxdWVzdEFzeW5jU3RvcmFnZT8uZ2V0U3RvcmUoKSA7XG4gICAgICAgIHNlbnRyeVRyYWNlSGVhZGVyID0gcmVxdWVzdEFzeW5jU3RvcmU/LmhlYWRlcnMuZ2V0KCdzZW50cnktdHJhY2UnKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIGJhZ2dhZ2VIZWFkZXIgPSByZXF1ZXN0QXN5bmNTdG9yZT8uaGVhZGVycy5nZXQoJ2JhZ2dhZ2UnKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIGhlYWRlcnMgPSByZXF1ZXN0QXN5bmNTdG9yZT8uaGVhZGVycztcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvKiogZW1wdHkgKi9cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFNlbnRyeS53cmFwU2VydmVyQ29tcG9uZW50V2l0aFNlbnRyeShvcmlnaW5hbEZ1bmN0aW9uLCB7XG4gICAgICAgIGNvbXBvbmVudFJvdXRlOiAnLycsXG4gICAgICAgIGNvbXBvbmVudFR5cGU6ICdMYXlvdXQnLFxuICAgICAgICBzZW50cnlUcmFjZUhlYWRlcixcbiAgICAgICAgYmFnZ2FnZUhlYWRlcixcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgIH0sXG4gIH0pO1xufSBlbHNlIHtcbiAgd3JhcHBlZFNlcnZlckNvbXBvbmVudCA9IHNlcnZlckNvbXBvbmVudDtcbn1cblxuY29uc3QgZ2VuZXJhdGVNZXRhZGF0YSA9IHNlcnZlckNvbXBvbmVudE1vZHVsZS5nZW5lcmF0ZU1ldGFkYXRhXG4gID8gU2VudHJ5LndyYXBHZW5lcmF0aW9uRnVuY3Rpb25XaXRoU2VudHJ5KHNlcnZlckNvbXBvbmVudE1vZHVsZS5nZW5lcmF0ZU1ldGFkYXRhLCB7XG4gICAgICBjb21wb25lbnRSb3V0ZTogJy8nLFxuICAgICAgY29tcG9uZW50VHlwZTogJ0xheW91dCcsXG4gICAgICBnZW5lcmF0aW9uRnVuY3Rpb25JZGVudGlmaWVyOiAnZ2VuZXJhdGVNZXRhZGF0YScsXG4gICAgICByZXF1ZXN0QXN5bmNTdG9yYWdlLFxuICAgIH0pXG4gIDogdW5kZWZpbmVkO1xuXG5jb25zdCBnZW5lcmF0ZUltYWdlTWV0YWRhdGEgPSBzZXJ2ZXJDb21wb25lbnRNb2R1bGUuZ2VuZXJhdGVJbWFnZU1ldGFkYXRhXG4gID8gU2VudHJ5LndyYXBHZW5lcmF0aW9uRnVuY3Rpb25XaXRoU2VudHJ5KHNlcnZlckNvbXBvbmVudE1vZHVsZS5nZW5lcmF0ZUltYWdlTWV0YWRhdGEsIHtcbiAgICAgIGNvbXBvbmVudFJvdXRlOiAnLycsXG4gICAgICBjb21wb25lbnRUeXBlOiAnTGF5b3V0JyxcbiAgICAgIGdlbmVyYXRpb25GdW5jdGlvbklkZW50aWZpZXI6ICdnZW5lcmF0ZUltYWdlTWV0YWRhdGEnLFxuICAgICAgcmVxdWVzdEFzeW5jU3RvcmFnZSxcbiAgICB9KVxuICA6IHVuZGVmaW5lZDtcblxuY29uc3QgZ2VuZXJhdGVWaWV3cG9ydCA9IHNlcnZlckNvbXBvbmVudE1vZHVsZS5nZW5lcmF0ZVZpZXdwb3J0XG4gID8gU2VudHJ5LndyYXBHZW5lcmF0aW9uRnVuY3Rpb25XaXRoU2VudHJ5KHNlcnZlckNvbXBvbmVudE1vZHVsZS5nZW5lcmF0ZVZpZXdwb3J0LCB7XG4gICAgICBjb21wb25lbnRSb3V0ZTogJy8nLFxuICAgICAgY29tcG9uZW50VHlwZTogJ0xheW91dCcsXG4gICAgICBnZW5lcmF0aW9uRnVuY3Rpb25JZGVudGlmaWVyOiAnZ2VuZXJhdGVWaWV3cG9ydCcsXG4gICAgICByZXF1ZXN0QXN5bmNTdG9yYWdlLFxuICAgIH0pXG4gIDogdW5kZWZpbmVkO1xuXG5jb25zdCB3cmFwcGVkU2VydmVyQ29tcG9uZW50JDEgPSB3cmFwcGVkU2VydmVyQ29tcG9uZW50O1xuXG5leHBvcnQgeyB3cmFwcGVkU2VydmVyQ29tcG9uZW50JDEgYXMgZGVmYXVsdCwgZ2VuZXJhdGVJbWFnZU1ldGFkYXRhLCBnZW5lcmF0ZU1ldGFkYXRhLCBnZW5lcmF0ZVZpZXdwb3J0IH07XG4iXSwibmFtZXMiOlsibWV0YWRhdGEiLCJiYXNlTWV0YWRhdGEiLCJSb290TGF5b3V0IiwiY2hpbGRyZW4iLCJfanN4REVWIiwiaHRtbCIsImxhbmciLCJjbGFzc05hbWUiLCJzdXBwcmVzc0h5ZHJhdGlvbldhcm5pbmciLCJkYXRhLXNjcm9sbC1iZWhhdmlvciIsImJvZHkiLCJyYWpkaGFuaSIsInZhcmlhYmxlIiwia2FuaXQiLCJQcm92aWRlcnMiLCJBcHBTaGVsbCIsInNlcnZlckNvbXBvbmVudE1vZHVsZS5kZWZhdWx0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./src/app/layout.tsx\n");
/***/ }),
/***/ "(rsc)/./src/app/projects/ProjectsPageClient.tsx":
/*!*************************************************!*\
!*** ./src/app/projects/ProjectsPageClient.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/projects/ProjectsPageClient.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/projects/ProjectsPageClient.tsx",
"default",
));
/***/ }),
/***/ "(rsc)/./src/app/projects/page.tsx":
/*!***********************************!*\
!*** ./src/app/projects/page.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 */ \"next/dist/server/app-render/work-unit-async-storage.external.js\");\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 _components_ui_ImageWithFallback__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/ImageWithFallback */ \"(rsc)/./src/components/ui/ImageWithFallback.tsx\");\n/* harmony import */ var _lib_metadata__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/lib/metadata */ \"(rsc)/./src/lib/metadata.ts\");\n/* harmony import */ var _components_Layouts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/Layouts */ \"(rsc)/./src/components/Layouts.tsx\");\n/* harmony import */ var _components_TrackedLinkButton__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/TrackedLinkButton */ \"(rsc)/./src/components/TrackedLinkButton.tsx\");\n/* harmony import */ var _ProjectsPageClient__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ./ProjectsPageClient */ \"(rsc)/./src/app/projects/ProjectsPageClient.tsx\");\n/* harmony import */ var _lib_prisma__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/lib/prisma */ \"(rsc)/./src/lib/prisma.ts\");\n/* harmony import */ var _sentry_nextjs__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @sentry/nextjs */ \"(rsc)/./node_modules/@sentry/nextjs/build/cjs/index.server.js\");\n/* harmony import */ var _sentry_nextjs__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_sentry_nextjs__WEBPACK_IMPORTED_MODULE_8__);\n\n\n\n\n\n\n\n\n\n\nconst metadata = (0,_lib_metadata__WEBPACK_IMPORTED_MODULE_3__.generatePageMetadata)({\n title: 'Our Projects',\n description: 'Explore our portfolio of visual effects work across music videos, commercials, and more.',\n openGraph: {\n title: 'Biohazard VFX - Our Projects',\n description: 'Explore our portfolio of visual effects work across music videos, commercials, and more.',\n images: [\n '/images/projects-header.jpg'\n ]\n }\n});\nasync function ProjectsPage() {\n const [headerAsset, reelVideoAsset, reelEmbedAsset] = await Promise.all([\n _lib_prisma__WEBPACK_IMPORTED_MODULE_7__.prisma.siteAsset.findUnique({\n where: {\n key: 'projects.hero.image'\n }\n }),\n _lib_prisma__WEBPACK_IMPORTED_MODULE_7__.prisma.siteAsset.findUnique({\n where: {\n key: 'projects.reel.video'\n }\n }),\n _lib_prisma__WEBPACK_IMPORTED_MODULE_7__.prisma.siteAsset.findUnique({\n where: {\n key: 'projects.reel.embed'\n }\n })\n ]);\n const projects = await _lib_prisma__WEBPACK_IMPORTED_MODULE_7__.prisma.project.findMany({\n where: {\n published: true\n },\n orderBy: {\n createdAt: 'desc'\n },\n select: {\n id: true,\n title: true,\n thumbnail: true,\n category: true,\n featured: true,\n createdAt: true,\n tags: true\n }\n });\n const serializedProjects = projects.map((project)=>({\n ...project,\n createdAt: project.createdAt.toISOString()\n }));\n const reelMedia = {\n video: reelVideoAsset?.url ?? null,\n embed: reelEmbedAsset?.url ?? null,\n poster: headerAsset?.url ?? '/images/projects-header.jpg',\n title: reelVideoAsset?.label ?? reelEmbedAsset?.label ?? headerAsset?.alt ?? 'Projects Reel'\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"min-h-screen\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"relative h-80 md:h-96 overflow-hidden rounded-b-xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(_components_ui_ImageWithFallback__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n src: headerAsset?.url || '/images/projects-header.jpg',\n alt: headerAsset?.alt || 'Biohazard VFX Projects',\n fill: true,\n className: \"object-cover\",\n placeholderText: \"Projects Header\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 71,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 flex items-center bg-gradient-to-r from-black/80 to-black/40\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(_components_Layouts__WEBPACK_IMPORTED_MODULE_4__.Container, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"max-w-2xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h1\", {\n className: \"mb-4 text-4xl font-display font-bold text-white md:text-5xl\",\n children: \"Our Portfolio\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 81,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"p\", {\n className: \"text-xl text-text-secondary\",\n children: \"Explore our visual effects work across music videos, commercials, and more\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 84,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 80,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 79,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 78,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 70,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(_components_Layouts__WEBPACK_IMPORTED_MODULE_4__.Section, {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(_ProjectsPageClient__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {\n projects: serializedProjects,\n reel: reelMedia\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 93,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"mt-16 text-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"card mx-auto max-w-2xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"h3\", {\n className: \"mb-4 text-2xl font-display font-bold text-white\",\n children: \"Ready to Bring Your Vision to Life?\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 97,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"p\", {\n className: \"mb-6 text-text-secondary\",\n children: \"Let's collaborate on your next project. Our team of VFX artists is ready to help you create something extraordinary.\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 100,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(\"div\", {\n className: \"flex flex-col gap-4 sm:flex-row sm:justify-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(_components_TrackedLinkButton__WEBPACK_IMPORTED_MODULE_5__.TrackedLinkButton, {\n href: \"/contact\",\n variant: \"primary\",\n actionName: \"Start a Project CTA\",\n children: \"Start a Project\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 104,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_1__.jsxDEV)(_components_TrackedLinkButton__WEBPACK_IMPORTED_MODULE_5__.TrackedLinkButton, {\n href: \"/faq\",\n variant: \"ghost\",\n actionName: \"View FAQ CTA\",\n children: \"View FAQ\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 107,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 103,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 96,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 95,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 92,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/page.tsx\",\n lineNumber: 69,\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 = ProjectsPage;\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_8__.wrapServerComponentWithSentry(originalFunction, {\n componentRoute: '/projects',\n componentType: 'Page',\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,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QUFnQixHQU9sQjs7QUFFQyxNQUFDLHdCQUF3QixHQUFHIiwic291cmNlcyI6WyJzcmMvYXBwL3Byb2plY3RzL3BhZ2UudHN4Iiwic2VudHJ5LXdyYXBwZXItbW9kdWxlIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1ldGFkYXRhIH0gZnJvbSAnbmV4dCdcbmltcG9ydCBJbWFnZVdpdGhGYWxsYmFjayBmcm9tICdAL2NvbXBvbmVudHMvdWkvSW1hZ2VXaXRoRmFsbGJhY2snXG5pbXBvcnQgeyBnZW5lcmF0ZVBhZ2VNZXRhZGF0YSB9IGZyb20gJ0AvbGliL21ldGFkYXRhJ1xuaW1wb3J0IHsgQ29udGFpbmVyLCBTZWN0aW9uIH0gZnJvbSAnQC9jb21wb25lbnRzL0xheW91dHMnXG5pbXBvcnQgeyBUcmFja2VkTGlua0J1dHRvbiB9IGZyb20gJ0AvY29tcG9uZW50cy9UcmFja2VkTGlua0J1dHRvbidcbmltcG9ydCBQcm9qZWN0c1BhZ2VDbGllbnQgZnJvbSAnLi9Qcm9qZWN0c1BhZ2VDbGllbnQnXG5pbXBvcnQgeyBwcmlzbWEgfSBmcm9tICdAL2xpYi9wcmlzbWEnXG5cbmludGVyZmFjZSBQcm9qZWN0IHtcbiAgaWQ6IHN0cmluZ1xuICB0aXRsZTogc3RyaW5nXG4gIHRodW1ibmFpbDogc3RyaW5nXG4gIGNhdGVnb3J5OiBzdHJpbmcgfCBudWxsXG4gIGZlYXR1cmVkOiBib29sZWFuIHwgbnVsbFxuICBjcmVhdGVkQXQ6IERhdGVcbiAgdGFnczogc3RyaW5nIHwgbnVsbFxufVxuXG5leHBvcnQgY29uc3QgbWV0YWRhdGE6IE1ldGFkYXRhID0gZ2VuZXJhdGVQYWdlTWV0YWRhdGEoe1xuICB0aXRsZTogJ091ciBQcm9qZWN0cycsXG4gIGRlc2NyaXB0aW9uOlxuICAgICdFeHBsb3JlIG91ciBwb3J0Zm9saW8gb2YgdmlzdWFsIGVmZmVjdHMgd29yayBhY3Jvc3MgbXVzaWMgdmlkZW9zLCBjb21tZXJjaWFscywgYW5kIG1vcmUuJyxcbiAgb3BlbkdyYXBoOiB7XG4gICAgdGl0bGU6ICdCaW9oYXphcmQgVkZYIC0gT3VyIFByb2plY3RzJyxcbiAgICBkZXNjcmlwdGlvbjpcbiAgICAgICdFeHBsb3JlIG91ciBwb3J0Zm9saW8gb2YgdmlzdWFsIGVmZmVjdHMgd29yayBhY3Jvc3MgbXVzaWMgdmlkZW9zLCBjb21tZXJjaWFscywgYW5kIG1vcmUuJyxcbiAgICBpbWFnZXM6IFsnL2ltYWdlcy9wcm9qZWN0cy1oZWFkZXIuanBnJ10sXG4gIH0sXG59KVxuXG5leHBvcnQgZGVmYXVsdCBhc3luYyBmdW5jdGlvbiBQcm9qZWN0c1BhZ2UoKSB7XG4gIGNvbnN0IFtoZWFkZXJBc3NldCwgcmVlbFZpZGVvQXNzZXQsIHJlZWxFbWJlZEFzc2V0XSA9IGF3YWl0IFByb21pc2UuYWxsKFtcbiAgICBwcmlzbWEuc2l0ZUFzc2V0LmZpbmRVbmlxdWUoeyB3aGVyZTogeyBrZXk6ICdwcm9qZWN0cy5oZXJvLmltYWdlJyB9IH0pLFxuICAgIHByaXNtYS5zaXRlQXNzZXQuZmluZFVuaXF1ZSh7IHdoZXJlOiB7IGtleTogJ3Byb2plY3RzLnJlZWwudmlkZW8nIH0gfSksXG4gICAgcHJpc21hLnNpdGVBc3NldC5maW5kVW5pcXVlKHsgd2hlcmU6IHsga2V5OiAncHJvamVjdHMucmVlbC5lbWJlZCcgfSB9KSxcbiAgXSlcblxuICBjb25zdCBwcm9qZWN0czogUHJvamVjdFtdID0gYXdhaXQgcHJpc21hLnByb2plY3QuZmluZE1hbnkoe1xuICAgIHdoZXJlOiB7XG4gICAgICBwdWJsaXNoZWQ6IHRydWUsXG4gICAgfSxcbiAgICBvcmRlckJ5OiB7XG4gICAgICBjcmVhdGVkQXQ6ICdkZXNjJyxcbiAgICB9LFxuICAgIHNlbGVjdDoge1xuICAgICAgaWQ6IHRydWUsXG4gICAgICB0aXRsZTogdHJ1ZSxcbiAgICAgIHRodW1ibmFpbDogdHJ1ZSxcbiAgICAgIGNhdGVnb3J5OiB0cnVlLFxuICAgICAgZmVhdHVyZWQ6IHRydWUsXG4gICAgICBjcmVhdGVkQXQ6IHRydWUsXG4gICAgICB0YWdzOiB0cnVlLFxuICAgIH0sXG4gIH0pXG5cbiAgY29uc3Qgc2VyaWFsaXplZFByb2plY3RzID0gcHJvamVjdHMubWFwKChwcm9qZWN0KSA9PiAoe1xuICAgIC4uLnByb2plY3QsXG4gICAgY3JlYXRlZEF0OiBwcm9qZWN0LmNyZWF0ZWRBdC50b0lTT1N0cmluZygpLFxuICB9KSlcblxuICBjb25zdCByZWVsTWVkaWEgPSB7XG4gICAgdmlkZW86IHJlZWxWaWRlb0Fzc2V0Py51cmwgPz8gbnVsbCxcbiAgICBlbWJlZDogcmVlbEVtYmVkQXNzZXQ/LnVybCA/PyBudWxsLFxuICAgIHBvc3RlcjogaGVhZGVyQXNzZXQ/LnVybCA/PyAnL2ltYWdlcy9wcm9qZWN0cy1oZWFkZXIuanBnJyxcbiAgICB0aXRsZTogcmVlbFZpZGVvQXNzZXQ/LmxhYmVsID8/IHJlZWxFbWJlZEFzc2V0Py5sYWJlbCA/PyBoZWFkZXJBc3NldD8uYWx0ID8/ICdQcm9qZWN0cyBSZWVsJyxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW5cIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgaC04MCBtZDpoLTk2IG92ZXJmbG93LWhpZGRlbiByb3VuZGVkLWIteGxcIj5cbiAgICAgICAgPEltYWdlV2l0aEZhbGxiYWNrXG4gICAgICAgICAgc3JjPXtoZWFkZXJBc3NldD8udXJsIHx8ICcvaW1hZ2VzL3Byb2plY3RzLWhlYWRlci5qcGcnfVxuICAgICAgICAgIGFsdD17aGVhZGVyQXNzZXQ/LmFsdCB8fCAnQmlvaGF6YXJkIFZGWCBQcm9qZWN0cyd9XG4gICAgICAgICAgZmlsbFxuICAgICAgICAgIGNsYXNzTmFtZT1cIm9iamVjdC1jb3ZlclwiXG4gICAgICAgICAgcGxhY2Vob2xkZXJUZXh0PVwiUHJvamVjdHMgSGVhZGVyXCJcbiAgICAgICAgLz5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGZsZXggaXRlbXMtY2VudGVyIGJnLWdyYWRpZW50LXRvLXIgZnJvbS1ibGFjay84MCB0by1ibGFjay80MFwiPlxuICAgICAgICAgIDxDb250YWluZXI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1heC13LTJ4bFwiPlxuICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwibWItNCB0ZXh0LTR4bCBmb250LWRpc3BsYXkgZm9udC1ib2xkIHRleHQtd2hpdGUgbWQ6dGV4dC01eGxcIj5cbiAgICAgICAgICAgICAgICBPdXIgUG9ydGZvbGlvXG4gICAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteGwgdGV4dC10ZXh0LXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgIEV4cGxvcmUgb3VyIHZpc3VhbCBlZmZlY3RzIHdvcmsgYWNyb3NzIG11c2ljIHZpZGVvcywgY29tbWVyY2lhbHMsIGFuZCBtb3JlXG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvQ29udGFpbmVyPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8U2VjdGlvbj5cbiAgICAgICAgPFByb2plY3RzUGFnZUNsaWVudCBwcm9qZWN0cz17c2VyaWFsaXplZFByb2plY3RzfSByZWVsPXtyZWVsTWVkaWF9IC8+XG5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0xNiB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2FyZCBteC1hdXRvIG1heC13LTJ4bFwiPlxuICAgICAgICAgICAgPGgzIGNsYXNzTmFtZT1cIm1iLTQgdGV4dC0yeGwgZm9udC1kaXNwbGF5IGZvbnQtYm9sZCB0ZXh0LXdoaXRlXCI+XG4gICAgICAgICAgICAgIFJlYWR5IHRvIEJyaW5nIFlvdXIgVmlzaW9uIHRvIExpZmU/XG4gICAgICAgICAgICA8L2gzPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibWItNiB0ZXh0LXRleHQtc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgIExldCdzIGNvbGxhYm9yYXRlIG9uIHlvdXIgbmV4dCBwcm9qZWN0LiBPdXIgdGVhbSBvZiBWRlggYXJ0aXN0cyBpcyByZWFkeSB0byBoZWxwIHlvdSBjcmVhdGUgc29tZXRoaW5nIGV4dHJhb3JkaW5hcnkuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgZ2FwLTQgc206ZmxleC1yb3cgc206anVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgPFRyYWNrZWRMaW5rQnV0dG9uIGhyZWY9XCIvY29udGFjdFwiIHZhcmlhbnQ9XCJwcmltYXJ5XCIgYWN0aW9uTmFtZT1cIlN0YXJ0IGEgUHJvamVjdCBDVEFcIj5cbiAgICAgICAgICAgICAgICBTdGFydCBhIFByb2plY3RcbiAgICAgICAgICAgICAgPC9UcmFja2VkTGlua0J1dHRvbj5cbiAgICAgICAgICAgICAgPFRyYWNrZWRMaW5rQnV0dG9uIGhyZWY9XCIvZmFxXCIgdmFyaWFudD1cImdob3N0XCIgYWN0aW9uTmFtZT1cIlZpZXcgRkFRIENUQVwiPlxuICAgICAgICAgICAgICAgIFZpZXcgRkFRXG4gICAgICAgICAgICAgIDwvVHJhY2tlZExpbmtCdXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L1NlY3Rpb24+XG4gICAgPC9kaXY+XG4gIClcbn1cbiIsImltcG9ydCAqIGFzIG9yaWdNb2R1bGUgZnJvbSAnbmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL3dvcmstdW5pdC1hc3luYy1zdG9yYWdlLmV4dGVybmFsLmpzJztcbmltcG9ydCAqIGFzIHNlcnZlckNvbXBvbmVudE1vZHVsZSBmcm9tICdfX1NFTlRSWV9XUkFQUElOR19UQVJHRVRfRklMRV9fLmNqcyc7XG5leHBvcnQgKiBmcm9tICdfX1NFTlRSWV9XUkFQUElOR19UQVJHRVRfRklMRV9fLmNqcyc7XG5pbXBvcnQgKiBhcyBTZW50cnkgZnJvbSAnQHNlbnRyeS9uZXh0anMnO1xuXG4vLyBAdHMtZXhwZWN0LWVycm9yIEJlY2F1c2Ugd2UgY2Fubm90IGJlIHN1cmUgaWYgdGhlIFJlcXVlc3RBc3luY1N0b3JhZ2UgbW9kdWxlIGV4aXN0cyAoaXQgaXMgbm90IHBhcnQgb2YgdGhlIE5leHQuanMgcHVibGljXG4vLyBBUEkpIHdlIHVzZSBhIHNoaW0gaWYgaXQgZG9lc24ndCBleGlzdC4gVGhlIGxvZ2ljIGZvciB0aGlzIGlzIGluIHRoZSB3cmFwcGluZyBsb2FkZXIuXG5cbmNvbnN0IGFzeW5jU3RvcmFnZU1vZHVsZSA9IHsgLi4ub3JpZ01vZHVsZSB9IDtcblxuY29uc3QgcmVxdWVzdEFzeW5jU3RvcmFnZSA9XG4gICd3b3JrVW5pdEFzeW5jU3RvcmFnZScgaW4gYXN5bmNTdG9yYWdlTW9kdWxlXG4gICAgPyBhc3luY1N0b3JhZ2VNb2R1bGUud29ya1VuaXRBc3luY1N0b3JhZ2VcbiAgICA6ICdyZXF1ZXN0QXN5bmNTdG9yYWdlJyBpbiBhc3luY1N0b3JhZ2VNb2R1bGVcbiAgICAgID8gYXN5bmNTdG9yYWdlTW9kdWxlLnJlcXVlc3RBc3luY1N0b3JhZ2VcbiAgICAgIDogdW5kZWZpbmVkO1xuXG5jb25zdCBzZXJ2ZXJDb21wb25lbnQgPSBzZXJ2ZXJDb21wb25lbnRNb2R1bGUuZGVmYXVsdDtcblxubGV0IHdyYXBwZWRTZXJ2ZXJDb21wb25lbnQ7XG5pZiAodHlwZW9mIHNlcnZlckNvbXBvbmVudCA9PT0gJ2Z1bmN0aW9uJykge1xuICAvLyBGb3Igc29tZSBvZGQgTmV4dC5qcyBtYWdpYyByZWFzb24sIGBoZWFkZXJzKClgIHdpbGwgbm90IHdvcmsgaWYgdXNlZCBpbnNpZGUgYHdyYXBTZXJ2ZXJDb21wb25lbnRzV2l0aFNlbnRyeWAuXG4gIC8vIEN1cnJlbnQgYXNzdW1wdGlvbiBpcyB0aGF0IE5leHQuanMgYXBwbGllcyBzb21lIGxvYWRlciBtYWdpYyB0byB1c2VyZmlsZXMsIGJ1dCBub3QgZmlsZXMgaW4gbm9kZV9tb2R1bGVzLiBUaGlzIGZpbGVcbiAgLy8gaXMgdGVjaG5pY2FsbHkgYSB1c2VyZmlsZSBzbyBpdCBnZXRzIHRoZSBsb2FkZXIgbWFnaWMgYXBwbGllZC5cbiAgd3JhcHBlZFNlcnZlckNvbXBvbmVudCA9IG5ldyBQcm94eShzZXJ2ZXJDb21wb25lbnQsIHtcbiAgICBhcHBseTogKG9yaWdpbmFsRnVuY3Rpb24sIHRoaXNBcmcsIGFyZ3MpID0+IHtcbiAgICAgIGxldCBzZW50cnlUcmFjZUhlYWRlciA9IHVuZGVmaW5lZDtcbiAgICAgIGxldCBiYWdnYWdlSGVhZGVyID0gdW5kZWZpbmVkO1xuICAgICAgbGV0IGhlYWRlcnMgPSB1bmRlZmluZWQ7XG5cbiAgICAgIC8vIFdlIHRyeS1jYXRjaCBoZXJlIGp1c3QgaW4gYHJlcXVlc3RBc3luY1N0b3JhZ2VgIGlzIHVuZGVmaW5lZCBzaW5jZSBpdCBtYXkgbm90IGJlIGRlZmluZWRcbiAgICAgIHRyeSB7XG4gICAgICAgIGNvbnN0IHJlcXVlc3RBc3luY1N0b3JlID0gcmVxdWVzdEFzeW5jU3RvcmFnZT8uZ2V0U3RvcmUoKSA7XG4gICAgICAgIHNlbnRyeVRyYWNlSGVhZGVyID0gcmVxdWVzdEFzeW5jU3RvcmU/LmhlYWRlcnMuZ2V0KCdzZW50cnktdHJhY2UnKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIGJhZ2dhZ2VIZWFkZXIgPSByZXF1ZXN0QXN5bmNTdG9yZT8uaGVhZGVycy5nZXQoJ2JhZ2dhZ2UnKSA/PyB1bmRlZmluZWQ7XG4gICAgICAgIGhlYWRlcnMgPSByZXF1ZXN0QXN5bmNTdG9yZT8uaGVhZGVycztcbiAgICAgIH0gY2F0Y2gge1xuICAgICAgICAvKiogZW1wdHkgKi9cbiAgICAgIH1cblxuICAgICAgcmV0dXJuIFNlbnRyeS53cmFwU2VydmVyQ29tcG9uZW50V2l0aFNlbnRyeShvcmlnaW5hbEZ1bmN0aW9uLCB7XG4gICAgICAgIGNvbXBvbmVudFJvdXRlOiAnL3Byb2plY3RzJyxcbiAgICAgICAgY29tcG9uZW50VHlwZTogJ1BhZ2UnLFxuICAgICAgICBzZW50cnlUcmFjZUhlYWRlcixcbiAgICAgICAgYmFnZ2FnZUhlYWRlcixcbiAgICAgICAgaGVhZGVycyxcbiAgICAgIH0pLmFwcGx5KHRoaXNBcmcsIGFyZ3MpO1xuICAgIH0sXG4gIH0pO1xufSBlbHNlIHtcbiAgd3JhcHBlZFNlcnZlckNvbXBvbmVudCA9IHNlcnZlckNvbXBvbmVudDtcbn1cblxuY29uc3QgZ2VuZXJhdGVNZXRhZGF0YSA9IHNlcnZlckNvbXBvbmVudE1vZHVsZS5nZW5lcmF0ZU1ldGFkYXRhXG4gID8gU2VudHJ5LndyYXBHZW5lcmF0aW9uRnVuY3Rpb25XaXRoU2VudHJ5KHNlcnZlckNvbXBvbmVudE1vZHVsZS5nZW5lcmF0ZU1ldGFkYXRhLCB7XG4gICAgICBjb21wb25lbnRSb3V0ZTogJy9wcm9qZWN0cycsXG4gICAgICBjb21wb25lbnRUeXBlOiAnUGFnZScsXG4gICAgICBnZW5lcmF0aW9uRnVuY3Rpb25JZGVudGlmaWVyOiAnZ2VuZXJhdGVNZXRhZGF0YScsXG4gICAgICByZXF1ZXN0QXN5bmNTdG9yYWdlLFxuICAgIH0pXG4gIDogdW5kZWZpbmVkO1xuXG5jb25zdCBnZW5lcmF0ZUltYWdlTWV0YWRhdGEgPSBzZXJ2ZXJDb21wb25lbnRNb2R1bGUuZ2VuZXJhdGVJbWFnZU1ldGFkYXRhXG4gID8gU2VudHJ5LndyYXBHZW5lcmF0aW9uRnVuY3Rpb25XaXRoU2VudHJ5KHNlcnZlckNvbXBvbmVudE1vZHVsZS5nZW5lcmF0ZUltYWdlTWV0YWRhdGEsIHtcbiAgICAgIGNvbXBvbmVudFJvdXRlOiAnL3Byb2plY3RzJyxcbiAgICAgIGNvbXBvbmVudFR5cGU6ICdQYWdlJyxcbiAgICAgIGdlbmVyYXRpb25GdW5jdGlvbklkZW50aWZpZXI6ICdnZW5lcmF0ZUltYWdlTWV0YWRhdGEnLFxuICAgICAgcmVxdWVzdEFzeW5jU3RvcmFnZSxcbiAgICB9KVxuICA6IHVuZGVmaW5lZDtcblxuY29uc3QgZ2VuZXJhdGVWaWV3cG9ydCA9IHNlcnZlckNvbXBvbmVudE1vZHVsZS5nZW5lcmF0ZVZpZXdwb3J0XG4gID8gU2VudHJ5LndyYXBHZW5lcmF0aW9uRnVuY3Rpb25XaXRoU2VudHJ5KHNlcnZlckNvbXBvbmVudE1vZHVsZS5nZW5lcmF0ZVZpZXdwb3J0LCB7XG4gICAgICBjb21wb25lbnRSb3V0ZTogJy9wcm9qZWN0cycsXG4gICAgICBjb21wb25lbnRUeXBlOiAnUGFnZScsXG4gICAgICBnZW5lcmF0aW9uRnVuY3Rpb25JZGVudGlmaWVyOiAnZ2VuZXJhdGVWaWV3cG9ydCcsXG4gICAgICByZXF1ZXN0QXN5bmNTdG9yYWdlLFxuICAgIH0pXG4gIDogdW5kZWZpbmVkO1xuXG5jb25zdCB3cmFwcGVkU2VydmVyQ29tcG9uZW50JDEgPSB3cmFwcGVkU2VydmVyQ29tcG9uZW50O1xuXG5leHBvcnQgeyB3cmFwcGVkU2VydmVyQ29tcG9uZW50JDEgYXMgZGVmYXVsdCwgZ2VuZXJhdGVJbWFnZU1ldGFkYXRhLCBnZW5lcmF0ZU1ldGFkYXRhLCBnZW5lcmF0ZVZpZXdwb3J0IH07XG4iXSwibmFtZXMiOlsibWV0YWRhdGEiLCJnZW5lcmF0ZVBhZ2VNZXRhZGF0YSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJvcGVuR3JhcGgiLCJpbWFnZXMiLCJQcm9qZWN0c1BhZ2UiLCJoZWFkZXJBc3NldCIsInJlZWxWaWRlb0Fzc2V0IiwicmVlbEVtYmVkQXNzZXQiLCJQcm9taXNlIiwiYWxsIiwicHJpc21hIiwic2l0ZUFzc2V0IiwiZmluZFVuaXF1ZSIsIndoZXJlIiwia2V5IiwicHJvamVjdHMiLCJwcm9qZWN0IiwiZmluZE1hbnkiLCJwdWJsaXNoZWQiLCJvcmRlckJ5IiwiY3JlYXRlZEF0Iiwic2VsZWN0IiwiaWQiLCJ0aHVtYm5haWwiLCJjYXRlZ29yeSIsImZlYXR1cmVkIiwidGFncyIsInNlcmlhbGl6ZWRQcm9qZWN0cyIsIm1hcCIsInRvSVNPU3RyaW5nIiwicmVlbE1lZGlhIiwidmlkZW8iLCJ1cmwiLCJlbWJlZCIsInBvc3RlciIsImxhYmVsIiwiYWx0IiwiX2pzeERFViIsImRpdiIsImNsYXNzTmFtZSIsIkltYWdlV2l0aEZhbGxiYWNrIiwic3JjIiwiZmlsbCIsInBsYWNlaG9sZGVyVGV4dCIsIkNvbnRhaW5lciIsImgxIiwicCIsIlNlY3Rpb24iLCJQcm9qZWN0c1BhZ2VDbGllbnQiLCJyZWVsIiwiaDMiLCJUcmFja2VkTGlua0J1dHRvbiIsImhyZWYiLCJ2YXJpYW50IiwiYWN0aW9uTmFtZSIsInNlcnZlckNvbXBvbmVudE1vZHVsZS5kZWZhdWx0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./src/app/projects/page.tsx\n");
/***/ }),
/***/ "(rsc)/./src/components/AppShell.tsx":
/*!*************************************!*\
!*** ./src/components/AppShell.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/AppShell.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/AppShell.tsx",
"default",
));
/***/ }),
/***/ "(rsc)/./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 */ \"(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_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 */ \"(rsc)/./node_modules/next/dist/server/route-modules/app-page/vendored/rsc/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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvY29tcG9uZW50cy9MYXlvdXRzLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFBeUI7QUFRbEIsU0FBU0MsV0FBVyxFQUFFQyxLQUFLLEVBQUVDLFFBQVEsRUFBRUMsT0FBTyxFQUFtQjtJQUN0RSxxQkFDRSw4REFBQ0M7UUFBSUMsV0FBVTtrQkFDYiw0RUFBQ0Q7WUFBSUMsV0FBVTs7OEJBQ2IsOERBQUNEOztzQ0FDQyw4REFBQ0U7NEJBQUdELFdBQVU7c0NBQ1hKOzs7Ozs7d0JBRUZDLDBCQUFZLDhEQUFDSzs0QkFBRUYsV0FBVTtzQ0FBdUNIOzs7Ozs7Ozs7Ozs7Z0JBRWxFQyx5QkFBVyw4REFBQ0M7b0JBQUlDLFdBQVU7OEJBQTJCRjs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJOUQ7QUFPTyxTQUFTSyxRQUFRLEVBQUVDLFFBQVEsRUFBRUosWUFBWSxFQUFFLEVBQWdCO0lBQ2hFLHFCQUNFLDhEQUFDSztRQUFRTCxXQUFXLENBQUMsZ0JBQWdCLEVBQUVBLFdBQVc7a0JBQUdJOzs7Ozs7QUFFekQ7QUFPTyxTQUFTRSxVQUFVLEVBQUVGLFFBQVEsRUFBRUosWUFBWSxFQUFFLEVBQWtCO0lBQ3BFLHFCQUFPLDhEQUFDRDtRQUFJQyxXQUFXLENBQUMsNEJBQTRCLEVBQUVBLFdBQVc7a0JBQUdJOzs7Ozs7QUFDdEU7QUFTTyxTQUFTRyxLQUFLLEVBQ25CSCxRQUFRLEVBQ1JJLE9BQU8sQ0FBQyxFQUNSQyxNQUFNLElBQUksRUFDVlQsWUFBWSxFQUFFLEVBQ0o7SUFDVixNQUFNVSxhQUFhO1FBQ2pCLEdBQUc7UUFDSCxHQUFHO1FBQ0gsR0FBRztRQUNILEdBQUc7SUFDTDtJQUVBLE1BQU1DLGFBQWE7UUFDakJDLElBQUk7UUFDSkMsSUFBSTtRQUNKQyxJQUFJO0lBQ047SUFFQSxxQkFDRSw4REFBQ2Y7UUFBSUMsV0FBVyxDQUFDLEtBQUssRUFBRVUsVUFBVSxDQUFDRixLQUFLLENBQUMsQ0FBQyxFQUFFRyxVQUFVLENBQUNGLElBQUksQ0FBQyxDQUFDLEVBQUVULFdBQVc7a0JBQ3ZFSTs7Ozs7O0FBR1A7QUFRTyxTQUFTVyxZQUFZLEVBQUVDLElBQUksRUFBRUMsS0FBSyxFQUFFakIsWUFBWSxFQUFFLEVBQW9CO0lBQzNFLHFCQUNFLDhEQUFDRDtRQUNDQyxXQUFXLENBQUMsK0NBQStDLEVBQUVBLFdBQVc7OzBCQUV4RSw4REFBQ0Q7MEJBQUtpQjs7Ozs7OzBCQUNOLDhEQUFDakI7MEJBQUtrQjs7Ozs7Ozs7Ozs7O0FBR1o7QUFTTyxTQUFTQyxLQUFLLEVBQ25CdEIsS0FBSyxFQUNMQyxRQUFRLEVBQ1JzQixlQUFlLEVBQ2ZmLFFBQVEsRUFDRTtJQUNWLHFCQUNFLDhEQUFDTDtRQUNDQyxXQUFVO1FBQ1ZvQixPQUNFRCxrQkFDSTtZQUNFQSxpQkFBaUIsQ0FBQyx1REFBdUQsRUFBRUEsZ0JBQWdCLENBQUMsQ0FBQztZQUM3RkUsZ0JBQWdCO1lBQ2hCQyxvQkFBb0I7UUFDdEIsSUFDQSxDQUFDO2tCQUdQLDRFQUFDaEI7OzhCQUNDLDhEQUFDTDtvQkFBR0QsV0FBVTs4QkFDWEo7Ozs7OztnQkFFRkMsMEJBQ0MsOERBQUNLO29CQUFFRixXQUFVOzhCQUEyQ0g7Ozs7OztnQkFFekRPOzs7Ozs7Ozs7Ozs7QUFJVDtBQVNPLFNBQVNtQixXQUFXLEVBQ3pCQyxJQUFJLEVBQ0o1QixLQUFLLEVBQ0w2QixXQUFXLEVBQ1hDLE1BQU0sRUFDVTtJQUNoQixxQkFDRSw4REFBQzNCO1FBQUlDLFdBQVU7O1lBQ1p3QixzQkFBUSw4REFBQ3pCO2dCQUFJQyxXQUFVOzBCQUE0QndCOzs7Ozs7MEJBQ3BELDhEQUFDRztnQkFBRzNCLFdBQVU7MEJBQXlDSjs7Ozs7O1lBQ3RENkIsNkJBQWUsOERBQUN2QjtnQkFBRUYsV0FBVTswQkFBd0J5Qjs7Ozs7O1lBQ3BEQzs7Ozs7OztBQUdQIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy9MYXlvdXRzLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnXG5cbmludGVyZmFjZSBQYWdlSGVhZGVyUHJvcHMge1xuICB0aXRsZTogc3RyaW5nXG4gIHN1YnRpdGxlPzogc3RyaW5nXG4gIGFjdGlvbnM/OiBSZWFjdC5SZWFjdE5vZGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIFBhZ2VIZWFkZXIoeyB0aXRsZSwgc3VidGl0bGUsIGFjdGlvbnMgfTogUGFnZUhlYWRlclByb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJtYi02XCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgIDxkaXY+XG4gICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRleHQtM3hsIGZvbnQtZGlzcGxheSB0cmFja2luZy10aWdodCB0ZXh0LXdoaXRlIG1iLTJcIj5cbiAgICAgICAgICAgIHt0aXRsZX1cbiAgICAgICAgICA8L2gxPlxuICAgICAgICAgIHtzdWJ0aXRsZSAmJiA8cCBjbGFzc05hbWU9XCJ0ZXh0LXRleHQtbXV0ZWQgdGV4dC1iYXNlIG1heC13LTN4bFwiPntzdWJ0aXRsZX08L3A+fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAge2FjdGlvbnMgJiYgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPnthY3Rpb25zfTwvZGl2Pn1cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApXG59XG5cbmludGVyZmFjZSBTZWN0aW9uUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gU2VjdGlvbih7IGNoaWxkcmVuLCBjbGFzc05hbWUgPSAnJyB9OiBTZWN0aW9uUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8c2VjdGlvbiBjbGFzc05hbWU9e2BzZWN0aW9uLXNwYWNpbmcgJHtjbGFzc05hbWV9YH0+e2NoaWxkcmVufTwvc2VjdGlvbj5cbiAgKVxufVxuXG5pbnRlcmZhY2UgQ29udGFpbmVyUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ29udGFpbmVyKHsgY2hpbGRyZW4sIGNsYXNzTmFtZSA9ICcnIH06IENvbnRhaW5lclByb3BzKSB7XG4gIHJldHVybiA8ZGl2IGNsYXNzTmFtZT17YHctZnVsbCBweC00IHNtOnB4LTYgbGc6cHgtOCAke2NsYXNzTmFtZX1gfT57Y2hpbGRyZW59PC9kaXY+XG59XG5cbmludGVyZmFjZSBHcmlkUHJvcHMge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIGNvbHM/OiAxIHwgMiB8IDMgfCA0XG4gIGdhcD86ICdzbScgfCAnbWQnIHwgJ2xnJ1xuICBjbGFzc05hbWU/OiBzdHJpbmdcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEdyaWQoe1xuICBjaGlsZHJlbixcbiAgY29scyA9IDMsXG4gIGdhcCA9ICdtZCcsXG4gIGNsYXNzTmFtZSA9ICcnLFxufTogR3JpZFByb3BzKSB7XG4gIGNvbnN0IGNvbENsYXNzZXMgPSB7XG4gICAgMTogJ2dyaWQtY29scy0xJyxcbiAgICAyOiAnZ3JpZC1jb2xzLTEgbWQ6Z3JpZC1jb2xzLTInLFxuICAgIDM6ICdncmlkLWNvbHMtMSBtZDpncmlkLWNvbHMtMiBsZzpncmlkLWNvbHMtMycsXG4gICAgNDogJ2dyaWQtY29scy0xIG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy00JyxcbiAgfVxuXG4gIGNvbnN0IGdhcENsYXNzZXMgPSB7XG4gICAgc206ICdnYXAtMycsXG4gICAgbWQ6ICdnYXAtNCcsXG4gICAgbGc6ICdnYXAtNicsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPXtgZ3JpZCAke2NvbENsYXNzZXNbY29sc119ICR7Z2FwQ2xhc3Nlc1tnYXBdfSAke2NsYXNzTmFtZX1gfT5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L2Rpdj5cbiAgKVxufVxuXG5pbnRlcmZhY2UgU3BsaXRMYXlvdXRQcm9wcyB7XG4gIGxlZnQ6IFJlYWN0LlJlYWN0Tm9kZVxuICByaWdodDogUmVhY3QuUmVhY3ROb2RlXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufVxuXG5leHBvcnQgZnVuY3Rpb24gU3BsaXRMYXlvdXQoeyBsZWZ0LCByaWdodCwgY2xhc3NOYW1lID0gJycgfTogU3BsaXRMYXlvdXRQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxkaXZcbiAgICAgIGNsYXNzTmFtZT17YGdyaWQgZ3JpZC1jb2xzLTEgbGc6Z3JpZC1jb2xzLTIgZ2FwLTYgbGc6Z2FwLTggJHtjbGFzc05hbWV9YH1cbiAgICA+XG4gICAgICA8ZGl2PntsZWZ0fTwvZGl2PlxuICAgICAgPGRpdj57cmlnaHR9PC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuaW50ZXJmYWNlIEhlcm9Qcm9wcyB7XG4gIHRpdGxlOiBzdHJpbmdcbiAgc3VidGl0bGU/OiBzdHJpbmdcbiAgYmFja2dyb3VuZEltYWdlPzogc3RyaW5nXG4gIGNoaWxkcmVuPzogUmVhY3QuUmVhY3ROb2RlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBIZXJvKHtcbiAgdGl0bGUsXG4gIHN1YnRpdGxlLFxuICBiYWNrZ3JvdW5kSW1hZ2UsXG4gIGNoaWxkcmVuLFxufTogSGVyb1Byb3BzKSB7XG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPVwicmVsYXRpdmUgbWluLWgtWzUwdmhdIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHRleHQtY2VudGVyXCJcbiAgICAgIHN0eWxlPXtcbiAgICAgICAgYmFja2dyb3VuZEltYWdlXG4gICAgICAgICAgPyB7XG4gICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogYGxpbmVhci1ncmFkaWVudChyZ2JhKDAsMCwwLDAuNyksIHJnYmEoMCwwLDAsMC43KSksIHVybCgke2JhY2tncm91bmRJbWFnZX0pYCxcbiAgICAgICAgICAgICAgYmFja2dyb3VuZFNpemU6ICdjb3ZlcicsXG4gICAgICAgICAgICAgIGJhY2tncm91bmRQb3NpdGlvbjogJ2NlbnRlcicsXG4gICAgICAgICAgICB9XG4gICAgICAgICAgOiB7fVxuICAgICAgfVxuICAgID5cbiAgICAgIDxDb250YWluZXI+XG4gICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTR4bCBtZDp0ZXh0LTZ4bCBmb250LWRpc3BsYXkgdHJhY2tpbmctdGlnaHQgdGV4dC13aGl0ZSBtYi0zXCI+XG4gICAgICAgICAge3RpdGxlfVxuICAgICAgICA8L2gxPlxuICAgICAgICB7c3VidGl0bGUgJiYgKFxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtbGcgbWQ6dGV4dC14bCB0ZXh0LXRleHQtbXV0ZWQgbWItNlwiPntzdWJ0aXRsZX08L3A+XG4gICAgICAgICl9XG4gICAgICAgIHtjaGlsZHJlbn1cbiAgICAgIDwvQ29udGFpbmVyPlxuICAgIDwvZGl2PlxuICApXG59XG5cbmludGVyZmFjZSBFbXB0eVN0YXRlUHJvcHMge1xuICBpY29uPzogUmVhY3QuUmVhY3ROb2RlXG4gIHRpdGxlOiBzdHJpbmdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgYWN0aW9uPzogUmVhY3QuUmVhY3ROb2RlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBFbXB0eVN0YXRlKHtcbiAgaWNvbixcbiAgdGl0bGUsXG4gIGRlc2NyaXB0aW9uLFxuICBhY3Rpb24sXG59OiBFbXB0eVN0YXRlUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHB5LThcIj5cbiAgICAgIHtpY29uICYmIDxkaXYgY2xhc3NOYW1lPVwidGV4dC00eGwgbWItMyBvcGFjaXR5LTIwXCI+e2ljb259PC9kaXY+fVxuICAgICAgPGgzIGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LXdoaXRlIG1iLTJcIj57dGl0bGV9PC9oMz5cbiAgICAgIHtkZXNjcmlwdGlvbiAmJiA8cCBjbGFzc05hbWU9XCJ0ZXh0LXRleHQtbXV0ZWQgbWItNFwiPntkZXNjcmlwdGlvbn08L3A+fVxuICAgICAge2FjdGlvbn1cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIlJlYWN0IiwiUGFnZUhlYWRlciIsInRpdGxlIiwic3VidGl0bGUiLCJhY3Rpb25zIiwiZGl2IiwiY2xhc3NOYW1lIiwiaDEiLCJwIiwiU2VjdGlvbiIsImNoaWxkcmVuIiwic2VjdGlvbiIsIkNvbnRhaW5lciIsIkdyaWQiLCJjb2xzIiwiZ2FwIiwiY29sQ2xhc3NlcyIsImdhcENsYXNzZXMiLCJzbSIsIm1kIiwibGciLCJTcGxpdExheW91dCIsImxlZnQiLCJyaWdodCIsIkhlcm8iLCJiYWNrZ3JvdW5kSW1hZ2UiLCJzdHlsZSIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZFBvc2l0aW9uIiwiRW1wdHlTdGF0ZSIsImljb24iLCJkZXNjcmlwdGlvbiIsImFjdGlvbiIsImgzIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./src/components/Layouts.tsx\n");
/***/ }),
/***/ "(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/TrackedLinkButton.tsx":
/*!**********************************************!*\
!*** ./src/components/TrackedLinkButton.tsx ***!
\**********************************************/
/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
"use strict";
__webpack_require__.r(__webpack_exports__);
/* harmony export */ __webpack_require__.d(__webpack_exports__, {
/* harmony export */ TrackedLinkButton: () => (/* binding */ TrackedLinkButton)
/* 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 TrackedLinkButton = (0,react_server_dom_webpack_server__WEBPACK_IMPORTED_MODULE_0__.registerClientReference)(
function() { throw new Error("Attempted to call TrackedLinkButton() from the server but TrackedLinkButton 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/TrackedLinkButton.tsx",
"TrackedLinkButton",
);
/***/ }),
/***/ "(rsc)/./src/components/ui/ImageWithFallback.tsx":
/*!*************************************************!*\
!*** ./src/components/ui/ImageWithFallback.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/ui/ImageWithFallback.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/ui/ImageWithFallback.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");
/***/ }),
/***/ "(rsc)/./src/lib/prisma.ts":
/*!***************************!*\
!*** ./src/lib/prisma.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 */ prisma: () => (/* binding */ prisma)\n/* harmony export */ });\n/* harmony import */ var _prisma_client__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @prisma/client */ \"@prisma/client\");\n/* harmony import */ var _prisma_client__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_prisma_client__WEBPACK_IMPORTED_MODULE_0__);\n\nconst globalForPrisma = globalThis;\nconst prisma = globalForPrisma.prisma ?? new _prisma_client__WEBPACK_IMPORTED_MODULE_0__.PrismaClient();\nif (true) globalForPrisma.prisma = prisma;\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9zcmMvbGliL3ByaXNtYS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7QUFBNkM7QUFFN0MsTUFBTUMsa0JBQWtCQztBQUlqQixNQUFNQyxTQUFTRixnQkFBZ0JFLE1BQU0sSUFBSSxJQUFJSCx3REFBWUEsR0FBRTtBQUVsRSxJQUFJSSxJQUFxQyxFQUFFSCxnQkFBZ0JFLE1BQU0sR0FBR0EiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9saWIvcHJpc21hLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFByaXNtYUNsaWVudCB9IGZyb20gJ0BwcmlzbWEvY2xpZW50J1xuXG5jb25zdCBnbG9iYWxGb3JQcmlzbWEgPSBnbG9iYWxUaGlzIGFzIHVua25vd24gYXMge1xuICBwcmlzbWE6IFByaXNtYUNsaWVudCB8IHVuZGVmaW5lZFxufVxuXG5leHBvcnQgY29uc3QgcHJpc21hID0gZ2xvYmFsRm9yUHJpc21hLnByaXNtYSA/PyBuZXcgUHJpc21hQ2xpZW50KClcblxuaWYgKHByb2Nlc3MuZW52Lk5PREVfRU5WICE9PSAncHJvZHVjdGlvbicpIGdsb2JhbEZvclByaXNtYS5wcmlzbWEgPSBwcmlzbWFcbiJdLCJuYW1lcyI6WyJQcmlzbWFDbGllbnQiLCJnbG9iYWxGb3JQcmlzbWEiLCJnbG9iYWxUaGlzIiwicHJpc21hIiwicHJvY2VzcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./src/lib/prisma.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%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%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-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%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%2FAppShell.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%2FProviders.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%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%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-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%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%2FAppShell.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%2FProviders.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/AppShell.tsx */ \"(ssr)/./src/components/AppShell.tsx\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/Providers.tsx */ \"(ssr)/./src/components/Providers.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRnNyYyUyRmFwcCUyRmdsb2JhbHMuY3NzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZmb250JTJGbG9jYWwlMkZ0YXJnZXQuY3NzJTNGJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMnNyYyUyRmFwcCUyRmxheW91dC50c3glNUMlMjIlMkMlNUMlMjJpbXBvcnQlNUMlMjIlM0ElNUMlMjIlNUMlMjIlMkMlNUMlMjJhcmd1bWVudHMlNUMlMjIlM0ElNUIlN0IlNUMlMjJzcmMlNUMlMjIlM0ElNUIlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRlJhamRoYW5pJTJGUmFqZGhhbmktU2VtaUJvbGQudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNjAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlMkMlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRlJhamRoYW5pJTJGUmFqZGhhbmktQm9sZC50dGYlNUMlMjIlMkMlNUMlMjJ3ZWlnaHQlNUMlMjIlM0ElNUMlMjI3MDAlNUMlMjIlMkMlNUMlMjJzdHlsZSU1QyUyMiUzQSU1QyUyMm5vcm1hbCU1QyUyMiU3RCU1RCUyQyU1QyUyMnZhcmlhYmxlJTVDJTIyJTNBJTVDJTIyLS1mb250LXJhamRoYW5pJTVDJTIyJTJDJTVDJTIyZGlzcGxheSU1QyUyMiUzQSU1QyUyMnN3YXAlNUMlMjIlN0QlNUQlMkMlNUMlMjJ2YXJpYWJsZU5hbWUlNUMlMjIlM0ElNUMlMjJyYWpkaGFuaSU1QyUyMiU3RCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZm9udCUyRmxvY2FsJTJGdGFyZ2V0LmNzcyUzRiU3QiU1QyUyMnBhdGglNUMlMjIlM0ElNUMlMjJzcmMlMkZhcHAlMkZsYXlvdXQudHN4JTVDJTIyJTJDJTVDJTIyaW1wb3J0JTVDJTIyJTNBJTVDJTIyJTVDJTIyJTJDJTVDJTIyYXJndW1lbnRzJTVDJTIyJTNBJTVCJTdCJTVDJTIyc3JjJTVDJTIyJTNBJTVCJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZLYW5pdCUyRkthbml0LVJlZ3VsYXIudHRmJTVDJTIyJTJDJTVDJTIyd2VpZ2h0JTVDJTIyJTNBJTVDJTIyNDAwJTVDJTIyJTJDJTVDJTIyc3R5bGUlNUMlMjIlM0ElNUMlMjJub3JtYWwlNUMlMjIlN0QlMkMlN0IlNUMlMjJwYXRoJTVDJTIyJTNBJTVDJTIyLi4lMkZmb250cyUyRkthbml0JTJGS2FuaXQtTWVkaXVtLnR0ZiU1QyUyMiUyQyU1QyUyMndlaWdodCU1QyUyMiUzQSU1QyUyMjUwMCU1QyUyMiUyQyU1QyUyMnN0eWxlJTVDJTIyJTNBJTVDJTIybm9ybWFsJTVDJTIyJTdEJTJDJTdCJTVDJTIycGF0aCU1QyUyMiUzQSU1QyUyMi4uJTJGZm9udHMlMkZLYW5pdCUyRkthbml0LU1lZGl1bUl0YWxpYy50dGYlNUMlMjIlMkMlNUMlMjJ3ZWlnaHQlNUMlMjIlM0ElNUMlMjI1MDAlNUMlMjIlMkMlNUMlMjJzdHlsZSU1QyUyMiUzQSU1QyUyMml0YWxpYyU1QyUyMiU3RCU1RCUyQyU1QyUyMnZhcmlhYmxlJTVDJTIyJTNBJTVDJTIyLS1mb250LWthbml0JTVDJTIyJTJDJTVDJTIyZGlzcGxheSU1QyUyMiUzQSU1QyUyMnN3YXAlNUMlMjIlN0QlNUQlMkMlNUMlMjJ2YXJpYWJsZU5hbWUlNUMlMjIlM0ElNUMlMjJrYW5pdCU1QyUyMiU3RCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZzcmMlMkZjb21wb25lbnRzJTJGQXBwU2hlbGwudHN4JTIyJTJDJTIyaWRzJTIyJTNBJTVCJTIyZGVmYXVsdCUyMiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZob21lJTJGTmljaG9sYWklMkZEb2N1bWVudHMlMkZEZXYlMkZiaW9oYXphcmQtdmZ4LTIlMkZzcmMlMkZjb21wb25lbnRzJTJGUHJvdmlkZXJzLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMmRlZmF1bHQlMjIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLHNLQUEwSTtBQUMxSTtBQUNBLHdLQUEySSIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiZGVmYXVsdFwiXSAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL0FwcFNoZWxsLnRzeFwiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiZGVmYXVsdFwiXSAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL1Byb3ZpZGVycy50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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%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%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-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%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%2FAppShell.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%2FProviders.tsx%22%2C%22ids%22%3A%5B%22default%22%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%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%2FTrackedLinkButton.tsx%22%2C%22ids%22%3A%5B%22TrackedLinkButton%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=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%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%2FTrackedLinkButton.tsx%22%2C%22ids%22%3A%5B%22TrackedLinkButton%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=true! ***!
\**************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
eval("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/app/projects/ProjectsPageClient.tsx */ \"(ssr)/./src/app/projects/ProjectsPageClient.tsx\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/TrackedLinkButton.tsx */ \"(ssr)/./src/components/TrackedLinkButton.tsx\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./src/components/ui/ImageWithFallback.tsx */ \"(ssr)/./src/components/ui/ImageWithFallback.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRnNyYyUyRmFwcCUyRnByb2plY3RzJTJGUHJvamVjdHNQYWdlQ2xpZW50LnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMmRlZmF1bHQlMjIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGaG9tZSUyRk5pY2hvbGFpJTJGRG9jdW1lbnRzJTJGRGV2JTJGYmlvaGF6YXJkLXZmeC0yJTJGc3JjJTJGY29tcG9uZW50cyUyRlRyYWNrZWRMaW5rQnV0dG9uLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMlRyYWNrZWRMaW5rQnV0dG9uJTIyJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRmhvbWUlMkZOaWNob2xhaSUyRkRvY3VtZW50cyUyRkRldiUyRmJpb2hhemFyZC12ZngtMiUyRnNyYyUyRmNvbXBvbmVudHMlMkZ1aSUyRkltYWdlV2l0aEZhbGxiYWNrLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiUyMmRlZmF1bHQlMjIlNUQlN0Qmc2VydmVyPXRydWUhIiwibWFwcGluZ3MiOiJBQUFBLDhMQUFzSjtBQUN0SjtBQUNBLHdMQUE2SjtBQUM3SjtBQUNBLDhMQUFzSiIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiZGVmYXVsdFwiXSAqLyBcIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvcHJvamVjdHMvUHJvamVjdHNQYWdlQ2xpZW50LnRzeFwiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiLCB3ZWJwYWNrRXhwb3J0czogW1wiVHJhY2tlZExpbmtCdXR0b25cIl0gKi8gXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy9UcmFja2VkTGlua0J1dHRvbi50c3hcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiwgd2VicGFja0V4cG9ydHM6IFtcImRlZmF1bHRcIl0gKi8gXCIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy91aS9JbWFnZVdpdGhGYWxsYmFjay50c3hcIik7XG4iXSwibmFtZXMiOltdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\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%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%2FTrackedLinkButton.tsx%22%2C%22ids%22%3A%5B%22TrackedLinkButton%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=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/app/projects/ProjectsPageClient.tsx":
/*!*************************************************!*\
!*** ./src/app/projects/ProjectsPageClient.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 */ ProjectsPageClient)\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 next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(ssr)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _components_media_MediaPlayer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/media/MediaPlayer */ \"(ssr)/./src/components/media/MediaPlayer.tsx\");\n/* harmony import */ var _components_ui_ImageWithFallback__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/ui/ImageWithFallback */ \"(ssr)/./src/components/ui/ImageWithFallback.tsx\");\n/* harmony import */ var _components_Layouts__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/Layouts */ \"(ssr)/./src/components/Layouts.tsx\");\n/* harmony import */ var _components_motion_SectionReveal__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/motion/SectionReveal */ \"(ssr)/./src/components/motion/SectionReveal.tsx\");\n/* harmony import */ var _components_motion_ItemReveal__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! @/components/motion/ItemReveal */ \"(ssr)/./src/components/motion/ItemReveal.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\n\n\n\nconst TABS = [\n {\n key: 'case-studies',\n label: 'Case Studies'\n },\n {\n key: 'reel',\n label: 'Reel'\n }\n];\nconst DEFAULT_CATEGORY = 'all';\nconst DEFAULT_YEAR = 'all';\nconst CATEGORY_FALLBACK_VALUE = 'uncategorized';\nconst CATEGORY_FALLBACK_LABEL = 'Uncategorized';\nfunction normaliseCategoryValue(category) {\n if (!category) return CATEGORY_FALLBACK_VALUE;\n return category;\n}\nfunction ProjectsPageClient({ projects, reel }) {\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useRouter)();\n const pathname = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.usePathname)();\n const searchParams = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useSearchParams)();\n const derivedProjects = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"ProjectsPageClient.useMemo[derivedProjects]\": ()=>projects.map({\n \"ProjectsPageClient.useMemo[derivedProjects]\": (project)=>{\n const createdYear = new Date(project.createdAt).getFullYear().toString();\n const searchableText = [\n project.title,\n project.category ?? '',\n project.tags ?? ''\n ].join(' ').toLowerCase();\n return {\n ...project,\n year: createdYear,\n searchableText\n };\n }\n }[\"ProjectsPageClient.useMemo[derivedProjects]\"])\n }[\"ProjectsPageClient.useMemo[derivedProjects]\"], [\n projects\n ]);\n const categoryOptions = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"ProjectsPageClient.useMemo[categoryOptions]\": ()=>{\n const map = new Map();\n derivedProjects.forEach({\n \"ProjectsPageClient.useMemo[categoryOptions]\": (project)=>{\n const value = normaliseCategoryValue(project.category);\n const label = project.category?.trim() || CATEGORY_FALLBACK_LABEL;\n map.set(value, label);\n }\n }[\"ProjectsPageClient.useMemo[categoryOptions]\"]);\n const entries = Array.from(map.entries()).sort({\n \"ProjectsPageClient.useMemo[categoryOptions].entries\": (a, b)=>a[1].localeCompare(b[1])\n }[\"ProjectsPageClient.useMemo[categoryOptions].entries\"]);\n return [\n {\n value: DEFAULT_CATEGORY,\n label: 'All'\n },\n ...entries.map({\n \"ProjectsPageClient.useMemo[categoryOptions]\": ([value, label])=>({\n value,\n label\n })\n }[\"ProjectsPageClient.useMemo[categoryOptions]\"])\n ];\n }\n }[\"ProjectsPageClient.useMemo[categoryOptions]\"], [\n derivedProjects\n ]);\n const yearOptions = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"ProjectsPageClient.useMemo[yearOptions]\": ()=>{\n const years = new Set();\n derivedProjects.forEach({\n \"ProjectsPageClient.useMemo[yearOptions]\": (project)=>years.add(project.year)\n }[\"ProjectsPageClient.useMemo[yearOptions]\"]);\n const sortedYears = Array.from(years).sort({\n \"ProjectsPageClient.useMemo[yearOptions].sortedYears\": (a, b)=>Number(b) - Number(a)\n }[\"ProjectsPageClient.useMemo[yearOptions].sortedYears\"]);\n return [\n DEFAULT_YEAR,\n ...sortedYears\n ];\n }\n }[\"ProjectsPageClient.useMemo[yearOptions]\"], [\n derivedProjects\n ]);\n const validCategoryValues = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"ProjectsPageClient.useMemo[validCategoryValues]\": ()=>new Set(categoryOptions.map({\n \"ProjectsPageClient.useMemo[validCategoryValues]\": (option)=>option.value\n }[\"ProjectsPageClient.useMemo[validCategoryValues]\"]))\n }[\"ProjectsPageClient.useMemo[validCategoryValues]\"], [\n categoryOptions\n ]);\n const validYearValues = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"ProjectsPageClient.useMemo[validYearValues]\": ()=>new Set(yearOptions)\n }[\"ProjectsPageClient.useMemo[validYearValues]\"], [\n yearOptions\n ]);\n const parseTab = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)({\n \"ProjectsPageClient.useCallback[parseTab]\": (value)=>{\n if (value === 'reel') return 'reel';\n return 'case-studies';\n }\n }[\"ProjectsPageClient.useCallback[parseTab]\"], []);\n const parseCategory = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)({\n \"ProjectsPageClient.useCallback[parseCategory]\": (value)=>{\n if (!value) return DEFAULT_CATEGORY;\n return validCategoryValues.has(value) ? value : DEFAULT_CATEGORY;\n }\n }[\"ProjectsPageClient.useCallback[parseCategory]\"], [\n validCategoryValues\n ]);\n const parseYear = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)({\n \"ProjectsPageClient.useCallback[parseYear]\": (value)=>{\n if (!value) return DEFAULT_YEAR;\n return validYearValues.has(value) ? value : DEFAULT_YEAR;\n }\n }[\"ProjectsPageClient.useCallback[parseYear]\"], [\n validYearValues\n ]);\n const [activeTab, setActiveTab] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n \"ProjectsPageClient.useState\": ()=>parseTab(searchParams.get('tab'))\n }[\"ProjectsPageClient.useState\"]);\n const [selectedCategory, setSelectedCategory] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n \"ProjectsPageClient.useState\": ()=>parseCategory(searchParams.get('category'))\n }[\"ProjectsPageClient.useState\"]);\n const [selectedYear, setSelectedYear] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({\n \"ProjectsPageClient.useState\": ()=>parseYear(searchParams.get('year'))\n }[\"ProjectsPageClient.useState\"]);\n const [searchQuery, setSearchQuery] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(searchParams.get('q') ?? '');\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"ProjectsPageClient.useEffect\": ()=>{\n const nextTab = parseTab(searchParams.get('tab'));\n const nextCategory = parseCategory(searchParams.get('category'));\n const nextYear = parseYear(searchParams.get('year'));\n const nextQuery = searchParams.get('q') ?? '';\n if (nextTab !== activeTab) {\n setActiveTab(nextTab);\n }\n if (nextCategory !== selectedCategory) {\n setSelectedCategory(nextCategory);\n }\n if (nextYear !== selectedYear) {\n setSelectedYear(nextYear);\n }\n if (nextQuery !== searchQuery) {\n setSearchQuery(nextQuery);\n }\n }\n }[\"ProjectsPageClient.useEffect\"], [\n activeTab,\n parseCategory,\n parseTab,\n parseYear,\n searchParams,\n searchQuery,\n selectedCategory,\n selectedYear\n ]);\n const updateQueryParams = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)({\n \"ProjectsPageClient.useCallback[updateQueryParams]\": (updates)=>{\n const params = new URLSearchParams(searchParams.toString());\n if (updates.tab) {\n if (updates.tab === 'case-studies') {\n params.delete('tab');\n } else {\n params.set('tab', updates.tab);\n }\n }\n if (updates.category !== undefined) {\n if (updates.category === DEFAULT_CATEGORY) {\n params.delete('category');\n } else {\n params.set('category', updates.category);\n }\n }\n if (updates.year !== undefined) {\n if (updates.year === DEFAULT_YEAR) {\n params.delete('year');\n } else {\n params.set('year', updates.year);\n }\n }\n if (updates.q !== undefined) {\n const trimmed = updates.q.trim();\n if (trimmed) {\n params.set('q', trimmed);\n } else {\n params.delete('q');\n }\n }\n const queryString = params.toString();\n router.replace(queryString ? `${pathname}?${queryString}` : pathname, {\n scroll: false\n });\n }\n }[\"ProjectsPageClient.useCallback[updateQueryParams]\"], [\n pathname,\n router,\n searchParams\n ]);\n const onTabChange = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)({\n \"ProjectsPageClient.useCallback[onTabChange]\": (nextTab)=>{\n setActiveTab(nextTab);\n updateQueryParams({\n tab: nextTab\n });\n }\n }[\"ProjectsPageClient.useCallback[onTabChange]\"], [\n updateQueryParams\n ]);\n const onCategoryChange = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)({\n \"ProjectsPageClient.useCallback[onCategoryChange]\": (value)=>{\n setSelectedCategory(value);\n updateQueryParams({\n category: value\n });\n }\n }[\"ProjectsPageClient.useCallback[onCategoryChange]\"], [\n updateQueryParams\n ]);\n const onYearChange = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)({\n \"ProjectsPageClient.useCallback[onYearChange]\": (value)=>{\n setSelectedYear(value);\n updateQueryParams({\n year: value\n });\n }\n }[\"ProjectsPageClient.useCallback[onYearChange]\"], [\n updateQueryParams\n ]);\n const onSearchChange = (0,react__WEBPACK_IMPORTED_MODULE_1__.useCallback)({\n \"ProjectsPageClient.useCallback[onSearchChange]\": (value)=>{\n setSearchQuery(value);\n updateQueryParams({\n q: value\n });\n }\n }[\"ProjectsPageClient.useCallback[onSearchChange]\"], [\n updateQueryParams\n ]);\n const filteredProjects = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"ProjectsPageClient.useMemo[filteredProjects]\": ()=>{\n const categoryFilter = selectedCategory;\n const yearFilter = selectedYear;\n const query = searchQuery.trim().toLowerCase();\n return derivedProjects.filter({\n \"ProjectsPageClient.useMemo[filteredProjects]\": (project)=>{\n if (categoryFilter !== DEFAULT_CATEGORY && normaliseCategoryValue(project.category) !== categoryFilter) {\n return false;\n }\n if (yearFilter !== DEFAULT_YEAR && project.year !== yearFilter) {\n return false;\n }\n if (query && !project.searchableText.includes(query)) {\n return false;\n }\n return true;\n }\n }[\"ProjectsPageClient.useMemo[filteredProjects]\"]);\n }\n }[\"ProjectsPageClient.useMemo[filteredProjects]\"], [\n derivedProjects,\n searchQuery,\n selectedCategory,\n selectedYear\n ]);\n const featuredProjects = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"ProjectsPageClient.useMemo[featuredProjects]\": ()=>filteredProjects.filter({\n \"ProjectsPageClient.useMemo[featuredProjects]\": (project)=>project.featured\n }[\"ProjectsPageClient.useMemo[featuredProjects]\"])\n }[\"ProjectsPageClient.useMemo[featuredProjects]\"], [\n filteredProjects\n ]);\n const regularProjects = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"ProjectsPageClient.useMemo[regularProjects]\": ()=>filteredProjects.filter({\n \"ProjectsPageClient.useMemo[regularProjects]\": (project)=>!project.featured\n }[\"ProjectsPageClient.useMemo[regularProjects]\"])\n }[\"ProjectsPageClient.useMemo[regularProjects]\"], [\n filteredProjects\n ]);\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Layouts__WEBPACK_IMPORTED_MODULE_6__.Container, {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_motion_SectionReveal__WEBPACK_IMPORTED_MODULE_7__[\"default\"], {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_motion_ItemReveal__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-center gap-3\",\n role: \"tablist\",\n \"aria-label\": \"Projects content views\",\n children: TABS.map((tab)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n id: `${tab.key}-tab`,\n type: \"button\",\n role: \"tab\",\n \"aria-selected\": activeTab === tab.key,\n \"aria-controls\": `projects-${tab.key}`,\n onClick: ()=>onTabChange(tab.key),\n className: `px-5 py-2 rounded-full text-sm font-medium transition-colors ${activeTab === tab.key ? 'bg-accent text-text-primary shadow-lg' : 'bg-surface-600 text-text-secondary hover:bg-surface-500 hover:text-text-primary'}`,\n children: tab.label\n }, tab.key, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 294,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 292,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 291,\n columnNumber: 9\n }, this),\n activeTab === 'reel' ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n id: \"projects-reel\",\n role: \"tabpanel\",\n \"aria-labelledby\": \"reel-tab\",\n className: \"mt-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_motion_ItemReveal__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_media_MediaPlayer__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {\n video: reel.video,\n embed: reel.embed,\n poster: reel.poster,\n title: reel.title ?? 'Projects Reel',\n className: \"mx-auto max-w-5xl\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 317,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 316,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_motion_ItemReveal__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-6 text-center text-text-secondary max-w-2xl mx-auto\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"Experience a fast cut of our favourite moments. Tap play to explore the reel, or switch back to Case Studies for deep dives into the craft behind each project.\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 327,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 326,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 325,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 315,\n columnNumber: 11\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n id: \"projects-case-studies\",\n role: \"tabpanel\",\n \"aria-labelledby\": \"case-studies-tab\",\n className: \"mt-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_motion_ItemReveal__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 md:grid-cols-[1fr_auto_auto] md:items-end\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col sm:flex-row sm:items-center sm:gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"text-xs uppercase tracking-wide text-text-tertiary\",\n htmlFor: \"category-filter\",\n children: \"Category\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 344,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n id: \"category-filter\",\n value: selectedCategory,\n onChange: (event)=>onCategoryChange(event.target.value),\n className: \"mt-2 sm:mt-0 rounded-md border border-surface-500 bg-surface-700 px-3 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-accent\",\n children: categoryOptions.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/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 354,\n columnNumber: 23\n }, this))\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 347,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 343,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col sm:flex-row sm:items-center sm:gap-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"text-xs uppercase tracking-wide text-text-tertiary\",\n htmlFor: \"year-filter\",\n children: \"Year\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 362,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"select\", {\n id: \"year-filter\",\n value: selectedYear,\n onChange: (event)=>onYearChange(event.target.value),\n className: \"mt-2 sm:mt-0 rounded-md border border-surface-500 bg-surface-700 px-3 py-2 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-accent\",\n children: yearOptions.map((yearOption)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"option\", {\n value: yearOption,\n children: yearOption === DEFAULT_YEAR ? 'All' : yearOption\n }, yearOption, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 372,\n columnNumber: 23\n }, this))\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 365,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 361,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"label\", {\n className: \"text-xs uppercase tracking-wide text-text-tertiary\",\n htmlFor: \"project-search\",\n children: \"Search\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 380,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n id: \"project-search\",\n type: \"search\",\n value: searchQuery,\n onChange: (event)=>onSearchChange(event.target.value),\n placeholder: \"Search by title, tags, category\",\n className: \"mt-2 rounded-md border border-surface-500 bg-surface-700 px-3 py-2 text-sm text-text-primary placeholder:text-text-tertiary focus:outline-none focus:ring-2 focus:ring-accent\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 383,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 379,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 342,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 341,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative mt-10\",\n children: [\n featuredProjects.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-12\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_motion_ItemReveal__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"mb-6 text-center text-xl font-display text-white\",\n children: \"Featured Case Studies\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 399,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 398,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-6 md:grid-cols-2\",\n children: featuredProjects.map((project)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_motion_ItemReveal__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: `/projects/${project.id}`,\n className: \"group relative block overflow-hidden rounded-xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative aspect-cinema overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_ImageWithFallback__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n src: project.thumbnail,\n alt: project.title,\n fill: true,\n className: \"object-cover transition-transform duration-500 group-hover:scale-105\",\n placeholderText: \"Project Thumbnail\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 411,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 418,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 410,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pointer-events-none absolute inset-x-0 bottom-0 z-10 p-5\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-medium text-accent\",\n children: (project.category || CATEGORY_FALLBACK_LABEL) + ' • ' + project.year\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 421,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-xl font-bold text-white\",\n children: project.title\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 424,\n columnNumber: 29\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 420,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute left-4 top-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"badge badge-accent text-xs\",\n children: \"FEATURED\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 427,\n columnNumber: 29\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 426,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 406,\n columnNumber: 25\n }, this)\n }, project.id, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 405,\n columnNumber: 23\n }, this))\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 403,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 397,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n children: [\n featuredProjects.length > 0 && regularProjects.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_motion_ItemReveal__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"mb-6 text-center text-xl font-display text-white\",\n children: \"All Case Studies\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 439,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 438,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 md:grid-cols-3\",\n children: regularProjects.map((project)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_motion_ItemReveal__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: `/projects/${project.id}`,\n className: \"group relative block overflow-hidden rounded-xl\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative aspect-cinema overflow-hidden\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_ImageWithFallback__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {\n src: project.thumbnail,\n alt: project.title,\n fill: true,\n className: \"object-cover transition-transform duration-500 group-hover:scale-105\",\n placeholderText: \"Project Thumbnail\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 452,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 bg-gradient-to-t from-black/80 via-black/20 to-transparent\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 459,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 451,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pointer-events-none absolute inset-x-0 bottom-0 z-10 p-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-medium text-accent\",\n children: (project.category || CATEGORY_FALLBACK_LABEL) + ' • ' + project.year\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 462,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h3\", {\n className: \"text-lg font-bold text-white\",\n children: project.title\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 465,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 461,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 447,\n columnNumber: 23\n }, this)\n }, project.id, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 446,\n columnNumber: 21\n }, this))\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 444,\n columnNumber: 17\n }, this),\n filteredProjects.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_motion_ItemReveal__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-12 rounded-lg border border-dashed border-surface-500 bg-surface-700/40 p-10 text-center text-text-secondary\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n children: \"No case studies match the current filters. Try adjusting your selections.\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 475,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 474,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 473,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 436,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 395,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 335,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 290,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/app/projects/ProjectsPageClient.tsx\",\n lineNumber: 289,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvYXBwL3Byb2plY3RzL1Byb2plY3RzUGFnZUNsaWVudC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFaUU7QUFDckM7QUFDNkM7QUFDakI7QUFDUztBQUNqQjtBQUNhO0FBQ047QUErQnZELE1BQU1hLE9BQXlDO0lBQzdDO1FBQUVDLEtBQUs7UUFBZ0JDLE9BQU87SUFBZTtJQUM3QztRQUFFRCxLQUFLO1FBQVFDLE9BQU87SUFBTztDQUM5QjtBQUVELE1BQU1DLG1CQUFtQjtBQUN6QixNQUFNQyxlQUFlO0FBRXJCLE1BQU1DLDBCQUEwQjtBQUNoQyxNQUFNQywwQkFBMEI7QUFFaEMsU0FBU0MsdUJBQXVCQyxRQUF1QjtJQUNyRCxJQUFJLENBQUNBLFVBQVUsT0FBT0g7SUFDdEIsT0FBT0c7QUFDVDtBQUVlLFNBQVNDLG1CQUFtQixFQUN6Q0MsUUFBUSxFQUNSQyxJQUFJLEVBQ29CO0lBQ3hCLE1BQU1DLFNBQVNuQiwwREFBU0E7SUFDeEIsTUFBTW9CLFdBQVdyQiw0REFBV0E7SUFDNUIsTUFBTXNCLGVBQWVwQixnRUFBZUE7SUFFcEMsTUFBTXFCLGtCQUFvQzFCLDhDQUFPQTt1REFDL0MsSUFDRXFCLFNBQVNNLEdBQUc7K0RBQUMsQ0FBQ0M7b0JBQ1osTUFBTUMsY0FBYyxJQUFJQyxLQUFLRixRQUFRRyxTQUFTLEVBQUVDLFdBQVcsR0FBR0MsUUFBUTtvQkFDdEUsTUFBTUMsaUJBQWlCO3dCQUNyQk4sUUFBUU8sS0FBSzt3QkFDYlAsUUFBUVQsUUFBUSxJQUFJO3dCQUNwQlMsUUFBUVEsSUFBSSxJQUFJO3FCQUNqQixDQUNFQyxJQUFJLENBQUMsS0FDTEMsV0FBVztvQkFFZCxPQUFPO3dCQUNMLEdBQUdWLE9BQU87d0JBQ1ZXLE1BQU1WO3dCQUNOSztvQkFDRjtnQkFDRjs7c0RBQ0Y7UUFBQ2I7S0FBUztJQUdaLE1BQU1tQixrQkFBa0J4Qyw4Q0FBT0E7dURBQUM7WUFDOUIsTUFBTTJCLE1BQU0sSUFBSWM7WUFDaEJmLGdC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SyxRQUFRVyxRQUFRVyxJQUFJOzs7Ozs7a0ZBRXZFLDhEQUFDeUY7d0VBQUd2QixXQUFVO2tGQUFnQzdFLFFBQVFPLEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7OzttREFuQmhEUCxRQUFRaUYsRUFBRTs7Ozs7Ozs7Ozt3Q0EwQjlCZCxpQkFBaUJnQyxNQUFNLEtBQUssbUJBQzNCLDhEQUFDckgscUVBQVVBO3NEQUNULDRFQUFDOEY7Z0RBQUlDLFdBQVU7MERBQ2IsNEVBQUNhOzhEQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFXekIiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9hcHAvcHJvamVjdHMvUHJvamVjdHNQYWdlQ2xpZW50LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgdXNlQ2FsbGJhY2ssIHVzZUVmZmVjdCwgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCBMaW5rIGZyb20gJ25leHQvbGluaydcbmltcG9ydCB7IHVzZVBhdGhuYW1lLCB1c2VSb3V0ZXIsIHVzZVNlYXJjaFBhcmFtcyB9IGZyb20gJ25leHQvbmF2aWdhdGlvbidcbmltcG9ydCBNZWRpYVBsYXllciBmcm9tICdAL2NvbXBvbmVudHMvbWVkaWEvTWVkaWFQbGF5ZXInXG5pbXBvcnQgSW1hZ2VXaXRoRmFsbGJhY2sgZnJvbSAnQC9jb21wb25lbnRzL3VpL0ltYWdlV2l0aEZhbGxiYWNrJ1xuaW1wb3J0IHsgQ29udGFpbmVyIH0gZnJvbSAnQC9jb21wb25lbnRzL0xheW91dHMnXG5pbXBvcnQgU2VjdGlvblJldmVhbCBmcm9tICdAL2NvbXBvbmVudHMvbW90aW9uL1NlY3Rpb25SZXZlYWwnXG5pbXBvcnQgSXRlbVJldmVhbCBmcm9tICdAL2NvbXBvbmVudHMvbW90aW9uL0l0ZW1SZXZlYWwnXG5cbmludGVyZmFjZSBQcm9qZWN0IHtcbiAgaWQ6IHN0cmluZ1xuICB0aXRsZTogc3RyaW5nXG4gIHRodW1ibmFpbDogc3RyaW5nXG4gIGNhdGVnb3J5OiBzdHJpbmcgfCBudWxsXG4gIGZlYXR1cmVkOiBib29sZWFuIHwgbnVsbFxuICBjcmVhdGVkQXQ6IHN0cmluZ1xuICB0YWdzPzogc3RyaW5nIHwgbnVsbFxufVxuXG5pbnRlcmZhY2UgUmVlbE1lZGlhIHtcbiAgdmlkZW8/OiBzdHJpbmcgfCBudWxsXG4gIGVtYmVkPzogc3RyaW5nIHwgbnVsbFxuICBwb3N0ZXI/OiBzdHJpbmcgfCBudWxsXG4gIHRpdGxlPzogc3RyaW5nIHwgbnVsbFxufVxuXG5pbnRlcmZhY2UgUHJvamVjdHNQYWdlQ2xpZW50UHJvcHMge1xuICBwcm9qZWN0czogUHJvamVjdFtdXG4gIHJlZWw6IFJlZWxNZWRpYVxufVxuXG50eXBlIFRhYktleSA9ICdjYXNlLXN0dWRpZXMnIHwgJ3JlZWwnXG5cbmludGVyZmFjZSBEZXJpdmVkUHJvamVjdCBleHRlbmRzIFByb2plY3Qge1xuICB5ZWFyOiBzdHJpbmdcbiAgc2VhcmNoYWJsZVRleHQ6IHN0cmluZ1xufVxuXG5jb25zdCBUQUJTOiB7IGtleTogVGFiS2V5OyBsYWJlbDogc3RyaW5nIH1bXSA9IFtcbiAgeyBrZXk6ICdjYXNlLXN0dWRpZXMnLCBsYWJlbDogJ0Nhc2UgU3R1ZGllcycgfSxcbiAgeyBrZXk6ICdyZWVsJywgbGFiZWw6ICdSZWVsJyB9LFxuXVxuXG5jb25zdCBERUZBVUxUX0NBVEVHT1JZID0gJ2FsbCdcbmNvbnN0IERFRkFVTFRfWUVBUiA9ICdhbGwnXG5cbmNvbnN0IENBVEVHT1JZX0ZBTExCQUNLX1ZBTFVFID0gJ3VuY2F0ZWdvcml6ZWQnXG5jb25zdCBDQVRFR09SWV9GQUxMQkFDS19MQUJFTCA9ICdVbmNhdGVnb3JpemVkJ1xuXG5mdW5jdGlvbiBub3JtYWxpc2VDYXRlZ29yeVZhbHVlKGNhdGVnb3J5OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcbiAgaWYgKCFjYXRlZ29yeSkgcmV0dXJuIENBVEVHT1JZX0ZBTExCQUNLX1ZBTFVFXG4gIHJldHVybiBjYXRlZ29yeVxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQcm9qZWN0c1BhZ2VDbGllbnQoe1xuICBwcm9qZWN0cyxcbiAgcmVlbCxcbn06IFByb2plY3RzUGFnZUNsaWVudFByb3BzKSB7XG4gIGNvbnN0IHJvdXRlciA9IHVzZVJvdXRlcigpXG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlUGF0aG5hbWUoKVxuICBjb25zdCBzZWFyY2hQYXJhbXMgPSB1c2VTZWFyY2hQYXJhbXMoKVxuXG4gIGNvbnN0IGRlcml2ZWRQcm9qZWN0czogRGVyaXZlZFByb2plY3RbXSA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIHByb2plY3RzLm1hcCgocHJvamVjdCkgPT4ge1xuICAgICAgICBjb25zdCBjcmVhdGVkWWVhciA9IG5ldyBEYXRlKHByb2plY3QuY3JlYXRlZEF0KS5nZXRGdWxsWWVhcigpLnRvU3RyaW5nKClcbiAgICAgICAgY29uc3Qgc2VhcmNoYWJsZVRleHQgPSBbXG4gICAgICAgICAgcHJvamVjdC50aXRsZSxcbiAgICAgICAgICBwcm9qZWN0LmNhdGVnb3J5ID8/ICcnLFxuICAgICAgICAgIHByb2plY3QudGFncyA/PyAnJyxcbiAgICAgICAgXVxuICAgICAgICAgIC5qb2luKCcgJylcbiAgICAgICAgICAudG9Mb3dlckNhc2UoKVxuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4ucHJvamVjdCxcbiAgICAgICAgICB5ZWFyOiBjcmVhdGVkWWVhcixcbiAgICAgICAgICBzZWFyY2hhYmxlVGV4dCxcbiAgICAgICAgfVxuICAgICAgfSksXG4gICAgW3Byb2plY3RzXVxuICApXG5cbiAgY29uc3QgY2F0ZWdvcnlPcHRpb25zID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgbWFwID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKVxuICAgIGRlcml2ZWRQcm9qZWN0cy5mb3JFYWNoKChwcm9qZWN0KSA9PiB7XG4gICAgICBjb25zdCB2YWx1ZSA9IG5vcm1hbGlzZUNhdGVnb3J5VmFsdWUocHJvamVjdC5jYXRlZ29yeSlcbiAgICAgIGNvbnN0IGxhYmVsID0gcHJvamVjdC5jYXRlZ29yeT8udHJpbSgpIHx8IENBVEVHT1JZX0ZBTExCQUNLX0xBQkVMXG4gICAgICBtYXAuc2V0KHZhbHVlLCBsYWJlbClcbiAgICB9KVxuXG4gICAgY29uc3QgZW50cmllcyA9IEFycmF5LmZyb20obWFwLmVudHJpZXMoKSkuc29ydCgoYSwgYikgPT5cbiAgICAgIGFbMV0ubG9jYWxlQ29tcGFyZShiWzFdKVxuICAgIClcblxuICAgIHJldHVybiBbeyB2YWx1ZTogREVGQVVMVF9DQVRFR09SWSwgbGFiZWw6ICdBbGwnIH0sIC4uLmVudHJpZXMubWFwKChbdmFsdWUsIGxhYmVsXSkgPT4gKHsgdmFsdWUsIGxhYmVsIH0pKV1cbiAgfSwgW2Rlcml2ZWRQcm9qZWN0c10pXG5cbiAgY29uc3QgeWVhck9wdGlvbnMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB5ZWFycyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gICAgZGVyaXZlZFByb2plY3RzLmZvckVhY2goKHByb2plY3QpID0+IHllYXJzLmFkZChwcm9qZWN0LnllYXIpKVxuICAgIGNvbnN0IHNvcnRlZFllYXJzID0gQXJyYXkuZnJvbSh5ZWFycykuc29ydCgoYSwgYikgPT4gTnVtYmVyKGIpIC0gTnVtYmVyKGEpKVxuICAgIHJldHVybiBbREVGQVVMVF9ZRUFSLCAuLi5zb3J0ZWRZZWFyc11cbiAgfSwgW2Rlcml2ZWRQcm9qZWN0c10pXG5cbiAgY29uc3QgdmFsaWRDYXRlZ29yeVZhbHVlcyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gbmV3IFNldChjYXRlZ29yeU9wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSkpLFxuICAgIFtjYXRlZ29yeU9wdGlvbnNdXG4gIClcbiAgY29uc3QgdmFsaWRZZWFyVmFsdWVzID0gdXNlTWVtbyhcbiAgICAoKSA9PiBuZXcgU2V0KHllYXJPcHRpb25zKSxcbiAgICBbeWVhck9wdGlvbnNdXG4gIClcblxuICBjb25zdCBwYXJzZVRhYiA9IHVzZUNhbGxiYWNrKCh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IFRhYktleSA9PiB7XG4gICAgaWYgKHZhbHVlID09PSAncmVlbCcpIHJldHVybiAncmVlbCdcbiAgICByZXR1cm4gJ2Nhc2Utc3R1ZGllcydcbiAgfSwgW10pXG5cbiAgY29uc3QgcGFyc2VDYXRlZ29yeSA9IHVzZUNhbGxiYWNrKFxuICAgICh2YWx1ZTogc3RyaW5nIHwgbnVsbCk6IHN0cmluZyA9PiB7XG4gICAgICBpZiAoIXZhbHVlKSByZXR1cm4gREVGQVVMVF9DQVRFR09SWVxuICAgICAgcmV0dXJuIHZhbGlkQ2F0ZWdvcnlWYWx1ZXMuaGFzKHZhbHVlKSA/IHZhbHVlIDogREVGQVVMVF9DQVRFR09SWVxuICAgIH0sXG4gICAgW3ZhbGlkQ2F0ZWdvcnlWYWx1ZXNdXG4gIClcblxuICBjb25zdCBwYXJzZVllYXIgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IHN0cmluZyB8IG51bGwpOiBzdHJpbmcgPT4ge1xuICAgICAgaWYgKCF2YWx1ZSkgcmV0dXJuIERFRkFVTFRfWUVBUlxuICAgICAgcmV0dXJuIHZhbGlkWWVhclZhbHVlcy5oYXModmFsdWUpID8gdmFsdWUgOiBERUZBVUxUX1lFQVJcbiAgICB9LFxuICAgIFt2YWxpZFllYXJWYWx1ZXNdXG4gIClcblxuICBjb25zdCBbYWN0aXZlVGFiLCBzZXRBY3RpdmVUYWJdID0gdXNlU3RhdGU8VGFiS2V5PigoKSA9PiBwYXJzZVRhYihzZWFyY2hQYXJhbXMuZ2V0KCd0YWInKSkpXG4gIGNvbnN0IFtzZWxlY3RlZENhdGVnb3J5LCBzZXRTZWxlY3RlZENhdGVnb3J5XSA9IHVzZVN0YXRlPHN0cmluZz4oKCkgPT5cbiAgICBwYXJzZUNhdGVnb3J5KHNlYXJjaFBhcmFtcy5nZXQoJ2NhdGVnb3J5JykpXG4gIClcbiAgY29uc3QgW3NlbGVjdGVkWWVhciwgc2V0U2VsZWN0ZWRZZWFyXSA9IHVzZVN0YXRlPHN0cmluZz4oKCkgPT5cbiAgICBwYXJzZVllYXIoc2VhcmNoUGFyYW1zLmdldCgneWVhcicpKVxuICApXG4gIGNvbnN0IFtzZWFyY2hRdWVyeSwgc2V0U2VhcmNoUXVlcnldID0gdXNlU3RhdGU8c3RyaW5nPihzZWFyY2hQYXJhbXMuZ2V0KCdxJykgPz8gJycpXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBuZXh0VGFiID0gcGFyc2VUYWIoc2VhcmNoUGFyYW1zLmdldCgndGFiJykpXG4gICAgY29uc3QgbmV4dENhdGVnb3J5ID0gcGFyc2VDYXRlZ29yeShzZWFyY2hQYXJhbXMuZ2V0KCdjYXRlZ29yeScpKVxuICAgIGNvbnN0IG5leHRZZWFyID0gcGFyc2VZZWFyKHNlYXJjaFBhcmFtcy5nZXQoJ3llYXInKSlcbiAgICBjb25zdCBuZXh0UXVlcnkgPSBzZWFyY2hQYXJhbXMuZ2V0KCdxJykgPz8gJydcblxuICAgIGlmIChuZXh0VGFiICE9PSBhY3RpdmVUYWIpIHtcbiAgICAgIHNldEFjdGl2ZVRhYihuZXh0VGFiKVxuICAgIH1cbiAgICBpZiAobmV4dENhdGVnb3J5ICE9PSBzZWxlY3RlZENhdGVnb3J5KSB7XG4gICAgICBzZXRTZWxlY3RlZENhdGVnb3J5KG5leHRDYXRlZ29yeSlcbiAgICB9XG4gICAgaWYgKG5leHRZZWFyICE9PSBzZWxlY3RlZFllYXIpIHtcbiAgICAgIHNldFNlbGVjdGVkWWVhcihuZXh0WWVhcilcbiAgICB9XG4gICAgaWYgKG5leHRRdWVyeSAhPT0gc2VhcmNoUXVlcnkpIHtcbiAgICAgIHNldFNlYXJjaFF1ZXJ5KG5leHRRdWVyeSlcbiAgICB9XG4gIH0sIFtcbiAgICBhY3RpdmVUYWIsXG4gICAgcGFyc2VDYXRlZ29yeSxcbiAgICBwYXJzZVRhYixcbiAgICBwYXJzZVllYXIsXG4gICAgc2VhcmNoUGFyYW1zLFxuICAgIHNlYXJjaFF1ZXJ5LFxuICAgIHNlbGVjdGVkQ2F0ZWdvcnksXG4gICAgc2VsZWN0ZWRZZWFyLFxuICBdKVxuXG4gIGNvbnN0IHVwZGF0ZVF1ZXJ5UGFyYW1zID0gdXNlQ2FsbGJhY2soXG4gICAgKHVwZGF0ZXM6IFBhcnRpYWw8eyB0YWI6IFRhYktleTsgY2F0ZWdvcnk6IHN0cmluZzsgeWVhcjogc3RyaW5nOyBxOiBzdHJpbmcgfT4pID0+IHtcbiAgICAgIGNvbnN0IHBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMoc2VhcmNoUGFyYW1zLnRvU3RyaW5nKCkpXG5cbiAgICAgIGlmICh1cGRhdGVzLnRhYikge1xuICAgICAgICBpZiAodXBkYXRlcy50YWIgPT09ICdjYXNlLXN0dWRpZXMnKSB7XG4gICAgICAgICAgcGFyYW1zLmRlbGV0ZSgndGFiJylcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXJhbXMuc2V0KCd0YWInLCB1cGRhdGVzLnRhYilcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodXBkYXRlcy5jYXRlZ29yeSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIGlmICh1cGRhdGVzLmNhdGVnb3J5ID09PSBERUZBVUxUX0NBVEVHT1JZKSB7XG4gICAgICAgICAgcGFyYW1zLmRlbGV0ZSgnY2F0ZWdvcnknKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHBhcmFtcy5zZXQoJ2NhdGVnb3J5JywgdXBkYXRlcy5jYXRlZ29yeSlcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodXBkYXRlcy55ZWFyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKHVwZGF0ZXMueWVhciA9PT0gREVGQVVMVF9ZRUFSKSB7XG4gICAgICAgICAgcGFyYW1zLmRlbGV0ZSgneWVhcicpXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcGFyYW1zLnNldCgneWVhcicsIHVwZGF0ZXMueWVhcilcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAodXBkYXRlcy5xICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgY29uc3QgdHJpbW1lZCA9IHVwZGF0ZXMucS50cmltKClcbiAgICAgICAgaWYgKHRyaW1tZWQpIHtcbiAgICAgICAgICBwYXJhbXMuc2V0KCdxJywgdHJpbW1lZClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBwYXJhbXMuZGVsZXRlKCdxJylcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBjb25zdCBxdWVyeVN0cmluZyA9IHBhcmFtcy50b1N0cmluZygpXG4gICAgICByb3V0ZXIucmVwbGFjZShxdWVyeVN0cmluZyA/IGAke3BhdGhuYW1lfT8ke3F1ZXJ5U3RyaW5nfWAgOiBwYXRobmFtZSwge1xuICAgICAgICBzY3JvbGw6IGZhbHNlLFxuICAgICAgfSlcbiAgICB9LFxuICAgIFtwYXRobmFtZSwgcm91dGVyLCBzZWFyY2hQYXJhbXNdXG4gIClcblxuICBjb25zdCBvblRhYkNoYW5nZSA9IHVzZUNhbGxiYWNrKFxuICAgIChuZXh0VGFiOiBUYWJLZXkpID0+IHtcbiAgICAgIHNldEFjdGl2ZVRhYihuZXh0VGFiKVxuICAgICAgdXBkYXRlUXVlcnlQYXJhbXMoeyB0YWI6IG5leHRUYWIgfSlcbiAgICB9LFxuICAgIFt1cGRhdGVRdWVyeVBhcmFtc11cbiAgKVxuXG4gIGNvbnN0IG9uQ2F0ZWdvcnlDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRDYXRlZ29yeSh2YWx1ZSlcbiAgICAgIHVwZGF0ZVF1ZXJ5UGFyYW1zKHsgY2F0ZWdvcnk6IHZhbHVlIH0pXG4gICAgfSxcbiAgICBbdXBkYXRlUXVlcnlQYXJhbXNdXG4gIClcblxuICBjb25zdCBvblllYXJDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgc2V0U2VsZWN0ZWRZZWFyKHZhbHVlKVxuICAgICAgdXBkYXRlUXVlcnlQYXJhbXMoeyB5ZWFyOiB2YWx1ZSB9KVxuICAgIH0sXG4gICAgW3VwZGF0ZVF1ZXJ5UGFyYW1zXVxuICApXG5cbiAgY29uc3Qgb25TZWFyY2hDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsdWU6IHN0cmluZykgPT4ge1xuICAgICAgc2V0U2VhcmNoUXVlcnkodmFsdWUpXG4gICAgICB1cGRhdGVRdWVyeVBhcmFtcyh7IHE6IHZhbHVlIH0pXG4gICAgfSxcbiAgICBbdXBkYXRlUXVlcnlQYXJhbXNdXG4gIClcblxuICBjb25zdCBmaWx0ZXJlZFByb2plY3RzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgY2F0ZWdvcnlGaWx0ZXIgPSBzZWxlY3RlZENhdGVnb3J5XG4gICAgY29uc3QgeWVhckZpbHRlciA9IHNlbGVjdGVkWWVhclxuICAgIGNvbnN0IHF1ZXJ5ID0gc2VhcmNoUXVlcnkudHJpbSgpLnRvTG93ZXJDYXNlKClcblxuICAgIHJldHVybiBkZXJpdmVkUHJvamVjdHMuZmlsdGVyKChwcm9qZWN0KSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIGNhdGVnb3J5RmlsdGVyICE9PSBERUZBVUxUX0NBVEVHT1JZICYmXG4gICAgICAgIG5vcm1hbGlzZUNhdGVnb3J5VmFsdWUocHJvamVjdC5jYXRlZ29yeSkgIT09IGNhdGVnb3J5RmlsdGVyXG4gICAgICApIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9XG5cbiAgICAgIGlmICh5ZWFyRmlsdGVyICE9PSBERUZBVUxUX1lFQVIgJiYgcHJvamVjdC55ZWFyICE9PSB5ZWFyRmlsdGVyKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICBpZiAocXVlcnkgJiYgIXByb2plY3Quc2VhcmNoYWJsZVRleHQuaW5jbHVkZXMocXVlcnkpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZVxuICAgICAgfVxuXG4gICAgICByZXR1cm4gdHJ1ZVxuICAgIH0pXG4gIH0sIFtkZXJpdmVkUHJvamVjdHMsIHNlYXJjaFF1ZXJ5LCBzZWxlY3RlZENhdGVnb3J5LCBzZWxlY3RlZFllYXJdKVxuXG4gIGNvbnN0IGZlYXR1cmVkUHJvamVjdHMgPSB1c2VNZW1vKFxuICAgICgpID0+IGZpbHRlcmVkUHJvamVjdHMuZmlsdGVyKChwcm9qZWN0KSA9PiBwcm9qZWN0LmZlYXR1cmVkKSxcbiAgICBbZmlsdGVyZWRQcm9qZWN0c11cbiAgKVxuXG4gIGNvbnN0IHJlZ3VsYXJQcm9qZWN0cyA9IHVzZU1lbW8oXG4gICAgKCkgPT4gZmlsdGVyZWRQcm9qZWN0cy5maWx0ZXIoKHByb2plY3QpID0+ICFwcm9qZWN0LmZlYXR1cmVkKSxcbiAgICBbZmlsdGVyZWRQcm9qZWN0c11cbiAgKVxuXG4gIHJldHVybiAoXG4gICAgPENvbnRhaW5lcj5cbiAgICAgIDxTZWN0aW9uUmV2ZWFsPlxuICAgICAgICA8SXRlbVJldmVhbD5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgganVzdGlmeS1jZW50ZXIgZ2FwLTNcIiByb2xlPVwidGFibGlzdFwiIGFyaWEtbGFiZWw9XCJQcm9qZWN0cyBjb250ZW50IHZpZXdzXCI+XG4gICAgICAgICAgICB7VEFCUy5tYXAoKHRhYikgPT4gKFxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAga2V5PXt0YWIua2V5fVxuICAgICAgICAgICAgICAgIGlkPXtgJHt0YWIua2V5fS10YWJgfVxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIHJvbGU9XCJ0YWJcIlxuICAgICAgICAgICAgICAgIGFyaWEtc2VsZWN0ZWQ9e2FjdGl2ZVRhYiA9PT0gdGFiLmtleX1cbiAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPXtgcHJvamVjdHMtJHt0YWIua2V5fWB9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gb25UYWJDaGFuZ2UodGFiLmtleSl9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcHgtNSBweS0yIHJvdW5kZWQtZnVsbCB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgICAgICBhY3RpdmVUYWIgPT09IHRhYi5rZXlcbiAgICAgICAgICAgICAgICAgICAgPyAnYmctYWNjZW50IHRleHQtdGV4dC1wcmltYXJ5IHNoYWRvdy1sZydcbiAgICAgICAgICAgICAgICAgICAgOiAnYmctc3VyZmFjZS02MDAgdGV4dC10ZXh0LXNlY29uZGFyeSBob3ZlcjpiZy1zdXJmYWNlLTUwMCBob3Zlcjp0ZXh0LXRleHQtcHJpbWFyeSdcbiAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt0YWIubGFiZWx9XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgKSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvSXRlbVJldmVhbD5cblxuICAgICAgICB7YWN0aXZlVGFiID09PSAncmVlbCcgPyAoXG4gICAgICAgICAgPGRpdiBpZD1cInByb2plY3RzLXJlZWxcIiByb2xlPVwidGFicGFuZWxcIiBhcmlhLWxhYmVsbGVkYnk9XCJyZWVsLXRhYlwiIGNsYXNzTmFtZT1cIm10LTEwXCI+XG4gICAgICAgICAgICA8SXRlbVJldmVhbD5cbiAgICAgICAgICAgICAgPE1lZGlhUGxheWVyXG4gICAgICAgICAgICAgICAgdmlkZW89e3JlZWwudmlkZW99XG4gICAgICAgICAgICAgICAgZW1iZWQ9e3JlZWwuZW1iZWR9XG4gICAgICAgICAgICAgICAgcG9zdGVyPXtyZWVsLnBvc3Rlcn1cbiAgICAgICAgICAgICAgICB0aXRsZT17cmVlbC50aXRsZSA/PyAnUHJvamVjdHMgUmVlbCd9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXgtYXV0byBtYXgtdy01eGxcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgPC9JdGVtUmV2ZWFsPlxuICAgICAgICAgICAgPEl0ZW1SZXZlYWw+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtNiB0ZXh0LWNlbnRlciB0ZXh0LXRleHQtc2Vjb25kYXJ5IG1heC13LTJ4bCBteC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgPHA+XG4gICAgICAgICAgICAgICAgICBFeHBlcmllbmNlIGEgZmFzdCBjdXQgb2Ygb3VyIGZhdm91cml0ZSBtb21lbnRzLiBUYXAgcGxheSB0byBleHBsb3JlIHRoZSByZWVsLFxuICAgICAgICAgICAgICAgICAgb3Igc3dpdGNoIGJhY2sgdG8gQ2FzZSBTdHVkaWVzIGZvciBkZWVwIGRpdmVzIGludG8gdGhlIGNyYWZ0IGJlaGluZCBlYWNoIHByb2plY3QuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvSXRlbVJldmVhbD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKSA6IChcbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBpZD1cInByb2plY3RzLWNhc2Utc3R1ZGllc1wiXG4gICAgICAgICAgICByb2xlPVwidGFicGFuZWxcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiY2FzZS1zdHVkaWVzLXRhYlwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJtdC0xMFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPEl0ZW1SZXZlYWw+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBnYXAtNCBtZDpncmlkLWNvbHMtWzFmcl9hdXRvX2F1dG9dIG1kOml0ZW1zLWVuZFwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdyBzbTppdGVtcy1jZW50ZXIgc206Z2FwLTRcIj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIHRleHQtdGV4dC10ZXJ0aWFyeVwiIGh0bWxGb3I9XCJjYXRlZ29yeS1maWx0ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgQ2F0ZWdvcnlcbiAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICA8c2VsZWN0XG4gICAgICAgICAgICAgICAgICAgIGlkPVwiY2F0ZWdvcnktZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkQ2F0ZWdvcnl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXsoZXZlbnQpID0+IG9uQ2F0ZWdvcnlDaGFuZ2UoZXZlbnQudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXQtMiBzbTptdC0wIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1zdXJmYWNlLTUwMCBiZy1zdXJmYWNlLTcwMCBweC0zIHB5LTIgdGV4dC1zbSB0ZXh0LXRleHQtcHJpbWFyeSBmb2N1czpvdXRsaW5lLW5vbmUgZm9jdXM6cmluZy0yIGZvY3VzOnJpbmctYWNjZW50XCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge2NhdGVnb3J5T3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24ga2V5PXtvcHRpb24udmFsdWV9IHZhbHVlPXtvcHRpb24udmFsdWV9PlxuICAgICAgICAgICAgICAgICAgICAgICAge29wdGlvbi5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdyBzbTppdGVtcy1jZW50ZXIgc206Z2FwLTRcIj5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIHRleHQtdGV4dC10ZXJ0aWFyeVwiIGh0bWxGb3I9XCJ5ZWFyLWZpbHRlclwiPlxuICAgICAgICAgICAgICAgICAgICBZZWFyXG4gICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgPHNlbGVjdFxuICAgICAgICAgICAgICAgICAgICBpZD1cInllYXItZmlsdGVyXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9e3NlbGVjdGVkWWVhcn1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4gb25ZZWFyQ2hhbmdlKGV2ZW50LnRhcmdldC52YWx1ZSl9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm10LTIgc206bXQtMCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItc3VyZmFjZS01MDAgYmctc3VyZmFjZS03MDAgcHgtMyBweS0yIHRleHQtc20gdGV4dC10ZXh0LXByaW1hcnkgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWFjY2VudFwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHt5ZWFyT3B0aW9ucy5tYXAoKHllYXJPcHRpb24pID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8b3B0aW9uIGtleT17eWVhck9wdGlvbn0gdmFsdWU9e3llYXJPcHRpb259PlxuICAgICAgICAgICAgICAgICAgICAgICAge3llYXJPcHRpb24gPT09IERFRkFVTFRfWUVBUiA/ICdBbGwnIDogeWVhck9wdGlvbn1cbiAgICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzTmFtZT1cInRleHQteHMgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGUgdGV4dC10ZXh0LXRlcnRpYXJ5XCIgaHRtbEZvcj1cInByb2plY3Qtc2VhcmNoXCI+XG4gICAgICAgICAgICAgICAgICAgIFNlYXJjaFxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICBpZD1cInByb2plY3Qtc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXtzZWFyY2hRdWVyeX1cbiAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U9eyhldmVudCkgPT4gb25TZWFyY2hDaGFuZ2UoZXZlbnQudGFyZ2V0LnZhbHVlKX1cbiAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2ggYnkgdGl0bGUsIHRhZ3MsIGNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibXQtMiByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItc3VyZmFjZS01MDAgYmctc3VyZmFjZS03MDAgcHgtMyBweS0yIHRleHQtc20gdGV4dC10ZXh0LXByaW1hcnkgcGxhY2Vob2xkZXI6dGV4dC10ZXh0LXRlcnRpYXJ5IGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1hY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L0l0ZW1SZXZlYWw+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgbXQtMTBcIj5cbiAgICAgICAgICAgICAge2ZlYXR1cmVkUHJvamVjdHMubGVuZ3RoID4gMCAmJiAoXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi0xMlwiPlxuICAgICAgICAgICAgICAgICAgPEl0ZW1SZXZlYWw+XG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJtYi02IHRleHQtY2VudGVyIHRleHQteGwgZm9udC1kaXNwbGF5IHRleHQtd2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICBGZWF0dXJlZCBDYXNlIFN0dWRpZXNcbiAgICAgICAgICAgICAgICAgICAgPC9oMz5cbiAgICAgICAgICAgICAgICAgIDwvSXRlbVJldmVhbD5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBnYXAtNiBtZDpncmlkLWNvbHMtMlwiPlxuICAgICAgICAgICAgICAgICAgICB7ZmVhdHVyZWRQcm9qZWN0cy5tYXAoKHByb2plY3QpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICA8SXRlbVJldmVhbCBrZXk9e3Byb2plY3QuaWR9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9wcm9qZWN0cy8ke3Byb2plY3QuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZ3JvdXAgcmVsYXRpdmUgYmxvY2sgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQteGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIGFzcGVjdC1jaW5lbWEgb3ZlcmZsb3ctaGlkZGVuXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEltYWdlV2l0aEZhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e3Byb2plY3QudGh1bWJuYWlsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PXtwcm9qZWN0LnRpdGxlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwib2JqZWN0LWNvdmVyIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTUwMCBncm91cC1ob3ZlcjpzY2FsZS0xMDVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXJUZXh0PVwiUHJvamVjdCBUaHVtYm5haWxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWdyYWRpZW50LXRvLXQgZnJvbS1ibGFjay84MCB2aWEtYmxhY2svMjAgdG8tdHJhbnNwYXJlbnRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LXgtMCBib3R0b20tMCB6LTEwIHAtNVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tZWRpdW0gdGV4dC1hY2NlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsocHJvamVjdC5jYXRlZ29yeSB8fCBDQVRFR09SWV9GQUxMQkFDS19MQUJFTCkgKyAnIOKAoiAnICsgcHJvamVjdC55ZWFyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC14bCBmb250LWJvbGQgdGV4dC13aGl0ZVwiPntwcm9qZWN0LnRpdGxlfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGxlZnQtNCB0b3AtNFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImJhZGdlIGJhZGdlLWFjY2VudCB0ZXh0LXhzXCI+RkVBVFVSRUQ8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgICAgICAgIDwvSXRlbVJldmVhbD5cbiAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIHtmZWF0dXJlZFByb2plY3RzLmxlbmd0aCA+IDAgJiYgcmVndWxhclByb2plY3RzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICAgICAgPEl0ZW1SZXZlYWw+XG4gICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzc05hbWU9XCJtYi02IHRleHQtY2VudGVyIHRleHQteGwgZm9udC1kaXNwbGF5IHRleHQtd2hpdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICBBbGwgQ2FzZSBTdHVkaWVzXG4gICAgICAgICAgICAgICAgICAgIDwvaDM+XG4gICAgICAgICAgICAgICAgICA8L0l0ZW1SZXZlYWw+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ2FwLTQgbWQ6Z3JpZC1jb2xzLTNcIj5cbiAgICAgICAgICAgICAgICAgIHtyZWd1bGFyUHJvamVjdHMubWFwKChwcm9qZWN0KSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJdGVtUmV2ZWFsIGtleT17cHJvamVjdC5pZH0+XG4gICAgICAgICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2AvcHJvamVjdHMvJHtwcm9qZWN0LmlkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJncm91cCByZWxhdGl2ZSBibG9jayBvdmVyZmxvdy1oaWRkZW4gcm91bmRlZC14bFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyZWxhdGl2ZSBhc3BlY3QtY2luZW1hIG92ZXJmbG93LWhpZGRlblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW1hZ2VXaXRoRmFsbGJhY2tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e3Byb2plY3QudGh1bWJuYWlsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD17cHJvamVjdC50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwib2JqZWN0LWNvdmVyIHRyYW5zaXRpb24tdHJhbnNmb3JtIGR1cmF0aW9uLTUwMCBncm91cC1ob3ZlcjpzY2FsZS0xMDVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyVGV4dD1cIlByb2plY3QgVGh1bWJuYWlsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWdyYWRpZW50LXRvLXQgZnJvbS1ibGFjay84MCB2aWEtYmxhY2svMjAgdG8tdHJhbnNwYXJlbnRcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBvaW50ZXItZXZlbnRzLW5vbmUgYWJzb2x1dGUgaW5zZXQteC0wIGJvdHRvbS0wIHotMTAgcC00XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1tZWRpdW0gdGV4dC1hY2NlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7KHByb2plY3QuY2F0ZWdvcnkgfHwgQ0FURUdPUllfRkFMTEJBQ0tfTEFCRUwpICsgJyDigKIgJyArIHByb2plY3QueWVhcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8aDMgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LWJvbGQgdGV4dC13aGl0ZVwiPntwcm9qZWN0LnRpdGxlfTwvaDM+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICAgICAgICAgIDwvSXRlbVJldmVhbD5cbiAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAge2ZpbHRlcmVkUHJvamVjdHMubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICAgIDxJdGVtUmV2ZWFsPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTEyIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1kYXNoZWQgYm9yZGVyLXN1cmZhY2UtNTAwIGJnLXN1cmZhY2UtNzAwLzQwIHAtMTAgdGV4dC1jZW50ZXIgdGV4dC10ZXh0LXNlY29uZGFyeVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxwPk5vIGNhc2Ugc3R1ZGllcyBtYXRjaCB0aGUgY3VycmVudCBmaWx0ZXJzLiBUcnkgYWRqdXN0aW5nIHlvdXIgc2VsZWN0aW9ucy48L3A+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9JdGVtUmV2ZWFsPlxuICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICA8L1NlY3Rpb25SZXZlYWw+XG4gICAgPC9Db250YWluZXI+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VTdGF0ZSIsIkxpbmsiLCJ1c2VQYXRobmFtZSIsInVzZVJvdXRlciIsInVzZVNlYXJjaFBhcmFtcyIsIk1lZGlhUGxheWVyIiwiSW1hZ2VXaXRoRmFsbGJhY2siLCJDb250YWluZXIiLCJTZWN0aW9uUmV2ZWFsIiwiSXRlbVJldmVhbCIsIlRBQlMiLCJrZXkiLCJsYWJlbCIsIkRFRkFVTFRfQ0FURUdPUlkiLCJERUZBVUxUX1lFQVIiLCJDQVRFR09SWV9GQUxMQkFDS19WQUxVRSIsIkNBVEVHT1JZX0ZBTExCQUNLX0xBQkVMIiwibm9ybWFsaXNlQ2F0ZWdvcnlWYWx1ZSIsImNhdGVnb3J5IiwiUHJvamVjdHNQYWdlQ2xpZW50IiwicHJvamVjdHMiLCJyZWVsIiwicm91dGVyIiwicGF0aG5hbWUiLCJzZWFyY2hQYXJhbXMiLCJkZXJpdmVkUHJvamVjdHMiLCJtYXAiLCJwcm9qZWN0IiwiY3JlYXRlZFllYXIiLCJEYXRlIiwiY3JlYXRlZEF0IiwiZ2V0RnVsbFllYXIiLCJ0b1N0cmluZyIsInNlYXJjaGFibGVUZXh0IiwidGl0bGUiLCJ0YWdzIiwiam9pbiIsInRvTG93ZXJDYXNlIiwieWVhciIsImNhdGVnb3J5T3B0aW9ucyIsIk1hcCIsImZvckVhY2giLCJ2YWx1ZSIsInRyaW0iLCJzZXQiLCJlbnRyaWVzIiwiQXJyYXkiLCJmcm9tIiwic29ydCIsImEiLCJiIiwibG9jYWxlQ29tcGFyZSIsInllYXJPcHRpb25zIiwieWVhcnMiLCJTZXQiLCJhZGQiLCJzb3J0ZWRZZWFycyIsIk51bWJlciIsInZhbGlkQ2F0ZWdvcnlWYWx1ZXMiLCJvcHRpb24iLCJ2YWxpZFllYXJWYWx1ZXMiLCJwYXJzZVRhYiIsInBhcnNlQ2F0ZWdvcnkiLCJoYXMiLCJwYXJzZVllYXIiLCJhY3RpdmVUYWIiLCJzZXRBY3RpdmVUYWIiLCJnZXQiLCJzZWxlY3RlZENhdGVnb3J5Iiwic2V0U2VsZWN0ZWRDYXRlZ29yeSIsInNlbGVjdGVkWWVhciIsInNldFNlbGVjdGVkWWVhciIsInNlYXJjaFF1ZXJ5Iiwic2V0U2VhcmNoUXVlcnkiLCJuZXh0VGFiIiwibmV4dENhdGVnb3J5IiwibmV4dFllYXIiLCJuZXh0UXVlcnkiLCJ1cGRhdGVRdWVyeVBhcmFtcyIsInVwZGF0ZXMiLCJwYXJhbXMiLCJVUkxTZWFyY2hQYXJhbXMiLCJ0YWIiLCJkZWxldGUiLCJ1bmRlZmluZWQiLCJxIiwidHJpbW1lZCIsInF1ZXJ5U3RyaW5nIiwicmVwbGFjZSIsInNjcm9sbCIsIm9uVGFiQ2hhbmdlIiwib25DYXRlZ29yeUNoYW5nZSIsIm9uWWVhckNoYW5nZSIsIm9uU2VhcmNoQ2hhbmdlIiwiZmlsdGVyZWRQcm9qZWN0cyIsImNhdGVnb3J5RmlsdGVyIiwieWVhckZpbHRlciIsInF1ZXJ5IiwiZmlsdGVyIiwiaW5jbHVkZXMiLCJmZWF0dXJlZFByb2plY3RzIiwiZmVhdHVyZWQiLCJyZWd1bGFyUHJvamVjdHMiLCJkaXYiLCJjbGFzc05hbWUiLCJyb2xlIiwiYXJpYS1sYWJlbCIsImJ1dHRvbiIsImlkIiwidHlwZSIsImFyaWEtc2VsZWN0ZWQiLCJhcmlhLWNvbnRyb2xzIiwib25DbGljayIsImFyaWEtbGFiZWxsZWRieSIsInZpZGVvIiwiZW1iZWQiLCJwb3N0ZXIiLCJwIiwiaHRtbEZvciIsInNlbGVjdCIsIm9uQ2hhbmdlIiwiZXZlbnQiLCJ0YXJnZXQiLCJ5ZWFyT3B0aW9uIiwiaW5wdXQiLCJwbGFjZWhvbGRlciIsImxlbmd0aCIsImgzIiwiaHJlZiIsInNyYyIsInRodW1ibmFpbCIsImFsdCIsImZpbGwiLCJwbGFjZWhvbGRlclRleHQiLCJzcGFuIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/app/projects/ProjectsPageClient.tsx\n");
/***/ }),
/***/ "(ssr)/./src/components/AppShell.tsx":
/*!*************************************!*\
!*** ./src/components/AppShell.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 */ AppShell)\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_navigation__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/navigation */ \"(ssr)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/utils */ \"(ssr)/./src/lib/utils.ts\");\n/* harmony import */ var _components_GlobalSidebar__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/GlobalSidebar */ \"(ssr)/./src/components/GlobalSidebar.tsx\");\n/* harmony import */ var _components_Footer__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/Footer */ \"(ssr)/./src/components/Footer.tsx\");\n/* harmony import */ var _components_TrackingOptOutBanner__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/TrackingOptOutBanner */ \"(ssr)/./src/components/TrackingOptOutBanner.tsx\");\n/* harmony import */ var _components_CommandPalette__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/CommandPalette */ \"(ssr)/./src/components/CommandPalette.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\n\nfunction AppShell({ children }) {\n const pathname = (0,next_navigation__WEBPACK_IMPORTED_MODULE_1__.usePathname)();\n const isAdminRoute = pathname?.startsWith('/admin') ?? 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)(\"a\", {\n href: \"#skip-target\",\n className: \"sr-only focus:not-sr-only focus:absolute focus:top-4 focus:left-4 focus:z-[100] focus:bg-surface-800 focus:text-white focus:px-4 focus:py-2 focus:rounded-md focus:outline-none focus:ring-2 focus:ring-accent focus:ring-offset-2 focus:ring-offset-background\",\n children: \"Skip to content\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/AppShell.tsx\",\n lineNumber: 17,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative flex min-h-screen flex-col md:flex-row\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_GlobalSidebar__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {}, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/AppShell.tsx\",\n lineNumber: 24,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)('flex min-h-screen w-full flex-col bg-card/40 transition-[padding] duration-300', !isAdminRoute && 'md:pl-[256px]'),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n id: \"skip-target\",\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_2__.cn)('flex-1', !isAdminRoute ? 'pb-24 pt-4 md:pt-8' : 'pb-12 pt-2'),\n children: children\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/AppShell.tsx\",\n lineNumber: 31,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Footer__WEBPACK_IMPORTED_MODULE_4__[\"default\"], {}, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/AppShell.tsx\",\n lineNumber: 40,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_TrackingOptOutBanner__WEBPACK_IMPORTED_MODULE_5__[\"default\"], {}, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/AppShell.tsx\",\n lineNumber: 41,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_CommandPalette__WEBPACK_IMPORTED_MODULE_6__[\"default\"], {}, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/AppShell.tsx\",\n lineNumber: 42,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/AppShell.tsx\",\n lineNumber: 25,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/AppShell.tsx\",\n lineNumber: 23,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9BcHBTaGVsbC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUU2QztBQUNiO0FBQ3NCO0FBQ2Q7QUFDNEI7QUFDWjtBQUd6QyxTQUFTTSxTQUFTLEVBQUVDLFFBQVEsRUFBMkI7SUFDcEUsTUFBTUMsV0FBV1IsNERBQVdBO0lBQzVCLE1BQU1TLGVBQWVELFVBQVVFLFdBQVcsYUFBYTtJQUV2RCxxQkFDRTs7MEJBQ0UsOERBQUNDO2dCQUNDQyxNQUFLO2dCQUNMQyxXQUFVOzBCQUNYOzs7Ozs7MEJBR0QsOERBQUNDO2dCQUFJRCxXQUFVOztrQ0FDYiw4REFBQ1gsaUVBQWFBOzs7OztrQ0FDZCw4REFBQ1k7d0JBQ0NELFdBQVdaLDhDQUFFQSxDQUNYLGtGQUNBLENBQUNRLGdCQUFnQjs7MENBR25CLDhEQUFDTTtnQ0FDQ0MsSUFBRztnQ0FDSEgsV0FBV1osOENBQUVBLENBQ1gsVUFDQSxDQUFDUSxlQUFlLHVCQUF1QjswQ0FHeENGOzs7Ozs7MENBRUgsOERBQUNKLDBEQUFNQTs7Ozs7MENBQ1AsOERBQUNDLHdFQUFvQkE7Ozs7OzBDQUNyQiw4REFBQ0Msa0VBQWNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBS3pCIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy9BcHBTaGVsbC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZVBhdGhuYW1lIH0gZnJvbSAnbmV4dC9uYXZpZ2F0aW9uJ1xuaW1wb3J0IHsgY24gfSBmcm9tICdAL2xpYi91dGlscydcbmltcG9ydCBHbG9iYWxTaWRlYmFyIGZyb20gJ0AvY29tcG9uZW50cy9HbG9iYWxTaWRlYmFyJ1xuaW1wb3J0IEZvb3RlciBmcm9tICdAL2NvbXBvbmVudHMvRm9vdGVyJ1xuaW1wb3J0IFRyYWNraW5nT3B0T3V0QmFubmVyIGZyb20gJ0AvY29tcG9uZW50cy9UcmFja2luZ09wdE91dEJhbm5lcidcbmltcG9ydCBDb21tYW5kUGFsZXR0ZSBmcm9tICdAL2NvbXBvbmVudHMvQ29tbWFuZFBhbGV0dGUnXG5pbXBvcnQgdHlwZSB7IFJlYWN0Tm9kZSB9IGZyb20gJ3JlYWN0J1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBBcHBTaGVsbCh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9KSB7XG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlUGF0aG5hbWUoKVxuICBjb25zdCBpc0FkbWluUm91dGUgPSBwYXRobmFtZT8uc3RhcnRzV2l0aCgnL2FkbWluJykgPz8gZmFsc2VcblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8YSBcbiAgICAgICAgaHJlZj1cIiNza2lwLXRhcmdldFwiIFxuICAgICAgICBjbGFzc05hbWU9XCJzci1vbmx5IGZvY3VzOm5vdC1zci1vbmx5IGZvY3VzOmFic29sdXRlIGZvY3VzOnRvcC00IGZvY3VzOmxlZnQtNCBmb2N1czp6LVsxMDBdIGZvY3VzOmJnLXN1cmZhY2UtODAwIGZvY3VzOnRleHQtd2hpdGUgZm9jdXM6cHgtNCBmb2N1czpweS0yIGZvY3VzOnJvdW5kZWQtbWQgZm9jdXM6b3V0bGluZS1ub25lIGZvY3VzOnJpbmctMiBmb2N1czpyaW5nLWFjY2VudCBmb2N1czpyaW5nLW9mZnNldC0yIGZvY3VzOnJpbmctb2Zmc2V0LWJhY2tncm91bmRcIlxuICAgICAgPlxuICAgICAgICBTa2lwIHRvIGNvbnRlbnRcbiAgICAgIDwvYT5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwicmVsYXRpdmUgZmxleCBtaW4taC1zY3JlZW4gZmxleC1jb2wgbWQ6ZmxleC1yb3dcIj5cbiAgICAgICAgPEdsb2JhbFNpZGViYXIgLz5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAnZmxleCBtaW4taC1zY3JlZW4gdy1mdWxsIGZsZXgtY29sIGJnLWNhcmQvNDAgdHJhbnNpdGlvbi1bcGFkZGluZ10gZHVyYXRpb24tMzAwJyxcbiAgICAgICAgICAgICFpc0FkbWluUm91dGUgJiYgJ21kOnBsLVsyNTZweF0nXG4gICAgICAgICAgKX1cbiAgICAgICAgPlxuICAgICAgICAgIDxtYWluXG4gICAgICAgICAgICBpZD1cInNraXAtdGFyZ2V0XCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICdmbGV4LTEnLFxuICAgICAgICAgICAgICAhaXNBZG1pblJvdXRlID8gJ3BiLTI0IHB0LTQgbWQ6cHQtOCcgOiAncGItMTIgcHQtMidcbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge2NoaWxkcmVufVxuICAgICAgICAgIDwvbWFpbj5cbiAgICAgICAgICA8Rm9vdGVyIC8+XG4gICAgICAgICAgPFRyYWNraW5nT3B0T3V0QmFubmVyIC8+XG4gICAgICAgICAgPENvbW1hbmRQYWxldHRlIC8+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC8+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJ1c2VQYXRobmFtZSIsImNuIiwiR2xvYmFsU2lkZWJhciIsIkZvb3RlciIsIlRyYWNraW5nT3B0T3V0QmFubmVyIiwiQ29tbWFuZFBhbGV0dGUiLCJBcHBTaGVsbCIsImNoaWxkcmVuIiwicGF0aG5hbWUiLCJpc0FkbWluUm91dGUiLCJzdGFydHNXaXRoIiwiYSIsImhyZWYiLCJjbGFzc05hbWUiLCJkaXYiLCJtYWluIiwiaWQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/AppShell.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: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent/10 hover:text-accent-foreground',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90'\n };\n const sizes = {\n sm: 'h-8 rounded-md px-3 text-xs',\n md: 'h-9 rounded-md px-3 text-sm',\n lg: 'h-10 rounded-md px-8 text-sm'\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n className: `inline-flex items-center justify-center ${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: 44,\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: 43,\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: 35,\n columnNumber: 5\n }, this);\n}\nfunction LinkButton({ variant = 'primary', size = 'md', children, className = '', href = '#', ...props }) {\n const variants = {\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent/10 hover:text-accent-foreground'\n };\n const sizes = {\n sm: 'h-8 rounded-md px-3 text-xs',\n md: 'h-9 rounded-md px-3 text-sm',\n lg: 'h-10 rounded-md px-8 text-sm'\n };\n // We can't add onClick directly in server components, so we'll add tracking via data attributes\n // and handle it on the client side if needed. For now, let's remove the onClick for server component compatibility.\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: `inline-flex items-center justify-center ${variants[variant]} ${sizes[size]} ${className}`,\n \"data-telemetry-cta\": href,\n \"data-telemetry-variant\": variant,\n ...props,\n children: children\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/Buttons.tsx\",\n lineNumber: 82,\n columnNumber: 5\n }, this);\n}\nfunction IconButton({ icon, label, onClick, variant = 'ghost', className = '' }) {\n const variants = {\n primary: 'bg-primary text-primary-foreground hover:bg-primary/90',\n secondary: 'bg-secondary text-secondary-foreground hover:bg-secondary/80',\n ghost: 'hover:bg-accent/10 hover:text-accent-foreground',\n destructive: 'bg-destructive text-destructive-foreground hover:bg-destructive/90'\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n onClick: onClick,\n className: `inline-flex items-center justify-center ${variants[variant]} h-9 w-9 rounded-md ${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: 115,\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 h-12 w-12 rounded-full bg-accent text-accent-foreground 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: 144,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9CdXR0b25zLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUE0QjtBQUNIO0FBVWxCLFNBQVNFLE9BQU8sRUFDckJDLFVBQVUsU0FBUyxFQUNuQkMsT0FBTyxJQUFJLEVBQ1hDLFlBQVksS0FBSyxFQUNqQkMsUUFBUSxFQUNSQyxZQUFZLEVBQUUsRUFDZEMsUUFBUSxFQUNSLEdBQUdDLE9BQ1M7SUFDWixNQUFNQyxXQUFXO1FBQ2ZDLFNBQVM7UUFDVEMsV0FBVztRQUNYQyxPQUFPO1FBQ1BDLGFBQWE7SUFDZjtJQUVBLE1BQU1DLFFBQVE7UUFDWkMsSUFBSTtRQUNKQyxJQUFJO1FBQ0pDLElBQUk7SUFDTjtJQUVBLHFCQUNFLDhEQUFDQztRQUNDWixXQUFXLENBQUMsd0NBQXdDLEVBQUVHLFFBQVEsQ0FBQ1AsUUFBUSxDQUFDLENBQUMsRUFBRVksS0FBSyxDQUFDWCxLQUFLLENBQUMsQ0FBQyxFQUFFRyxVQUFVLENBQUMsRUFDbkdGLFlBQVksMkJBQTJCLElBQ3ZDO1FBQ0ZHLFVBQVVBLFlBQVlIO1FBQ3JCLEdBQUdJLEtBQUs7a0JBRVJKLDBCQUNDLDhEQUFDZTtZQUFLYixXQUFVOzs4QkFDZCw4REFBQ2E7b0JBQUtiLFdBQVU7Ozs7OztnQkFBb0I7Ozs7OzttQkFJdENEOzs7Ozs7QUFJUjtBQU9PLFNBQVNlLFdBQVcsRUFDekJsQixVQUFVLFNBQVMsRUFDbkJDLE9BQU8sSUFBSSxFQUNYRSxRQUFRLEVBQ1JDLFlBQVksRUFBRSxFQUNkZSxPQUFPLEdBQUcsRUFDVixHQUFHYixPQUNhO0lBQ2hCLE1BQU1DLFdBQVc7UUFDZkMsU0FBUztRQUNUQyxXQUFXO1FBQ1hDLE9BQU87SUFDVDtJQUVBLE1BQU1FLFFBQVE7UUFDWkMsSUFBSTtRQUNKQyxJQUFJO1FBQ0pDLElBQUk7SUFDTjtJQUVBLGdHQUFnRztJQUNoRyxvSEFBb0g7SUFDcEgscUJBQ0UsOERBQUNsQixrREFBSUE7UUFDSHNCLE1BQU1BO1FBQ05mLFdBQVcsQ0FBQyx3Q0FBd0MsRUFBRUcsUUFBUSxDQUFDUCxRQUFRLENBQUMsQ0FBQyxFQUFFWSxLQUFLLENBQUNYLEtBQUssQ0FBQyxDQUFDLEVBQUVHLFdBQVc7UUFDckdnQixzQkFBb0JEO1FBQ3BCRSwwQkFBd0JyQjtRQUN2QixHQUFHTSxLQUFLO2tCQUVSSDs7Ozs7O0FBR1A7QUFFTyxTQUFTbUIsV0FBVyxFQUN6QkMsSUFBSSxFQUNKQyxLQUFLLEVBQ0xDLE9BQU8sRUFDUHpCLFVBQVUsT0FBTyxFQUNqQkksWUFBWSxFQUFFLEVBT2Y7SUFDQyxNQUFNRyxXQUFXO1FBQ2ZDLFNBQVM7UUFDVEMsV0FBVztRQUNYQyxPQUFPO1FBQ1BDLGFBQWE7SUFDZjtJQUVBLHFCQUNFLDhEQUFDSztRQUNDUyxTQUFTQTtRQUNUckIsV0FBVyxDQUFDLHdDQUF3QyxFQUFFRyxRQUFRLENBQUNQLFFBQVEsQ0FBQyxvQkFBb0IsRUFBRUksV0FBVztRQUN6R3NCLGNBQVlGO2tCQUVYRDs7Ozs7O0FBR1A7QUFFTyxTQUFTSSxxQkFBcUIsRUFDbkNKLElBQUksRUFDSkMsS0FBSyxFQUNMQyxPQUFPLEVBQ1BHLFdBQVcsY0FBYyxFQU0xQjtJQUNDLE1BQU1DLFlBQVk7UUFDaEIsZ0JBQWdCO1FBQ2hCLGVBQWU7UUFDZixhQUFhO1FBQ2IsWUFBWTtJQUNkO0lBRUEscUJBQ0UsOERBQUNiO1FBQ0NTLFNBQVNBO1FBQ1RyQixXQUFXLENBQUMsTUFBTSxFQUFFeUIsU0FBUyxDQUFDRCxTQUFTLENBQUMsOEZBQThGLENBQUM7UUFDdklGLGNBQVlGO2tCQUVYRDs7Ozs7O0FBR1AiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL0J1dHRvbnMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMaW5rIGZyb20gJ25leHQvbGluaydcbmltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCdcbmltcG9ydCB7IEJ1dHRvbkhUTUxBdHRyaWJ1dGVzLCBBbmNob3JIVE1MQXR0cmlidXRlcyB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgcmVjb3JkQ1RBQ2xpY2sgfSBmcm9tICdAL2xpYi90ZWxlbWV0cnknXG5cbmludGVyZmFjZSBCdXR0b25Qcm9wcyBleHRlbmRzIEJ1dHRvbkhUTUxBdHRyaWJ1dGVzPEhUTUxCdXR0b25FbGVtZW50PiB7XG4gIHZhcmlhbnQ/OiAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdnaG9zdCcgfCAnZGVzdHJ1Y3RpdmUnXG4gIHNpemU/OiAnc20nIHwgJ21kJyB8ICdsZydcbiAgaXNMb2FkaW5nPzogYm9vbGVhblxufVxuXG5leHBvcnQgZnVuY3Rpb24gQnV0dG9uKHtcbiAgdmFyaWFudCA9ICdwcmltYXJ5JyxcbiAgc2l6ZSA9ICdtZCcsXG4gIGlzTG9hZGluZyA9IGZhbHNlLFxuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lID0gJycsXG4gIGRpc2FibGVkLFxuICAuLi5wcm9wc1xufTogQnV0dG9uUHJvcHMpIHtcbiAgY29uc3QgdmFyaWFudHMgPSB7XG4gICAgcHJpbWFyeTogJ2JnLXByaW1hcnkgdGV4dC1wcmltYXJ5LWZvcmVncm91bmQgaG92ZXI6YmctcHJpbWFyeS85MCcsXG4gICAgc2Vjb25kYXJ5OiAnYmctc2Vjb25kYXJ5IHRleHQtc2Vjb25kYXJ5LWZvcmVncm91bmQgaG92ZXI6Ymctc2Vjb25kYXJ5LzgwJyxcbiAgICBnaG9zdDogJ2hvdmVyOmJnLWFjY2VudC8xMCBob3Zlcjp0ZXh0LWFjY2VudC1mb3JlZ3JvdW5kJyxcbiAgICBkZXN0cnVjdGl2ZTogJ2JnLWRlc3RydWN0aXZlIHRleHQtZGVzdHJ1Y3RpdmUtZm9yZWdyb3VuZCBob3ZlcjpiZy1kZXN0cnVjdGl2ZS85MCcsXG4gIH1cblxuICBjb25zdCBzaXplcyA9IHtcbiAgICBzbTogJ2gtOCByb3VuZGVkLW1kIHB4LTMgdGV4dC14cycsXG4gICAgbWQ6ICdoLTkgcm91bmRlZC1tZCBweC0zIHRleHQtc20nLFxuICAgIGxnOiAnaC0xMCByb3VuZGVkLW1kIHB4LTggdGV4dC1zbScsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzTmFtZT17YGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciAke3ZhcmlhbnRzW3ZhcmlhbnRdfSAke3NpemVzW3NpemVdfSAke2NsYXNzTmFtZX0gJHtcbiAgICAgICAgaXNMb2FkaW5nID8gJ29wYWNpdHktNzUgY3Vyc29yLXdhaXQnIDogJydcbiAgICAgIH1gfVxuICAgICAgZGlzYWJsZWQ9e2Rpc2FibGVkIHx8IGlzTG9hZGluZ31cbiAgICAgIHsuLi5wcm9wc31cbiAgICA+XG4gICAgICB7aXNMb2FkaW5nID8gKFxuICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMVwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInNwaW5uZXIgdy0zIGgtM1wiIC8+XG4gICAgICAgICAgTG9hZGluZy4uLlxuICAgICAgICA8L3NwYW4+XG4gICAgICApIDogKFxuICAgICAgICBjaGlsZHJlblxuICAgICAgKX1cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuXG5pbnRlcmZhY2UgTGlua0J1dHRvblByb3BzIGV4dGVuZHMgQW5jaG9ySFRNTEF0dHJpYnV0ZXM8SFRNTEFuY2hvckVsZW1lbnQ+IHtcbiAgdmFyaWFudD86ICdwcmltYXJ5JyB8ICdzZWNvbmRhcnknIHwgJ2dob3N0J1xuICBzaXplPzogJ3NtJyB8ICdtZCcgfCAnbGcnXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBMaW5rQnV0dG9uKHtcbiAgdmFyaWFudCA9ICdwcmltYXJ5JyxcbiAgc2l6ZSA9ICdtZCcsXG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUgPSAnJyxcbiAgaHJlZiA9ICcjJyxcbiAgLi4ucHJvcHNcbn06IExpbmtCdXR0b25Qcm9wcykge1xuICBjb25zdCB2YXJpYW50cyA9IHtcbiAgICBwcmltYXJ5OiAnYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBob3ZlcjpiZy1wcmltYXJ5LzkwJyxcbiAgICBzZWNvbmRhcnk6ICdiZy1zZWNvbmRhcnkgdGV4dC1zZWNvbmRhcnktZm9yZWdyb3VuZCBob3ZlcjpiZy1zZWNvbmRhcnkvODAnLFxuICAgIGdob3N0OiAnaG92ZXI6YmctYWNjZW50LzEwIGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQnLFxuICB9XG5cbiAgY29uc3Qgc2l6ZXMgPSB7XG4gICAgc206ICdoLTggcm91bmRlZC1tZCBweC0zIHRleHQteHMnLFxuICAgIG1kOiAnaC05IHJvdW5kZWQtbWQgcHgtMyB0ZXh0LXNtJyxcbiAgICBsZzogJ2gtMTAgcm91bmRlZC1tZCBweC04IHRleHQtc20nLFxuICB9XG5cbiAgLy8gV2UgY2FuJ3QgYWRkIG9uQ2xpY2sgZGlyZWN0bHkgaW4gc2VydmVyIGNvbXBvbmVudHMsIHNvIHdlJ2xsIGFkZCB0cmFja2luZyB2aWEgZGF0YSBhdHRyaWJ1dGVzXG4gIC8vIGFuZCBoYW5kbGUgaXQgb24gdGhlIGNsaWVudCBzaWRlIGlmIG5lZWRlZC4gRm9yIG5vdywgbGV0J3MgcmVtb3ZlIHRoZSBvbkNsaWNrIGZvciBzZXJ2ZXIgY29tcG9uZW50IGNvbXBhdGliaWxpdHkuXG4gIHJldHVybiAoXG4gICAgPExpbmtcbiAgICAgIGhyZWY9e2hyZWZ9XG4gICAgICBjbGFzc05hbWU9e2BpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgJHt2YXJpYW50c1t2YXJpYW50XX0gJHtzaXplc1tzaXplXX0gJHtjbGFzc05hbWV9YH1cbiAgICAgIGRhdGEtdGVsZW1ldHJ5LWN0YT17aHJlZn1cbiAgICAgIGRhdGEtdGVsZW1ldHJ5LXZhcmlhbnQ9e3ZhcmlhbnR9XG4gICAgICB7Li4ucHJvcHN9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvTGluaz5cbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gSWNvbkJ1dHRvbih7XG4gIGljb24sXG4gIGxhYmVsLFxuICBvbkNsaWNrLFxuICB2YXJpYW50ID0gJ2dob3N0JyxcbiAgY2xhc3NOYW1lID0gJycsXG59OiB7XG4gIGljb246IFJlYWN0LlJlYWN0Tm9kZVxuICBsYWJlbDogc3RyaW5nXG4gIG9uQ2xpY2s/OiAoKSA9PiB2b2lkXG4gIHZhcmlhbnQ/OiAncHJpbWFyeScgfCAnc2Vjb25kYXJ5JyB8ICdnaG9zdCcgfCAnZGVzdHJ1Y3RpdmUnXG4gIGNsYXNzTmFtZT86IHN0cmluZ1xufSkge1xuICBjb25zdCB2YXJpYW50cyA9IHtcbiAgICBwcmltYXJ5OiAnYmctcHJpbWFyeSB0ZXh0LXByaW1hcnktZm9yZWdyb3VuZCBob3ZlcjpiZy1wcmltYXJ5LzkwJyxcbiAgICBzZWNvbmRhcnk6ICdiZy1zZWNvbmRhcnkgdGV4dC1zZWNvbmRhcnktZm9yZWdyb3VuZCBob3ZlcjpiZy1zZWNvbmRhcnkvODAnLFxuICAgIGdob3N0OiAnaG92ZXI6YmctYWNjZW50LzEwIGhvdmVyOnRleHQtYWNjZW50LWZvcmVncm91bmQnLFxuICAgIGRlc3RydWN0aXZlOiAnYmctZGVzdHJ1Y3RpdmUgdGV4dC1kZXN0cnVjdGl2ZS1mb3JlZ3JvdW5kIGhvdmVyOmJnLWRlc3RydWN0aXZlLzkwJyxcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPGJ1dHRvblxuICAgICAgb25DbGljaz17b25DbGlja31cbiAgICAgIGNsYXNzTmFtZT17YGlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciAke3ZhcmlhbnRzW3ZhcmlhbnRdfSBoLTkgdy05IHJvdW5kZWQtbWQgJHtjbGFzc05hbWV9YH1cbiAgICAgIGFyaWEtbGFiZWw9e2xhYmVsfVxuICAgID5cbiAgICAgIHtpY29ufVxuICAgIDwvYnV0dG9uPlxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBGbG9hdGluZ0FjdGlvbkJ1dHRvbih7XG4gIGljb24sXG4gIGxhYmVsLFxuICBvbkNsaWNrLFxuICBwb3NpdGlvbiA9ICdib3R0b20tcmlnaHQnLFxufToge1xuICBpY29uOiBSZWFjdC5SZWFjdE5vZGVcbiAgbGFiZWw6IHN0cmluZ1xuICBvbkNsaWNrOiAoKSA9PiB2b2lkXG4gIHBvc2l0aW9uPzogJ2JvdHRvbS1yaWdodCcgfCAnYm90dG9tLWxlZnQnIHwgJ3RvcC1yaWdodCcgfCAndG9wLWxlZnQnXG59KSB7XG4gIGNvbnN0IHBvc2l0aW9ucyA9IHtcbiAgICAnYm90dG9tLXJpZ2h0JzogJ2JvdHRvbS00IHJpZ2h0LTQnLFxuICAgICdib3R0b20tbGVmdCc6ICdib3R0b20tNCBsZWZ0LTQnLFxuICAgICd0b3AtcmlnaHQnOiAndG9wLTQgcmlnaHQtNCcsXG4gICAgJ3RvcC1sZWZ0JzogJ3RvcC00IGxlZnQtNCcsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxidXR0b25cbiAgICAgIG9uQ2xpY2s9e29uQ2xpY2t9XG4gICAgICBjbGFzc05hbWU9e2BmaXhlZCAke3Bvc2l0aW9uc1twb3NpdGlvbl19IHotNDAgaC0xMiB3LTEyIHJvdW5kZWQtZnVsbCBiZy1hY2NlbnQgdGV4dC1hY2NlbnQtZm9yZWdyb3VuZCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlcmB9XG4gICAgICBhcmlhLWxhYmVsPXtsYWJlbH1cbiAgICA+XG4gICAgICB7aWNvbn1cbiAgICA8L2J1dHRvbj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkxpbmsiLCJSZWFjdCIsIkJ1dHRvbiIsInZhcmlhbnQiLCJzaXplIiwiaXNMb2FkaW5nIiwiY2hpbGRyZW4iLCJjbGFzc05hbWUiLCJkaXNhYmxlZCIsInByb3BzIiwidmFyaWFudHMiLCJwcmltYXJ5Iiwic2Vjb25kYXJ5IiwiZ2hvc3QiLCJkZXN0cnVjdGl2ZSIsInNpemVzIiwic20iLCJtZCIsImxnIiwiYnV0dG9uIiwic3BhbiIsIkxpbmtCdXR0b24iLCJocmVmIiwiZGF0YS10ZWxlbWV0cnktY3RhIiwiZGF0YS10ZWxlbWV0cnktdmFyaWFudCIsIkljb25CdXR0b24iLCJpY29uIiwibGFiZWwiLCJvbkNsaWNrIiwiYXJpYS1sYWJlbCIsIkZsb2F0aW5nQWN0aW9uQnV0dG9uIiwicG9zaXRpb24iLCJwb3NpdGlvbnMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/Buttons.tsx\n");
/***/ }),
/***/ "(ssr)/./src/components/CommandPalette.tsx":
/*!*******************************************!*\
!*** ./src/components/CommandPalette.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 */ CommandPalette)\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_navigation__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/navigation */ \"(ssr)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next-auth/react */ \"(ssr)/./node_modules/next-auth/react/index.js\");\n/* harmony import */ var next_auth_react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(next_auth_react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/utils */ \"(ssr)/./src/lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\nconst BASE_COMMANDS = [\n {\n label: 'Home',\n href: '/'\n },\n {\n label: 'Projects',\n href: '/projects',\n description: 'View recent work and featured case studies'\n },\n {\n label: 'Process',\n href: '/process',\n description: 'Understand how we take ideas from concept to delivery'\n },\n {\n label: 'Studio',\n href: '/studio',\n description: 'Learn about the team, culture, and locations'\n },\n {\n label: 'Crew',\n href: '/crew',\n description: 'Meet the people behind Biohazard VFX'\n },\n {\n label: 'Blog & Updates',\n href: '/blog',\n description: 'Read insights, announcements, and project notes'\n },\n {\n label: 'FAQ',\n href: '/faq',\n description: 'Get answers to common questions'\n },\n {\n label: 'Contact',\n href: '/contact',\n description: 'Start a project or request a consultation'\n }\n];\nconst FOCUSABLE_SELECTORS = 'a[href], button:not([disabled]), textarea, input, select, [tabindex]:not([tabindex=\"-1\"])';\nfunction CommandPalette() {\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n const pathname = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.usePathname)();\n const { data: session } = (0,next_auth_react__WEBPACK_IMPORTED_MODULE_3__.useSession)();\n const [isOpen, setIsOpen] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);\n const [query, setQuery] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)('');\n const [activeIndex, setActiveIndex] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(0);\n const paletteRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const inputRef = (0,react__WEBPACK_IMPORTED_MODULE_1__.useRef)(null);\n const commands = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"CommandPalette.useMemo[commands]\": ()=>{\n if (session?.user) {\n return [\n ...BASE_COMMANDS,\n {\n label: 'Admin Dashboard',\n href: '/admin',\n description: 'Manage projects, media, and site content'\n }\n ];\n }\n return BASE_COMMANDS;\n }\n }[\"CommandPalette.useMemo[commands]\"], [\n session\n ]);\n const filteredCommands = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"CommandPalette.useMemo[filteredCommands]\": ()=>{\n const trimmed = query.trim().toLowerCase();\n if (!trimmed) {\n return commands;\n }\n return commands.filter({\n \"CommandPalette.useMemo[filteredCommands]\": ({ label, href, description })=>{\n const haystack = [\n label,\n href,\n description ?? ''\n ].join(' ').toLowerCase();\n return haystack.includes(trimmed);\n }\n }[\"CommandPalette.useMemo[filteredCommands]\"]);\n }\n }[\"CommandPalette.useMemo[filteredCommands]\"], [\n commands,\n query\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"CommandPalette.useEffect\": ()=>{\n setActiveIndex(0);\n }\n }[\"CommandPalette.useEffect\"], [\n filteredCommands.length\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"CommandPalette.useEffect\": ()=>{\n const target = typeof globalThis !== 'undefined' && 'addEventListener' in globalThis ? globalThis : null;\n if (!target) {\n return;\n }\n const handleToggle = {\n \"CommandPalette.useEffect.handleToggle\": (event)=>{\n if ((event.metaKey || event.ctrlKey) && event.key.toLowerCase() === 'k') {\n event.preventDefault();\n setIsOpen({\n \"CommandPalette.useEffect.handleToggle\": (prev)=>{\n const next = !prev;\n if (!next) {\n setQuery('');\n }\n return next;\n }\n }[\"CommandPalette.useEffect.handleToggle\"]);\n }\n }\n }[\"CommandPalette.useEffect.handleToggle\"];\n target.addEventListener('keydown', handleToggle);\n return ({\n \"CommandPalette.useEffect\": ()=>target.removeEventListener('keydown', handleToggle)\n })[\"CommandPalette.useEffect\"];\n }\n }[\"CommandPalette.useEffect\"], []);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"CommandPalette.useEffect\": ()=>{\n const target = typeof globalThis !== 'undefined' && 'addEventListener' in globalThis ? globalThis : null;\n if (!isOpen || !target) {\n return;\n }\n const handleEscape = {\n \"CommandPalette.useEffect.handleEscape\": (event)=>{\n if (event.key === 'Escape') {\n event.preventDefault();\n setIsOpen(false);\n setQuery('');\n }\n }\n }[\"CommandPalette.useEffect.handleEscape\"];\n target.addEventListener('keydown', handleEscape);\n return ({\n \"CommandPalette.useEffect\": ()=>target.removeEventListener('keydown', handleEscape)\n })[\"CommandPalette.useEffect\"];\n }\n }[\"CommandPalette.useEffect\"], [\n isOpen\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"CommandPalette.useEffect\": ()=>{\n const target = typeof globalThis !== 'undefined' && 'document' in globalThis ? globalThis : null;\n const doc = target?.document ?? null;\n if (!isOpen || !target || !doc) {\n return;\n }\n const handleTab = {\n \"CommandPalette.useEffect.handleTab\": (event)=>{\n if (event.key !== 'Tab') return;\n const root = paletteRef.current;\n if (!root) return;\n const focusable = Array.from(root.querySelectorAll(FOCUSABLE_SELECTORS));\n if (focusable.length === 0) return;\n const first = focusable[0];\n const last = focusable[focusable.length - 1];\n const current = doc.activeElement;\n if (event.shiftKey) {\n if (current === first || !root.contains(current)) {\n event.preventDefault();\n last.focus();\n }\n } else if (current === last) {\n event.preventDefault();\n first.focus();\n }\n }\n }[\"CommandPalette.useEffect.handleTab\"];\n target.addEventListener('keydown', handleTab);\n return ({\n \"CommandPalette.useEffect\": ()=>target.removeEventListener('keydown', handleTab)\n })[\"CommandPalette.useEffect\"];\n }\n }[\"CommandPalette.useEffect\"], [\n isOpen\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"CommandPalette.useEffect\": ()=>{\n const target = typeof globalThis !== 'undefined' && 'document' in globalThis ? globalThis : null;\n const doc = target?.document ?? null;\n if (!isOpen || !doc) {\n return undefined;\n }\n inputRef.current?.focus();\n const previousOverflow = doc.body.style.overflow;\n doc.body.style.overflow = 'hidden';\n return ({\n \"CommandPalette.useEffect\": ()=>{\n doc.body.style.overflow = previousOverflow;\n }\n })[\"CommandPalette.useEffect\"];\n }\n }[\"CommandPalette.useEffect\"], [\n isOpen\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"CommandPalette.useEffect\": ()=>{\n if (!isOpen) return;\n const activeCommand = filteredCommands[activeIndex];\n if (activeCommand) {\n router.prefetch(activeCommand.href);\n }\n }\n }[\"CommandPalette.useEffect\"], [\n activeIndex,\n filteredCommands,\n router,\n isOpen\n ]);\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)({\n \"CommandPalette.useEffect\": ()=>{\n const target = typeof globalThis !== 'undefined' && 'addEventListener' in globalThis ? globalThis : null;\n if (!target) {\n return;\n }\n const open = {\n \"CommandPalette.useEffect.open\": ()=>setIsOpen(true)\n }[\"CommandPalette.useEffect.open\"];\n const close = {\n \"CommandPalette.useEffect.close\": ()=>setIsOpen(false)\n }[\"CommandPalette.useEffect.close\"];\n target.addEventListener('open-command-palette', open);\n target.addEventListener('close-command-palette', close);\n return ({\n \"CommandPalette.useEffect\": ()=>{\n target.removeEventListener('open-command-palette', open);\n target.removeEventListener('close-command-palette', close);\n }\n })[\"CommandPalette.useEffect\"];\n }\n }[\"CommandPalette.useEffect\"], []);\n const closePalette = ()=>{\n setIsOpen(false);\n setQuery('');\n };\n const handleSelect = (command)=>{\n closePalette();\n if (pathname !== command.href) {\n router.push(command.href);\n }\n };\n const handleInputKeyDown = (event)=>{\n if (!filteredCommands.length) {\n return;\n }\n if (event.key === 'ArrowDown') {\n event.preventDefault();\n setActiveIndex((prev)=>Math.min(prev + 1, filteredCommands.length - 1));\n } else if (event.key === 'ArrowUp') {\n event.preventDefault();\n setActiveIndex((prev)=>Math.max(prev - 1, 0));\n } else if (event.key === 'Enter') {\n event.preventDefault();\n const command = filteredCommands[activeIndex];\n if (command) {\n handleSelect(command);\n }\n }\n };\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)(\"button\", {\n type: \"button\",\n className: \"sr-only\",\n \"aria-hidden\": isOpen,\n onClick: ()=>setIsOpen(true),\n children: \"Open command palette\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 275,\n columnNumber: 7\n }, this),\n true ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n \"aria-label\": \"Open command palette (dev)\",\n onClick: ()=>setIsOpen(true),\n className: \"fixed bottom-6 right-6 z-[101] rounded-full border border-surface-600 bg-surface-800/80 px-3 py-2 text-xs text-text-secondary shadow-[0_8px_24px_rgba(0,0,0,0.45)] hover:text-text-primary hover:bg-surface-700/80 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent/45\",\n children: \"⌘ / Ctrl + K\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 285,\n columnNumber: 9\n }, this) : 0,\n isOpen ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"fixed inset-0 z-[100]\",\n role: \"presentation\",\n \"aria-hidden\": !isOpen,\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 \"aria-hidden\": \"true\",\n onClick: closePalette\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 301,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n ref: paletteRef,\n role: \"dialog\",\n \"aria-modal\": \"true\",\n \"aria-labelledby\": \"command-palette-title\",\n className: \"relative mx-auto mt-16 w-full max-w-2xl rounded-2xl border border-surface-500/50 bg-surface-900/95 shadow-[0_28px_120px_rgba(0,0,0,0.55)]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center justify-between border-b border-surface-500/60 px-5 py-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col gap-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n id: \"command-palette-title\",\n className: \"text-sm font-medium uppercase tracking-[0.18em] text-text-muted\",\n children: \"Command Palette\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 315,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-text-muted/70\",\n children: \"Search for pages or jump directly using ⌘ / Ctrl + K\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 321,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 314,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: closePalette,\n className: \"rounded-md border border-surface-600 px-2 py-1 text-xs text-text-muted transition hover:border-accent/60 hover:text-text-primary focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent/45\",\n children: \"ESC\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 325,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 313,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"px-5 pb-5 pt-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"input\", {\n ref: inputRef,\n type: \"search\",\n value: query,\n onChange: (event)=>setQuery(event.target.value),\n onKeyDown: handleInputKeyDown,\n placeholder: \"Search destinations...\",\n \"aria-label\": \"Search destinations\",\n className: \"w-full rounded-lg border border-surface-600 bg-surface-800/70 px-4 py-2.5 text-sm text-text-primary shadow-inner focus:border-accent focus:outline-none focus:ring-2 focus:ring-accent/40\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 336,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"pointer-events-none absolute right-3 top-1/2 -translate-y-1/2 rounded bg-surface-700 px-2 py-1 text-[11px] text-text-muted shadow-inner\",\n children: \"⌘ / Ctrl + K\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 346,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 335,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n role: \"listbox\",\n \"aria-label\": \"Available navigation destinations\",\n className: \"mt-4 max-h-80 overflow-y-auto rounded-lg border border-surface-700/80 bg-surface-850/90\",\n children: filteredCommands.length ? filteredCommands.map((command, index)=>{\n const isActive = index === activeIndex;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n role: \"option\",\n \"aria-selected\": isActive,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_4__.cn)('flex w-full flex-col items-start gap-1 border-b border-surface-800/40 px-4 py-3 text-left transition-colors focus:outline-none', isActive ? 'bg-surface-700/70 text-text-primary' : 'text-text-secondary hover:bg-surface-700/40'),\n onClick: ()=>handleSelect(command),\n onMouseEnter: ()=>setActiveIndex(index),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-medium\",\n children: command.label\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 376,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-text-muted\",\n children: command.description ?? command.href\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 379,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 365,\n columnNumber: 25\n }, this)\n }, command.href, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 360,\n columnNumber: 23\n }, this);\n }) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n className: \"px-4 py-6 text-sm text-text-muted\",\n children: [\n \"No matches for\",\n ' ',\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-text-primary\",\n children: [\n \"“\",\n query,\n \"”\"\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 389,\n columnNumber: 21\n }, this),\n \". Try a different term.\"\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 387,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 351,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 334,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 306,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/CommandPalette.tsx\",\n lineNumber: 296,\n columnNumber: 9\n }, this) : null\n ]\n }, void 0, true);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9Db21tYW5kUGFsZXR0ZS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7OztBQUU0RDtBQUVKO0FBQ1o7QUFDWjtBQVFoQyxNQUFNUSxnQkFBMkI7SUFDL0I7UUFBRUMsT0FBTztRQUFRQyxNQUFNO0lBQUk7SUFDM0I7UUFDRUQsT0FBTztRQUNQQyxNQUFNO1FBQ05DLGFBQWE7SUFDZjtJQUNBO1FBQ0VGLE9BQU87UUFDUEMsTUFBTTtRQUNOQyxhQUFhO0lBQ2Y7SUFDQTtRQUNFRixPQUFPO1FBQ1BDLE1BQU07UUFDTkMsYUFBYTtJQUNmO0lBQ0E7UUFDRUYsT0FBTztRQUNQQyxNQUFNO1FBQ05DLGFBQWE7SUFDZjtJQUNBO1FBQ0VGLE9BQU87UUFDUEMsTUFBTTtRQUNOQyxhQUFhO0lBQ2Y7SUFDQTtRQUNFRixPQUFPO1FBQ1BDLE1BQU07UUFDTkMsYUFBYTtJQUNmO0lBQ0E7UUFDRUYsT0FBTztRQUNQQyxNQUFNO1FBQ05DLGFBQWE7SUFDZjtDQUNEO0FBRUQsTUFBTUMsc0JBQ0o7QUFFYSxTQUFTQztJQUN0QixNQUFNQyxTQUFTViwwREFBU0E7SUFDeEIsTUFBTVcsV0FBV1YsNERBQVdBO0lBQzVCLE1BQU0sRUFBRVcsTUFBTUMsT0FBTyxFQUFFLEdBQUdYLDJEQUFVQTtJQUVwQyxNQUFNLENBQUNZLFFBQVFDLFVBQVUsR0FBR2hCLCtDQUFRQSxDQUFDO0lBQ3JDLE1BQU0sQ0FBQ2lCLE9BQU9DLFNBQVMsR0FBR2xCLCtDQUFRQSxDQUFDO0lBQ25DLE1BQU0sQ0FBQ21CLGFBQWFDLGVBQWUsR0FBR3BCLCtDQUFRQSxDQUFDO0lBRS9DLE1BQU1xQixhQUFhdEIsNkNBQU1BLENBQWlCO0lBQzFDLE1BQU11QixXQUFXdkIsNkNBQU1BLENBQW1CO0lBRTFDLE1BQU13QixXQUFXekIsOENBQU9BOzRDQUFDO1lBQ3ZCLElBQUlnQixTQUFTVSxNQUFNO2dCQUNqQixPQUFPO3VCQUNGbkI7b0JBQ0g7d0JBQ0VDLE9BQU87d0JBQ1BDLE1BQU07d0JBQ05DLGFBQWE7b0JBQ2Y7aUJBQ0Q7WUFDSDtZQUNBLE9BQU9IO1FBQ1Q7MkNBQUc7UUFBQ1M7S0FBUTtJQUVaLE1BQU1XLG1CQUFtQjNCLDhDQUFPQTtvREFBQztZQUMvQixNQUFNNEIsVUFBVVQsTUFBTVUsSUFBSSxHQUFHQyxXQUFXO1lBQ3hDLElBQUksQ0FBQ0YsU0FBUztnQkFDWixPQUFPSDtZQUNUO1lBRUEsT0FBT0EsU0FBU00sTUFBTTs0REFBQyxDQUFDLEVBQUV2QixLQUFLLEVBQUVDLElBQUksRUFBRUMsV0FBVyxFQUFFO29CQUNsRCxNQUFNc0IsV0FBVzt3QkFBQ3hCO3dCQUFPQzt3QkFBTUMsZUFBZTtxQkFBRyxDQUFDdUIsSUFBSSxDQUFDLEtBQUtILFdBQVc7b0JBQ3ZFLE9BQU9FLFNBQVNFLFFBQVEsQ0FBQ047Z0JBQzNCOztRQUNGO21EQUFHO1FBQUNIO1FBQVVOO0tBQU07SUFFcEJwQixnREFBU0E7b0NBQUM7WUFDUnVCLGVBQWU7UUFDakI7bUNBQUc7UUFBQ0ssaUJBQWlCUSxNQUFNO0tBQUM7SUFFNUJwQyxnREFBU0E7b0NBQUM7WUFDUixNQUFNcUMsU0FDSixPQUFPQyxlQUFlLGVBQWUsc0JBQXNCQSxhQUN0REEsYUFDRDtZQUNOLElBQUksQ0FBQ0QsUUFBUTtnQkFDWDtZQUNGO1lBRUEsTUFBTUU7eURBQWUsQ0FBQ0M7b0JBQ3BCLElBQUksQ0FBQ0EsTUFBTUMsT0FBTyxJQUFJRCxNQUFNRSxPQUFPLEtBQUtGLE1BQU1HLEdBQUcsQ0FBQ1osV0FBVyxPQUFPLEtBQUs7d0JBQ3ZFUyxNQUFNSSxjQUFjO3dCQUNwQnpCO3FFQUFVLENBQUMwQjtnQ0FDVCxNQUFNQyxPQUFPLENBQUNEO2dDQUNkLElBQUksQ0FBQ0MsTUFBTTtvQ0FDVHpCLFNBQVM7Z0NBQ1g7Z0NBQ0EsT0FBT3lCOzRCQUNUOztvQkFDRjtnQkFDRjs7WUFFQVQsT0FBT1UsZ0JBQWdCLENBQUMsV0FBV1I7WUFDbkM7NENBQU8sSUFBTUYsT0FBT1csbUJBQW1CLENBQUMsV0FBV1Q7O1FBQ3JEO21DQUFHLEVBQUU7SUFFTHZDLGdEQUFTQTtvQ0FBQztZQUNSLE1BQU1xQyxTQUNKLE9BQU9DLGVBQWUsZUFBZSxzQkFBc0JBLGFBQ3REQSxhQUNEO1lBQ04sSUFBSSxDQUFDcEIsVUFBVSxDQUFDbUIsUUFBUTtnQkFDdEI7WUFDRjtZQUVBLE1BQU1ZO3lEQUFlLENBQUNUO29CQUNwQixJQUFJQSxNQUFNRyxHQUFHLEtBQUssVUFBVTt3QkFDMUJILE1BQU1JLGNBQWM7d0JBQ3BCekIsVUFBVTt3QkFDVkUsU0FBUztvQkFDWDtnQkFDRjs7WUFFQWdCLE9BQU9VLGdCQUFnQixDQUFDLFdBQVdFO1lBQ25DOzRDQUFPLElBQU1aLE9BQU9XLG1CQUFtQixDQUFDLFdBQVdDOztRQUNyRDttQ0FBRztRQUFDL0I7S0FBTztJQUVYbEIsZ0RBQVNBO29DQUFDO1lBQ1IsTUFBTXFDLFNBQ0osT0FBT0MsZUFBZSxlQUFlLGNBQWNBLGFBQzlDQSxhQUNEO1lBQ04sTUFBTVksTUFBTWIsUUFBUWMsWUFBWTtZQUNoQyxJQUFJLENBQUNqQyxVQUFVLENBQUNtQixVQUFVLENBQUNhLEtBQUs7Z0JBQzlCO1lBQ0Y7WUFFQSxNQUFNRTtzREFBWSxDQUFDWjtvQkFDakIsSUFBSUEsTUFBTUcsR0FBRyxLQUFLLE9BQU87b0JBQ3pCLE1BQU1VLE9BQU83QixXQUFXOEIsT0FBTztvQkFDL0IsSUFBSSxDQUFDRCxNQUFNO29CQUVYLE1BQU1FLFlBQVlDLE1BQU1DLElBQUksQ0FDMUJKLEtBQUtLLGdCQUFnQixDQUFjOUM7b0JBRXJDLElBQUkyQyxVQUFVbkIsTUFBTSxLQUFLLEdBQUc7b0JBRTVCLE1BQU11QixRQUFRSixTQUFTLENBQUMsRUFBRTtvQkFDMUIsTUFBTUssT0FBT0wsU0FBUyxDQUFDQSxVQUFVbkIsTUFBTSxHQUFHLEVBQUU7b0JBQzVDLE1BQU1rQixVQUFVSixJQUFJVyxhQUFhO29CQUVqQyxJQUFJckIsTUFBTXNCLFFBQVEsRUFBRTt3QkFDbEIsSUFBSVIsWUFBWUssU0FBUyxDQUFDTixLQUFLVSxRQUFRLENBQUNULFVBQVU7NEJBQ2hEZCxNQUFNSSxjQUFjOzRCQUNwQmdCLEtBQUtJLEtBQUs7d0JBQ1o7b0JBQ0YsT0FBTyxJQUFJVixZQUFZTSxNQUFNO3dCQUMzQnBCLE1BQU1JLGNBQWM7d0JBQ3BCZSxNQUFNSyxLQUFLO29CQUNiO2dCQUNGOztZQUVBM0IsT0FBT1UsZ0JBQWdCLENBQUMsV0FBV0s7WUFDbkM7NENBQU8sSUFBTWYsT0FBT1csbUJBQW1CLENBQUMsV0FBV0k7O1FBQ3JEO21DQUFHO1FBQUNsQztLQUFPO0lBRVhsQixnREFBU0E7b0NBQUM7WUFDUixNQUFNcUMsU0FDSixPQUFPQyxlQUFlLGVBQWUsY0FBY0EsYUFDOUNBLGFBQ0Q7WUFDTixNQUFNWSxNQUFNYixRQUFRYyxZQUFZO1lBQ2hDLElBQUksQ0FBQ2pDLFVBQVUsQ0FBQ2dDLEtBQUs7Z0JBQ25CLE9BQU9lO1lBQ1Q7WUFFQXhDLFNBQVM2QixPQUFPLEVBQUVVO1lBQ2xCLE1BQU1FLG1CQUFtQmhCLElBQUlpQixJQUFJLENBQUNDLEtBQUssQ0FBQ0MsUUFBUTtZQUNoRG5CLElBQUlpQixJQUFJLENBQUNDLEtBQUssQ0FBQ0MsUUFBUSxHQUFHO1lBQzFCOzRDQUFPO29CQUNMbkIsSUFBSWlCLElBQUksQ0FBQ0MsS0FBSyxDQUFDQyxRQUFRLEdBQUdIO2dCQUM1Qjs7UUFDRjttQ0FBRztRQUFDaEQ7S0FBTztJQUVYbEIsZ0RBQVNBO29DQUFDO1lBQ1IsSUFBSSxDQUFDa0IsUUFBUTtZQUNiLE1BQU1vRCxnQkFBZ0IxQyxnQkFBZ0IsQ0FBQ04sWUFBWTtZQUNuRCxJQUFJZ0QsZUFBZTtnQkFDakJ4RCxPQUFPeUQsUUFBUSxDQUFDRCxjQUFjNUQsSUFBSTtZQUNwQztRQUNGO21DQUFHO1FBQUNZO1FBQWFNO1FBQWtCZDtRQUFRSTtLQUFPO0lBRWxEbEIsZ0RBQVNBO29DQUFDO1lBQ1IsTUFBTXFDLFNBQ0osT0FBT0MsZUFBZSxlQUFlLHNCQUFzQkEsYUFDdERBLGFBQ0Q7WUFDTixJQUFJLENBQUNELFFBQVE7Z0JBQ1g7WUFDRjtZQUNBLE1BQU1tQztpREFBTyxJQUFNckQsVUFBVTs7WUFDN0IsTUFBTXNEO2tEQUFRLElBQU10RCxVQUFVOztZQUM5QmtCLE9BQU9VLGdCQUFnQixDQUNyQix3QkFDQXlCO1lBRUZuQyxPQUFPVSxnQkFBZ0IsQ0FDckIseUJBQ0EwQjtZQUVGOzRDQUFPO29CQUNMcEMsT0FBT1csbUJBQW1CLENBQ3hCLHdCQUNBd0I7b0JBRUZuQyxPQUFPVyxtQkFBbUIsQ0FDeEIseUJBQ0F5QjtnQkFFSjs7UUFDRjttQ0FBRyxFQUFFO0lBRUwsTUFBTUMsZUFBZTtRQUNuQnZELFVBQVU7UUFDVkUsU0FBUztJQUNYO0lBRUEsTUFBTXNELGVBQWUsQ0FBQ0M7UUFDcEJGO1FBQ0EsSUFBSTNELGFBQWE2RCxRQUFRbEUsSUFBSSxFQUFFO1lBQzdCSSxPQUFPK0QsSUFBSSxDQUFDRCxRQUFRbEUsSUFBSTtRQUMxQjtJQUNGO0lBRUEsTUFBTW9FLHFCQUFxQixDQUFDdEM7UUFDMUIsSUFBSSxDQUFDWixpQkFBaUJRLE1BQU0sRUFBRTtZQUM1QjtRQUNGO1FBRUEsSUFBSUksTUFBTUcsR0FBRyxLQUFLLGFBQWE7WUFDN0JILE1BQU1JLGNBQWM7WUFDcEJyQixlQUFlLENBQUNzQixPQUFTa0MsS0FBS0MsR0FBRyxDQUFDbkMsT0FBTyxHQUFHakIsaUJBQWlCUSxNQUFNLEdBQUc7UUFDeEUsT0FBTyxJQUFJSSxNQUFNRyxHQUFHLEtBQUssV0FBVztZQUNsQ0gsTUFBTUksY0FBYztZQUNwQnJCLGVBQWUsQ0FBQ3NCLE9BQVNrQyxLQUFLRSxHQUFHLENBQUNwQyxPQUFPLEdBQUc7UUFDOUMsT0FBTyxJQUFJTCxNQUFNRyxHQUFHLEtBQUssU0FBUztZQUNoQ0gsTUFBTUksY0FBYztZQUNwQixNQUFNZ0MsVUFBVWhELGdCQUFnQixDQUFDTixZQUFZO1lBQzdDLElBQUlzRCxTQUFTO2dCQUNYRCxhQUFhQztZQUNmO1FBQ0Y7SUFDRjtJQUVBLHFCQUNFOzswQkFDRSw4REFBQ007Z0JBQ0NDLE1BQUs7Z0JBQ0xDLFdBQVU7Z0JBQ1ZDLGVBQWFuRTtnQkFDYm9FLFNBQVMsSUFBTW5FLFVBQVU7MEJBQzFCOzs7Ozs7WUFoUUQsS0FvUXNDLGlCQUNwQyw4REFBQytEO2dCQUNDQyxNQUFLO2dCQUNMSSxjQUFXO2dCQUNYRCxTQUFTLElBQU1uRSxVQUFVO2dCQUN6QmlFLFdBQVU7MEJBQ1g7Ozs7O3VCQUdDLENBQUk7WUFFUGxFLHVCQUNDLDhEQUFDc0U7Z0JBQ0NKLFdBQVU7Z0JBQ1ZLLE1BQUs7Z0JBQ0xKLGVBQWEsQ0FBQ25FOztrQ0FFZCw4REFBQ3NFO3dCQUNDSixXQUFVO3dCQUNWQyxlQUFZO3dCQUNaQyxTQUFTWjs7Ozs7O2tDQUVYLDhEQUFDYzt3QkFDQ0UsS0FBS2xFO3dCQUNMaUUsTUFBSzt3QkFDTEUsY0FBVzt3QkFDWEMsbUJBQWdCO3dCQUNoQlIsV0FBVTs7MENBRVYsOERBQUNJO2dDQUFJSixXQUFVOztrREFDYiw4REFBQ0k7d0NBQUlKLFdBQVU7OzBEQUNiLDhEQUFDUztnREFDQ0MsSUFBRztnREFDSFYsV0FBVTswREFDWDs7Ozs7OzBEQUdELDhEQUFDVztnREFBRVgsV0FBVTswREFBNkI7Ozs7Ozs7Ozs7OztrREFJNUMsOERBQUNGO3dDQUNDQyxNQUFLO3dDQUNMRyxTQUFTWjt3Q0FDVFUsV0FBVTtrREFDWDs7Ozs7Ozs7Ozs7OzBDQUtILDhEQUFDSTtnQ0FBSUosV0FBVTs7a0RBQ2IsOERBQUNJO3dDQUFJSixXQUFVOzswREFDYiw4REFBQ1k7Z0RBQ0NOLEtBQUtqRTtnREFDTDBELE1BQUs7Z0RBQ0xjLE9BQU83RTtnREFDUDhFLFVBQVUsQ0FBQzFELFFBQVVuQixTQUFTbUIsTUFBTUgsTUFBTSxDQUFDNEQsS0FBSztnREFDaERFLFdBQVdyQjtnREFDWHNCLGFBQVk7Z0RBQ1piLGNBQVc7Z0RBQ1hILFdBQVU7Ozs7OzswREFFWiw4REFBQ2lCO2dEQUFLakIsV0FBVTswREFBMEk7Ozs7Ozs7Ozs7OztrREFLNUosOERBQUNrQjt3Q0FDQ2IsTUFBSzt3Q0FDTEYsY0FBVzt3Q0FDWEgsV0FBVTtrREFFVHhELGlCQUFpQlEsTUFBTSxHQUN0QlIsaUJBQWlCMkUsR0FBRyxDQUFDLENBQUMzQixTQUFTNEI7NENBQzdCLE1BQU1DLFdBQVdELFVBQVVsRjs0Q0FDM0IscUJBQ0UsOERBQUNvRjtnREFFQ2pCLE1BQUs7Z0RBQ0xrQixpQkFBZUY7MERBRWYsNEVBQUN2QjtvREFDQ0MsTUFBSztvREFDTEMsV0FBVzdFLDhDQUFFQSxDQUNYLGtJQUNBa0csV0FDSSx3Q0FDQTtvREFFTm5CLFNBQVMsSUFBTVgsYUFBYUM7b0RBQzVCZ0MsY0FBYyxJQUFNckYsZUFBZWlGOztzRUFFbkMsOERBQUNIOzREQUFLakIsV0FBVTtzRUFDYlIsUUFBUW5FLEtBQUs7Ozs7OztzRUFFaEIsOERBQUM0Rjs0REFBS2pCLFdBQVU7c0VBQ2JSLFFBQVFqRSxXQUFXLElBQUlpRSxRQUFRbEUsSUFBSTs7Ozs7Ozs7Ozs7OytDQW5CbkNrRSxRQUFRbEUsSUFBSTs7Ozs7d0NBd0J2QixtQkFFQSw4REFBQ2dHOzRDQUFHdEIsV0FBVTs7Z0RBQW9DO2dEQUNqQzs4REFDZiw4REFBQ2lCO29EQUFLakIsV0FBVTs7d0RBQW9CO3dEQUFFaEU7d0RBQU07Ozs7Ozs7Z0RBQVE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3VCQVE5RDs7O0FBR1YiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL0NvbW1hbmRQYWxldHRlLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VNZW1vLCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgdHlwZSB7IEtleWJvYXJkRXZlbnQgYXMgUmVhY3RLZXlib2FyZEV2ZW50IH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyB1c2VSb3V0ZXIsIHVzZVBhdGhuYW1lIH0gZnJvbSAnbmV4dC9uYXZpZ2F0aW9uJ1xuaW1wb3J0IHsgdXNlU2Vzc2lvbiB9IGZyb20gJ25leHQtYXV0aC9yZWFjdCdcbmltcG9ydCB7IGNuIH0gZnJvbSAnQC9saWIvdXRpbHMnXG5cbnR5cGUgQ29tbWFuZCA9IHtcbiAgbGFiZWw6IHN0cmluZ1xuICBocmVmOiBzdHJpbmdcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmdcbn1cblxuY29uc3QgQkFTRV9DT01NQU5EUzogQ29tbWFuZFtdID0gW1xuICB7IGxhYmVsOiAnSG9tZScsIGhyZWY6ICcvJyB9LFxuICB7XG4gICAgbGFiZWw6ICdQcm9qZWN0cycsXG4gICAgaHJlZjogJy9wcm9qZWN0cycsXG4gICAgZGVzY3JpcHRpb246ICdWaWV3IHJlY2VudCB3b3JrIGFuZCBmZWF0dXJlZCBjYXNlIHN0dWRpZXMnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdQcm9jZXNzJyxcbiAgICBocmVmOiAnL3Byb2Nlc3MnLFxuICAgIGRlc2NyaXB0aW9uOiAnVW5kZXJzdGFuZCBob3cgd2UgdGFrZSBpZGVhcyBmcm9tIGNvbmNlcHQgdG8gZGVsaXZlcnknLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdTdHVkaW8nLFxuICAgIGhyZWY6ICcvc3R1ZGlvJyxcbiAgICBkZXNjcmlwdGlvbjogJ0xlYXJuIGFib3V0IHRoZSB0ZWFtLCBjdWx0dXJlLCBhbmQgbG9jYXRpb25zJyxcbiAgfSxcbiAge1xuICAgIGxhYmVsOiAnQ3JldycsXG4gICAgaHJlZjogJy9jcmV3JyxcbiAgICBkZXNjcmlwdGlvbjogJ01lZXQgdGhlIHBlb3BsZSBiZWhpbmQgQmlvaGF6YXJkIFZGWCcsXG4gIH0sXG4gIHtcbiAgICBsYWJlbDogJ0Jsb2cgJiBVcGRhdGVzJyxcbiAgICBocmVmOiAnL2Jsb2cnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVhZCBpbnNpZ2h0cywgYW5ub3VuY2VtZW50cywgYW5kIHByb2plY3Qgbm90ZXMnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdGQVEnLFxuICAgIGhyZWY6ICcvZmFxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBhbnN3ZXJzIHRvIGNvbW1vbiBxdWVzdGlvbnMnLFxuICB9LFxuICB7XG4gICAgbGFiZWw6ICdDb250YWN0JyxcbiAgICBocmVmOiAnL2NvbnRhY3QnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnQgYSBwcm9qZWN0IG9yIHJlcXVlc3QgYSBjb25zdWx0YXRpb24nLFxuICB9LFxuXVxuXG5jb25zdCBGT0NVU0FCTEVfU0VMRUNUT1JTID1cbiAgJ2FbaHJlZl0sIGJ1dHRvbjpub3QoW2Rpc2FibGVkXSksIHRleHRhcmVhLCBpbnB1dCwgc2VsZWN0LCBbdGFiaW5kZXhdOm5vdChbdGFiaW5kZXg9XCItMVwiXSknXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENvbW1hbmRQYWxldHRlKCkge1xuICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKVxuICBjb25zdCBwYXRobmFtZSA9IHVzZVBhdGhuYW1lKClcbiAgY29uc3QgeyBkYXRhOiBzZXNzaW9uIH0gPSB1c2VTZXNzaW9uKClcblxuICBjb25zdCBbaXNPcGVuLCBzZXRJc09wZW5dID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFtxdWVyeSwgc2V0UXVlcnldID0gdXNlU3RhdGUoJycpXG4gIGNvbnN0IFthY3RpdmVJbmRleCwgc2V0QWN0aXZlSW5kZXhdID0gdXNlU3RhdGUoMClcblxuICBjb25zdCBwYWxldHRlUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCBpbnB1dFJlZiA9IHVzZVJlZjxIVE1MSW5wdXRFbGVtZW50PihudWxsKVxuXG4gIGNvbnN0IGNvbW1hbmRzID0gdXNlTWVtbygoKSA9PiB7XG4gICAgaWYgKHNlc3Npb24/LnVzZXIpIHtcbiAgICAgIHJldHVybiBbXG4gICAgICAgIC4uLkJBU0VfQ09NTUFORFMsXG4gICAgICAgIHtcbiAgICAgICAgICBsYWJlbDogJ0FkbWluIERhc2hib2FyZCcsXG4gICAgICAgICAgaHJlZjogJy9hZG1pbicsXG4gICAgICAgICAgZGVzY3JpcHRpb246ICdNYW5hZ2UgcHJvamVjdHMsIG1lZGlhLCBhbmQgc2l0ZSBjb250ZW50JyxcbiAgICAgICAgfSxcbiAgICAgIF1cbiAgICB9XG4gICAgcmV0dXJuIEJBU0VfQ09NTUFORFNcbiAgfSwgW3Nlc3Npb25dKVxuXG4gIGNvbnN0IGZpbHRlcmVkQ29tbWFuZHMgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB0cmltbWVkID0gcXVlcnkudHJpbSgpLnRvTG93ZXJDYXNlKClcbiAgICBpZiAoIXRyaW1tZWQpIHtcbiAgICAgIHJldHVybiBjb21tYW5kc1xuICAgIH1cblxuICAgIHJldHVybiBjb21tYW5kcy5maWx0ZXIoKHsgbGFiZWwsIGhyZWYsIGRlc2NyaXB0aW9uIH0pID0+IHtcbiAgICAgIGNvbnN0IGhheXN0YWNrID0gW2xhYmVsLCBocmVmLCBkZXNjcmlwdGlvbiA/PyAnJ10uam9pbignICcpLnRvTG93ZXJDYXNlKClcbiAgICAgIHJldHVybiBoYXlzdGFjay5pbmNsdWRlcyh0cmltbWVkKVxuICAgIH0pXG4gIH0sIFtjb21tYW5kcywgcXVlcnldKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgc2V0QWN0aXZlSW5kZXgoMClcbiAgfSwgW2ZpbHRlcmVkQ29tbWFuZHMubGVuZ3RoXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9XG4gICAgICB0eXBlb2YgZ2xvYmFsVGhpcyAhPT0gJ3VuZGVmaW5lZCcgJiYgJ2FkZEV2ZW50TGlzdGVuZXInIGluIGdsb2JhbFRoaXNcbiAgICAgICAgPyAoZ2xvYmFsVGhpcyBhcyBXaW5kb3cgJiB0eXBlb2YgZ2xvYmFsVGhpcylcbiAgICAgICAgOiBudWxsXG4gICAgaWYgKCF0YXJnZXQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZVRvZ2dsZSA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKChldmVudC5tZXRhS2V5IHx8IGV2ZW50LmN0cmxLZXkpICYmIGV2ZW50LmtleS50b0xvd2VyQ2FzZSgpID09PSAnaycpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICBzZXRJc09wZW4oKHByZXYpID0+IHtcbiAgICAgICAgICBjb25zdCBuZXh0ID0gIXByZXZcbiAgICAgICAgICBpZiAoIW5leHQpIHtcbiAgICAgICAgICAgIHNldFF1ZXJ5KCcnKVxuICAgICAgICAgIH1cbiAgICAgICAgICByZXR1cm4gbmV4dFxuICAgICAgICB9KVxuICAgICAgfVxuICAgIH1cblxuICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlVG9nZ2xlKVxuICAgIHJldHVybiAoKSA9PiB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZVRvZ2dsZSlcbiAgfSwgW10pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPVxuICAgICAgdHlwZW9mIGdsb2JhbFRoaXMgIT09ICd1bmRlZmluZWQnICYmICdhZGRFdmVudExpc3RlbmVyJyBpbiBnbG9iYWxUaGlzXG4gICAgICAgID8gKGdsb2JhbFRoaXMgYXMgV2luZG93ICYgdHlwZW9mIGdsb2JhbFRoaXMpXG4gICAgICAgIDogbnVsbFxuICAgIGlmICghaXNPcGVuIHx8ICF0YXJnZXQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZUVzY2FwZSA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VzY2FwZScpIHtcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICBzZXRJc09wZW4oZmFsc2UpXG4gICAgICAgIHNldFF1ZXJ5KCcnKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlRXNjYXBlKVxuICAgIHJldHVybiAoKSA9PiB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUVzY2FwZSlcbiAgfSwgW2lzT3Blbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPVxuICAgICAgdHlwZW9mIGdsb2JhbFRoaXMgIT09ICd1bmRlZmluZWQnICYmICdkb2N1bWVudCcgaW4gZ2xvYmFsVGhpc1xuICAgICAgICA/IChnbG9iYWxUaGlzIGFzIFdpbmRvdyAmIHR5cGVvZiBnbG9iYWxUaGlzKVxuICAgICAgICA6IG51bGxcbiAgICBjb25zdCBkb2MgPSB0YXJnZXQ/LmRvY3VtZW50ID8/IG51bGxcbiAgICBpZiAoIWlzT3BlbiB8fCAhdGFyZ2V0IHx8ICFkb2MpIHtcbiAgICAgIHJldHVyblxuICAgIH1cblxuICAgIGNvbnN0IGhhbmRsZVRhYiA9IChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4ge1xuICAgICAgaWYgKGV2ZW50LmtleSAhPT0gJ1RhYicpIHJldHVyblxuICAgICAgY29uc3Qgcm9vdCA9IHBhbGV0dGVSZWYuY3VycmVudFxuICAgICAgaWYgKCFyb290KSByZXR1cm5cblxuICAgICAgY29uc3QgZm9jdXNhYmxlID0gQXJyYXkuZnJvbShcbiAgICAgICAgcm9vdC5xdWVyeVNlbGVjdG9yQWxsPEhUTUxFbGVtZW50PihGT0NVU0FCTEVfU0VMRUNUT1JTKVxuICAgICAgKVxuICAgICAgaWYgKGZvY3VzYWJsZS5sZW5ndGggPT09IDApIHJldHVyblxuXG4gICAgICBjb25zdCBmaXJzdCA9IGZvY3VzYWJsZVswXVxuICAgICAgY29uc3QgbGFzdCA9IGZvY3VzYWJsZVtmb2N1c2FibGUubGVuZ3RoIC0gMV1cbiAgICAgIGNvbnN0IGN1cnJlbnQgPSBkb2MuYWN0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IG51bGxcblxuICAgICAgaWYgKGV2ZW50LnNoaWZ0S2V5KSB7XG4gICAgICAgIGlmIChjdXJyZW50ID09PSBmaXJzdCB8fCAhcm9vdC5jb250YWlucyhjdXJyZW50KSkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICBsYXN0LmZvY3VzKClcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmIChjdXJyZW50ID09PSBsYXN0KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgZmlyc3QuZm9jdXMoKVxuICAgICAgfVxuICAgIH1cblxuICAgIHRhcmdldC5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlVGFiKVxuICAgIHJldHVybiAoKSA9PiB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZVRhYilcbiAgfSwgW2lzT3Blbl0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPVxuICAgICAgdHlwZW9mIGdsb2JhbFRoaXMgIT09ICd1bmRlZmluZWQnICYmICdkb2N1bWVudCcgaW4gZ2xvYmFsVGhpc1xuICAgICAgICA/IChnbG9iYWxUaGlzIGFzIFdpbmRvdyAmIHR5cGVvZiBnbG9iYWxUaGlzKVxuICAgICAgICA6IG51bGxcbiAgICBjb25zdCBkb2MgPSB0YXJnZXQ/LmRvY3VtZW50ID8/IG51bGxcbiAgICBpZiAoIWlzT3BlbiB8fCAhZG9jKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgaW5wdXRSZWYuY3VycmVudD8uZm9jdXMoKVxuICAgIGNvbnN0IHByZXZpb3VzT3ZlcmZsb3cgPSBkb2MuYm9keS5zdHlsZS5vdmVyZmxvd1xuICAgIGRvYy5ib2R5LnN0eWxlLm92ZXJmbG93ID0gJ2hpZGRlbidcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgZG9jLmJvZHkuc3R5bGUub3ZlcmZsb3cgPSBwcmV2aW91c092ZXJmbG93XG4gICAgfVxuICB9LCBbaXNPcGVuXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICghaXNPcGVuKSByZXR1cm5cbiAgICBjb25zdCBhY3RpdmVDb21tYW5kID0gZmlsdGVyZWRDb21tYW5kc1thY3RpdmVJbmRleF1cbiAgICBpZiAoYWN0aXZlQ29tbWFuZCkge1xuICAgICAgcm91dGVyLnByZWZldGNoKGFjdGl2ZUNvbW1hbmQuaHJlZilcbiAgICB9XG4gIH0sIFthY3RpdmVJbmRleCwgZmlsdGVyZWRDb21tYW5kcywgcm91dGVyLCBpc09wZW5dKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID1cbiAgICAgIHR5cGVvZiBnbG9iYWxUaGlzICE9PSAndW5kZWZpbmVkJyAmJiAnYWRkRXZlbnRMaXN0ZW5lcicgaW4gZ2xvYmFsVGhpc1xuICAgICAgICA/IChnbG9iYWxUaGlzIGFzIFdpbmRvdyAmIHR5cGVvZiBnbG9iYWxUaGlzKVxuICAgICAgICA6IG51bGxcbiAgICBpZiAoIXRhcmdldCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IG9wZW4gPSAoKSA9PiBzZXRJc09wZW4odHJ1ZSlcbiAgICBjb25zdCBjbG9zZSA9ICgpID0+IHNldElzT3BlbihmYWxzZSlcbiAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdvcGVuLWNvbW1hbmQtcGFsZXR0ZScsXG4gICAgICBvcGVuIGFzIHVua25vd24gYXMgRXZlbnRMaXN0ZW5lclxuICAgIClcbiAgICB0YXJnZXQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdjbG9zZS1jb21tYW5kLXBhbGV0dGUnLFxuICAgICAgY2xvc2UgYXMgdW5rbm93biBhcyBFdmVudExpc3RlbmVyXG4gICAgKVxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICB0YXJnZXQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ29wZW4tY29tbWFuZC1wYWxldHRlJyxcbiAgICAgICAgb3BlbiBhcyB1bmtub3duIGFzIEV2ZW50TGlzdGVuZXJcbiAgICAgIClcbiAgICAgIHRhcmdldC5yZW1vdmVFdmVudExpc3RlbmVyKFxuICAgICAgICAnY2xvc2UtY29tbWFuZC1wYWxldHRlJyxcbiAgICAgICAgY2xvc2UgYXMgdW5rbm93biBhcyBFdmVudExpc3RlbmVyXG4gICAgICApXG4gICAgfVxuICB9LCBbXSlcblxuICBjb25zdCBjbG9zZVBhbGV0dGUgPSAoKSA9PiB7XG4gICAgc2V0SXNPcGVuKGZhbHNlKVxuICAgIHNldFF1ZXJ5KCcnKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0ID0gKGNvbW1hbmQ6IENvbW1hbmQpID0+IHtcbiAgICBjbG9zZVBhbGV0dGUoKVxuICAgIGlmIChwYXRobmFtZSAhPT0gY29tbWFuZC5ocmVmKSB7XG4gICAgICByb3V0ZXIucHVzaChjb21tYW5kLmhyZWYpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlSW5wdXRLZXlEb3duID0gKGV2ZW50OiBSZWFjdEtleWJvYXJkRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWZpbHRlcmVkQ29tbWFuZHMubGVuZ3RoKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dEb3duJykge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgc2V0QWN0aXZlSW5kZXgoKHByZXYpID0+IE1hdGgubWluKHByZXYgKyAxLCBmaWx0ZXJlZENvbW1hbmRzLmxlbmd0aCAtIDEpKVxuICAgIH0gZWxzZSBpZiAoZXZlbnQua2V5ID09PSAnQXJyb3dVcCcpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIHNldEFjdGl2ZUluZGV4KChwcmV2KSA9PiBNYXRoLm1heChwcmV2IC0gMSwgMCkpXG4gICAgfSBlbHNlIGlmIChldmVudC5rZXkgPT09ICdFbnRlcicpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgIGNvbnN0IGNvbW1hbmQgPSBmaWx0ZXJlZENvbW1hbmRzW2FjdGl2ZUluZGV4XVxuICAgICAgaWYgKGNvbW1hbmQpIHtcbiAgICAgICAgaGFuZGxlU2VsZWN0KGNvbW1hbmQpXG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPGJ1dHRvblxuICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgY2xhc3NOYW1lPVwic3Itb25seVwiXG4gICAgICAgIGFyaWEtaGlkZGVuPXtpc09wZW59XG4gICAgICAgIG9uQ2xpY2s9eygpID0+IHNldElzT3Blbih0cnVlKX1cbiAgICAgID5cbiAgICAgICAgT3BlbiBjb21tYW5kIHBhbGV0dGVcbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICB7cHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJyA/IChcbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJPcGVuIGNvbW1hbmQgcGFsZXR0ZSAoZGV2KVwiXG4gICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0SXNPcGVuKHRydWUpfVxuICAgICAgICAgIGNsYXNzTmFtZT1cImZpeGVkIGJvdHRvbS02IHJpZ2h0LTYgei1bMTAxXSByb3VuZGVkLWZ1bGwgYm9yZGVyIGJvcmRlci1zdXJmYWNlLTYwMCBiZy1zdXJmYWNlLTgwMC84MCBweC0zIHB5LTIgdGV4dC14cyB0ZXh0LXRleHQtc2Vjb25kYXJ5IHNoYWRvdy1bMF84cHhfMjRweF9yZ2JhKDAsMCwwLDAuNDUpXSBob3Zlcjp0ZXh0LXRleHQtcHJpbWFyeSBob3ZlcjpiZy1zdXJmYWNlLTcwMC84MCBmb2N1cy12aXNpYmxlOm91dGxpbmUgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLTIgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW9mZnNldC0yIGZvY3VzLXZpc2libGU6b3V0bGluZS1hY2NlbnQvNDVcIlxuICAgICAgICA+XG4gICAgICAgICAg4oyYIC8gQ3RybCArIEtcbiAgICAgICAgPC9idXR0b24+XG4gICAgICApIDogbnVsbH1cblxuICAgICAge2lzT3BlbiA/IChcbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzTmFtZT1cImZpeGVkIGluc2V0LTAgei1bMTAwXVwiXG4gICAgICAgICAgcm9sZT1cInByZXNlbnRhdGlvblwiXG4gICAgICAgICAgYXJpYS1oaWRkZW49eyFpc09wZW59XG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLWJsYWNrLzYwIGJhY2tkcm9wLWJsdXItc21cIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICAgIG9uQ2xpY2s9e2Nsb3NlUGFsZXR0ZX1cbiAgICAgICAgICAvPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIHJlZj17cGFsZXR0ZVJlZn1cbiAgICAgICAgICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgICAgICAgICAgYXJpYS1tb2RhbD1cInRydWVcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbGxlZGJ5PVwiY29tbWFuZC1wYWxldHRlLXRpdGxlXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInJlbGF0aXZlIG14LWF1dG8gbXQtMTYgdy1mdWxsIG1heC13LTJ4bCByb3VuZGVkLTJ4bCBib3JkZXIgYm9yZGVyLXN1cmZhY2UtNTAwLzUwIGJnLXN1cmZhY2UtOTAwLzk1IHNoYWRvdy1bMF8yOHB4XzEyMHB4X3JnYmEoMCwwLDAsMC41NSldXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBib3JkZXItYiBib3JkZXItc3VyZmFjZS01MDAvNjAgcHgtNSBweS00XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBnYXAtMVwiPlxuICAgICAgICAgICAgICAgIDxoMlxuICAgICAgICAgICAgICAgICAgaWQ9XCJjb21tYW5kLXBhbGV0dGUtdGl0bGVcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LW1lZGl1bSB1cHBlcmNhc2UgdHJhY2tpbmctWzAuMThlbV0gdGV4dC10ZXh0LW11dGVkXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBDb21tYW5kIFBhbGV0dGVcbiAgICAgICAgICAgICAgICA8L2gyPlxuICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC10ZXh0LW11dGVkLzcwXCI+XG4gICAgICAgICAgICAgICAgICBTZWFyY2ggZm9yIHBhZ2VzIG9yIGp1bXAgZGlyZWN0bHkgdXNpbmcg4oyYIC8gQ3RybCArIEtcbiAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgb25DbGljaz17Y2xvc2VQYWxldHRlfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1zdXJmYWNlLTYwMCBweC0yIHB5LTEgdGV4dC14cyB0ZXh0LXRleHQtbXV0ZWQgdHJhbnNpdGlvbiBob3Zlcjpib3JkZXItYWNjZW50LzYwIGhvdmVyOnRleHQtdGV4dC1wcmltYXJ5IGZvY3VzLXZpc2libGU6b3V0bGluZSBmb2N1cy12aXNpYmxlOm91dGxpbmUtMiBmb2N1cy12aXNpYmxlOm91dGxpbmUtb2Zmc2V0LTIgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLWFjY2VudC80NVwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBFU0NcbiAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJweC01IHBiLTUgcHQtNFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlXCI+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICByZWY9e2lucHV0UmVmfVxuICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICB2YWx1ZT17cXVlcnl9XG4gICAgICAgICAgICAgICAgICBvbkNoYW5nZT17KGV2ZW50KSA9PiBzZXRRdWVyeShldmVudC50YXJnZXQudmFsdWUpfVxuICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVJbnB1dEtleURvd259XG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBkZXN0aW5hdGlvbnMuLi5cIlxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIlNlYXJjaCBkZXN0aW5hdGlvbnNcIlxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1zdXJmYWNlLTYwMCBiZy1zdXJmYWNlLTgwMC83MCBweC00IHB5LTIuNSB0ZXh0LXNtIHRleHQtdGV4dC1wcmltYXJ5IHNoYWRvdy1pbm5lciBmb2N1czpib3JkZXItYWNjZW50IGZvY3VzOm91dGxpbmUtbm9uZSBmb2N1czpyaW5nLTIgZm9jdXM6cmluZy1hY2NlbnQvNDBcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSByaWdodC0zIHRvcC0xLzIgLXRyYW5zbGF0ZS15LTEvMiByb3VuZGVkIGJnLXN1cmZhY2UtNzAwIHB4LTIgcHktMSB0ZXh0LVsxMXB4XSB0ZXh0LXRleHQtbXV0ZWQgc2hhZG93LWlubmVyXCI+XG4gICAgICAgICAgICAgICAgICDijJggLyBDdHJsICsgS1xuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgPHVsXG4gICAgICAgICAgICAgICAgcm9sZT1cImxpc3Rib3hcIlxuICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJBdmFpbGFibGUgbmF2aWdhdGlvbiBkZXN0aW5hdGlvbnNcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cIm10LTQgbWF4LWgtODAgb3ZlcmZsb3cteS1hdXRvIHJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci1zdXJmYWNlLTcwMC84MCBiZy1zdXJmYWNlLTg1MC85MFwiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICB7ZmlsdGVyZWRDb21tYW5kcy5sZW5ndGggPyAoXG4gICAgICAgICAgICAgICAgICBmaWx0ZXJlZENvbW1hbmRzLm1hcCgoY29tbWFuZCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNBY3RpdmUgPSBpbmRleCA9PT0gYWN0aXZlSW5kZXhcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAgICAgICAgIGtleT17Y29tbWFuZC5ocmVmfVxuICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cIm9wdGlvblwiXG4gICAgICAgICAgICAgICAgICAgICAgICBhcmlhLXNlbGVjdGVkPXtpc0FjdGl2ZX1cbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdmbGV4IHctZnVsbCBmbGV4LWNvbCBpdGVtcy1zdGFydCBnYXAtMSBib3JkZXItYiBib3JkZXItc3VyZmFjZS04MDAvNDAgcHgtNCBweS0zIHRleHQtbGVmdCB0cmFuc2l0aW9uLWNvbG9ycyBmb2N1czpvdXRsaW5lLW5vbmUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzQWN0aXZlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICdiZy1zdXJmYWNlLTcwMC83MCB0ZXh0LXRleHQtcHJpbWFyeSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogJ3RleHQtdGV4dC1zZWNvbmRhcnkgaG92ZXI6Ymctc3VyZmFjZS03MDAvNDAnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IGhhbmRsZVNlbGVjdChjb21tYW5kKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBzZXRBY3RpdmVJbmRleChpbmRleCl9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1tZWRpdW1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Y29tbWFuZC5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtdGV4dC1tdXRlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjb21tYW5kLmRlc2NyaXB0aW9uID8/IGNvbW1hbmQuaHJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzTmFtZT1cInB4LTQgcHktNiB0ZXh0LXNtIHRleHQtdGV4dC1tdXRlZFwiPlxuICAgICAgICAgICAgICAgICAgICBObyBtYXRjaGVzIGZvcnsnICd9XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtdGV4dC1wcmltYXJ5XCI+4oCce3F1ZXJ5feKAnTwvc3Bhbj4uIFRyeSBhXG4gICAgICAgICAgICAgICAgICAgIGRpZmZlcmVudCB0ZXJtLlxuICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgKSA6IG51bGx9XG4gICAgPC8+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJ1c2VFZmZlY3QiLCJ1c2VNZW1vIiwidXNlUmVmIiwidXNlU3RhdGUiLCJ1c2VSb3V0ZXIiLCJ1c2VQYXRobmFtZSIsInVzZVNlc3Npb24iLCJjbiIsIkJBU0VfQ09NTUFORFMiLCJsYWJlbCIsImhyZWYiLCJkZXNjcmlwdGlvbiIsIkZPQ1VTQUJMRV9TRUxFQ1RPUlMiLCJDb21tYW5kUGFsZXR0ZSIsInJvdXRlciIsInBhdGhuYW1lIiwiZGF0YSIsInNlc3Npb24iLCJpc09wZW4iLCJzZXRJc09wZW4iLCJxdWVyeSIsInNldFF1ZXJ5IiwiYWN0aXZlSW5kZXgiLCJzZXRBY3RpdmVJbmRleCIsInBhbGV0dGVSZWYiLCJpbnB1dFJlZiIsImNvbW1hbmRzIiwidXNlciIsImZpbHRlcmVkQ29tbWFuZHMiLCJ0cmltbWVkIiwidHJpbSIsInRvTG93ZXJDYXNlIiwiZmlsdGVyIiwiaGF5c3RhY2siLCJqb2luIiwiaW5jbHVkZXMiLCJsZW5ndGgiLCJ0YXJnZXQiLCJnbG9iYWxUaGlzIiwiaGFuZGxlVG9nZ2xlIiwiZXZlbnQiLCJtZXRhS2V5IiwiY3RybEtleSIsImtleSIsInByZXZlbnREZWZhdWx0IiwicHJldiIsIm5leHQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZUVzY2FwZSIsImRvYyIsImRvY3VtZW50IiwiaGFuZGxlVGFiIiwicm9vdCIsImN1cnJlbnQiLCJmb2N1c2FibGUiLCJBcnJheSIsImZyb20iLCJxdWVyeVNlbGVjdG9yQWxsIiwiZmlyc3QiLCJsYXN0IiwiYWN0aXZlRWxlbWVudCIsInNoaWZ0S2V5IiwiY29udGFpbnMiLCJmb2N1cyIsInVuZGVmaW5lZCIsInByZXZpb3VzT3ZlcmZsb3ciLCJib2R5Iiwic3R5bGUiLCJvdmVyZmxvdyIsImFjdGl2ZUNvbW1hbmQiLCJwcmVmZXRjaCIsIm9wZW4iLCJjbG9zZSIsImNsb3NlUGFsZXR0ZSIsImhhbmRsZVNlbGVjdCIsImNvbW1hbmQiLCJwdXNoIiwiaGFuZGxlSW5wdXRLZXlEb3duIiwiTWF0aCIsIm1pbiIsIm1heCIsImJ1dHRvbiIsInR5cGUiLCJjbGFzc05hbWUiLCJhcmlhLWhpZGRlbiIsIm9uQ2xpY2siLCJhcmlhLWxhYmVsIiwiZGl2Iiwicm9sZSIsInJlZiIsImFyaWEtbW9kYWwiLCJhcmlhLWxhYmVsbGVkYnkiLCJoMiIsImlkIiwicCIsImlucHV0IiwidmFsdWUiLCJvbkNoYW5nZSIsIm9uS2V5RG93biIsInBsYWNlaG9sZGVyIiwic3BhbiIsInVsIiwibWFwIiwiaW5kZXgiLCJpc0FjdGl2ZSIsImxpIiwiYXJpYS1zZWxlY3RlZCIsIm9uTW91c2VFbnRlciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/components/CommandPalette.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,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RUFBQ0M7Z0RBQUtDLEdBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7a0RBR1osOERBQUM3Qjt3Q0FDQ0QsTUFBSzt3Q0FDTFMsUUFBTzt3Q0FDUGMsS0FBSTt3Q0FDSjdCLFdBQVU7d0NBQ1Y4QixjQUFXO3dDQUNYQyxPQUFNO2tEQUVOLDRFQUFDQzs0Q0FBSWhDLFdBQVU7NENBQVVpQyxNQUFLOzRDQUFlQyxTQUFRO3NEQUNuRCw0RUFBQ0M7Z0RBQUtDLEdBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MENBS2QsOERBQUNuQztnQ0FBSUQsV0FBVTs7a0RBQ2IsOERBQUNHOzs0Q0FBRTs0Q0FBRyxJQUFJa0MsT0FBT0MsV0FBVzs0Q0FBRzs7Ozs7OztrREFDL0IsOERBQUNyQzt3Q0FBSUQsV0FBVTs7MERBQ2IsOERBQUM1QyxrREFBSUE7Z0RBQUNrRCxNQUFLO2dEQUFXTixXQUFVOzBEQUFhOzs7Ozs7MERBQzdDLDhEQUFDNUMsa0RBQUlBO2dEQUFDa0QsTUFBSztnREFBU04sV0FBVTswREFBYTs7Ozs7OzBEQUMzQyw4REFBQ087Z0RBQUVELE1BQUs7Z0RBQWlDTixXQUFVO2dEQUFhK0IsT0FBTTswREFBTzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVE3RiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2NvbXBvbmVudHMvRm9vdGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0J1xuaW1wb3J0IExpbmsgZnJvbSAnbmV4dC9saW5rJ1xuaW1wb3J0IHsgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IENvbnRhaW5lciB9IGZyb20gJy4vTGF5b3V0cydcbmltcG9ydCB7IElucHV0LCBUZXh0YXJlYSB9IGZyb20gJy4vRm9ybXMnXG5pbXBvcnQgeyBCdXR0b24gfSBmcm9tICcuL0J1dHRvbnMnXG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEZvb3RlcigpIHtcbiAgY29uc3QgW2VtYWlsLCBzZXRFbWFpbF0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2ZpcnN0TmFtZSwgc2V0Rmlyc3ROYW1lXSA9IHVzZVN0YXRlKCcnKVxuICBjb25zdCBbbWVzc2FnZSwgc2V0TWVzc2FnZV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3QgW2FncmVlLCBzZXRBZ3JlZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzU3VibWl0dGluZywgc2V0SXNTdWJtaXR0aW5nXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc3VibWl0TWVzc2FnZSwgc2V0U3VibWl0TWVzc2FnZV0gPSB1c2VTdGF0ZSgnJylcblxuICBjb25zdCBoYW5kbGVTdWJtaXQgPSBhc3luYyAoZTogUmVhY3QuRm9ybUV2ZW50KSA9PiB7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgc2V0U3VibWl0TWVzc2FnZSgnJylcblxuICAgIGlmICghYWdyZWUpIHtcbiAgICAgIHNldFN1Ym1pdE1lc3NhZ2UoJ1BsZWFzZSBhZ3JlZSB0byB0aGUgVGVybXMgb2YgVXNlIGFuZCBQcml2YWN5IFBvbGljeS4nKVxuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgY29uc3QgYWNjZXNzS2V5ID0gcHJvY2Vzcy5lbnYuTkVYVF9QVUJMSUNfV0VCM0ZPUk1TX0FDQ0VTU19LRVlcbiAgICBpZiAoIWFjY2Vzc0tleSkge1xuICAgICAgc2V0U3VibWl0TWVzc2FnZSgnRm9ybSBjb25maWd1cmF0aW9uIGVycm9yLiBNaXNzaW5nIFdlYjNGb3JtcyBhY2Nlc3Mga2V5LicpXG4gICAgICByZXR1cm5cbiAgICB9XG5cbiAgICBzZXRJc1N1Ym1pdHRpbmcodHJ1ZSlcbiAgICB0cnkge1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgZmV0Y2goJ2h0dHBzOi8vYXBpLndlYjNmb3Jtcy5jb20vc3VibWl0Jywge1xuICAgICAgICBtZXRob2Q6ICdQT1NUJyxcbiAgICAgICAgaGVhZGVyczogeyAnQ29udGVudC1UeXBlJzogJ2FwcGxpY2F0aW9uL2pzb24nIH0sXG4gICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICBhY2Nlc3Nfa2V5OiBhY2Nlc3NLZXksXG4gICAgICAgICAgc3ViamVjdDogJ0Zvb3RlciBpbnF1aXJ5IGZyb20gQmlvaGF6YXJkIFZGWCcsXG4gICAgICAgICAgZnJvbV9uYW1lOiBmaXJzdE5hbWUgfHwgJ1dlYnNpdGUgVmlzaXRvcicsXG4gICAgICAgICAgcmVwbHl0bzogZW1haWwsXG4gICAgICAgICAgZmlyc3ROYW1lLFxuICAgICAgICAgIGVtYWlsLFxuICAgICAgICAgIG1lc3NhZ2UsXG4gICAgICAgICAgY29uc2VudF90ZXJtczogdHJ1ZSxcbiAgICAgICAgICBjb25zZW50X3ByaXZhY3k6IHRydWUsXG4gICAgICAgICAgc291cmNlOiAnRm9vdGVyRm9ybSdcbiAgICAgICAgfSlcbiAgICAgIH0pXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCByZXMuanNvbigpXG4gICAgICBpZiAocmVzdWx0LnN1Y2Nlc3MpIHtcbiAgICAgICAgc2V0U3VibWl0TWVzc2FnZShcIlRoYW5rIHlvdSEgV2UnbGwgYmUgaW4gdG91Y2ggc29vbi5cIilcbiAgICAgICAgc2V0RW1haWwoJycpXG4gICAgICAgIHNldEZpcnN0TmFtZSgnJylcbiAgICAgICAgc2V0TWVzc2FnZSgnJylcbiAgICAgICAgc2V0QWdyZWUoZmFsc2UpXG4gICAgICB9IGVsc2Uge1xuICAgICAgICBzZXRTdWJtaXRNZXNzYWdlKCdUaGVyZSB3YXMgYW4gZXJyb3Igc2VuZGluZyB5b3VyIG1lc3NhZ2UuIFBsZWFzZSB0cnkgYWdhaW4uJylcbiAgICAgIH1cbiAgICB9IGNhdGNoIHtcbiAgICAgIHNldFN1Ym1pdE1lc3NhZ2UoJ1RoZXJlIHdhcyBhbiBlcnJvciBzZW5kaW5nIHlvdXIgbWVzc2FnZS4gUGxlYXNlIHRyeSBhZ2Fpbi4nKVxuICAgIH0gZmluYWxseSB7XG4gICAgICBzZXRJc1N1Ym1pdHRpbmcoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8Zm9vdGVyIGNsYXNzTmFtZT1cImJnLXN1cmZhY2UtOTAwIHB0LTEyIHBiLTggYm9yZGVyLXQgYm9yZGVyLXN1cmZhY2UtNTAwXCI+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,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LEtBQUs7Ozs7OzswQkFFWCw4REFBQ0w7Z0JBQU1VLFNBQVNjO2dCQUFZckIsV0FBVTswQkFDbkNIOzs7Ozs7Ozs7Ozs7QUFJVDtBQU1PLFNBQVMwQixNQUFNLEVBQUUxQixLQUFLLEVBQUVHLFlBQVksRUFBRSxFQUFFQyxFQUFFLEVBQUUsR0FBR0MsT0FBbUI7SUFDdkUsTUFBTXNCLFVBQVV2QixNQUFNSixNQUFNTyxXQUFXLEdBQUdDLE9BQU8sQ0FBQyxRQUFRO0lBRTFELHFCQUNFLDhEQUFDQztRQUFJTixXQUFVOzswQkFDYiw4REFBQ1E7Z0JBQ0NjLE1BQUs7Z0JBQ0xyQixJQUFJdUI7Z0JBQ0p4QixXQUFXLENBQUMsNEZBQTRGLEVBQUVBLFdBQVc7Z0JBQ3BILEdBQUdFLEtBQUs7Ozs7OzswQkFFWCw4REFBQ0w7Z0JBQU1VLFNBQVNpQjtnQkFBU3hCLFdBQVU7MEJBQ2hDSDs7Ozs7Ozs7Ozs7O0FBSVQ7QUFPTyxTQUFTNEIsVUFBVSxFQUFFQyxRQUFRLEVBQUUxQixZQUFZLEVBQUUsRUFBa0I7SUFDcEUscUJBQU8sOERBQUNNO1FBQUlOLFdBQVcsQ0FBQyxVQUFVLEVBQUVBLFdBQVc7a0JBQUcwQjs7Ozs7O0FBQ3BEO0FBUU8sU0FBU0MsWUFBWSxFQUMxQkMsS0FBSyxFQUNMQyxXQUFXLEVBQ1hILFFBQVEsRUFDUztJQUNqQixxQkFDRSw4REFBQ3BCO1FBQUlOLFdBQVU7OzBCQUNiLDhEQUFDTTs7a0NBQ0MsOERBQUN3Qjt3QkFBRzlCLFdBQVU7a0NBQW9DNEI7Ozs7OztvQkFDakRDLDZCQUNDLDhEQUFDcEI7d0JBQUVULFdBQVU7a0NBQWdDNkI7Ozs7Ozs7Ozs7OztZQUdoREg7Ozs7Ozs7QUFHUCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2NvbXBvbmVudHMvRm9ybXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQge1xuICBJbnB1dEhUTUxBdHRyaWJ1dGVzLFxuICBUZXh0YXJlYUhUTUxBdHRyaWJ1dGVzLFxuICBTZWxlY3RIVE1MQXR0cmlidXRlcyxcbn0gZnJvbSAncmVhY3QnXG5cbmludGVyZmFjZSBJbnB1dFByb3BzIGV4dGVuZHMgSW5wdXRIVE1MQXR0cmlidXRlczxIVE1MSW5wdXRFbGVtZW50PiB7XG4gIGxhYmVsPzogc3RyaW5nXG4gIGVycm9yPzogc3RyaW5nXG4gIGhlbHBlclRleHQ/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/GlobalSidebar.tsx":
/*!******************************************!*\
!*** ./src/components/GlobalSidebar.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 */ GlobalSidebar)\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_image__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/image */ \"(ssr)/./node_modules/next/dist/api/image.js\");\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 next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(ssr)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/utils */ \"(ssr)/./src/lib/utils.ts\");\n/* harmony import */ var _lib_telemetry__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/lib/telemetry */ \"(ssr)/./src/lib/telemetry.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\nconst NAV_GROUPS = [\n {\n title: 'Projects',\n items: [\n {\n label: 'All Projects',\n href: '/projects',\n description: 'Explore recent case studies and releases'\n }\n ]\n },\n {\n title: 'Process',\n items: [\n {\n label: 'Our Approach',\n href: '/process',\n description: 'Understand how we move from concept to delivery'\n }\n ]\n },\n {\n title: 'Studio',\n items: [\n {\n label: 'Inside Biohazard',\n href: '/studio',\n description: 'Learn about our studio and team culture'\n },\n {\n label: 'About',\n href: '/studio/about',\n description: 'Our mission and approach'\n },\n {\n label: 'Our Team',\n href: '/studio/team',\n description: 'Meet the people behind the work',\n highlight: true\n },\n {\n label: 'Values',\n href: '/studio/values',\n description: 'Core principles that guide our work'\n },\n {\n label: 'Crew Directory',\n href: '/crew',\n description: 'Meet the people behind the work'\n },\n {\n label: 'Insights',\n href: '/blog',\n description: 'Read project notes and announcements'\n }\n ]\n },\n {\n title: 'Contact',\n items: [\n {\n label: 'Get in Touch',\n href: '/contact',\n description: 'Start a project or request a consultation'\n },\n {\n label: 'FAQ',\n href: '/faq',\n description: 'Find answers to common questions'\n }\n ]\n }\n];\nfunction isActive(pathname, href) {\n if (!pathname) return false;\n if (href === '/') return pathname === '/';\n return pathname === href || pathname.startsWith(`${href}/`);\n}\nfunction GlobalSidebar() {\n const pathname = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.usePathname)();\n if (pathname?.startsWith('/admin')) {\n return null;\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n \"aria-label\": \"Primary\",\n className: \"bg-background/90 backdrop-blur-sm text-sm text-muted-foreground md:fixed md:inset-y-0 md:left-0 md:w-[256px]\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col md:h-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-3 px-5 py-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)((next_link__WEBPACK_IMPORTED_MODULE_2___default()), {\n href: \"/\",\n className: \"inline-flex items-center gap-3 focus-visible:outline focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-accent/50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"relative inline-flex size-9 items-center justify-center overflow-hidden rounded-lg bg-gradient-to-br from-accent/80 via-accent to-secondary\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_image__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n src: \"/images/favicon-32x32.png\",\n alt: \"Biohazard VFX Logomark\",\n width: 32,\n height: 32,\n className: \"h-6 w-6 object-contain\",\n priority: true\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 121,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 120,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-bold tracking-wider text-foreground text-sm\",\n children: \"Biohazard VFX\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 131,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-muted-foreground\",\n children: \"Visual Research Studio\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 134,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 130,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 116,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 115,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"nav\", {\n className: \"flex-1 overflow-y-auto px-3 py-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-6\",\n children: NAV_GROUPS.map((group)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"li\", {\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"font-mono text-[11px] tracking-widest uppercase text-muted-foreground\",\n children: `└ ${group.title.toUpperCase()}`\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 145,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"mt-2.5 space-y-2.5\",\n children: group.items.map((item, idx)=>{\n const active = isActive(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_2___default()), {\n href: item.href,\n onClick: ()=>(0,_lib_telemetry__WEBPACK_IMPORTED_MODULE_5__.recordNavigation)(item.href, pathname),\n \"aria-current\": active ? 'page' : undefined,\n \"data-active\": active ? 'true' : undefined,\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_4__.cn)('group block pl-6 py-1.5 text-sm text-muted-foreground hover:text-accent transition-colors'),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"inline-flex items-baseline gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-mono text-xs text-muted-foreground group-hover:text-accent transition-colors\",\n children: idx === group.items.length - 1 ? '└' : '├'\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 161,\n columnNumber: 29\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_4__.cn)(item.highlight ? 'text-accent font-semibold' : active ? 'text-foreground font-semibold' : ''),\n children: item.label.toUpperCase()\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 164,\n columnNumber: 29\n }, this),\n typeof item.count === 'number' ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"sup\", {\n className: \"ml-1 text-[10px] text-accent\",\n children: item.count\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 176,\n columnNumber: 31\n }, this) : null\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 160,\n columnNumber: 27\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 151,\n columnNumber: 25\n }, this)\n }, item.href, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 150,\n columnNumber: 23\n }, this);\n })\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 146,\n columnNumber: 17\n }, this)\n ]\n }, group.title, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 144,\n columnNumber: 15\n }, this))\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 142,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 141,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"px-5 py-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-muted-foreground\",\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: \"hover:text-accent\",\n children: \"LEGAL\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 193,\n columnNumber: 13\n }, this),\n /*#__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/GlobalSidebar.tsx\",\n lineNumber: 196,\n columnNumber: 13\n }, this),\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: \"hover:text-accent\",\n children: \"SOCIAL\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 197,\n columnNumber: 13\n }, this),\n /*#__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/GlobalSidebar.tsx\",\n lineNumber: 205,\n columnNumber: 13\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: \"hover:text-accent\",\n children: \"SUPPORT\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 206,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 192,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-[11px] text-muted-foreground\",\n children: \"Shortcuts: ⌘/Ctrl + K\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 210,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 191,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 114,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/GlobalSidebar.tsx\",\n lineNumber: 110,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9HbG9iYWxTaWRlYmFyLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBRThCO0FBQ0Y7QUFDaUI7QUFDYjtBQUNrQjtBQWVsRCxNQUFNSyxhQUF5QjtJQUM3QjtRQUNFQyxPQUFPO1FBQ1BDLE9BQU87WUFDTDtnQkFDRUMsT0FBTztnQkFDUEMsTUFBTTtnQkFDTkMsYUFBYTtZQUNmO1NBQ0Q7SUFDSDtJQUNBO1FBQ0VKLE9BQU87UUFDUEMsT0FBTztZQUNMO2dCQUNFQyxPQUFPO2dCQUNQQyxNQUFNO2dCQUNOQyxhQUFhO1lBQ2Y7U0FDRDtJQUNIO0lBQ0E7UUFDRUosT0FBTztRQUNQQyxPQUFPO1lBQ0w7Z0JBQ0VDLE9BQU87Z0JBQ1BDLE1BQU07Z0JBQ05DLGFBQWE7WUFDZjtZQUNBO2dCQUNFRixPQUFPO2dCQUNQQyxNQUFNO2dCQUNOQyxhQUFhO1lBQ2Y7WUFDQTtnQkFDRUYsT0FBTztnQkFDUEMsTUFBTTtnQkFDTkMsYUFBYTtnQkFDYkMsV0FBVztZQUNiO1lBQ0E7Z0JBQ0VILE9BQU87Z0JBQ1BDLE1BQU07Z0JBQ05DLGFBQWE7WUFDZjtZQUNBO2dCQUNFRixPQUFPO2dCQUNQQyxNQUFNO2dCQUNOQyxhQUFhO1lBQ2Y7WUFDQTtnQkFDRUYsT0FBTztnQkFDUEMsTUFBTTtnQkFDTkMsYUFBYTtZQUNmO1NBQ0Q7SUFDSDtJQUNBO1FBQ0VKLE9BQU87UUFDUEMsT0FBTztZQUNMO2dCQUNFQyxPQUFPO2dCQUNQQyxNQUFNO2dCQUNOQyxhQUFhO1lBQ2Y7WUFDQTtnQkFDRUYsT0FBTztnQkFDUEMsTUFBTTtnQkFDTkMsYUFBYTtZQUNmO1NBQ0Q7SUFDSDtDQUNEO0FBRUQsU0FBU0UsU0FBU0MsUUFBdUIsRUFBRUosSUFBWTtJQUNyRCxJQUFJLENBQUNJLFVBQVUsT0FBTztJQUN0QixJQUFJSixTQUFTLEtBQUssT0FBT0ksYUFBYTtJQUN0QyxPQUFPQSxhQUFhSixRQUFRSSxTQUFTQyxVQUFVLENBQUMsR0FBR0wsS0FBSyxDQUFDLENBQUM7QUFDNUQ7QUFFZSxTQUFTTTtJQUN0QixNQUFNRixXQUFXWCw0REFBV0E7SUFFNUIsSUFBSVcsVUFBVUMsV0FBVyxXQUFXO1FBQ2xDLE9BQU87SUFDVDtJQUVBLHFCQUNFLDhEQUFDRTtRQUNDQyxjQUFXO1FBQ1hDLFdBQVU7a0JBRVYsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUNiLDhEQUFDQztvQkFBSUQsV0FBVTs4QkFDYiw0RUFBQ2pCLGtEQUFJQTt3QkFDSFEsTUFBSzt3QkFDTFMsV0FBVTs7MENBRVYsOERBQUNFO2dDQUFLRixXQUFVOzBDQUNkLDRFQUFDbEIsa0RBQUtBO29DQUNKcUIsS0FBSTtvQ0FDSkMsS0FBSTtvQ0FDSkMsT0FBTztvQ0FDUEMsUUFBUTtvQ0FDUk4sV0FBVTtvQ0FDVk8sUUFBUTs7Ozs7Ozs7Ozs7MENBR1osOERBQUNMO2dDQUFLRixXQUFVOztrREFDZCw4REFBQ0U7d0NBQUtGLFdBQVU7a0RBQW1EOzs7Ozs7a0RBR25FLDhEQUFDRTt3Q0FBS0YsV0FBVTtrREFBZ0M7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQU90RCw4REFBQ1E7b0JBQUlSLFdBQVU7OEJBQ2IsNEVBQUNTO3dCQUFHVCxXQUFVO2tDQUNYYixXQUFXdUIsR0FBRyxDQUFDLENBQUNDLHNCQUNmLDhEQUFDQzs7a0RBQ0MsOERBQUNDO3dDQUFHYixXQUFVO2tEQUF5RSxDQUFDLEVBQUUsRUFBRVcsTUFBTXZCLEtBQUssQ0FBQzBCLFdBQVcsSUFBSTs7Ozs7O2tEQUN2SCw4REFBQ0w7d0NBQUdULFdBQVU7a0RBQ1hXLE1BQU10QixLQUFLLENBQUNxQixHQUFHLENBQUMsQ0FBQ0ssTUFBTUM7NENBQ3RCLE1BQU1DLFNBQVN2QixTQUFTQyxVQUFVb0IsS0FBS3hCLElBQUk7NENBQzNDLHFCQUNFLDhEQUFDcUI7MERBQ0MsNEVBQUM3QixrREFBSUE7b0RBQ0hRLE1BQU13QixLQUFLeEIsSUFBSTtvREFDZjJCLFNBQVMsSUFBTWhDLGdFQUFnQkEsQ0FBQzZCLEtBQUt4QixJQUFJLEVBQUVJO29EQUMzQ3dCLGdCQUFjRixTQUFTLFNBQVNHO29EQUNoQ0MsZUFBYUosU0FBUyxTQUFTRztvREFDL0JwQixXQUFXZiw4Q0FBRUEsQ0FDWDs4REFHRiw0RUFBQ2lCO3dEQUFLRixXQUFVOzswRUFDZCw4REFBQ0U7Z0VBQUtGLFdBQVU7MEVBQ2JnQixRQUFRTCxNQUFNdEIsS0FBSyxDQUFDaUMsTUFBTSxHQUFHLElBQUksTUFBTTs7Ozs7OzBFQUUxQyw4REFBQ3BCO2dFQUNDRixXQUFXZiw4Q0FBRUEsQ0FDWDhCLEtBQUt0QixTQUFTLEdBQ1YsOEJBQ0F3QixTQUNBLGtDQUNBOzBFQUdMRixLQUFLekIsS0FBSyxDQUFDd0IsV0FBVzs7Ozs7OzREQUV4QixPQUFPQyxLQUFLUSxLQUFLLEtBQUsseUJBQ3JCLDhEQUFDQztnRUFBSXhCLFdBQVU7MEVBQ1plLEtBQUtRLEtBQUs7Ozs7O3VFQUVYOzs7Ozs7Ozs7Ozs7K0NBN0JEUixLQUFLeEIsSUFBSTs7Ozs7d0NBa0N0Qjs7Ozs7OzsrQkF4Q0tvQixNQUFNdkIsS0FBSzs7Ozs7Ozs7Ozs7Ozs7OzhCQStDMUIsOERBQUNhO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ0M7NEJBQUlELFdBQVU7OzhDQUNiLDhEQUFDakIsa0RBQUlBO29DQUFDUSxNQUFLO29DQUFXUyxXQUFVOzhDQUFvQjs7Ozs7OzhDQUdwRCw4REFBQ0U7b0NBQUtGLFdBQVU7OENBQU87Ozs7Ozs4Q0FDdkIsOERBQUN5QjtvQ0FDQ2xDLE1BQUs7b0NBQ0xtQyxRQUFPO29DQUNQQyxLQUFJO29DQUNKM0IsV0FBVTs4Q0FDWDs7Ozs7OzhDQUdELDhEQUFDRTtvQ0FBS0YsV0FBVTs4Q0FBTzs7Ozs7OzhDQUN2Qiw4REFBQ2pCLGtEQUFJQTtvQ0FBQ1EsTUFBSztvQ0FBV1MsV0FBVTs4Q0FBb0I7Ozs7Ozs7Ozs7OztzQ0FJdEQsOERBQUM0Qjs0QkFBRTVCLFdBQVU7c0NBQXlDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQU9oRSIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2NvbXBvbmVudHMvR2xvYmFsU2lkZWJhci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCBJbWFnZSBmcm9tICduZXh0L2ltYWdlJ1xuaW1wb3J0IExpbmsgZnJvbSAnbmV4dC9saW5rJ1xuaW1wb3J0IHsgdXNlUGF0aG5hbWUgfSBmcm9tICduZXh0L25hdmlnYXRpb24nXG5pbXBvcnQgeyBjbiB9IGZyb20gJ0AvbGliL3V0aWxzJ1xuaW1wb3J0IHsgcmVjb3JkTmF2aWdhdGlvbiB9IGZyb20gJ0AvbGliL3RlbGVtZXRyeSdcblxudHlwZSBOYXZJdGVtID0ge1xuICBsYWJlbDogc3RyaW5nXG4gIGhyZWY6IHN0cmluZ1xuICBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICBjb3VudD86IG51bWJlclxuICBoaWdobGlnaHQ/OiBib29sZWFuXG59XG5cbnR5cGUgTmF2R3JvdXAgPSB7XG4gIHRpdGxlOiBzdHJpbmdcbiAgaXRlbXM6IE5hdkl0ZW1bXVxufVxuXG5jb25zdCBOQVZfR1JPVVBTOiBOYXZHcm91cFtdID0gW1xuICB7XG4gICAgdGl0bGU6ICdQcm9qZWN0cycsXG4gICAgaXRlbXM6IFtcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdBbGwgUHJvamVjdHMnLFxuICAgICAgICBocmVmOiAnL3Byb2plY3RzJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdFeHBsb3JlIHJlY2VudCBjYXNlIHN0dWRpZXMgYW5kIHJlbGVhc2VzJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnUHJvY2VzcycsXG4gICAgaXRlbXM6IFtcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdPdXIgQXBwcm9hY2gnLFxuICAgICAgICBocmVmOiAnL3Byb2Nlc3MnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1VuZGVyc3RhbmQgaG93IHdlIG1vdmUgZnJvbSBjb25jZXB0IHRvIGRlbGl2ZXJ5JyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnU3R1ZGlvJyxcbiAgICBpdGVtczogW1xuICAgICAge1xuICAgICAgICBsYWJlbDogJ0luc2lkZSBCaW9oYXphcmQnLFxuICAgICAgICBocmVmOiAnL3N0dWRpbycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTGVhcm4gYWJvdXQgb3VyIHN0dWRpbyBhbmQgdGVhbSBjdWx0dXJlJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAnQWJvdXQnLFxuICAgICAgICBocmVmOiAnL3N0dWRpby9hYm91dCcsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnT3VyIG1pc3Npb24gYW5kIGFwcHJvYWNoJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAnT3VyIFRlYW0nLFxuICAgICAgICBocmVmOiAnL3N0dWRpby90ZWFtJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdNZWV0IHRoZSBwZW9wbGUgYmVoaW5kIHRoZSB3b3JrJyxcbiAgICAgICAgaGlnaGxpZ2h0OiB0cnVlLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdWYWx1ZXMnLFxuICAgICAgICBocmVmOiAnL3N0dWRpby92YWx1ZXMnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0NvcmUgcHJpbmNpcGxlcyB0aGF0IGd1aWRlIG91ciB3b3JrJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAnQ3JldyBEaXJlY3RvcnknLFxuICAgICAgICBocmVmOiAnL2NyZXcnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ01lZXQgdGhlIHBlb3BsZSBiZWhpbmQgdGhlIHdvcmsnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdJbnNpZ2h0cycsXG4gICAgICAgIGhyZWY6ICcvYmxvZycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUmVhZCBwcm9qZWN0IG5vdGVzIGFuZCBhbm5vdW5jZW1lbnRzJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbiAge1xuICAgIHRpdGxlOiAnQ29udGFjdCcsXG4gICAgaXRlbXM6IFtcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdHZXQgaW4gVG91Y2gnLFxuICAgICAgICBocmVmOiAnL2NvbnRhY3QnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0IGEgcHJvamVjdCBvciByZXF1ZXN0IGEgY29uc3VsdGF0aW9uJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGxhYmVsOiAnRkFRJyxcbiAgICAgICAgaHJlZjogJy9mYXEnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0ZpbmQgYW5zd2VycyB0byBjb21tb24gcXVlc3Rpb25zJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfSxcbl1cblxuZnVuY3Rpb24gaXNBY3RpdmUocGF0aG5hbWU6IHN0cmluZyB8IG51bGwsIGhyZWY6IHN0cmluZykge1xuICBpZiAoIXBhdGhuYW1lKSByZXR1cm4gZmFsc2VcbiAgaWYgKGhyZWYgPT09ICcvJykgcmV0dXJuIHBhdGhuYW1lID09PSAnLydcbiAgcmV0dXJuIHBhdGhuYW1lID09PSBocmVmIHx8IHBhdGhuYW1lLnN0YXJ0c1dpdGgoYCR7aHJlZn0vYClcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gR2xvYmFsU2lkZWJhcigpIHtcbiAgY29uc3QgcGF0aG5hbWUgPSB1c2VQYXRobmFtZSgpXG5cbiAgaWYgKHBhdGhuYW1lPy5zdGFydHNXaXRoKCcvYWRtaW4nKSkge1xuICAgIHJldHVybiBudWxsXG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxhc2lkZVxuICAgICAgYXJpYS1sYWJlbD1cIlByaW1hcnlcIlxuICAgICAgY2xhc3NOYW1lPVwiYmctYmFja2dyb3VuZC85MCBiYWNrZHJvcC1ibHVyLXNtIHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIG1kOmZpeGVkIG1kOmluc2V0LXktMCBtZDpsZWZ0LTAgbWQ6dy1bMjU2cHhdXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2wgbWQ6aC1mdWxsXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcHgtNSBweS02XCI+XG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIGhyZWY9XCIvXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyBmb2N1cy12aXNpYmxlOm91dGxpbmUgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLTIgZm9jdXMtdmlzaWJsZTpvdXRsaW5lLW9mZnNldC0yIGZvY3VzLXZpc2libGU6b3V0bGluZS1hY2NlbnQvNTBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInJlbGF0aXZlIGlubGluZS1mbGV4IHNpemUtOSBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQtbGcgYmctZ3JhZGllbnQtdG8tYnIgZnJvbS1hY2NlbnQvODAgdmlhLWFjY2VudCB0by1zZWNvbmRhcnlcIj5cbiAgICAgICAgICAgICAgPEltYWdlXG4gICAgICAgICAgICAgICAgc3JjPVwiL2ltYWdlcy9mYXZpY29uLTMyeDMyLnBuZ1wiXG4gICAgICAgICAgICAgICAgYWx0PVwiQmlvaGF6YXJkIFZGWCBMb2dvbWFya1wiXG4gICAgICAgICAgICAgICAgd2lkdGg9ezMyfVxuICAgICAgICAgICAgICAgIGhlaWdodD17MzJ9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaC02IHctNiBvYmplY3QtY29udGFpblwiXG4gICAgICAgICAgICAgICAgcHJpb3JpdHlcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1ib2xkIHRyYWNraW5nLXdpZGVyIHRleHQtZm9yZWdyb3VuZCB0ZXh0LXNtXCI+XG4gICAgICAgICAgICAgICAgQmlvaGF6YXJkIFZGWFxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgICAgICAgICAgVmlzdWFsIFJlc2VhcmNoIFN0dWRpb1xuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8bmF2IGNsYXNzTmFtZT1cImZsZXgtMSBvdmVyZmxvdy15LWF1dG8gcHgtMyBweS02XCI+XG4gICAgICAgICAgPHVsIGNsYXNzTmFtZT1cInNwYWNlLXktNlwiPlxuICAgICAgICAgICAge05BVl9HUk9VUFMubWFwKChncm91cCkgPT4gKFxuICAgICAgICAgICAgICA8bGkga2V5PXtncm91cC50aXRsZX0+XG4gICAgICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cImZvbnQtbW9ubyB0ZXh0LVsxMXB4XSB0cmFja2luZy13aWRlc3QgdXBwZXJjYXNlIHRleHQtbXV0ZWQtZm9yZWdyb3VuZFwiPntg4pSUICR7Z3JvdXAudGl0bGUudG9VcHBlckNhc2UoKX1gfTwvaDI+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzTmFtZT1cIm10LTIuNSBzcGFjZS15LTIuNVwiPlxuICAgICAgICAgICAgICAgICAge2dyb3VwLml0ZW1zLm1hcCgoaXRlbSwgaWR4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGFjdGl2ZSA9IGlzQWN0aXZlKHBhdGhuYW1lLCBpdGVtLmhyZWYpXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17aXRlbS5ocmVmfT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhyZWY9e2l0ZW0uaHJlZn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gcmVjb3JkTmF2aWdhdGlvbihpdGVtLmhyZWYsIHBhdGhuYW1lKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jdXJyZW50PXthY3RpdmUgPyAncGFnZScgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGRhdGEtYWN0aXZlPXthY3RpdmUgPyAndHJ1ZScgOiB1bmRlZmluZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2dyb3VwIGJsb2NrIHBsLTYgcHktMS41IHRleHQtc20gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kIGhvdmVyOnRleHQtYWNjZW50IHRyYW5zaXRpb24tY29sb3JzJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJpbmxpbmUtZmxleCBpdGVtcy1iYXNlbGluZSBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtbW9ubyB0ZXh0LXhzIHRleHQtbXV0ZWQtZm9yZWdyb3VuZCBncm91cC1ob3Zlcjp0ZXh0LWFjY2VudCB0cmFuc2l0aW9uLWNvbG9yc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2lkeCA9PT0gZ3JvdXAuaXRlbXMubGVuZ3RoIC0gMSA/ICfilJQnIDogJ+KUnCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtLmhpZ2hsaWdodFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gJ3RleHQtYWNjZW50IGZvbnQtc2VtaWJvbGQnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiBhY3RpdmVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/ICd0ZXh0LWZvcmVncm91bmQgZm9udC1zZW1pYm9sZCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtpdGVtLmxhYmVsLnRvVXBwZXJDYXNlKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt0eXBlb2YgaXRlbS5jb3VudCA9PT0gJ251bWJlcicgPyAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3VwIGNsYXNzTmFtZT1cIm1sLTEgdGV4dC1bMTBweF0gdGV4dC1hY2NlbnRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge2l0ZW0uY291bnR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N1cD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICApIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvdWw+XG4gICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICApKX1cbiAgICAgICAgICA8L3VsPlxuICAgICAgICA8L25hdj5cblxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInB4LTUgcHktNFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LW11dGVkLWZvcmVncm91bmRcIj5cbiAgICAgICAgICAgIDxMaW5rIGhyZWY9XCIvcHJpdmFjeVwiIGNsYXNzTmFtZT1cImhvdmVyOnRleHQtYWNjZW50XCI+XG4gICAgICAgICAgICAgIExFR0FMXG4gICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJteC0yXCI+Lzwvc3Bhbj5cbiAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgIGhyZWY9XCJodHRwczovL3d3dy5pbnN0YWdyYW0uY29tL2Jpb2hhemFyZHZmeC9cIlxuICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBTT0NJQUxcbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cIm14LTJcIj4vPC9zcGFuPlxuICAgICAgICAgICAgPExpbmsgaHJlZj1cIi9jb250YWN0XCIgY2xhc3NOYW1lPVwiaG92ZXI6dGV4dC1hY2NlbnRcIj5cbiAgICAgICAgICAgICAgU1VQUE9SVFxuICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm10LTIgdGV4dC1bMTFweF0gdGV4dC1tdXRlZC1mb3JlZ3JvdW5kXCI+XG4gICAgICAgICAgICBTaG9ydGN1dHM6IOKMmC9DdHJsICsgS1xuICAgICAgICAgIDwvcD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2FzaWRlPlxuICApXG59XG4iXSwibmFtZXMiOlsiSW1hZ2UiLCJMaW5rIiwidXNlUGF0aG5hbWUiLCJjbiIsInJlY29yZE5hdmlnYXRpb24iLCJOQVZfR1JPVVBTIiwidGl0bGUiLCJpdGVtcyIsImxhYmVsIiwiaHJlZiIsImRlc2NyaXB0aW9uIiwiaGlnaGxpZ2h0IiwiaXNBY3RpdmUiLCJwYXRobmFtZSIsInN0YXJ0c1dpdGgiLCJHbG9iYWxTaWRlYmFyIiwiYXNpZGUiLCJhcmlhLWxhYmVsIiwiY2xhc3NOYW1lIiwiZGl2Iiwic3BhbiIsInNyYyIsImFsdCIsIndpZHRoIiwiaGVpZ2h0IiwicHJpb3JpdHkiLCJuYXYiLCJ1bCIsIm1hcCIsImdyb3VwIiwibGkiLCJoMiIsInRvVXBwZXJDYXNlIiwiaXRlbSIsImlkeCIsImFjdGl2ZSIsIm9uQ2xpY2siLCJhcmlhLWN1cnJlbnQiLCJ1bmRlZmluZWQiLCJkYXRhLWFjdGl2ZSIsImxlbmd0aCIsImNvdW50Iiwic3VwIiwiYSIsInRhcmdldCIsInJlbCIsInAiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/GlobalSidebar.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/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/TrackedLinkButton.tsx":
/*!**********************************************!*\
!*** ./src/components/TrackedLinkButton.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 */ TrackedLinkButton: () => (/* binding */ TrackedLinkButton)\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_Buttons__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! @/components/Buttons */ \"(ssr)/./src/components/Buttons.tsx\");\n/* harmony import */ var _lib_telemetry__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/lib/telemetry */ \"(ssr)/./src/lib/telemetry.ts\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(ssr)/./node_modules/next/dist/api/navigation.js\");\n/* __next_internal_client_entry_do_not_use__ TrackedLinkButton auto */ \n\n\n\nfunction TrackedLinkButton({ href, variant, actionName, onClick, ...props }) {\n const pathname = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.usePathname)();\n const handleClick = (e)=>{\n // Record the CTA click in Sentry\n (0,_lib_telemetry__WEBPACK_IMPORTED_MODULE_2__.recordCTAClick)(actionName || href, pathname, `LinkButton ${variant || 'primary'} to ${href}`);\n // Call the original onClick if provided\n if (onClick) {\n onClick(e);\n }\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_Buttons__WEBPACK_IMPORTED_MODULE_1__.LinkButton, {\n href: href,\n variant: variant,\n onClick: handleClick,\n ...props\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/TrackedLinkButton.tsx\",\n lineNumber: 36,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9UcmFja2VkTGlua0J1dHRvbi50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUVrRDtBQUNEO0FBQ0g7QUFPdkMsU0FBU0csa0JBQWtCLEVBQ2hDQyxJQUFJLEVBQ0pDLE9BQU8sRUFDUEMsVUFBVSxFQUNWQyxPQUFPLEVBQ1AsR0FBR0MsT0FDb0I7SUFDdkIsTUFBTUMsV0FBV1AsNERBQVdBO0lBRTVCLE1BQU1RLGNBQWMsQ0FBQ0M7UUFDbkIsaUNBQWlDO1FBQ2pDViw4REFBY0EsQ0FDWkssY0FBY0YsTUFDZEssVUFDQSxDQUFDLFdBQVcsRUFBRUosV0FBVyxVQUFVLElBQUksRUFBRUQsTUFBTTtRQUdqRCx3Q0FBd0M7UUFDeEMsSUFBSUcsU0FBUztZQUNYQSxRQUFRSTtRQUNWO0lBQ0Y7SUFFQSxxQkFDRSw4REFBQ1gsMkRBQVVBO1FBQ1RJLE1BQU1BO1FBQ05DLFNBQVNBO1FBQ1RFLFNBQVNHO1FBQ1IsR0FBR0YsS0FBSzs7Ozs7O0FBR2YiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL1RyYWNrZWRMaW5rQnV0dG9uLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCc7XG5cbmltcG9ydCB7IExpbmtCdXR0b24gfSBmcm9tICdAL2NvbXBvbmVudHMvQnV0dG9ucyc7XG5pbXBvcnQgeyByZWNvcmRDVEFDbGljayB9IGZyb20gJ0AvbGliL3RlbGVtZXRyeSc7XG5pbXBvcnQgeyB1c2VQYXRobmFtZSB9IGZyb20gJ25leHQvbmF2aWdhdGlvbic7XG5pbXBvcnQgeyBDb21wb25lbnRQcm9wcyB9IGZyb20gJ3JlYWN0JztcblxudHlwZSBUcmFja2VkTGlua0J1dHRvblByb3BzID0gQ29tcG9uZW50UHJvcHM8dHlwZW9mIExpbmtCdXR0b24+ICYge1xuICBhY3Rpb25OYW1lPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IGZ1bmN0aW9uIFRyYWNrZWRMaW5rQnV0dG9uKHsgXG4gIGhyZWYsIFxuICB2YXJpYW50LCBcbiAgYWN0aW9uTmFtZSxcbiAgb25DbGljayxcbiAgLi4ucHJvcHMgXG59OiBUcmFja2VkTGlua0J1dHRvblByb3BzKSB7XG4gIGNvbnN0IHBhdGhuYW1lID0gdXNlUGF0aG5hbWUoKTtcblxuICBjb25zdCBoYW5kbGVDbGljayA9IChlOiBSZWFjdC5Nb3VzZUV2ZW50PEhUTUxBbmNob3JFbGVtZW50PikgPT4ge1xuICAgIC8vIFJlY29yZCB0aGUgQ1RBIGNsaWNrIGluIFNlbnRyeVxuICAgIHJlY29yZENUQUNsaWNrKFxuICAgICAgYWN0aW9uTmFtZSB8fCBocmVmLCBcbiAgICAgIHBhdGhuYW1lLCBcbiAgICAgIGBMaW5rQnV0dG9uICR7dmFyaWFudCB8fCAncHJpbWFyeSd9IHRvICR7aHJlZn1gXG4gICAgKTtcblxuICAgIC8vIENhbGwgdGhlIG9yaWdpbmFsIG9uQ2xpY2sgaWYgcHJvdmlkZWRcbiAgICBpZiAob25DbGljaykge1xuICAgICAgb25DbGljayhlKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8TGlua0J1dHRvblxuICAgICAgaHJlZj17aHJlZn1cbiAgICAgIHZhcmlhbnQ9e3ZhcmlhbnR9XG4gICAgICBvbkNsaWNrPXtoYW5kbGVDbGlja31cbiAgICAgIHsuLi5wcm9wc31cbiAgICAvPlxuICApO1xufSJdLCJuYW1lcyI6WyJMaW5rQnV0dG9uIiwicmVjb3JkQ1RBQ2xpY2siLCJ1c2VQYXRobmFtZSIsIlRyYWNrZWRMaW5rQnV0dG9uIiwiaHJlZiIsInZhcmlhbnQiLCJhY3Rpb25OYW1lIiwib25DbGljayIsInByb3BzIiwicGF0aG5hbWUiLCJoYW5kbGVDbGljayIsImUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/TrackedLinkButton.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/media/MediaPlayer.tsx":
/*!**********************************************!*\
!*** ./src/components/media/MediaPlayer.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 */ MediaPlayer)\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 _components_ui_ImageWithFallback__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/ui/ImageWithFallback */ \"(ssr)/./src/components/ui/ImageWithFallback.tsx\");\n/* harmony import */ var _components_motion_useAutoplayVideos__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/motion/useAutoplayVideos */ \"(ssr)/./src/components/motion/useAutoplayVideos.ts\");\n/* harmony import */ var _lib_utils__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/lib/utils */ \"(ssr)/./src/lib/utils.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\nfunction escapeHeading(value) {\n return value.replace(/['\"<>]/g, '');\n}\nfunction MediaPlayer({ video, embed, poster, className, title, loop = true, controls = true }) {\n (0,_components_motion_useAutoplayVideos__WEBPACK_IMPORTED_MODULE_3__.useAutoplayVideos)();\n const safeTitle = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)({\n \"MediaPlayer.useMemo[safeTitle]\": ()=>title?.trim() || 'Media player'\n }[\"MediaPlayer.useMemo[safeTitle]\"], [\n title\n ]);\n const aspectClasses = 'relative aspect-video overflow-hidden rounded-xl bg-surface-800';\n if (video) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_4__.cn)(aspectClasses, className),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"video\", {\n \"data-autoplay\": true,\n muted: true,\n playsInline: true,\n controls: controls,\n loop: loop,\n preload: \"metadata\",\n poster: poster || undefined,\n className: \"h-full w-full object-cover\",\n \"aria-label\": safeTitle,\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"source\", {\n src: video\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/media/MediaPlayer.tsx\",\n lineNumber: 50,\n columnNumber: 11\n }, this),\n \"Your browser does not support the video tag.\"\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/media/MediaPlayer.tsx\",\n lineNumber: 39,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pointer-events-none absolute inset-0 bg-gradient-to-t from-black/40 via-transparent to-black/20\",\n \"aria-hidden\": true\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/media/MediaPlayer.tsx\",\n lineNumber: 53,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/media/MediaPlayer.tsx\",\n lineNumber: 38,\n columnNumber: 7\n }, this);\n }\n if (embed) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_4__.cn)(aspectClasses, className),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"iframe\", {\n src: embed,\n title: safeTitle,\n loading: \"lazy\",\n allow: \"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\",\n allowFullScreen: true,\n referrerPolicy: \"strict-origin-when-cross-origin\",\n sandbox: \"allow-same-origin allow-scripts allow-popups allow-presentation\",\n className: \"h-full w-full\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/media/MediaPlayer.tsx\",\n lineNumber: 64,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/media/MediaPlayer.tsx\",\n lineNumber: 63,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: (0,_lib_utils__WEBPACK_IMPORTED_MODULE_4__.cn)(aspectClasses, className),\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_ui_ImageWithFallback__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n src: poster || '/images/projects-header.jpg',\n alt: escapeHeading(safeTitle),\n fill: true,\n className: \"object-cover\",\n placeholderText: \"Project Media\"\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/media/MediaPlayer.tsx\",\n lineNumber: 80,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"pointer-events-none absolute inset-0 bg-gradient-to-t from-black/40 via-transparent to-black/20\",\n \"aria-hidden\": true\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/media/MediaPlayer.tsx\",\n lineNumber: 87,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/media/MediaPlayer.tsx\",\n lineNumber: 79,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9tZWRpYS9NZWRpYVBsYXllci50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FBRStCO0FBQ2tDO0FBQ1E7QUFDekM7QUFZaEMsU0FBU0ksY0FBY0MsS0FBYTtJQUNsQyxPQUFPQSxNQUFNQyxPQUFPLENBQUMsV0FBVztBQUNsQztBQUVlLFNBQVNDLFlBQVksRUFDbENDLEtBQUssRUFDTEMsS0FBSyxFQUNMQyxNQUFNLEVBQ05DLFNBQVMsRUFDVEMsS0FBSyxFQUNMQyxPQUFPLElBQUksRUFDWEMsV0FBVyxJQUFJLEVBQ0U7SUFDakJaLHVGQUFpQkE7SUFFakIsTUFBTWEsWUFBWWYsOENBQU9BOzBDQUFDLElBQU1ZLE9BQU9JLFVBQVU7eUNBQWdCO1FBQUNKO0tBQU07SUFDeEUsTUFBTUssZ0JBQWdCO0lBRXRCLElBQUlULE9BQU87UUFDVCxxQkFDRSw4REFBQ1U7WUFBSVAsV0FBV1IsOENBQUVBLENBQUNjLGVBQWVOOzs4QkFDaEMsOERBQUNIO29CQUNDVyxlQUFhO29CQUNiQyxLQUFLO29CQUNMQyxXQUFXO29CQUNYUCxVQUFVQTtvQkFDVkQsTUFBTUE7b0JBQ05TLFNBQVE7b0JBQ1JaLFFBQVFBLFVBQVVhO29CQUNsQlosV0FBVTtvQkFDVmEsY0FBWVQ7O3NDQUVaLDhEQUFDVTs0QkFBT0MsS0FBS2xCOzs7Ozs7d0JBQVM7Ozs7Ozs7OEJBR3hCLDhEQUFDVTtvQkFDQ1AsV0FBVTtvQkFDVmdCLGFBQVc7Ozs7Ozs7Ozs7OztJQUluQjtJQUVBLElBQUlsQixPQUFPO1FBQ1QscUJBQ0UsOERBQUNTO1lBQUlQLFdBQVdSLDhDQUFFQSxDQUFDYyxlQUFlTjtzQkFDaEMsNEVBQUNpQjtnQkFDQ0YsS0FBS2pCO2dCQUNMRyxPQUFPRztnQkFDUGMsU0FBUTtnQkFDUkMsT0FBTTtnQkFDTkMsZUFBZTtnQkFDZkMsZ0JBQWU7Z0JBQ2ZDLFNBQVE7Z0JBQ1J0QixXQUFVOzs7Ozs7Ozs7OztJQUlsQjtJQUVBLHFCQUNFLDhEQUFDTztRQUFJUCxXQUFXUiw4Q0FBRUEsQ0FBQ2MsZUFBZU47OzBCQUNoQyw4REFBQ1Ysd0VBQWlCQTtnQkFDaEJ5QixLQUFLaEIsVUFBVTtnQkFDZndCLEtBQUs5QixjQUFjVztnQkFDbkJvQixJQUFJO2dCQUNKeEIsV0FBVTtnQkFDVnlCLGlCQUFnQjs7Ozs7OzBCQUVsQiw4REFBQ2xCO2dCQUNDUCxXQUFVO2dCQUNWZ0IsYUFBVzs7Ozs7Ozs7Ozs7O0FBSW5CIiwic291cmNlcyI6WyIvaG9tZS9OaWNob2xhaS9Eb2N1bWVudHMvRGV2L2Jpb2hhemFyZC12ZngtMi9zcmMvY29tcG9uZW50cy9tZWRpYS9NZWRpYVBsYXllci50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tICdyZWFjdCdcbmltcG9ydCBJbWFnZVdpdGhGYWxsYmFjayBmcm9tICdAL2NvbXBvbmVudHMvdWkvSW1hZ2VXaXRoRmFsbGJhY2snXG5pbXBvcnQgeyB1c2VBdXRvcGxheVZpZGVvcyB9IGZyb20gJ0AvY29tcG9uZW50cy9tb3Rpb24vdXNlQXV0b3BsYXlWaWRlb3MnXG5pbXBvcnQgeyBjbiB9IGZyb20gJ0AvbGliL3V0aWxzJ1xuXG50eXBlIE1lZGlhUGxheWVyUHJvcHMgPSB7XG4gIHZpZGVvPzogc3RyaW5nIHwgbnVsbFxuICBlbWJlZD86IHN0cmluZyB8IG51bGxcbiAgcG9zdGVyPzogc3RyaW5nIHwgbnVsbFxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgdGl0bGU/OiBzdHJpbmdcbiAgbG9vcD86IGJvb2xlYW5cbiAgY29udHJvbHM/OiBib29sZWFuXG59XG5cbmZ1bmN0aW9uIGVzY2FwZUhlYWRpbmcodmFsdWU6IHN0cmluZykge1xuICByZXR1cm4gdmFsdWUucmVwbGFjZSgvWydcIjw+XS9nLCAnJylcbn1cblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gTWVkaWFQbGF5ZXIoe1xuICB2aWRlbyxcbiAgZW1iZWQsXG4gIHBvc3RlcixcbiAgY2xhc3NOYW1lLFxuICB0aXRsZSxcbiAgbG9vcCA9IHRydWUsXG4gIGNvbnRyb2xzID0gdHJ1ZSxcbn06IE1lZGlhUGxheWVyUHJvcHMpIHtcbiAgdXNlQXV0b3BsYXlWaWRlb3MoKVxuXG4gIGNvbnN0IHNhZmVUaXRsZSA9IHVzZU1lbW8oKCkgPT4gdGl0bGU/LnRyaW0oKSB8fCAnTWVkaWEgcGxheWVyJywgW3RpdGxlXSlcbiAgY29uc3QgYXNwZWN0Q2xhc3NlcyA9ICdyZWxhdGl2ZSBhc3BlY3QtdmlkZW8gb3ZlcmZsb3ctaGlkZGVuIHJvdW5kZWQteGwgYmctc3VyZmFjZS04MDAnXG5cbiAgaWYgKHZpZGVvKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxkaXYgY2xhc3NOYW1lPXtjbihhc3BlY3RDbGFzc2VzLCBjbGFzc05hbWUpfT5cbiAgICAgICAgPHZpZGVvXG4gICAgICAgICAgZGF0YS1hdXRvcGxheVxuICAgICAgICAgIG11dGVkXG4gICAgICAgICAgcGxheXNJbmxpbmVcbiAgICAgICAgICBjb250cm9scz17Y29udHJvbHN9XG4gICAgICAgICAgbG9vcD17bG9vcH1cbiAgICAgICAgICBwcmVsb2FkPVwibWV0YWRhdGFcIlxuICAgICAgICAgIHBvc3Rlcj17cG9zdGVyIHx8IHVuZGVmaW5lZH1cbiAgICAgICAgICBjbGFzc05hbWU9XCJoLWZ1bGwgdy1mdWxsIG9iamVjdC1jb3ZlclwiXG4gICAgICAgICAgYXJpYS1sYWJlbD17c2FmZVRpdGxlfVxuICAgICAgICA+XG4gICAgICAgICAgPHNvdXJjZSBzcmM9e3ZpZGVvfSAvPlxuICAgICAgICAgIFlvdXIgYnJvd3NlciBkb2VzIG5vdCBzdXBwb3J0IHRoZSB2aWRlbyB0YWcuXG4gICAgICAgIDwvdmlkZW8+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzc05hbWU9XCJwb2ludGVyLWV2ZW50cy1ub25lIGFic29sdXRlIGluc2V0LTAgYmctZ3JhZGllbnQtdG8tdCBmcm9tLWJsYWNrLzQwIHZpYS10cmFuc3BhcmVudCB0by1ibGFjay8yMFwiXG4gICAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgLz5cbiAgICAgIDwvZGl2PlxuICAgIClcbiAgfVxuXG4gIGlmIChlbWJlZCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT17Y24oYXNwZWN0Q2xhc3NlcywgY2xhc3NOYW1lKX0+XG4gICAgICAgIDxpZnJhbWVcbiAgICAgICAgICBzcmM9e2VtYmVkfVxuICAgICAgICAgIHRpdGxlPXtzYWZlVGl0bGV9XG4gICAgICAgICAgbG9hZGluZz1cImxhenlcIlxuICAgICAgICAgIGFsbG93PVwiYWNjZWxlcm9tZXRlcjsgYXV0b3BsYXk7IGNsaXBib2FyZC13cml0ZTsgZW5jcnlwdGVkLW1lZGlhOyBneXJvc2NvcGU7IHBpY3R1cmUtaW4tcGljdHVyZTsgd2ViLXNoYXJlXCJcbiAgICAgICAgICBhbGxvd0Z1bGxTY3JlZW5cbiAgICAgICAgICByZWZlcnJlclBvbGljeT1cInN0cmljdC1vcmlnaW4td2hlbi1jcm9zcy1vcmlnaW5cIlxuICAgICAgICAgIHNhbmRib3g9XCJhbGxvdy1zYW1lLW9yaWdpbiBhbGxvdy1zY3JpcHRzIGFsbG93LXBvcHVwcyBhbGxvdy1wcmVzZW50YXRpb25cIlxuICAgICAgICAgIGNsYXNzTmFtZT1cImgtZnVsbCB3LWZ1bGxcIlxuICAgICAgICAvPlxuICAgICAgPC9kaXY+XG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT17Y24oYXNwZWN0Q2xhc3NlcywgY2xhc3NOYW1lKX0+XG4gICAgICA8SW1hZ2VXaXRoRmFsbGJhY2tcbiAgICAgICAgc3JjPXtwb3N0ZXIgfHwgJy9pbWFnZXMvcHJvamVjdHMtaGVhZGVyLmpwZyd9XG4gICAgICAgIGFsdD17ZXNjYXBlSGVhZGluZyhzYWZlVGl0bGUpfVxuICAgICAgICBmaWxsXG4gICAgICAgIGNsYXNzTmFtZT1cIm9iamVjdC1jb3ZlclwiXG4gICAgICAgIHBsYWNlaG9sZGVyVGV4dD1cIlByb2plY3QgTWVkaWFcIlxuICAgICAgLz5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3NOYW1lPVwicG9pbnRlci1ldmVudHMtbm9uZSBhYnNvbHV0ZSBpbnNldC0wIGJnLWdyYWRpZW50LXRvLXQgZnJvbS1ibGFjay80MCB2aWEtdHJhbnNwYXJlbnQgdG8tYmxhY2svMjBcIlxuICAgICAgICBhcmlhLWhpZGRlblxuICAgICAgLz5cbiAgICA8L2Rpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbInVzZU1lbW8iLCJJbWFnZVdpdGhGYWxsYmFjayIsInVzZUF1dG9wbGF5VmlkZW9zIiwiY24iLCJlc2NhcGVIZWFkaW5nIiwidmFsdWUiLCJyZXBsYWNlIiwiTWVkaWFQbGF5ZXIiLCJ2aWRlbyIsImVtYmVkIiwicG9zdGVyIiwiY2xhc3NOYW1lIiwidGl0bGUiLCJsb29wIiwiY29udHJvbHMiLCJzYWZlVGl0bGUiLCJ0cmltIiwiYXNwZWN0Q2xhc3NlcyIsImRpdiIsImRhdGEtYXV0b3BsYXkiLCJtdXRlZCIsInBsYXlzSW5saW5lIiwicHJlbG9hZCIsInVuZGVmaW5lZCIsImFyaWEtbGFiZWwiLCJzb3VyY2UiLCJzcmMiLCJhcmlhLWhpZGRlbiIsImlmcmFtZSIsImxvYWRpbmciLCJhbGxvdyIsImFsbG93RnVsbFNjcmVlbiIsInJlZmVycmVyUG9saWN5Iiwic2FuZGJveCIsImFsdCIsImZpbGwiLCJwbGFjZWhvbGRlclRleHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/media/MediaPlayer.tsx\n");
/***/ }),
/***/ "(ssr)/./src/components/motion/ItemReveal.tsx":
/*!**********************************************!*\
!*** ./src/components/motion/ItemReveal.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 */ ItemReveal)\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 framer_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\");\n/* harmony import */ var _variants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./variants */ \"(ssr)/./src/components/motion/variants.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n/**\n * ItemReveal\n * - Simple wrapper for a child element that uses a reveal variant.\n * - Intended to be used inside SectionReveal so it participates in stagger.\n */ function ItemReveal({ children, className, variants = _variants__WEBPACK_IMPORTED_MODULE_1__.fadeInUp }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.div, {\n className: className,\n variants: variants,\n children: children\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/motion/ItemReveal.tsx\",\n lineNumber: 24,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9tb3Rpb24vSXRlbVJldmVhbC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRXFEO0FBRWhCO0FBUXJDOzs7O0NBSUMsR0FDYyxTQUFTRSxXQUFXLEVBQ2pDQyxRQUFRLEVBQ1JDLFNBQVMsRUFDVEMsV0FBV0osK0NBQVEsRUFDYjtJQUNOLHFCQUNFLDhEQUFDRCxpREFBTUEsQ0FBQ00sR0FBRztRQUFDRixXQUFXQTtRQUFXQyxVQUFVQTtrQkFDekNGOzs7Ozs7QUFHUCIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2NvbXBvbmVudHMvbW90aW9uL0l0ZW1SZXZlYWwudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgeyBtb3Rpb24sIHR5cGUgVmFyaWFudHMgfSBmcm9tICdmcmFtZXItbW90aW9uJ1xuaW1wb3J0IHR5cGUgeyBSZWFjdE5vZGUgfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGZhZGVJblVwIH0gZnJvbSAnLi92YXJpYW50cydcblxudHlwZSBQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgdmFyaWFudHM/OiBWYXJpYW50c1xufVxuXG4vKipcbiAqIEl0ZW1SZXZlYWxcbiAqIC0gU2ltcGxlIHdyYXBwZXIgZm9yIGEgY2hpbGQgZWxlbWVudCB0aGF0IHVzZXMgYSByZXZlYWwgdmFyaWFudC5cbiAqIC0gSW50ZW5kZWQgdG8gYmUgdXNlZCBpbnNpZGUgU2VjdGlvblJldmVhbCBzbyBpdCBwYXJ0aWNpcGF0ZXMgaW4gc3RhZ2dlci5cbiAqL1xuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gSXRlbVJldmVhbCh7XG4gIGNoaWxkcmVuLFxuICBjbGFzc05hbWUsXG4gIHZhcmlhbnRzID0gZmFkZUluVXAsXG59OiBQcm9wcykge1xuICByZXR1cm4gKFxuICAgIDxtb3Rpb24uZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lfSB2YXJpYW50cz17dmFyaWFudHN9PlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvbW90aW9uLmRpdj5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIm1vdGlvbiIsImZhZGVJblVwIiwiSXRlbVJldmVhbCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwidmFyaWFudHMiLCJkaXYiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/motion/ItemReveal.tsx\n");
/***/ }),
/***/ "(ssr)/./src/components/motion/SectionReveal.tsx":
/*!*************************************************!*\
!*** ./src/components/motion/SectionReveal.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 */ SectionReveal)\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 framer_motion__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! framer-motion */ \"(ssr)/./node_modules/framer-motion/dist/es/render/components/motion/proxy.mjs\");\n/* harmony import */ var _variants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./variants */ \"(ssr)/./src/components/motion/variants.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n/**\n * SectionReveal\n * - Reveals its children once when it enters the viewport.\n * - Uses variants with staggerChildren to orchestrate item animations.\n * - Keeps native scrolling; no scrolljacking.\n */ function SectionReveal({ children, className, delay = 0, stagger = 0.12, initial = 'hidden', variants }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(framer_motion__WEBPACK_IMPORTED_MODULE_2__.motion.section, {\n className: className,\n variants: variants ?? (0,_variants__WEBPACK_IMPORTED_MODULE_1__.staggerContainer)(delay, stagger),\n initial: initial,\n whileInView: \"show\",\n viewport: {\n once: true,\n amount: 0.15,\n margin: '0px 0px -10% 0px'\n },\n children: children\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/motion/SectionReveal.tsx\",\n lineNumber: 31,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9tb3Rpb24vU2VjdGlvblJldmVhbC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBRXFEO0FBRVI7QUFXN0M7Ozs7O0NBS0MsR0FDYyxTQUFTRSxjQUFjLEVBQ3BDQyxRQUFRLEVBQ1JDLFNBQVMsRUFDVEMsUUFBUSxDQUFDLEVBQ1RDLFVBQVUsSUFBSSxFQUNkQyxVQUFVLFFBQVEsRUFDbEJDLFFBQVEsRUFDRjtJQUNOLHFCQUNFLDhEQUFDUixpREFBTUEsQ0FBQ1MsT0FBTztRQUNiTCxXQUFXQTtRQUNYSSxVQUFVQSxZQUFZUCwyREFBZ0JBLENBQUNJLE9BQU9DO1FBQzlDQyxTQUFTQTtRQUNURyxhQUFZO1FBQ1pDLFVBQVU7WUFBRUMsTUFBTTtZQUFNQyxRQUFRO1lBQU1DLFFBQVE7UUFBbUI7a0JBRWhFWDs7Ozs7O0FBR1AiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL21vdGlvbi9TZWN0aW9uUmV2ZWFsLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHsgbW90aW9uLCB0eXBlIFZhcmlhbnRzIH0gZnJvbSAnZnJhbWVyLW1vdGlvbidcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSAncmVhY3QnXG5pbXBvcnQgeyBzdGFnZ2VyQ29udGFpbmVyIH0gZnJvbSAnLi92YXJpYW50cydcblxudHlwZSBQcm9wcyA9IHtcbiAgY2hpbGRyZW46IFJlYWN0Tm9kZVxuICBjbGFzc05hbWU/OiBzdHJpbmdcbiAgZGVsYXk/OiBudW1iZXJcbiAgc3RhZ2dlcj86IG51bWJlclxuICBpbml0aWFsPzogJ2hpZGRlbicgfCBmYWxzZVxuICB2YXJpYW50cz86IFZhcmlhbnRzXG59XG5cbi8qKlxuICogU2VjdGlvblJldmVhbFxuICogLSBSZXZlYWxzIGl0cyBjaGlsZHJlbiBvbmNlIHdoZW4gaXQgZW50ZXJzIHRoZSB2aWV3cG9ydC5cbiAqIC0gVXNlcyB2YXJpYW50cyB3aXRoIHN0YWdnZXJDaGlsZHJlbiB0byBvcmNoZXN0cmF0ZSBpdGVtIGFuaW1hdGlvbnMuXG4gKiAtIEtlZXBzIG5hdGl2ZSBzY3JvbGxpbmc7IG5vIHNjcm9sbGphY2tpbmcuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFNlY3Rpb25SZXZlYWwoe1xuICBjaGlsZHJlbixcbiAgY2xhc3NOYW1lLFxuICBkZWxheSA9IDAsXG4gIHN0YWdnZXIgPSAwLjEyLFxuICBpbml0aWFsID0gJ2hpZGRlbicsXG4gIHZhcmlhbnRzLFxufTogUHJvcHMpIHtcbiAgcmV0dXJuIChcbiAgICA8bW90aW9uLnNlY3Rpb25cbiAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgdmFyaWFudHM9e3ZhcmlhbnRzID8/IHN0YWdnZXJDb250YWluZXIoZGVsYXksIHN0YWdnZXIpfVxuICAgICAgaW5pdGlhbD17aW5pdGlhbH1cbiAgICAgIHdoaWxlSW5WaWV3PVwic2hvd1wiXG4gICAgICB2aWV3cG9ydD17eyBvbmNlOiB0cnVlLCBhbW91bnQ6IDAuMTUsIG1hcmdpbjogJzBweCAwcHggLTEwJSAwcHgnIH19XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvbW90aW9uLnNlY3Rpb24+XG4gIClcbn1cbiJdLCJuYW1lcyI6WyJtb3Rpb24iLCJzdGFnZ2VyQ29udGFpbmVyIiwiU2VjdGlvblJldmVhbCIsImNoaWxkcmVuIiwiY2xhc3NOYW1lIiwiZGVsYXkiLCJzdGFnZ2VyIiwiaW5pdGlhbCIsInZhcmlhbnRzIiwic2VjdGlvbiIsIndoaWxlSW5WaWV3Iiwidmlld3BvcnQiLCJvbmNlIiwiYW1vdW50IiwibWFyZ2luIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/components/motion/SectionReveal.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/motion/variants.ts":
/*!*******************************************!*\
!*** ./src/components/motion/variants.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 */ easeOut: () => (/* binding */ easeOut),\n/* harmony export */ fadeIn: () => (/* binding */ fadeIn),\n/* harmony export */ fadeInUp: () => (/* binding */ fadeInUp),\n/* harmony export */ headingMorph: () => (/* binding */ headingMorph),\n/* harmony export */ staggerContainer: () => (/* binding */ staggerContainer)\n/* harmony export */ });\nconst easeOut = [\n 0.2,\n 0.8,\n 0.2,\n 1\n];\nconst fadeInUp = {\n hidden: {\n opacity: 0,\n y: 24,\n filter: 'blur(2px)'\n },\n show: {\n opacity: 1,\n y: 0,\n filter: 'blur(0px)',\n transition: {\n duration: 0.6,\n ease: easeOut\n }\n }\n};\nconst fadeIn = {\n hidden: {\n opacity: 0\n },\n show: {\n opacity: 1,\n transition: {\n duration: 0.6,\n ease: easeOut\n }\n }\n};\nconst headingMorph = {\n hidden: {\n opacity: 0,\n letterSpacing: '0.02em'\n },\n show: {\n opacity: 1,\n letterSpacing: '0em',\n transition: {\n duration: 0.8,\n ease: easeOut\n }\n }\n};\nconst staggerContainer = (delay = 0, stagger = 0.12)=>({\n hidden: {},\n show: {\n transition: {\n delayChildren: delay,\n staggerChildren: stagger\n }\n }\n });\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy9tb3Rpb24vdmFyaWFudHMudHMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFDTyxNQUFNQSxVQUFrQjtJQUFDO0lBQUs7SUFBSztJQUFLO0NBQUU7QUFFMUMsTUFBTUMsV0FBVztJQUN0QkMsUUFBUTtRQUFFQyxTQUFTO1FBQUdDLEdBQUc7UUFBSUMsUUFBUTtJQUFZO0lBQ2pEQyxNQUFNO1FBQ0pILFNBQVM7UUFDVEMsR0FBRztRQUNIQyxRQUFRO1FBQ1JFLFlBQVk7WUFBRUMsVUFBVTtZQUFLQyxNQUFNVDtRQUFRO0lBQzdDO0FBQ0YsRUFBQztBQUVNLE1BQU1VLFNBQVM7SUFDcEJSLFFBQVE7UUFBRUMsU0FBUztJQUFFO0lBQ3JCRyxNQUFNO1FBQUVILFNBQVM7UUFBR0ksWUFBWTtZQUFFQyxVQUFVO1lBQUtDLE1BQU1UO1FBQVE7SUFBRTtBQUNuRSxFQUFDO0FBRU0sTUFBTVcsZUFBZTtJQUMxQlQsUUFBUTtRQUFFQyxTQUFTO1FBQUdTLGVBQWU7SUFBUztJQUM5Q04sTUFBTTtRQUNKSCxTQUFTO1FBQ1RTLGVBQWU7UUFDZkwsWUFBWTtZQUFFQyxVQUFVO1lBQUtDLE1BQU1UO1FBQVE7SUFDN0M7QUFDRixFQUFDO0FBRU0sTUFBTWEsbUJBQW1CLENBQUNDLFFBQVEsQ0FBQyxFQUFFQyxVQUFVLElBQUksR0FBTTtRQUM5RGIsUUFBUSxDQUFDO1FBQ1RJLE1BQU07WUFBRUMsWUFBWTtnQkFBRVMsZUFBZUY7Z0JBQU9HLGlCQUFpQkY7WUFBUTtRQUFFO0lBQ3pFLEdBQUUiLCJzb3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9jb21wb25lbnRzL21vdGlvbi92YXJpYW50cy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBFYXNpbmcgPSBbbnVtYmVyLCBudW1iZXIsIG51bWJlciwgbnVtYmVyXVxuZXhwb3J0IGNvbnN0IGVhc2VPdXQ6IEVhc2luZyA9IFswLjIsIDAuOCwgMC4yLCAxXVxuXG5leHBvcnQgY29uc3QgZmFkZUluVXAgPSB7XG4gIGhpZGRlbjogeyBvcGFjaXR5OiAwLCB5OiAyNCwgZmlsdGVyOiAnYmx1cigycHgpJyB9LFxuICBzaG93OiB7XG4gICAgb3BhY2l0eTogMSxcbiAgICB5OiAwLFxuICAgIGZpbHRlcjogJ2JsdXIoMHB4KScsXG4gICAgdHJhbnNpdGlvbjogeyBkdXJhdGlvbjogMC42LCBlYXNlOiBlYXNlT3V0IH0sXG4gIH0sXG59XG5cbmV4cG9ydCBjb25zdCBmYWRlSW4gPSB7XG4gIGhpZGRlbjogeyBvcGFjaXR5OiAwIH0sXG4gIHNob3c6IHsgb3BhY2l0eTogMSwgdHJhbnNpdGlvbjogeyBkdXJhdGlvbjogMC42LCBlYXNlOiBlYXNlT3V0IH0gfSxcbn1cblxuZXhwb3J0IGNvbnN0IGhlYWRpbmdNb3JwaCA9IHtcbiAgaGlkZGVuOiB7IG9wYWNpdHk6IDAsIGxldHRlclNwYWNpbmc6ICcwLjAyZW0nIH0sXG4gIHNob3c6IHtcbiAgICBvcGFjaXR5OiAxLFxuICAgIGxldHRlclNwYWNpbmc6ICcwZW0nLFxuICAgIHRyYW5zaXRpb246IHsgZHVyYXRpb246IDAuOCwgZWFzZTogZWFzZU91dCB9LFxuICB9LFxufVxuXG5leHBvcnQgY29uc3Qgc3RhZ2dlckNvbnRhaW5lciA9IChkZWxheSA9IDAsIHN0YWdnZXIgPSAwLjEyKSA9PiAoe1xuICBoaWRkZW46IHt9LFxuICBzaG93OiB7IHRyYW5zaXRpb246IHsgZGVsYXlDaGlsZHJlbjogZGVsYXksIHN0YWdnZXJDaGlsZHJlbjogc3RhZ2dlciB9IH0sXG59KVxuIl0sIm5hbWVzIjpbImVhc2VPdXQiLCJmYWRlSW5VcCIsImhpZGRlbiIsIm9wYWNpdHkiLCJ5IiwiZmlsdGVyIiwic2hvdyIsInRyYW5zaXRpb24iLCJkdXJhdGlvbiIsImVhc2UiLCJmYWRlSW4iLCJoZWFkaW5nTW9ycGgiLCJsZXR0ZXJTcGFjaW5nIiwic3RhZ2dlckNvbnRhaW5lciIsImRlbGF5Iiwic3RhZ2dlciIsImRlbGF5Q2hpbGRyZW4iLCJzdGFnZ2VyQ2hpbGRyZW4iXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/motion/variants.ts\n");
/***/ }),
/***/ "(ssr)/./src/components/ui/ImageWithFallback.tsx":
/*!*************************************************!*\
!*** ./src/components/ui/ImageWithFallback.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 */ ImageWithFallback)\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_image__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/image */ \"(ssr)/./node_modules/next/dist/api/image.js\");\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\nfunction buildPlaceholderUrl(width, height, text) {\n const safeText = encodeURIComponent(text);\n // Force PNG to avoid SVG content-type and Next.js dangerouslyAllowSVG errors\n // High-contrast dark placeholder with clear label\n return `https://placehold.co/${width}x${height}/111113/CCCCCC.png?text=${safeText}`;\n}\nfunction ImageWithFallback({ src, alt = 'Image', placeholderText = 'Image Coming Soon', placeholderSize, ...rest }) {\n const [errored, setErrored] = (0,react__WEBPACK_IMPORTED_MODULE_2__.useState)(false);\n const { width, height, fill, sizes } = rest;\n const fallback = (0,react__WEBPACK_IMPORTED_MODULE_2__.useMemo)({\n \"ImageWithFallback.useMemo[fallback]\": ()=>{\n const w = typeof width === 'number' ? width : placeholderSize?.width || 1200;\n const h = typeof height === 'number' ? height : placeholderSize?.height || (fill ? 675 : 800);\n return buildPlaceholderUrl(w, h, placeholderText);\n }\n }[\"ImageWithFallback.useMemo[fallback]\"], [\n width,\n height,\n fill,\n placeholderSize,\n placeholderText\n ]);\n const finalSrc = !src || src.trim() === '' || errored ? fallback : src;\n // Provide sensible default sizes when using fill to silence Next.js warnings\n // and improve responsive image selection.\n const defaultSizes = sizes ?? (fill ? '(max-width: 640px) 100vw, (max-width: 1024px) 50vw, 33vw' : undefined);\n // Skip Next.js optimization for placeholder provider to avoid SVG content-type issues\n const isPlaceholder = typeof finalSrc === 'string' && finalSrc.includes('placehold.co');\n const isLocal = typeof finalSrc === 'string' && finalSrc.startsWith('/images/');\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_image__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n ...rest,\n src: finalSrc,\n alt: alt,\n sizes: defaultSizes,\n unoptimized: isPlaceholder || isLocal,\n onError: ()=>setErrored(true)\n }, void 0, false, {\n fileName: \"/home/Nicholai/Documents/Dev/biohazard-vfx-2/src/components/ui/ImageWithFallback.tsx\",\n lineNumber: 50,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvY29tcG9uZW50cy91aS9JbWFnZVdpdGhGYWxsYmFjay50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7OztBQUU4QztBQUNMO0FBU3pDLFNBQVNHLG9CQUFvQkMsS0FBYSxFQUFFQyxNQUFjLEVBQUVDLElBQVk7SUFDdEUsTUFBTUMsV0FBV0MsbUJBQW1CRjtJQUNwQyw2RUFBNkU7SUFDN0Usa0RBQWtEO0lBQ2xELE9BQU8sQ0FBQyxxQkFBcUIsRUFBRUYsTUFBTSxDQUFDLEVBQUVDLE9BQU8sd0JBQXdCLEVBQUVFLFVBQVU7QUFDckY7QUFFZSxTQUFTRSxrQkFBa0IsRUFDeENDLEdBQUcsRUFDSEMsTUFBTSxPQUFPLEVBQ2JDLGtCQUFrQixtQkFBbUIsRUFDckNDLGVBQWUsRUFDZixHQUFHQyxNQUNHO0lBQ04sTUFBTSxDQUFDQyxTQUFTQyxXQUFXLEdBQUdkLCtDQUFRQSxDQUFDO0lBRXZDLE1BQU0sRUFBRUUsS0FBSyxFQUFFQyxNQUFNLEVBQUVZLElBQUksRUFBRUMsS0FBSyxFQUFFLEdBQ2pDSjtJQUVILE1BQU1LLFdBQVdsQiw4Q0FBT0E7K0NBQUM7WUFDdkIsTUFBTW1CLElBQUksT0FBT2hCLFVBQVUsV0FBV0EsUUFBUVMsaUJBQWlCVCxTQUFTO1lBQ3hFLE1BQU1pQixJQUFJLE9BQU9oQixXQUFXLFdBQVdBLFNBQVNRLGlCQUFpQlIsVUFBV1ksQ0FBQUEsT0FBTyxNQUFNLEdBQUU7WUFDM0YsT0FBT2Qsb0JBQW9CaUIsR0FBR0MsR0FBR1Q7UUFDbkM7OENBQUc7UUFBQ1I7UUFBT0M7UUFBUVk7UUFBTUo7UUFBaUJEO0tBQWdCO0lBRTFELE1BQU1VLFdBQVcsQ0FBQ1osT0FBT0EsSUFBSWEsSUFBSSxPQUFPLE1BQU1SLFVBQVVJLFdBQVdUO0lBRW5FLDZFQUE2RTtJQUM3RSwwQ0FBMEM7SUFDMUMsTUFBTWMsZUFDSk4sU0FBVUQsQ0FBQUEsT0FBTyw2REFBNkRRLFNBQVE7SUFFeEYsc0ZBQXNGO0lBQ3RGLE1BQU1DLGdCQUFnQixPQUFPSixhQUFhLFlBQVlBLFNBQVNLLFFBQVEsQ0FBQztJQUN4RSxNQUFNQyxVQUFVLE9BQU9OLGFBQWEsWUFBWUEsU0FBU08sVUFBVSxDQUFDO0lBRXBFLHFCQUNFLDhEQUFDN0Isa0RBQUtBO1FBQ0gsR0FBR2MsSUFBSTtRQUNSSixLQUFLWTtRQUNMWCxLQUFLQTtRQUNMTyxPQUFPTTtRQUNQTSxhQUFhSixpQkFBaUJFO1FBQzlCRyxTQUFTLElBQU1mLFdBQVc7Ozs7OztBQUdoQyIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2NvbXBvbmVudHMvdWkvSW1hZ2VXaXRoRmFsbGJhY2sudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgSW1hZ2UsIHsgSW1hZ2VQcm9wcyB9IGZyb20gJ25leHQvaW1hZ2UnXG5pbXBvcnQgeyB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gJ3JlYWN0J1xuXG50eXBlIFByb3BzID0gT21pdDxJbWFnZVByb3BzLCAnc3JjJyB8ICdhbHQnPiAmIHtcbiAgc3JjPzogc3RyaW5nXG4gIGFsdD86IHN0cmluZ1xuICBwbGFjZWhvbGRlclRleHQ/OiBzdHJpbmdcbiAgcGxhY2Vob2xkZXJTaXplPzogeyB3aWR0aDogbnVtYmVyOyBoZWlnaHQ6IG51bWJlciB9XG59XG5cbmZ1bmN0aW9uIGJ1aWxkUGxhY2Vob2xkZXJVcmwod2lkdGg6IG51bWJlciwgaGVpZ2h0OiBudW1iZXIsIHRleHQ6IHN0cmluZykge1xuICBjb25zdCBzYWZlVGV4dCA9IGVuY29kZVVSSUNvbXBvbmVudCh0ZXh0KVxuICAvLyBGb3JjZSBQTkcgdG8gYXZvaWQgU1ZHIGNvbnRlbnQtdHlwZSBhbmQgTmV4dC5qcyBkYW5nZXJvdXNseUFsbG93U1ZHIGVycm9yc1xuICAvLyBIaWdoLWNvbnRyYXN0IGRhcmsgcGxhY2Vob2xkZXIgd2l0aCBjbGVhciBsYWJlbFxuICByZXR1cm4gYGh0dHBzOi8vcGxhY2Vob2xkLmNvLyR7d2lkdGh9eCR7aGVpZ2h0fS8xMTExMTMvQ0NDQ0NDLnBuZz90ZXh0PSR7c2FmZVRleHR9YFxufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBJbWFnZVdpdGhGYWxsYmFjayh7XG4gIHNyYyxcbiAgYWx0ID0gJ0ltYWdlJyxcbiAgcGxhY2Vob2xkZXJUZXh0ID0gJ0ltYWdlIENvbWluZyBTb29uJyxcbiAgcGxhY2Vob2xkZXJTaXplLFxuICAuLi5yZXN0XG59OiBQcm9wcykge1xuICBjb25zdCBbZXJyb3JlZCwgc2V0RXJyb3JlZF0gPSB1c2VTdGF0ZShmYWxzZSlcblxuICBjb25zdCB7IHdpZHRoLCBoZWlnaHQsIGZpbGwsIHNpemVzIH0gPVxuICAgIChyZXN0IGFzIFBhcnRpYWw8UGljazxJbWFnZVByb3BzLCAnd2lkdGgnIHwgJ2hlaWdodCcgfCAnZmlsbCcgfCAnc2l6ZXMnPj4pXG5cbiAgY29uc3QgZmFsbGJhY2sgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCB3ID0gdHlwZW9mIHdpZHRoID09PSAnbnVtYmVyJyA/IHdpZHRoIDogcGxhY2Vob2xkZXJTaXplPy53aWR0aCB8fCAxMjAwXG4gICAgY29uc3QgaCA9IHR5cGVvZiBoZWlnaHQgPT09ICdudW1iZXInID8gaGVpZ2h0IDogcGxhY2Vob2xkZXJTaXplPy5oZWlnaHQgfHwgKGZpbGwgPyA2NzUgOiA4MDApXG4gICAgcmV0dXJuIGJ1aWxkUGxhY2Vob2xkZXJVcmwodywgaCwgcGxhY2Vob2xkZXJUZXh0KVxuICB9LCBbd2lkdGgsIGhlaWdodCwgZmlsbCwgcGxhY2Vob2xkZXJTaXplLCBwbGFjZWhvbGRlclRleHRdKVxuXG4gIGNvbnN0IGZpbmFsU3JjID0gIXNyYyB8fCBzcmMudHJpbSgpID09PSAnJyB8fCBlcnJvcmVkID8gZmFsbGJhY2sgOiBzcmNcblxuICAvLyBQcm92aWRlIHNlbnNpYmxlIGRlZmF1bHQgc2l6ZXMgd2hlbiB1c2luZyBmaWxsIHRvIHNpbGVuY2UgTmV4dC5qcyB3YXJuaW5nc1xuICAvLyBhbmQgaW1wcm92ZSByZXNwb25zaXZlIGltYWdlIHNlbGVjdGlvbi5cbiAgY29uc3QgZGVmYXVsdFNpemVzID1cbiAgICBzaXplcyA/PyAoZmlsbCA/ICcobWF4LXdpZHRoOiA2NDBweCkgMTAwdncsIChtYXgtd2lkdGg6IDEwMjRweCkgNTB2dywgMzN2dycgOiB1bmRlZmluZWQpXG5cbiAgLy8gU2tpcCBOZXh0LmpzIG9wdGltaXphdGlvbiBmb3IgcGxhY2Vob2xkZXIgcHJvdmlkZXIgdG8gYXZvaWQgU1ZHIGNvbnRlbnQtdHlwZSBpc3N1ZXNcbiAgY29uc3QgaXNQbGFjZWhvbGRlciA9IHR5cGVvZiBmaW5hbFNyYyA9PT0gJ3N0cmluZycgJiYgZmluYWxTcmMuaW5jbHVkZXMoJ3BsYWNlaG9sZC5jbycpXG4gIGNvbnN0IGlzTG9jYWwgPSB0eXBlb2YgZmluYWxTcmMgPT09ICdzdHJpbmcnICYmIGZpbmFsU3JjLnN0YXJ0c1dpdGgoJy9pbWFnZXMvJylcblxuICByZXR1cm4gKFxuICAgIDxJbWFnZVxuICAgICAgey4uLnJlc3R9XG4gICAgICBzcmM9e2ZpbmFsU3JjfVxuICAgICAgYWx0PXthbHR9XG4gICAgICBzaXplcz17ZGVmYXVsdFNpemVzfVxuICAgICAgdW5vcHRpbWl6ZWQ9e2lzUGxhY2Vob2xkZXIgfHwgaXNMb2NhbH1cbiAgICAgIG9uRXJyb3I9eygpID0+IHNldEVycm9yZWQodHJ1ZSl9XG4gICAgLz5cbiAgKVxufVxuIl0sIm5hbWVzIjpbIkltYWdlIiwidXNlTWVtbyIsInVzZVN0YXRlIiwiYnVpbGRQbGFjZWhvbGRlclVybCIsIndpZHRoIiwiaGVpZ2h0IiwidGV4dCIsInNhZmVUZXh0IiwiZW5jb2RlVVJJQ29tcG9uZW50IiwiSW1hZ2VXaXRoRmFsbGJhY2siLCJzcmMiLCJhbHQiLCJwbGFjZWhvbGRlclRleHQiLCJwbGFjZWhvbGRlclNpemUiLCJyZXN0IiwiZXJyb3JlZCIsInNldEVycm9yZWQiLCJmaWxsIiwic2l6ZXMiLCJmYWxsYmFjayIsInciLCJoIiwiZmluYWxTcmMiLCJ0cmltIiwiZGVmYXVsdFNpemVzIiwidW5kZWZpbmVkIiwiaXNQbGFjZWhvbGRlciIsImluY2x1ZGVzIiwiaXNMb2NhbCIsInN0YXJ0c1dpdGgiLCJ1bm9wdGltaXplZCIsIm9uRXJyb3IiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./src/components/ui/ImageWithFallback.tsx\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,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b3VyY2VzIjpbIi9ob21lL05pY2hvbGFpL0RvY3VtZW50cy9EZXYvYmlvaGF6YXJkLXZmeC0yL3NyYy9ob29rcy91c2UtdG9hc3QudHMiXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCAqIGFzIFJlYWN0IGZyb20gJ3JlYWN0J1xuXG5jb25zdCBUT0FTVF9MSU1JVCA9IDNcbmNvbnN0IFRPQVNUX1JFTU9WRV9ERUxBWSA9IDEwMDAwMDBcblxudHlwZSBUb2FzdGVyVG9hc3QgPSB7XG4gIGlkOiBzdHJpbmdcbiAgdGl0bGU/OiBSZWFjdC5SZWFjdE5vZGVcbiAgZGVzY3JpcHRpb24/OiBSZWFjdC5SZWFjdE5vZGVcbiAgYWN0aW9uPzogUmVhY3QuUmVhY3ROb2RlXG4gIHN0YXR1cz86ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnaW5mbycgfCAnd2FybmluZydcbn1cblxuY29uc3QgYWN0aW9uVHlwZXMgPSB7XG4gIEFERF9UT0FTVDogJ0FERF9UT0FTVCcsXG4gIFVQREFURV9UT0FTVDogJ1VQREFURV9UT0FTVCcsXG4gIERJU01JU1NfVE9BU1Q6ICdESVNNSVNTX1RPQVNUJyxcbiAgUkVNT1ZFX1RPQVNUOiAnUkVNT1ZFX1RPQVNUJyxcbn0gYXMgY29uc3RcblxubGV0IGNvdW50ID0gMFxuXG5mdW5jdGlvbiBnZW5JZCgpIHtcbiAgY291bnQgPSAoY291bnQgKyAxKSAlIE51bWJlci5NQVhfU0FGRV9JTlRFR0VSXG4gIHJldHVybiBjb3VudC50b1N0cmluZygpXG59XG5cbnR5cGUgU3RhdGUgPSB7XG4gIHRvYXN0czogVG9hc3RlclRvYXN0W11cbn1cblxudHlwZSBBY3Rpb24gPVxuICB8IHtcbiAgICAgIHR5cGU6IHR5cGVvZiBhY3Rpb25UeXBlcy5BRERfVE9BU1RcbiAgICAgIHRvYXN0OiBUb2FzdGVyVG9hc3RcbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogdHlwZW9mIGFjdGlvblR5cGVzLkRJU01JU1NfVE9BU1RcbiAgICAgIHRvYXN0SWQ/OiBUb2FzdGVyVG9hc3RbJ2lkJ11cbiAgICB9XG4gIHwge1xuICAgICAgdHlwZTogdHlwZW9mIGFjdGlvblR5cGVzLlJFTU9WRV9UT0FTVFxuICAgICAgdG9hc3RJZD86IFRvYXN0ZXJUb2FzdFsnaWQnXVxuICAgIH1cblxuY29uc3QgcmVkdWNlciA9IChzdGF0ZTogU3RhdGUsIGFjdGlvbjogQWN0aW9uKTogU3RhdGUgPT4ge1xuICBzd2l0Y2ggKGFjdGlvbi50eXBlKSB7XG4gICAgY2FzZSBhY3Rpb25UeXBlcy5BRERfVE9BU1Q6XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgdG9hc3RzOiBbYWN0aW9uLnRvYXN0LCAuLi5zdGF0ZS50b2FzdHNdLnNsaWNlKDAsIFRPQVNUX0xJTUlUKSxcbiAgICAgIH1cblxuICAgIGNhc2UgYWN0aW9uVHlwZXMuRElTTUlTU19UT0FTVDoge1xuICAgICAgY29uc3QgeyB0b2FzdElkIH0gPSBhY3Rpb25cblxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRvYXN0czogc3RhdGUudG9hc3RzLm1hcCgodG9hc3QpID0+XG4gICAgICAgICAgdG9hc3QuaWQgPT09IHRvYXN0SWQgPyB7IC4uLnRvYXN0LCBzdGF0dXM6ICdlcnJvcicgfSA6IHRvYXN0XG4gICAgICAgICksXG4gICAgICB9XG4gICAgfVxuICAgIGNhc2UgYWN0aW9uVHlwZXMuUkVNT1ZFX1RPQVNUOlxuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgIHRvYXN0czogc3RhdGUudG9hc3RzLmZpbHRlcigodG9hc3QpID0+IHRvYXN0LmlkICE9PSBhY3Rpb24udG9hc3RJZCksXG4gICAgICB9XG4gIH1cbn1cblxuY29uc3QgbGlzdGVuZXJzOiBBcnJheTwoc3RhdGU6IFN0YXRlKSA9PiB2b2lkPiA9IFtdXG5cbmxldCBtZW1vcnlTdGF0ZTogU3RhdGUgPSB7IHRvYXN0czogW10gfVxuXG5mdW5jdGlvbiBkaXNwYXRjaChhY3Rpb246IEFjdGlvbikge1xuICBtZW1vcnlTdGF0ZSA9IHJlZHVjZXIobWVtb3J5U3RhdGUsIGFjdGlvbilcbiAgbGlzdGVuZXJzLmZvckVhY2goKGxpc3RlbmVyKSA9PiB7XG4gICAgbGlzdGVuZXIobWVtb3J5U3RhdGUpXG4gIH0pXG59XG5cbmZ1bmN0aW9uIHRvYXN0KHsgLi4ucHJvcHMgfTogVG9hc3RlclRvYXN0KSB7XG4gIGNvbnN0IGlkID0gZ2VuSWQoKVxuXG4gIGNvbnN0IHVwZGF0ZSA9IChwcm9wcz86IFRvYXN0ZXJUb2FzdCkgPT5cbiAgICBkaXNwYXRjaCh7XG4gICAgICB0eXBlOiBhY3Rpb25UeXBlcy5VUERBVEVfVE9BU1QsXG4gICAgICB0b2FzdDogeyAuLi5wcm9wcywgaWQgfSxcbiAgICB9KVxuXG4gIGNvbnN0IGRpc21pc3MgPSAoKSA9PlxuICAgIGRpc3BhdGNoKHsgdHlwZTogYWN0aW9uVHlwZXMuRElTTUlTU19UT0FTVCwgdG9hc3RJZDogaWQgfSlcblxuICBkaXNwYXRjaCh7XG4gICAgdHlwZTogYWN0aW9uVHlwZXMuQUREX1RPQVNULFxuICAgIHRvYXN0OiB7XG4gICAgICAuLi5wcm9wcyxcbiAgICAgIGlkLFxuICAgICAgc3RhdHVzOiBwcm9wcy5zdGF0dXMgPz8gJ2luZm8nLFxuICAgICAgdGl0bGU6IHByb3BzLnRpdGxlLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgYWN0aW9uOiBwcm9wcy5hY3Rpb24sXG4gICAgfSxcbiAgfSlcblxuICByZXR1cm4ge1xuICAgIGlkOiBpZCxcbiAgICBkaXNtaXNzLFxuICAgIHVwZGF0ZSxcbiAgfVxufVxuXG5mdW5jdGlvbiB1c2VUb2FzdCgpIHtcbiAgY29uc3QgW3N0YXRlLCBzZXRTdGF0ZV0gPSBSZWFjdC51c2VTdGF0ZTxTdGF0ZT4obWVtb3J5U3RhdGUpXG5cbiAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICBsaXN0ZW5lcnMucHVzaChzZXRTdGF0ZSlcbiAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSBsaXN0ZW5lcnMuaW5kZXhPZihzZXRTdGF0ZSlcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIGxpc3RlbmVycy5zcGxpY2UoaW5kZXgsIDEpXG4gICAgICB9XG4gICAgfVxuICB9LCBbc3RhdGVdKVxuXG4gIHJldHVybiB7XG4gICAgLi4uc3RhdGUsXG4gICAgdG9hc3QsXG4gICAgZGlzbWlzczogKHRvYXN0SWQ/OiBzdHJpbmcpID0+XG4gICAgICBkaXNwYXRjaCh7IHR5cGU6IGFjdGlvblR5cGVzLkRJU01JU1NfVE9BU1QsIHRvYXN0SWQgfSksXG4gIH1cbn1cblxuZXhwb3J0IHsgdXNlVG9hc3QsIHRvYXN0IH1cbiJdLCJuYW1lcyI6WyJSZWFjdCIsIlRPQVNUX0xJTUlUIiwiVE9BU1RfUkVNT1ZFX0RFTEFZIiwiYWN0aW9uVHlwZXMiLCJBRERfVE9BU1QiLCJVUERBVEVfVE9BU1QiLCJESVNNSVNTX1RPQVNUIiwiUkVNT1ZFX1RPQVNUIiwiY291bnQiLCJnZW5JZCIsIk51bWJlciIsIk1BWF9TQUZFX0lOVEVHRVIiLCJ0b1N0cmluZyIsInJlZHVjZXIiLCJzdGF0ZSIsImFjdGlvbiIsInR5cGUiLCJ0b2FzdHMiLCJ0b2FzdCIsInNsaWNlIiwidG9hc3RJZCIsIm1hcCIsImlkIiwic3RhdHVzIiwiZmlsdGVyIiwibGlzdGVuZXJzIiwibWVtb3J5U3RhdGUiLCJkaXNwYXRjaCIsImZvckVhY2giLCJsaXN0ZW5lciIsInByb3BzIiwidXBkYXRlIiwiZGlzbWlzcyIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJ1c2VUb2FzdCIsInNldFN0YXRlIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJwdXNoIiwiaW5kZXgiLCJpbmRleE9mIiwic3BsaWNlIl0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./src/hooks/use-toast.ts\n");
/***/ }),
/***/ "(ssr)/./src/lib/telemetry.ts":
/*!******************************!*\
!*** ./src/lib/telemetry.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 */ logError: () => (/* binding */ logError),\n/* harmony export */ recordCTAClick: () => (/* binding */ recordCTAClick),\n/* harmony export */ recordFormSubmission: () => (/* binding */ recordFormSubmission),\n/* harmony export */ recordNavigation: () => (/* binding */ recordNavigation)\n/* harmony export */ });\n/* harmony import */ var _sentry_nextjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! @sentry/nextjs */ \"(ssr)/./node_modules/@sentry/nextjs/build/cjs/index.server.js\");\n/* harmony import */ var _sentry_nextjs__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_sentry_nextjs__WEBPACK_IMPORTED_MODULE_0__);\n\n/**\n * Utility functions for telemetry and event tracking\n */ /**\n * Add a breadcrumb for navigation events\n */ function recordNavigation(to, from) {\n _sentry_nextjs__WEBPACK_IMPORTED_MODULE_0__.addBreadcrumb({\n category: 'navigation',\n message: `Navigated to ${to}`,\n level: 'info',\n data: {\n to,\n from\n }\n });\n}\n/**\n * Add a breadcrumb for CTA button clicks\n */ function recordCTAClick(element, page, action) {\n _sentry_nextjs__WEBPACK_IMPORTED_MODULE_0__.addBreadcrumb({\n category: 'cta',\n message: `CTA clicked: ${element}`,\n level: 'info',\n data: {\n element,\n page,\n action\n }\n });\n}\n/**\n * Add a breadcrumb for form submissions\n */ function recordFormSubmission(formName, result, details) {\n _sentry_nextjs__WEBPACK_IMPORTED_MODULE_0__.addBreadcrumb({\n category: 'form',\n message: `Form submitted: ${formName} (${result})`,\n level: result === 'error' ? 'warning' : 'info',\n data: {\n formName,\n result,\n ...details\n }\n });\n}\n/**\n * Log an error with additional context\n */ function logError(error, context) {\n _sentry_nextjs__WEBPACK_IMPORTED_MODULE_0__.captureException(error, {\n contexts: {\n ...context && {\n custom: context\n }\n }\n });\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvbGliL3RlbGVtZXRyeS50cyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBeUM7QUFFekM7O0NBRUMsR0FFRDs7Q0FFQyxHQUNNLFNBQVNDLGlCQUFpQkMsRUFBVSxFQUFFQyxJQUFhO0lBQ3hESCx5REFBb0IsQ0FBQztRQUNuQkssVUFBVTtRQUNWQyxTQUFTLENBQUMsYUFBYSxFQUFFSixJQUFJO1FBQzdCSyxPQUFPO1FBQ1BDLE1BQU07WUFDSk47WUFDQUM7UUFDRjtJQUNGO0FBQ0Y7QUFFQTs7Q0FFQyxHQUNNLFNBQVNNLGVBQWVDLE9BQWUsRUFBRUMsSUFBYSxFQUFFQyxNQUFlO0lBQzVFWix5REFBb0IsQ0FBQztRQUNuQkssVUFBVTtRQUNWQyxTQUFTLENBQUMsYUFBYSxFQUFFSSxTQUFTO1FBQ2xDSCxPQUFPO1FBQ1BDLE1BQU07WUFDSkU7WUFDQUM7WUFDQUM7UUFDRjtJQUNGO0FBQ0Y7QUFFQTs7Q0FFQyxHQUNNLFNBQVNDLHFCQUFxQkMsUUFBZ0IsRUFBRUMsTUFBMkIsRUFBRUMsT0FBaUM7SUFDbkhoQix5REFBb0IsQ0FBQztRQUNuQkssVUFBVTtRQUNWQyxTQUFTLENBQUMsZ0JBQWdCLEVBQUVRLFNBQVMsRUFBRSxFQUFFQyxPQUFPLENBQUMsQ0FBQztRQUNsRFIsT0FBT1EsV0FBVyxVQUFVLFlBQVk7UUFDeENQLE1BQU07WUFDSk07WUFDQUM7WUFDQSxHQUFHQyxPQUFPO1FBQ1o7SUFDRjtBQUNGO0FBRUE7O0NBRUMsR0FDTSxTQUFTQyxTQUFTQyxLQUFZLEVBQUVDLE9BQWlDO0lBQ3RFbkIsNERBQXVCLENBQUNrQixPQUFPO1FBQzdCRyxVQUFVO1lBQ1IsR0FBSUYsV0FBVztnQkFBRUcsUUFBUUg7WUFBUSxDQUFDO1FBQ3BDO0lBQ0Y7QUFDRiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2xpYi90ZWxlbWV0cnkudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgU2VudHJ5IGZyb20gJ0BzZW50cnkvbmV4dGpzJztcblxuLyoqXG4gKiBVdGlsaXR5IGZ1bmN0aW9ucyBmb3IgdGVsZW1ldHJ5IGFuZCBldmVudCB0cmFja2luZ1xuICovXG5cbi8qKlxuICogQWRkIGEgYnJlYWRjcnVtYiBmb3IgbmF2aWdhdGlvbiBldmVudHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlY29yZE5hdmlnYXRpb24odG86IHN0cmluZywgZnJvbT86IHN0cmluZyk6IHZvaWQge1xuICBTZW50cnkuYWRkQnJlYWRjcnVtYih7XG4gICAgY2F0ZWdvcnk6ICduYXZpZ2F0aW9uJyxcbiAgICBtZXNzYWdlOiBgTmF2aWdhdGVkIHRvICR7dG99YCxcbiAgICBsZXZlbDogJ2luZm8nLFxuICAgIGRhdGE6IHtcbiAgICAgIHRvLFxuICAgICAgZnJvbSxcbiAgICB9LFxuICB9KTtcbn1cblxuLyoqXG4gKiBBZGQgYSBicmVhZGNydW1iIGZvciBDVEEgYnV0dG9uIGNsaWNrc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVjb3JkQ1RBQ2xpY2soZWxlbWVudDogc3RyaW5nLCBwYWdlPzogc3RyaW5nLCBhY3Rpb24/OiBzdHJpbmcpOiB2b2lkIHtcbiAgU2VudHJ5LmFkZEJyZWFkY3J1bWIoe1xuICAgIGNhdGVnb3J5OiAnY3RhJyxcbiAgICBtZXNzYWdlOiBgQ1RBIGNsaWNrZWQ6ICR7ZWxlbWVudH1gLFxuICAgIGxldmVsOiAnaW5mbycsXG4gICAgZGF0YToge1xuICAgICAgZWxlbWVudCxcbiAgICAgIHBhZ2UsXG4gICAgICBhY3Rpb24sXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogQWRkIGEgYnJlYWRjcnVtYiBmb3IgZm9ybSBzdWJtaXNzaW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gcmVjb3JkRm9ybVN1Ym1pc3Npb24oZm9ybU5hbWU6IHN0cmluZywgcmVzdWx0OiAnc3VjY2VzcycgfCAnZXJyb3InLCBkZXRhaWxzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj4pOiB2b2lkIHtcbiAgU2VudHJ5LmFkZEJyZWFkY3J1bWIoe1xuICAgIGNhdGVnb3J5OiAnZm9ybScsXG4gICAgbWVzc2FnZTogYEZvcm0gc3VibWl0dGVkOiAke2Zvcm1OYW1lfSAoJHtyZXN1bHR9KWAsXG4gICAgbGV2ZWw6IHJlc3VsdCA9PT0gJ2Vycm9yJyA/ICd3YXJuaW5nJyA6ICdpbmZvJyxcbiAgICBkYXRhOiB7XG4gICAgICBmb3JtTmFtZSxcbiAgICAgIHJlc3VsdCxcbiAgICAgIC4uLmRldGFpbHMsXG4gICAgfSxcbiAgfSk7XG59XG5cbi8qKlxuICogTG9nIGFuIGVycm9yIHdpdGggYWRkaXRpb25hbCBjb250ZXh0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBsb2dFcnJvcihlcnJvcjogRXJyb3IsIGNvbnRleHQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPik6IHZvaWQge1xuICBTZW50cnkuY2FwdHVyZUV4Y2VwdGlvbihlcnJvciwge1xuICAgIGNvbnRleHRzOiB7XG4gICAgICAuLi4oY29udGV4dCAmJiB7IGN1c3RvbTogY29udGV4dCB9KSxcbiAgICB9LFxuICB9KTtcbn0iXSwibmFtZXMiOlsiU2VudHJ5IiwicmVjb3JkTmF2aWdhdGlvbiIsInRvIiwiZnJvbSIsImFkZEJyZWFkY3J1bWIiLCJjYXRlZ29yeSIsIm1lc3NhZ2UiLCJsZXZlbCIsImRhdGEiLCJyZWNvcmRDVEFDbGljayIsImVsZW1lbnQiLCJwYWdlIiwiYWN0aW9uIiwicmVjb3JkRm9ybVN1Ym1pc3Npb24iLCJmb3JtTmFtZSIsInJlc3VsdCIsImRldGFpbHMiLCJsb2dFcnJvciIsImVycm9yIiwiY29udGV4dCIsImNhcHR1cmVFeGNlcHRpb24iLCJjb250ZXh0cyIsImN1c3RvbSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./src/lib/telemetry.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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9zcmMvbGliL3V0aWxzLnRzIiwibWFwcGluZ3MiOiI7Ozs7OztBQUE0QztBQUNKO0FBRWpDLFNBQVNFLEdBQUcsR0FBR0MsTUFBb0I7SUFDeEMsT0FBT0YsdURBQU9BLENBQUNELDBDQUFJQSxDQUFDRztBQUN0QiIsInNvdXJjZXMiOlsiL2hvbWUvTmljaG9sYWkvRG9jdW1lbnRzL0Rldi9iaW9oYXphcmQtdmZ4LTIvc3JjL2xpYi91dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyB0eXBlIENsYXNzVmFsdWUsIGNsc3ggfSBmcm9tICdjbHN4J1xuaW1wb3J0IHsgdHdNZXJnZSB9IGZyb20gJ3RhaWx3aW5kLW1lcmdlJ1xuXG5leHBvcnQgZnVuY3Rpb24gY24oLi4uaW5wdXRzOiBDbGFzc1ZhbHVlW10pIHtcbiAgcmV0dXJuIHR3TWVyZ2UoY2xzeChpbnB1dHMpKVxufVxuIl0sIm5hbWVzIjpbImNsc3giLCJ0d01lcmdlIiwiY24iLCJpbnB1dHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\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");
/***/ }),
/***/ "@prisma/client":
/*!*********************************!*\
!*** external "@prisma/client" ***!
\*********************************/
/***/ ((module) => {
"use strict";
module.exports = require("@prisma/client");
/***/ }),
/***/ "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/server/app-render/work-unit-async-storage.external.js":
/*!**********************************************************************************!*\
!*** 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");
/***/ }),
/***/ "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/framer-motion","vendor-chunks/@radix-ui","vendor-chunks/tailwind-merge","vendor-chunks/next-auth","vendor-chunks/@babel","vendor-chunks/next-themes","vendor-chunks/class-variance-authority","vendor-chunks/clsx","vendor-chunks/motion-dom","vendor-chunks/motion-utils"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader/index.js?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=!")));
module.exports = __webpack_exports__;
})();