diff --git a/.next/app-build-manifest.json b/.next/app-build-manifest.json
index 6a1bf49..ef51a10 100644
--- a/.next/app-build-manifest.json
+++ b/.next/app-build-manifest.json
@@ -1,9 +1,9 @@
{
"pages": {
- "/page": [
+ "/gunbuilder/page": [
"static/chunks/webpack.js",
"static/chunks/main-app.js",
- "static/chunks/app/page.js"
+ "static/chunks/app/gunbuilder/page.js"
],
"/layout": [
"static/chunks/webpack.js",
@@ -11,21 +11,11 @@
"static/css/app/layout.css",
"static/chunks/app/layout.js"
],
- "/gunbuilder/page": [
- "static/chunks/webpack.js",
- "static/chunks/main-app.js",
- "static/chunks/app/gunbuilder/page.js"
- ],
"/gunbuilder/[categoryId]/page": [
"static/chunks/webpack.js",
"static/chunks/main-app.js",
"static/chunks/app/gunbuilder/[categoryId]/page.js"
],
- "/gunbuilder/[categoryId]/[partId]/page": [
- "static/chunks/webpack.js",
- "static/chunks/main-app.js",
- "static/chunks/app/gunbuilder/[categoryId]/[partId]/page.js"
- ],
"/gunbuilder/build/page": [
"static/chunks/webpack.js",
"static/chunks/main-app.js",
diff --git a/.next/cache/webpack/client-development/13.pack.gz b/.next/cache/webpack/client-development/13.pack.gz
index c040942..088881e 100644
Binary files a/.next/cache/webpack/client-development/13.pack.gz and b/.next/cache/webpack/client-development/13.pack.gz differ
diff --git a/.next/cache/webpack/client-development/2.pack.gz b/.next/cache/webpack/client-development/2.pack.gz
index 1f5d5bc..9087019 100644
Binary files a/.next/cache/webpack/client-development/2.pack.gz and b/.next/cache/webpack/client-development/2.pack.gz differ
diff --git a/.next/cache/webpack/client-development/3.pack.gz b/.next/cache/webpack/client-development/3.pack.gz
index f8317e6..15e6ae7 100644
Binary files a/.next/cache/webpack/client-development/3.pack.gz and b/.next/cache/webpack/client-development/3.pack.gz differ
diff --git a/.next/cache/webpack/client-development/5.pack.gz b/.next/cache/webpack/client-development/5.pack.gz
index 2931a21..c404895 100644
Binary files a/.next/cache/webpack/client-development/5.pack.gz and b/.next/cache/webpack/client-development/5.pack.gz differ
diff --git a/.next/cache/webpack/client-development/7.pack.gz b/.next/cache/webpack/client-development/7.pack.gz
index d96a591..b081800 100644
Binary files a/.next/cache/webpack/client-development/7.pack.gz and b/.next/cache/webpack/client-development/7.pack.gz differ
diff --git a/.next/cache/webpack/client-development/9.pack.gz b/.next/cache/webpack/client-development/9.pack.gz
index 65fa924..0295677 100644
Binary files a/.next/cache/webpack/client-development/9.pack.gz and b/.next/cache/webpack/client-development/9.pack.gz differ
diff --git a/.next/cache/webpack/client-development/index.pack.gz b/.next/cache/webpack/client-development/index.pack.gz
index 1696a17..ce04c92 100644
Binary files a/.next/cache/webpack/client-development/index.pack.gz and b/.next/cache/webpack/client-development/index.pack.gz differ
diff --git a/.next/cache/webpack/client-development/index.pack.gz.old b/.next/cache/webpack/client-development/index.pack.gz.old
index 16aac18..1696a17 100644
Binary files a/.next/cache/webpack/client-development/index.pack.gz.old and b/.next/cache/webpack/client-development/index.pack.gz.old differ
diff --git a/.next/cache/webpack/server-development/0.pack.gz b/.next/cache/webpack/server-development/0.pack.gz
index a720962..7a39186 100644
Binary files a/.next/cache/webpack/server-development/0.pack.gz and b/.next/cache/webpack/server-development/0.pack.gz differ
diff --git a/.next/cache/webpack/server-development/1.pack.gz b/.next/cache/webpack/server-development/1.pack.gz
index e19a4fe..33a8f2a 100644
Binary files a/.next/cache/webpack/server-development/1.pack.gz and b/.next/cache/webpack/server-development/1.pack.gz differ
diff --git a/.next/cache/webpack/server-development/2.pack.gz b/.next/cache/webpack/server-development/2.pack.gz
index 83e0dd7..43ea871 100644
Binary files a/.next/cache/webpack/server-development/2.pack.gz and b/.next/cache/webpack/server-development/2.pack.gz differ
diff --git a/.next/cache/webpack/server-development/3.pack.gz b/.next/cache/webpack/server-development/3.pack.gz
index 2db35f8..086df3b 100644
Binary files a/.next/cache/webpack/server-development/3.pack.gz and b/.next/cache/webpack/server-development/3.pack.gz differ
diff --git a/.next/cache/webpack/server-development/4.pack.gz b/.next/cache/webpack/server-development/4.pack.gz
index 5f6e8ed..0abeb60 100644
Binary files a/.next/cache/webpack/server-development/4.pack.gz and b/.next/cache/webpack/server-development/4.pack.gz differ
diff --git a/.next/cache/webpack/server-development/6.pack.gz b/.next/cache/webpack/server-development/6.pack.gz
index e3f895e..9d515ec 100644
Binary files a/.next/cache/webpack/server-development/6.pack.gz and b/.next/cache/webpack/server-development/6.pack.gz differ
diff --git a/.next/cache/webpack/server-development/7.pack.gz b/.next/cache/webpack/server-development/7.pack.gz
index 917240a..b166372 100644
Binary files a/.next/cache/webpack/server-development/7.pack.gz and b/.next/cache/webpack/server-development/7.pack.gz differ
diff --git a/.next/cache/webpack/server-development/index.pack.gz b/.next/cache/webpack/server-development/index.pack.gz
index cb59405..d317d3a 100644
Binary files a/.next/cache/webpack/server-development/index.pack.gz and b/.next/cache/webpack/server-development/index.pack.gz differ
diff --git a/.next/cache/webpack/server-development/index.pack.gz.old b/.next/cache/webpack/server-development/index.pack.gz.old
index dcdd787..cb59405 100644
Binary files a/.next/cache/webpack/server-development/index.pack.gz.old and b/.next/cache/webpack/server-development/index.pack.gz.old differ
diff --git a/.next/server/app-paths-manifest.json b/.next/server/app-paths-manifest.json
index 23719d2..d17745d 100644
--- a/.next/server/app-paths-manifest.json
+++ b/.next/server/app-paths-manifest.json
@@ -1,7 +1,5 @@
{
- "/gunbuilder/page": "app/gunbuilder/page.js",
- "/page": "app/page.js",
- "/gunbuilder/build/page": "app/gunbuilder/build/page.js",
"/gunbuilder/[categoryId]/page": "app/gunbuilder/[categoryId]/page.js",
- "/gunbuilder/[categoryId]/[partId]/page": "app/gunbuilder/[categoryId]/[partId]/page.js"
+ "/gunbuilder/page": "app/gunbuilder/page.js",
+ "/gunbuilder/build/page": "app/gunbuilder/build/page.js"
}
\ No newline at end of file
diff --git a/.next/server/app/_not-found/page.js b/.next/server/app/_not-found/page.js
deleted file mode 100644
index 2158863..0000000
--- a/.next/server/app/_not-found/page.js
+++ /dev/null
@@ -1,155 +0,0 @@
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-(() => {
-var exports = {};
-exports.id = "app/_not-found/page";
-exports.ids = ["app/_not-found/page"];
-exports.modules = {
-
-/***/ "./action-async-storage.external":
-/*!****************************************************************************!*\
- !*** external "next/dist/client/components/action-async-storage.external" ***!
- \****************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/action-async-storage.external");
-
-/***/ }),
-
-/***/ "../../client/components/action-async-storage.external":
-/*!*******************************************************************************!*\
- !*** external "next/dist/client/components/action-async-storage.external.js" ***!
- \*******************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/action-async-storage.external.js");
-
-/***/ }),
-
-/***/ "./request-async-storage.external":
-/*!*****************************************************************************!*\
- !*** external "next/dist/client/components/request-async-storage.external" ***!
- \*****************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/request-async-storage.external");
-
-/***/ }),
-
-/***/ "../../client/components/request-async-storage.external":
-/*!********************************************************************************!*\
- !*** external "next/dist/client/components/request-async-storage.external.js" ***!
- \********************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/request-async-storage.external.js");
-
-/***/ }),
-
-/***/ "./static-generation-async-storage.external":
-/*!***************************************************************************************!*\
- !*** external "next/dist/client/components/static-generation-async-storage.external" ***!
- \***************************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/static-generation-async-storage.external");
-
-/***/ }),
-
-/***/ "../../client/components/static-generation-async-storage.external":
-/*!******************************************************************************************!*\
- !*** external "next/dist/client/components/static-generation-async-storage.external.js" ***!
- \******************************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/static-generation-async-storage.external.js");
-
-/***/ }),
-
-/***/ "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");
-
-/***/ }),
-
-/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!":
-/*!*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***!
- \*******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__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 default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\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_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?d969\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __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_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\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_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"originalPathname\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\"TURBOPACK { transition: next-ssr }\";\n\n\n// We inject the tree and pages here so that we can use them in the route\n// module.\nconst tree = {\n children: [\n '',\n {\n children: [\"/_not-found\", {\n children: ['__PAGE__', {}, {\n page: [\n () => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23)),\n \"next/dist/client/components/not-found-error\"\n ]\n }]\n }, {}]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/layout.tsx */ \"(rsc)/./app/layout.tsx\")), \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\"],\n'not-found': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23)), \"next/dist/client/components/not-found-error\"],\n \n }\n ]\n }.children;\nconst pages = [];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/_not-found/page\";\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/_not-found/page\",\n pathname: \"/_not-found\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\",\n appPaths: []\n },\n userland: {\n loaderTree: tree\n }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZfbm90LWZvdW5kJTJGcGFnZSZwYWdlPSUyRl9ub3QtZm91bmQlMkZwYWdlJmFwcFBhdGhzPSZwYWdlUGF0aD1ub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZub3QtZm91bmQtZXJyb3IuanMmYXBwRGlyPSUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRnNlYW4lMkZEZXYlMkZndW5idWlsZGVyLXByb3RvdHlwZSZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGFBQWEsc0JBQXNCO0FBQ2lFO0FBQ3JDO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EscUNBQXFDO0FBQ3JDO0FBQ0Esc0JBQXNCLDBOQUFnRjtBQUN0RztBQUNBO0FBQ0EsYUFBYTtBQUNiLFdBQVcsSUFBSTtBQUNmLFNBQVM7QUFDVDtBQUNBLHlCQUF5Qiw0SUFBd0Y7QUFDakgsb0JBQW9CLDBOQUFnRjtBQUNwRztBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDdUI7QUFDNkQ7QUFDcEYsNkJBQTZCLG1CQUFtQjtBQUNoRDtBQUNPO0FBQ0E7QUFDUDtBQUNBO0FBQ0E7QUFDdUQ7QUFDdkQ7QUFDTyx3QkFBd0IsOEdBQWtCO0FBQ2pEO0FBQ0EsY0FBYyx5RUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCIsInNvdXJjZXMiOlsid2VicGFjazovL2d1bmJ1aWxkZXItcHJvdG90eXBlLz8wZTY0Il0sInNvdXJjZXNDb250ZW50IjpbIlwiVFVSQk9QQUNLIHsgdHJhbnNpdGlvbjogbmV4dC1zc3IgfVwiO1xuaW1wb3J0IHsgQXBwUGFnZVJvdXRlTW9kdWxlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuLy8gV2UgaW5qZWN0IHRoZSB0cmVlIGFuZCBwYWdlcyBoZXJlIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGVtIGluIHRoZSByb3V0ZVxuLy8gbW9kdWxlLlxuY29uc3QgdHJlZSA9IHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgJycsXG4gICAgICAgIHtcbiAgICAgICAgICBjaGlsZHJlbjogW1wiL19ub3QtZm91bmRcIiwge1xuICAgICAgICAgICAgY2hpbGRyZW46IFsnX19QQUdFX18nLCB7fSwge1xuICAgICAgICAgICAgICBwYWdlOiBbXG4gICAgICAgICAgICAgICAgKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWVycm9yXCIpLFxuICAgICAgICAgICAgICAgIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvclwiXG4gICAgICAgICAgICAgIF1cbiAgICAgICAgICAgIH1dXG4gICAgICAgICAgfSwge31dXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgJ2xheW91dCc6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9hcHAvbGF5b3V0LnRzeFwiKSwgXCIvVXNlcnMvc2Vhbi9EZXYvZ3VuYnVpbGRlci1wcm90b3R5cGUvYXBwL2xheW91dC50c3hcIl0sXG4nbm90LWZvdW5kJzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvclwiKSwgXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWVycm9yXCJdLFxuICAgICAgICBcbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0uY2hpbGRyZW47XG5jb25zdCBwYWdlcyA9IFtdO1xuZXhwb3J0IHsgdHJlZSwgcGFnZXMgfTtcbmV4cG9ydCB7IGRlZmF1bHQgYXMgR2xvYmFsRXJyb3IgfSBmcm9tIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2Vycm9yLWJvdW5kYXJ5XCI7XG5jb25zdCBfX25leHRfYXBwX3JlcXVpcmVfXyA9IF9fd2VicGFja19yZXF1aXJlX19cbmNvbnN0IF9fbmV4dF9hcHBfbG9hZF9jaHVua19fID0gKCkgPT4gUHJvbWlzZS5yZXNvbHZlKClcbmV4cG9ydCBjb25zdCBvcmlnaW5hbFBhdGhuYW1lID0gXCIvX25vdC1mb3VuZC9wYWdlXCI7XG5leHBvcnQgY29uc3QgX19uZXh0X2FwcF9fID0ge1xuICAgIHJlcXVpcmU6IF9fbmV4dF9hcHBfcmVxdWlyZV9fLFxuICAgIGxvYWRDaHVuazogX19uZXh0X2FwcF9sb2FkX2NodW5rX19cbn07XG5leHBvcnQgKiBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2VcIjtcbi8vIENyZWF0ZSBhbmQgZXhwb3J0IHRoZSByb3V0ZSBtb2R1bGUgdGhhdCB3aWxsIGJlIGNvbnN1bWVkLlxuZXhwb3J0IGNvbnN0IHJvdXRlTW9kdWxlID0gbmV3IEFwcFBhZ2VSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgIHBhZ2U6IFwiL19ub3QtZm91bmQvcGFnZVwiLFxuICAgICAgICBwYXRobmFtZTogXCIvX25vdC1mb3VuZFwiLFxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZW4ndCB1c2VkIGluIHByb2R1Y3Rpb24uXG4gICAgICAgIGJ1bmRsZVBhdGg6IFwiXCIsXG4gICAgICAgIGZpbGVuYW1lOiBcIlwiLFxuICAgICAgICBhcHBQYXRoczogW11cbiAgICB9LFxuICAgIHVzZXJsYW5kOiB7XG4gICAgICAgIGxvYWRlclRyZWU6IHRyZWVcbiAgICB9XG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXBhZ2UuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n");
-
-/***/ }),
-
-/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
- \********************************************************************************************************************************************************************************************************************************/
-/***/ (() => {
-
-
-
-/***/ }),
-
-/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.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/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\n;\nPromise.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/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/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/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGYXBwLXJvdXRlci5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRnNlYW4lMkZEZXYlMkZndW5idWlsZGVyLXByb3RvdHlwZSUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmNsaWVudC1wYWdlLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGZXJyb3ItYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZzZWFuJTJGRGV2JTJGZ3VuYnVpbGRlci1wcm90b3R5cGUlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZsYXlvdXQtcm91dGVyLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbm90LWZvdW5kLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQWdJO0FBQ2hJO0FBQ0Esb09BQWlJO0FBQ2pJO0FBQ0EsME9BQW9JO0FBQ3BJO0FBQ0Esd09BQW1JO0FBQ25JO0FBQ0Esa1BBQXdJO0FBQ3hJO0FBQ0Esc1FBQWtKIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ3VuYnVpbGRlci1wcm90b3R5cGUvPzdiMjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvc2Vhbi9EZXYvZ3VuYnVpbGRlci1wcm90b3R5cGUvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvc2Vhbi9EZXYvZ3VuYnVpbGRlci1wcm90b3R5cGUvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtcGFnZS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1ib3VuZGFyeS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qc1wiKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");
-
-/***/ }),
-
-/***/ "(rsc)/./app/globals.css":
-/*!*************************!*\
- !*** ./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__ = (\"8e3b978f6080\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvZ2xvYmFscy5jc3MiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlFQUFlLGNBQWM7QUFDN0IsSUFBSSxLQUFVLEVBQUUsRUFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ndW5idWlsZGVyLXByb3RvdHlwZS8uL2FwcC9nbG9iYWxzLmNzcz9jZDI4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiOGUzYjk3OGY2MDgwXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./app/globals.css\n");
-
-/***/ }),
-
-/***/ "(rsc)/./app/layout.tsx":
-/*!************************!*\
- !*** ./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 */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata)\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/future/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 _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./app/globals.css\");\n\n\nconst metadata = {\n title: \"Gunbuilder Prototype | Shadow Standard\",\n description: \"Prototype AR-15 build tool by Shadow Standard.\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"en\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n children: children\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\",\n lineNumber: 12,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\",\n lineNumber: 11,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvbGF5b3V0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBdUI7QUFHaEIsTUFBTUEsV0FBVztJQUN0QkMsT0FBTztJQUNQQyxhQUFhO0FBQ2YsRUFBRTtBQUVhLFNBQVNDLFdBQVcsRUFBRUMsUUFBUSxFQUEyQjtJQUN0RSxxQkFDRSw4REFBQ0M7UUFBS0MsTUFBSztrQkFDVCw0RUFBQ0M7c0JBQU1IOzs7Ozs7Ozs7OztBQUdiIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ3VuYnVpbGRlci1wcm90b3R5cGUvLi9hcHAvbGF5b3V0LnRzeD85OTg4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIi4vZ2xvYmFscy5jc3NcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBtZXRhZGF0YSA9IHtcbiAgdGl0bGU6IFwiR3VuYnVpbGRlciBQcm90b3R5cGUgfCBTaGFkb3cgU3RhbmRhcmRcIixcbiAgZGVzY3JpcHRpb246IFwiUHJvdG90eXBlIEFSLTE1IGJ1aWxkIHRvb2wgYnkgU2hhZG93IFN0YW5kYXJkLlwiLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPGh0bWwgbGFuZz1cImVuXCI+XG4gICAgICA8Ym9keT57Y2hpbGRyZW59PC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJtZXRhZGF0YSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJSb290TGF5b3V0IiwiY2hpbGRyZW4iLCJodG1sIiwibGFuZyIsImJvZHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./app/layout.tsx\n");
-
-/***/ })
-
-};
-;
-
-// 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/next","vendor-chunks/@swc"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
-module.exports = __webpack_exports__;
-
-})();
\ No newline at end of file
diff --git a/.next/server/app/_not-found/page_client-reference-manifest.js b/.next/server/app/_not-found/page_client-reference-manifest.js
deleted file mode 100644
index bfa5626..0000000
--- a/.next/server/app/_not-found/page_client-reference-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/_not-found/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/link.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/link.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/[partId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/build/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/page.tsx","name":"*","chunks":[],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx","name":"*","chunks":[],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/sean/Dev/gunbuilder-prototype/":[],"/Users/sean/Dev/gunbuilder-prototype/app/page":[],"/Users/sean/Dev/gunbuilder-prototype/app/layout":["static/css/app/layout.css"],"/Users/sean/Dev/gunbuilder-prototype/app/_not-found/page":[]}}
\ No newline at end of file
diff --git a/.next/server/app/gunbuilder/[categoryId]/[partId]/page.js b/.next/server/app/gunbuilder/[categoryId]/[partId]/page.js
deleted file mode 100644
index 15ac1f7..0000000
--- a/.next/server/app/gunbuilder/[categoryId]/[partId]/page.js
+++ /dev/null
@@ -1,249 +0,0 @@
-/*
- * 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/gunbuilder/[categoryId]/[partId]/page";
-exports.ids = ["app/gunbuilder/[categoryId]/[partId]/page"];
-exports.modules = {
-
-/***/ "./action-async-storage.external":
-/*!****************************************************************************!*\
- !*** external "next/dist/client/components/action-async-storage.external" ***!
- \****************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/action-async-storage.external");
-
-/***/ }),
-
-/***/ "../../client/components/action-async-storage.external":
-/*!*******************************************************************************!*\
- !*** external "next/dist/client/components/action-async-storage.external.js" ***!
- \*******************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/action-async-storage.external.js");
-
-/***/ }),
-
-/***/ "./request-async-storage.external":
-/*!*****************************************************************************!*\
- !*** external "next/dist/client/components/request-async-storage.external" ***!
- \*****************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/request-async-storage.external");
-
-/***/ }),
-
-/***/ "../../client/components/request-async-storage.external":
-/*!********************************************************************************!*\
- !*** external "next/dist/client/components/request-async-storage.external.js" ***!
- \********************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/request-async-storage.external.js");
-
-/***/ }),
-
-/***/ "./static-generation-async-storage.external":
-/*!***************************************************************************************!*\
- !*** external "next/dist/client/components/static-generation-async-storage.external" ***!
- \***************************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/static-generation-async-storage.external");
-
-/***/ }),
-
-/***/ "../../client/components/static-generation-async-storage.external":
-/*!******************************************************************************************!*\
- !*** external "next/dist/client/components/static-generation-async-storage.external.js" ***!
- \******************************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/static-generation-async-storage.external.js");
-
-/***/ }),
-
-/***/ "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");
-
-/***/ }),
-
-/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!":
-/*!******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***!
- \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__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 default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\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_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?d969\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __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_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\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_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"originalPathname\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\"TURBOPACK { transition: next-ssr }\";\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 'gunbuilder',\n {\n children: [\n '[categoryId]',\n {\n children: [\n '[partId]',\n {\n children: ['__PAGE__', {}, {\n page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/gunbuilder/[categoryId]/[partId]/page.tsx */ \"(rsc)/./app/gunbuilder/[categoryId]/[partId]/page.tsx\")), \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/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 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/layout.tsx */ \"(rsc)/./app/layout.tsx\")), \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\"],\n'not-found': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23)), \"next/dist/client/components/not-found-error\"],\n \n }\n ]\n }.children;\nconst pages = [\"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/gunbuilder/[categoryId]/[partId]/page\";\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/gunbuilder/[categoryId]/[partId]/page\",\n pathname: \"/gunbuilder/[categoryId]/[partId]\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\",\n appPaths: []\n },\n userland: {\n loaderTree: tree\n }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZndW5idWlsZGVyJTJGJTVCY2F0ZWdvcnlJZCU1RCUyRiU1QnBhcnRJZCU1RCUyRnBhZ2UmcGFnZT0lMkZndW5idWlsZGVyJTJGJTVCY2F0ZWdvcnlJZCU1RCUyRiU1QnBhcnRJZCU1RCUyRnBhZ2UmYXBwUGF0aHM9JTJGZ3VuYnVpbGRlciUyRiU1QmNhdGVnb3J5SWQlNUQlMkYlNUJwYXJ0SWQlNUQlMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGZ3VuYnVpbGRlciUyRiU1QmNhdGVnb3J5SWQlNUQlMkYlNUJwYXJ0SWQlNUQlMkZwYWdlLnRzeCZhcHBEaXI9JTJGVXNlcnMlMkZzZWFuJTJGRGV2JTJGZ3VuYnVpbGRlci1wcm90b3R5cGUlMkZhcHAmcGFnZUV4dGVuc2lvbnM9dHN4JnBhZ2VFeHRlbnNpb25zPXRzJnBhZ2VFeHRlbnNpb25zPWpzeCZwYWdlRXh0ZW5zaW9ucz1qcyZyb290RGlyPSUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJmlzRGV2PXRydWUmdHNjb25maWdQYXRoPXRzY29uZmlnLmpzb24mYmFzZVBhdGg9JmFzc2V0UHJlZml4PSZuZXh0Q29uZmlnT3V0cHV0PSZwcmVmZXJyZWRSZWdpb249Jm1pZGRsZXdhcmVDb25maWc9ZTMwJTNEISIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsYUFBYSxzQkFBc0I7QUFDaUU7QUFDckM7QUFDL0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsaUNBQWlDO0FBQ2pDLHVCQUF1QiwwTUFBdUg7QUFDOUk7QUFDQSxTQUFTO0FBQ1QsT0FBTztBQUNQO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQO0FBQ0EseUJBQXlCLDRJQUF3RjtBQUNqSCxvQkFBb0IsME5BQWdGO0FBQ3BHO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUN1QjtBQUM2RDtBQUNwRiw2QkFBNkIsbUJBQW1CO0FBQ2hEO0FBQ087QUFDQTtBQUNQO0FBQ0E7QUFDQTtBQUN1RDtBQUN2RDtBQUNPLHdCQUF3Qiw4R0FBa0I7QUFDakQ7QUFDQSxjQUFjLHlFQUFTO0FBQ3ZCO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDtBQUNBO0FBQ0E7QUFDQSxDQUFDOztBQUVEIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ3VuYnVpbGRlci1wcm90b3R5cGUvP2RlNWIiXSwic291cmNlc0NvbnRlbnQiOlsiXCJUVVJCT1BBQ0sgeyB0cmFuc2l0aW9uOiBuZXh0LXNzciB9XCI7XG5pbXBvcnQgeyBBcHBQYWdlUm91dGVNb2R1bGUgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUtbW9kdWxlcy9hcHAtcGFnZS9tb2R1bGUuY29tcGlsZWRcIjtcbmltcG9ydCB7IFJvdXRlS2luZCB9IGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2Z1dHVyZS9yb3V0ZS1raW5kXCI7XG4vLyBXZSBpbmplY3QgdGhlIHRyZWUgYW5kIHBhZ2VzIGhlcmUgc28gdGhhdCB3ZSBjYW4gdXNlIHRoZW0gaW4gdGhlIHJvdXRlXG4vLyBtb2R1bGUuXG5jb25zdCB0cmVlID0ge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAnJyxcbiAgICAgICAge1xuICAgICAgICBjaGlsZHJlbjogW1xuICAgICAgICAnZ3VuYnVpbGRlcicsXG4gICAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgJ1tjYXRlZ29yeUlkXScsXG4gICAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgJ1twYXJ0SWRdJyxcbiAgICAgICAge1xuICAgICAgICBjaGlsZHJlbjogWydfX1BBR0VfXycsIHt9LCB7XG4gICAgICAgICAgcGFnZTogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9bcGFydElkXS9wYWdlLnRzeFwiKSwgXCIvVXNlcnMvc2Vhbi9EZXYvZ3VuYnVpbGRlci1wcm90b3R5cGUvYXBwL2d1bmJ1aWxkZXIvW2NhdGVnb3J5SWRdL1twYXJ0SWRdL3BhZ2UudHN4XCJdLFxuICAgICAgICAgIFxuICAgICAgICB9XVxuICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICBcbiAgICAgICAgXG4gICAgICB9XG4gICAgICBdXG4gICAgICB9LFxuICAgICAgICB7XG4gICAgICAgIFxuICAgICAgICBcbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgXG4gICAgICAgIFxuICAgICAgfVxuICAgICAgXVxuICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAnbGF5b3V0JzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL2FwcC9sYXlvdXQudHN4XCIpLCBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9hcHAvbGF5b3V0LnRzeFwiXSxcbidub3QtZm91bmQnOiBbKCkgPT4gaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWVycm9yXCIpLCBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9ub3QtZm91bmQtZXJyb3JcIl0sXG4gICAgICAgIFxuICAgICAgfVxuICAgICAgXVxuICAgICAgfS5jaGlsZHJlbjtcbmNvbnN0IHBhZ2VzID0gW1wiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9bcGFydElkXS9wYWdlLnRzeFwiXTtcbmV4cG9ydCB7IHRyZWUsIHBhZ2VzIH07XG5leHBvcnQgeyBkZWZhdWx0IGFzIEdsb2JhbEVycm9yIH0gZnJvbSBcIm5leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9lcnJvci1ib3VuZGFyeVwiO1xuY29uc3QgX19uZXh0X2FwcF9yZXF1aXJlX18gPSBfX3dlYnBhY2tfcmVxdWlyZV9fXG5jb25zdCBfX25leHRfYXBwX2xvYWRfY2h1bmtfXyA9ICgpID0+IFByb21pc2UucmVzb2x2ZSgpXG5leHBvcnQgY29uc3Qgb3JpZ2luYWxQYXRobmFtZSA9IFwiL2d1bmJ1aWxkZXIvW2NhdGVnb3J5SWRdL1twYXJ0SWRdL3BhZ2VcIjtcbmV4cG9ydCBjb25zdCBfX25leHRfYXBwX18gPSB7XG4gICAgcmVxdWlyZTogX19uZXh0X2FwcF9yZXF1aXJlX18sXG4gICAgbG9hZENodW5rOiBfX25leHRfYXBwX2xvYWRfY2h1bmtfX1xufTtcbmV4cG9ydCAqIGZyb20gXCJuZXh0L2Rpc3Qvc2VydmVyL2FwcC1yZW5kZXIvZW50cnktYmFzZVwiO1xuLy8gQ3JlYXRlIGFuZCBleHBvcnQgdGhlIHJvdXRlIG1vZHVsZSB0aGF0IHdpbGwgYmUgY29uc3VtZWQuXG5leHBvcnQgY29uc3Qgcm91dGVNb2R1bGUgPSBuZXcgQXBwUGFnZVJvdXRlTW9kdWxlKHtcbiAgICBkZWZpbml0aW9uOiB7XG4gICAgICAgIGtpbmQ6IFJvdXRlS2luZC5BUFBfUEFHRSxcbiAgICAgICAgcGFnZTogXCIvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vW3BhcnRJZF0vcGFnZVwiLFxuICAgICAgICBwYXRobmFtZTogXCIvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vW3BhcnRJZF1cIixcbiAgICAgICAgLy8gVGhlIGZvbGxvd2luZyBhcmVuJ3QgdXNlZCBpbiBwcm9kdWN0aW9uLlxuICAgICAgICBidW5kbGVQYXRoOiBcIlwiLFxuICAgICAgICBmaWxlbmFtZTogXCJcIixcbiAgICAgICAgYXBwUGF0aHM6IFtdXG4gICAgfSxcbiAgICB1c2VybGFuZDoge1xuICAgICAgICBsb2FkZXJUcmVlOiB0cmVlXG4gICAgfVxufSk7XG5cbi8vIyBzb3VyY2VNYXBwaW5nVVJMPWFwcC1wYWdlLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n");
-
-/***/ }),
-
-/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
- \********************************************************************************************************************************************************************************************************************************/
-/***/ (() => {
-
-
-
-/***/ }),
-
-/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.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__, /*! ./app/gunbuilder/[categoryId]/[partId]/page.tsx */ \"(ssr)/./app/gunbuilder/[categoryId]/[partId]/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGYXBwJTJGZ3VuYnVpbGRlciUyRiU1QmNhdGVnb3J5SWQlNUQlMkYlNUJwYXJ0SWQlNUQlMkZwYWdlLnRzeCUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsME1BQXVIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ3VuYnVpbGRlci1wcm90b3R5cGUvPzQxZDgiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvc2Vhbi9EZXYvZ3VuYnVpbGRlci1wcm90b3R5cGUvYXBwL2d1bmJ1aWxkZXIvW2NhdGVnb3J5SWRdL1twYXJ0SWRdL3BhZ2UudHN4XCIpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.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/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\n;\nPromise.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/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/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/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGYXBwLXJvdXRlci5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRnNlYW4lMkZEZXYlMkZndW5idWlsZGVyLXByb3RvdHlwZSUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmNsaWVudC1wYWdlLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGZXJyb3ItYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZzZWFuJTJGRGV2JTJGZ3VuYnVpbGRlci1wcm90b3R5cGUlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZsYXlvdXQtcm91dGVyLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbm90LWZvdW5kLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQWdJO0FBQ2hJO0FBQ0Esb09BQWlJO0FBQ2pJO0FBQ0EsME9BQW9JO0FBQ3BJO0FBQ0Esd09BQW1JO0FBQ25JO0FBQ0Esa1BBQXdJO0FBQ3hJO0FBQ0Esc1FBQWtKIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ3VuYnVpbGRlci1wcm90b3R5cGUvPzdiMjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvc2Vhbi9EZXYvZ3VuYnVpbGRlci1wcm90b3R5cGUvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvc2Vhbi9EZXYvZ3VuYnVpbGRlci1wcm90b3R5cGUvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtcGFnZS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1ib3VuZGFyeS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qc1wiKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!\n");
-
-/***/ }),
-
-/***/ "(ssr)/./app/gunbuilder/[categoryId]/[partId]/data.ts":
-/*!******************************************************!*\
- !*** ./app/gunbuilder/[categoryId]/[partId]/data.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 */ getPricingHistory: () => (/* binding */ getPricingHistory),\n/* harmony export */ getRetailerOffers: () => (/* binding */ getRetailerOffers)\n/* harmony export */ });\n// Simulated data functions - Replace these with API calls when ready\n// Example: export async function getPricingHistory(partId: string) { ... }\n/**\n * Get pricing history for a part\n * TODO: Replace with API call: GET /api/parts/{partId}/pricing-history\n */ function getPricingHistory(partId, basePrice) {\n // Generate 30 days of price history with some variation\n const days = 30;\n const history = [];\n const today = new Date();\n for(let i = days - 1; i >= 0; i--){\n const date = new Date(today);\n date.setDate(date.getDate() - i);\n // Simulate price fluctuations (±15% variation)\n const variation = (Math.random() - 0.5) * 0.3; // -15% to +15%\n const price = basePrice * (1 + variation);\n history.push({\n date: date.toISOString().split(\"T\")[0],\n price: Math.round(price * 100) / 100\n });\n }\n return history;\n}\n/**\n * Get retailer offers for a part\n * TODO: Replace with API call: GET /api/parts/{partId}/retailers\n */ function getRetailerOffers(partId, basePrice, baseAffiliateUrl) {\n const retailers = [\n \"Primary Arms\",\n \"Brownells\",\n \"Optics Planet\",\n \"MidwayUSA\",\n \"Palmetto State Armory\"\n ];\n return retailers.map((retailer, index)=>{\n // Simulate price variations between retailers\n const priceVariation = (Math.random() - 0.4) * 0.2; // -8% to +12%\n const price = basePrice * (1 + priceVariation);\n const hasSale = Math.random() > 0.6; // 40% chance of sale\n const originalPrice = hasSale ? price * 1.15 : undefined;\n const inStock = Math.random() > 0.2; // 80% chance in stock\n return {\n id: `retailer-${index}`,\n retailerName: retailer,\n price: Math.round(price * 100) / 100,\n originalPrice: originalPrice ? Math.round(originalPrice * 100) / 100 : undefined,\n inStock,\n affiliateUrl: baseAffiliateUrl.replace(\"example.com\", `${retailer.toLowerCase().replace(/\\s+/g, \"\")}.com`),\n lastUpdated: new Date().toISOString()\n };\n }).sort((a, b)=>a.price - b.price); // Sort by price ascending\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vW3BhcnRJZF0vZGF0YS50cyIsIm1hcHBpbmdzIjoiOzs7OztBQUFBLHFFQUFxRTtBQUNyRSwyRUFBMkU7QUFpQjNFOzs7Q0FHQyxHQUNNLFNBQVNBLGtCQUNkQyxNQUFjLEVBQ2RDLFNBQWlCO0lBRWpCLHdEQUF3RDtJQUN4RCxNQUFNQyxPQUFPO0lBQ2IsTUFBTUMsVUFBK0IsRUFBRTtJQUN2QyxNQUFNQyxRQUFRLElBQUlDO0lBRWxCLElBQUssSUFBSUMsSUFBSUosT0FBTyxHQUFHSSxLQUFLLEdBQUdBLElBQUs7UUFDbEMsTUFBTUMsT0FBTyxJQUFJRixLQUFLRDtRQUN0QkcsS0FBS0MsT0FBTyxDQUFDRCxLQUFLRSxPQUFPLEtBQUtIO1FBRTlCLCtDQUErQztRQUMvQyxNQUFNSSxZQUFZLENBQUNDLEtBQUtDLE1BQU0sS0FBSyxHQUFFLElBQUssS0FBSyxlQUFlO1FBQzlELE1BQU1DLFFBQVFaLFlBQWEsS0FBSVMsU0FBUTtRQUV2Q1AsUUFBUVcsSUFBSSxDQUFDO1lBQ1hQLE1BQU1BLEtBQUtRLFdBQVcsR0FBR0MsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3RDSCxPQUFPRixLQUFLTSxLQUFLLENBQUNKLFFBQVEsT0FBTztRQUNuQztJQUNGO0lBRUEsT0FBT1Y7QUFDVDtBQUVBOzs7Q0FHQyxHQUNNLFNBQVNlLGtCQUNkbEIsTUFBYyxFQUNkQyxTQUFpQixFQUNqQmtCLGdCQUF3QjtJQUV4QixNQUFNQyxZQUFZO1FBQ2hCO1FBQ0E7UUFDQTtRQUNBO1FBQ0E7S0FDRDtJQUVELE9BQU9BLFVBQVVDLEdBQUcsQ0FBQyxDQUFDQyxVQUFVQztRQUM5Qiw4Q0FBOEM7UUFDOUMsTUFBTUMsaUJBQWlCLENBQUNiLEtBQUtDLE1BQU0sS0FBSyxHQUFFLElBQUssS0FBSyxjQUFjO1FBQ2xFLE1BQU1DLFFBQVFaLFlBQWEsS0FBSXVCLGNBQWE7UUFDNUMsTUFBTUMsVUFBVWQsS0FBS0MsTUFBTSxLQUFLLEtBQUsscUJBQXFCO1FBQzFELE1BQU1jLGdCQUFnQkQsVUFBVVosUUFBUSxPQUFPYztRQUMvQyxNQUFNQyxVQUFVakIsS0FBS0MsTUFBTSxLQUFLLEtBQUssc0JBQXNCO1FBRTNELE9BQU87WUFDTGlCLElBQUksQ0FBQyxTQUFTLEVBQUVOLE1BQU0sQ0FBQztZQUN2Qk8sY0FBY1I7WUFDZFQsT0FBT0YsS0FBS00sS0FBSyxDQUFDSixRQUFRLE9BQU87WUFDakNhLGVBQWVBLGdCQUNYZixLQUFLTSxLQUFLLENBQUNTLGdCQUFnQixPQUFPLE1BQ2xDQztZQUNKQztZQUNBRyxjQUFjWixpQkFBaUJhLE9BQU8sQ0FBQyxlQUFlLENBQUMsRUFBRVYsU0FBU1csV0FBVyxHQUFHRCxPQUFPLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQztZQUN6R0UsYUFBYSxJQUFJN0IsT0FBT1UsV0FBVztRQUNyQztJQUNGLEdBQUdvQixJQUFJLENBQUMsQ0FBQ0MsR0FBR0MsSUFBTUQsRUFBRXZCLEtBQUssR0FBR3dCLEVBQUV4QixLQUFLLEdBQUcsMEJBQTBCO0FBQ2xFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ3VuYnVpbGRlci1wcm90b3R5cGUvLi9hcHAvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vW3BhcnRJZF0vZGF0YS50cz9kNzM1Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNpbXVsYXRlZCBkYXRhIGZ1bmN0aW9ucyAtIFJlcGxhY2UgdGhlc2Ugd2l0aCBBUEkgY2FsbHMgd2hlbiByZWFkeVxuLy8gRXhhbXBsZTogZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFByaWNpbmdIaXN0b3J5KHBhcnRJZDogc3RyaW5nKSB7IC4uLiB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VIaXN0b3J5UG9pbnQge1xuICBkYXRlOiBzdHJpbmc7IC8vIElTTyBkYXRlIHN0cmluZ1xuICBwcmljZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJldGFpbGVyT2ZmZXIge1xuICBpZDogc3RyaW5nO1xuICByZXRhaWxlck5hbWU6IHN0cmluZztcbiAgcHJpY2U6IG51bWJlcjtcbiAgb3JpZ2luYWxQcmljZT86IG51bWJlcjtcbiAgaW5TdG9jazogYm9vbGVhbjtcbiAgYWZmaWxpYXRlVXJsOiBzdHJpbmc7XG4gIGxhc3RVcGRhdGVkOiBzdHJpbmc7IC8vIElTTyBkYXRlIHN0cmluZ1xufVxuXG4vKipcbiAqIEdldCBwcmljaW5nIGhpc3RvcnkgZm9yIGEgcGFydFxuICogVE9ETzogUmVwbGFjZSB3aXRoIEFQSSBjYWxsOiBHRVQgL2FwaS9wYXJ0cy97cGFydElkfS9wcmljaW5nLWhpc3RvcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFByaWNpbmdIaXN0b3J5KFxuICBwYXJ0SWQ6IHN0cmluZyxcbiAgYmFzZVByaWNlOiBudW1iZXIsXG4pOiBQcmljZUhpc3RvcnlQb2ludFtdIHtcbiAgLy8gR2VuZXJhdGUgMzAgZGF5cyBvZiBwcmljZSBoaXN0b3J5IHdpdGggc29tZSB2YXJpYXRpb25cbiAgY29uc3QgZGF5cyA9IDMwO1xuICBjb25zdCBoaXN0b3J5OiBQcmljZUhpc3RvcnlQb2ludFtdID0gW107XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcblxuICBmb3IgKGxldCBpID0gZGF5cyAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTtcbiAgICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgLSBpKTtcblxuICAgIC8vIFNpbXVsYXRlIHByaWNlIGZsdWN0dWF0aW9ucyAowrExNSUgdmFyaWF0aW9uKVxuICAgIGNvbnN0IHZhcmlhdGlvbiA9IChNYXRoLnJhbmRvbSgpIC0gMC41KSAqIDAuMzsgLy8gLTE1JSB0byArMTUlXG4gICAgY29uc3QgcHJpY2UgPSBiYXNlUHJpY2UgKiAoMSArIHZhcmlhdGlvbik7XG5cbiAgICBoaXN0b3J5LnB1c2goe1xuICAgICAgZGF0ZTogZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXSxcbiAgICAgIHByaWNlOiBNYXRoLnJvdW5kKHByaWNlICogMTAwKSAvIDEwMCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBoaXN0b3J5O1xufVxuXG4vKipcbiAqIEdldCByZXRhaWxlciBvZmZlcnMgZm9yIGEgcGFydFxuICogVE9ETzogUmVwbGFjZSB3aXRoIEFQSSBjYWxsOiBHRVQgL2FwaS9wYXJ0cy97cGFydElkfS9yZXRhaWxlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJldGFpbGVyT2ZmZXJzKFxuICBwYXJ0SWQ6IHN0cmluZyxcbiAgYmFzZVByaWNlOiBudW1iZXIsXG4gIGJhc2VBZmZpbGlhdGVVcmw6IHN0cmluZyxcbik6IFJldGFpbGVyT2ZmZXJbXSB7XG4gIGNvbnN0IHJldGFpbGVycyA9IFtcbiAgICBcIlByaW1hcnkgQXJtc1wiLFxuICAgIFwiQnJvd25lbGxzXCIsXG4gICAgXCJPcHRpY3MgUGxhbmV0XCIsXG4gICAgXCJNaWR3YXlVU0FcIixcbiAgICBcIlBhbG1ldHRvIFN0YXRlIEFybW9yeVwiLFxuICBdO1xuXG4gIHJldHVybiByZXRhaWxlcnMubWFwKChyZXRhaWxlciwgaW5kZXgpID0+IHtcbiAgICAvLyBTaW11bGF0ZSBwcmljZSB2YXJpYXRpb25zIGJldHdlZW4gcmV0YWlsZXJzXG4gICAgY29uc3QgcHJpY2VWYXJpYXRpb24gPSAoTWF0aC5yYW5kb20oKSAtIDAuNCkgKiAwLjI7IC8vIC04JSB0byArMTIlXG4gICAgY29uc3QgcHJpY2UgPSBiYXNlUHJpY2UgKiAoMSArIHByaWNlVmFyaWF0aW9uKTtcbiAgICBjb25zdCBoYXNTYWxlID0gTWF0aC5yYW5kb20oKSA+IDAuNjsgLy8gNDAlIGNoYW5jZSBvZiBzYWxlXG4gICAgY29uc3Qgb3JpZ2luYWxQcmljZSA9IGhhc1NhbGUgPyBwcmljZSAqIDEuMTUgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgaW5TdG9jayA9IE1hdGgucmFuZG9tKCkgPiAwLjI7IC8vIDgwJSBjaGFuY2UgaW4gc3RvY2tcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogYHJldGFpbGVyLSR7aW5kZXh9YCxcbiAgICAgIHJldGFpbGVyTmFtZTogcmV0YWlsZXIsXG4gICAgICBwcmljZTogTWF0aC5yb3VuZChwcmljZSAqIDEwMCkgLyAxMDAsXG4gICAgICBvcmlnaW5hbFByaWNlOiBvcmlnaW5hbFByaWNlXG4gICAgICAgID8gTWF0aC5yb3VuZChvcmlnaW5hbFByaWNlICogMTAwKSAvIDEwMFxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGluU3RvY2ssXG4gICAgICBhZmZpbGlhdGVVcmw6IGJhc2VBZmZpbGlhdGVVcmwucmVwbGFjZShcImV4YW1wbGUuY29tXCIsIGAke3JldGFpbGVyLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzKy9nLCBcIlwiKX0uY29tYCksXG4gICAgICBsYXN0VXBkYXRlZDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIH07XG4gIH0pLnNvcnQoKGEsIGIpID0+IGEucHJpY2UgLSBiLnByaWNlKTsgLy8gU29ydCBieSBwcmljZSBhc2NlbmRpbmdcbn1cblxuIl0sIm5hbWVzIjpbImdldFByaWNpbmdIaXN0b3J5IiwicGFydElkIiwiYmFzZVByaWNlIiwiZGF5cyIsImhpc3RvcnkiLCJ0b2RheSIsIkRhdGUiLCJpIiwiZGF0ZSIsInNldERhdGUiLCJnZXREYXRlIiwidmFyaWF0aW9uIiwiTWF0aCIsInJhbmRvbSIsInByaWNlIiwicHVzaCIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJyb3VuZCIsImdldFJldGFpbGVyT2ZmZXJzIiwiYmFzZUFmZmlsaWF0ZVVybCIsInJldGFpbGVycyIsIm1hcCIsInJldGFpbGVyIiwiaW5kZXgiLCJwcmljZVZhcmlhdGlvbiIsImhhc1NhbGUiLCJvcmlnaW5hbFByaWNlIiwidW5kZWZpbmVkIiwiaW5TdG9jayIsImlkIiwicmV0YWlsZXJOYW1lIiwiYWZmaWxpYXRlVXJsIiwicmVwbGFjZSIsInRvTG93ZXJDYXNlIiwibGFzdFVwZGF0ZWQiLCJzb3J0IiwiYSIsImIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/gunbuilder/[categoryId]/[partId]/data.ts\n");
-
-/***/ }),
-
-/***/ "(ssr)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":
-/*!*******************************************************!*\
- !*** ./app/gunbuilder/[categoryId]/[partId]/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 */ PartDetailPage)\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/future/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/future/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/api/link.js\");\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 _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(ssr)/./data/gunbuilderParts.ts\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./data */ \"(ssr)/./app/gunbuilder/[categoryId]/[partId]/data.ts\");\n/* harmony import */ var _components_PricingHistoryGraph__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/PricingHistoryGraph */ \"(ssr)/./components/PricingHistoryGraph.tsx\");\n/* harmony import */ var _components_RetailersList__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/RetailersList */ \"(ssr)/./components/RetailersList.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \n\n\n\n\n\n\n\nfunction PartDetailPage() {\n const params = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams)();\n const categoryId = params.categoryId;\n const partId = params.partId;\n const category = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.find((c)=>c.id === categoryId), [\n categoryId\n ]);\n const part = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.find((p)=>p.id === partId && p.categoryId === categoryId), [\n partId,\n categoryId\n ]);\n // Get pricing history and retailer offers\n // TODO: Replace with API calls when endpoints are ready\n const pricingHistory = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>part ? (0,_data__WEBPACK_IMPORTED_MODULE_5__.getPricingHistory)(part.id, part.price) : [], [\n part\n ]);\n const retailerOffers = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>part ? (0,_data__WEBPACK_IMPORTED_MODULE_5__.getRetailerOffers)(part.id, part.price, part.affiliateUrl) : [], [\n part\n ]);\n if (!category || !part) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-2xl font-semibold text-zinc-50 mb-4\",\n children: \"Product Not Found\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 47,\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: \"/gunbuilder\",\n className: \"text-amber-300 hover:text-amber-200 underline\",\n children: \"Return to Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 50,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 45,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 44,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: `/gunbuilder/${categoryId}`,\n className: \"text-xs text-zinc-400 hover:text-zinc-300 mb-4 inline-block\",\n children: [\n \"← Back to \",\n category.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 67,\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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 74,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n part.brand,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 78,\n columnNumber: 28\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 77,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: [\n category.name,\n \" • Product Details\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 80,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 73,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 66,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 lg:grid-cols-[2fr,1fr]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-6 md:grid-cols-[1fr,1fr]\",\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)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400 mb-2\",\n children: \"Product Information\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 95,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Brand\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 100,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.brand\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 103,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 99,\n columnNumber: 21\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Model\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 108,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 111,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 107,\n columnNumber: 21\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Category\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 116,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: category.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 119,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 115,\n columnNumber: 21\n }, this),\n part.notes && /*#__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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Details\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 125,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-300 leading-relaxed\",\n children: part.notes\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 128,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 124,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 98,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 94,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full aspect-square max-w-md rounded-md border border-zinc-700 bg-zinc-900/50 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center p-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-16 h-16 mx-auto text-zinc-600 mb-2\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5,\n d: \"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 147,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 140,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide\",\n children: \"Product Image\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 154,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 139,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 138,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 137,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 92,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 91,\n columnNumber: 13\n }, this),\n retailerOffers.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_RetailersList__WEBPACK_IMPORTED_MODULE_7__.RetailersList, {\n retailers: retailerOffers\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 166,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 165,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 89,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/80 p-4 md:p-6 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-400 mb-2\",\n children: \"Price\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 174,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-3xl font-semibold text-amber-300\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 175,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 173,\n columnNumber: 13\n }, this),\n pricingHistory.length > 0 && /*#__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)(_components_PricingHistoryGraph__WEBPACK_IMPORTED_MODULE_6__.PricingHistoryGraph, {\n data: pricingHistory,\n currentPrice: part.price\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 183,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 182,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-auto space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: `/gunbuilder?select=${categoryId}:${part.id}`,\n className: \"block w-full rounded-md border border-amber-400/60 bg-amber-400/10 px-4 py-3 text-sm font-medium text-amber-200 hover:bg-amber-400/15 text-center transition-colors\",\n children: \"Add to Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 191,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: part.affiliateUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"block w-full rounded-md border border-zinc-700 bg-zinc-900/50 px-4 py-3 text-sm font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 text-center transition-colors\",\n children: \"View Retailer\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 197,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 190,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 172,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 87,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 64,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 63,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9hcHAvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vW3BhcnRJZF0vcGFnZS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7O0FBRWdDO0FBQ0g7QUFDZTtBQUNlO0FBRUc7QUFDUztBQUNaO0FBRTVDLFNBQVNTO0lBQ3RCLE1BQU1DLFNBQVNSLDBEQUFTQTtJQUN4QixNQUFNUyxhQUFhRCxPQUFPQyxVQUFVO0lBQ3BDLE1BQU1DLFNBQVNGLE9BQU9FLE1BQU07SUFFNUIsTUFBTUMsV0FBV2IsOENBQU9BLENBQ3RCLElBQU1HLDZEQUFVQSxDQUFDVyxJQUFJLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsRUFBRSxLQUFLTCxhQUN0QztRQUFDQTtLQUFXO0lBR2QsTUFBTU0sT0FBT2pCLDhDQUFPQSxDQUNsQixJQUFNSSx3REFBS0EsQ0FBQ1UsSUFBSSxDQUFDLENBQUNJLElBQU1BLEVBQUVGLEVBQUUsS0FBS0osVUFBVU0sRUFBRVAsVUFBVSxLQUFLQSxhQUM1RDtRQUFDQztRQUFRRDtLQUFXO0lBR3RCLDBDQUEwQztJQUMxQyx3REFBd0Q7SUFDeEQsTUFBTVEsaUJBQWlCbkIsOENBQU9BLENBQzVCLElBQU9pQixPQUFPWix3REFBaUJBLENBQUNZLEtBQUtELEVBQUUsRUFBRUMsS0FBS0csS0FBSyxJQUFJLEVBQUUsRUFDekQ7UUFBQ0g7S0FBSztJQUdSLE1BQU1JLGlCQUFpQnJCLDhDQUFPQSxDQUM1QixJQUNFaUIsT0FDSVgsd0RBQWlCQSxDQUFDVyxLQUFLRCxFQUFFLEVBQUVDLEtBQUtHLEtBQUssRUFBRUgsS0FBS0ssWUFBWSxJQUN4RCxFQUFFLEVBQ1I7UUFBQ0w7S0FBSztJQUdSLElBQUksQ0FBQ0osWUFBWSxDQUFDSSxNQUFNO1FBQ3RCLHFCQUNFLDhEQUFDTTtZQUFLQyxXQUFVO3NCQUNkLDRFQUFDQztnQkFBSUQsV0FBVTswQkFDYiw0RUFBQ0M7b0JBQUlELFdBQVU7O3NDQUNiLDhEQUFDRTs0QkFBR0YsV0FBVTtzQ0FBMkM7Ozs7OztzQ0FHekQsOERBQUN2QixpREFBSUE7NEJBQ0gwQixNQUFLOzRCQUNMSCxXQUFVO3NDQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBT1g7SUFFQSxxQkFDRSw4REFBQ0Q7UUFBS0MsV0FBVTtrQkFDZCw0RUFBQ0M7WUFBSUQsV0FBVTs7OEJBRWIsOERBQUNJO29CQUFPSixXQUFVOztzQ0FDaEIsOERBQUN2QixpREFBSUE7NEJBQ0gwQixNQUFNLENBQUMsWUFBWSxFQUFFaEIsV0FBVyxDQUFDOzRCQUNqQ2EsV0FBVTs7Z0NBQ1g7Z0NBQ1lYLFNBQVNnQixJQUFJOzs7Ozs7O3NDQUUxQiw4REFBQ0o7OzhDQUNDLDhEQUFDUDtvQ0FBRU0sV0FBVTs4Q0FBaUU7Ozs7Ozs4Q0FHOUUsOERBQUNFO29DQUFHRixXQUFVOzt3Q0FDWFAsS0FBS2EsS0FBSzt3Q0FBQztzREFBQyw4REFBQ0M7NENBQUtQLFdBQVU7c0RBQWtCUCxLQUFLWSxJQUFJOzs7Ozs7Ozs7Ozs7OENBRTFELDhEQUFDWDtvQ0FBRU0sV0FBVTs7d0NBQ1ZYLFNBQVNnQixJQUFJO3dDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQU1yQiw4REFBQ0o7b0JBQUlELFdBQVU7O3NDQUViLDhEQUFDUTs0QkFBUVIsV0FBVTs7OENBRWpCLDhEQUFDQztvQ0FBSUQsV0FBVTs4Q0FDYiw0RUFBQ0M7d0NBQUlELFdBQVU7OzBEQUViLDhEQUFDQzs7a0VBQ0MsOERBQUNBO3dEQUFJRCxXQUFVO2tFQUF1RTs7Ozs7O2tFQUd0Riw4REFBQ0M7d0RBQUlELFdBQVU7OzBFQUNiLDhEQUFDQzs7a0ZBQ0MsOERBQUNBO3dFQUFJRCxXQUFVO2tGQUFxRDs7Ozs7O2tGQUdwRSw4REFBQ0M7d0VBQUlELFdBQVU7a0ZBQ1pQLEtBQUthLEtBQUs7Ozs7Ozs7Ozs7OzswRUFHZiw4REFBQ0w7O2tGQUNDLDhEQUFDQTt3RUFBSUQsV0FBVTtrRkFBcUQ7Ozs7OztrRkFHcEUsOERBQUNDO3dFQUFJRCxXQUFVO2tGQUNaUCxLQUFLWSxJQUFJOzs7Ozs7Ozs7Ozs7MEVBR2QsOERBQUNKOztrRkFDQyw4REFBQ0E7d0VBQUlELFdBQVU7a0ZBQXFEOzs7Ozs7a0ZBR3BFLDhEQUFDQzt3RUFBSUQsV0FBVTtrRkFDWlgsU0FBU2dCLElBQUk7Ozs7Ozs7Ozs7Ozs0REFHakJaLEtBQUtnQixLQUFLLGtCQUNULDhEQUFDUjs7a0ZBQ0MsOERBQUNBO3dFQUFJRCxXQUFVO2tGQUFxRDs7Ozs7O2tGQUdwRSw4REFBQ0M7d0VBQUlELFdBQVU7a0ZBQ1pQLEtBQUtnQixLQUFLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7MERBUXJCLDhEQUFDUjtnREFBSUQsV0FBVTswREFDYiw0RUFBQ0M7b0RBQUlELFdBQVU7OERBQ2IsNEVBQUNDO3dEQUFJRCxXQUFVOzswRUFDYiw4REFBQ1U7Z0VBQ0NWLFdBQVU7Z0VBQ1ZXLE1BQUs7Z0VBQ0xDLFFBQU87Z0VBQ1BDLFNBQVE7Z0VBQ1JDLE9BQU07MEVBRU4sNEVBQUNDO29FQUNDQyxlQUFjO29FQUNkQyxnQkFBZTtvRUFDZkMsYUFBYTtvRUFDYkMsR0FBRTs7Ozs7Ozs7Ozs7MEVBR04sOERBQUN6QjtnRUFBRU0sV0FBVTswRUFBZ0Q7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnQ0FVdEVILGVBQWV1QixNQUFNLEdBQUcsbUJBQ3ZCLDhEQUFDbkI7b0NBQUlELFdBQVU7OENBQ2IsNEVBQUNoQixvRUFBYUE7d0NBQUNxQyxXQUFXeEI7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQU1oQyw4REFBQ3lCOzRCQUFNdEIsV0FBVTs7OENBQ2YsOERBQUNDO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ0M7NENBQUlELFdBQVU7c0RBQTZCOzs7Ozs7c0RBQzVDLDhEQUFDQzs0Q0FBSUQsV0FBVTs7Z0RBQXdDO2dEQUNuRFAsS0FBS0csS0FBSyxDQUFDMkIsT0FBTyxDQUFDOzs7Ozs7Ozs7Ozs7O2dDQUt4QjVCLGVBQWV5QixNQUFNLEdBQUcsbUJBQ3ZCLDhEQUFDbkI7b0NBQUlELFdBQVU7OENBQ2IsNEVBQUNqQixnRkFBbUJBO3dDQUNsQnlDLE1BQU03Qjt3Q0FDTjhCLGNBQWNoQyxLQUFLRyxLQUFLOzs7Ozs7Ozs7Ozs4Q0FLOUIsOERBQUNLO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ3ZCLGlEQUFJQTs0Q0FDSDBCLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRWhCLFdBQVcsQ0FBQyxFQUFFTSxLQUFLRCxFQUFFLENBQUMsQ0FBQzs0Q0FDbkRRLFdBQVU7c0RBQ1g7Ozs7OztzREFHRCw4REFBQzBCOzRDQUNDdkIsTUFBTVYsS0FBS0ssWUFBWTs0Q0FDdkI2QixRQUFPOzRDQUNQQyxLQUFJOzRDQUNKNUIsV0FBVTtzREFDWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTZiIsInNvdXJjZXMiOlsid2VicGFjazovL2d1bmJ1aWxkZXItcHJvdG90eXBlLy4vYXBwL2d1bmJ1aWxkZXIvW2NhdGVnb3J5SWRdL1twYXJ0SWRdL3BhZ2UudHN4PzQyYzEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcbmltcG9ydCB7IHVzZVBhcmFtcyB9IGZyb20gXCJuZXh0L25hdmlnYXRpb25cIjtcbmltcG9ydCB7IENBVEVHT1JJRVMsIFBBUlRTIH0gZnJvbSBcIkAvZGF0YS9ndW5idWlsZGVyUGFydHNcIjtcbmltcG9ydCB0eXBlIHsgQ2F0ZWdvcnlJZCB9IGZyb20gXCJAL3R5cGVzL2d1bmJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFByaWNpbmdIaXN0b3J5LCBnZXRSZXRhaWxlck9mZmVycyB9IGZyb20gXCIuL2RhdGFcIjtcbmltcG9ydCB7IFByaWNpbmdIaXN0b3J5R3JhcGggfSBmcm9tIFwiQC9jb21wb25lbnRzL1ByaWNpbmdIaXN0b3J5R3JhcGhcIjtcbmltcG9ydCB7IFJldGFpbGVyc0xpc3QgfSBmcm9tIFwiQC9jb21wb25lbnRzL1JldGFpbGVyc0xpc3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFydERldGFpbFBhZ2UoKSB7XG4gIGNvbnN0IHBhcmFtcyA9IHVzZVBhcmFtcygpO1xuICBjb25zdCBjYXRlZ29yeUlkID0gcGFyYW1zLmNhdGVnb3J5SWQgYXMgQ2F0ZWdvcnlJZDtcbiAgY29uc3QgcGFydElkID0gcGFyYW1zLnBhcnRJZCBhcyBzdHJpbmc7XG5cbiAgY29uc3QgY2F0ZWdvcnkgPSB1c2VNZW1vKFxuICAgICgpID0+IENBVEVHT1JJRVMuZmluZCgoYykgPT4gYy5pZCA9PT0gY2F0ZWdvcnlJZCksXG4gICAgW2NhdGVnb3J5SWRdLFxuICApO1xuXG4gIGNvbnN0IHBhcnQgPSB1c2VNZW1vKFxuICAgICgpID0+IFBBUlRTLmZpbmQoKHApID0+IHAuaWQgPT09IHBhcnRJZCAmJiBwLmNhdGVnb3J5SWQgPT09IGNhdGVnb3J5SWQpLFxuICAgIFtwYXJ0SWQsIGNhdGVnb3J5SWRdLFxuICApO1xuXG4gIC8vIEdldCBwcmljaW5nIGhpc3RvcnkgYW5kIHJldGFpbGVyIG9mZmVyc1xuICAvLyBUT0RPOiBSZXBsYWNlIHdpdGggQVBJIGNhbGxzIHdoZW4gZW5kcG9pbnRzIGFyZSByZWFkeVxuICBjb25zdCBwcmljaW5nSGlzdG9yeSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHBhcnQgPyBnZXRQcmljaW5nSGlzdG9yeShwYXJ0LmlkLCBwYXJ0LnByaWNlKSA6IFtdKSxcbiAgICBbcGFydF0sXG4gICk7XG5cbiAgY29uc3QgcmV0YWlsZXJPZmZlcnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBwYXJ0XG4gICAgICAgID8gZ2V0UmV0YWlsZXJPZmZlcnMocGFydC5pZCwgcGFydC5wcmljZSwgcGFydC5hZmZpbGlhdGVVcmwpXG4gICAgICAgIDogW10sXG4gICAgW3BhcnRdLFxuICApO1xuXG4gIGlmICghY2F0ZWdvcnkgfHwgIXBhcnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPG1haW4gY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLWJsYWNrIHRleHQtemluYy01MFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14LWF1dG8gbWF4LXctNnhsIHB4LTQgcHktNiBsZzpweS0xMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LXNlbWlib2xkIHRleHQtemluYy01MCBtYi00XCI+XG4gICAgICAgICAgICAgIFByb2R1Y3QgTm90IEZvdW5kXG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgaHJlZj1cIi9ndW5idWlsZGVyXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDAgaG92ZXI6dGV4dC1hbWJlci0yMDAgdW5kZXJsaW5lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgUmV0dXJuIHRvIEd1bmJ1aWxkZXJcbiAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21haW4+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPG1haW4gY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLWJsYWNrIHRleHQtemluYy01MFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJteC1hdXRvIG1heC13LTZ4bCBweC00IHB5LTYgbGc6cHktMTBcIj5cbiAgICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJtYi02XCI+XG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIGhyZWY9e2AvZ3VuYnVpbGRlci8ke2NhdGVnb3J5SWR9YH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTQwMCBob3Zlcjp0ZXh0LXppbmMtMzAwIG1iLTQgaW5saW5lLWJsb2NrXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICDihpAgQmFjayB0byB7Y2F0ZWdvcnkubmFtZX1cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4yZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICAgIFNoYWRvdyBTdGFuZGFyZFxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm10LTEgdGV4dC0yeGwgbWQ6dGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0cmFja2luZy10aWdodFwiPlxuICAgICAgICAgICAgICB7cGFydC5icmFuZH0gPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDBcIj57cGFydC5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0yIHRleHQtc20gdGV4dC16aW5jLTQwMCBtYXgtdy14bFwiPlxuICAgICAgICAgICAgICB7Y2F0ZWdvcnkubmFtZX0g4oCiIFByb2R1Y3QgRGV0YWlsc1xuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICB7LyogUHJvZHVjdCBEZXRhaWxzICovfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ2FwLTQgbGc6Z3JpZC1jb2xzLVsyZnIsMWZyXVwiPlxuICAgICAgICAgIHsvKiBNYWluIENvbnRlbnQgKi99XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XG4gICAgICAgICAgICB7LyogUHJvZHVjdCBJbmZvcm1hdGlvbiAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzYwIHAtNCBtZDpwLTZcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC02IG1kOmdyaWQtY29scy1bMWZyLDFmcl1cIj5cbiAgICAgICAgICAgICAgICB7LyogUHJvZHVjdCBJbmZvICovfVxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMCBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIFByb2R1Y3QgSW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBCcmFuZFxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQuYnJhbmR9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIE1vZGVsXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cGFydC5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBDYXRlZ29yeVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NhdGVnb3J5Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB7cGFydC5ub3RlcyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC16aW5jLTMwMCBsZWFkaW5nLXJlbGF4ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubm90ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgey8qIFByb2R1Y3QgSW1hZ2UgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBhc3BlY3Qtc3F1YXJlIG1heC13LW1kIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTcwMCBiZy16aW5jLTkwMC81MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHAtOFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctMTYgaC0xNiBteC1hdXRvIHRleHQtemluYy02MDAgbWItMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezEuNX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00IDE2bDQuNTg2LTQuNTg2YTIgMiAwIDAxMi44MjggMEwxNiAxNm0tMi0ybDEuNTg2LTEuNTg2YTIgMiAwIDAxMi44MjggMEwyMCAxNG0tNi02aC4wMU02IDIwaDEyYTIgMiAwIDAwMi0yVjZhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyelwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvZHVjdCBJbWFnZVxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIFJldGFpbGVycyBMaXN0ICovfVxuICAgICAgICAgICAge3JldGFpbGVyT2ZmZXJzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci16aW5jLTgwMCBiZy16aW5jLTk1MC82MCBwLTQgbWQ6cC02XCI+XG4gICAgICAgICAgICAgICAgPFJldGFpbGVyc0xpc3QgcmV0YWlsZXJzPXtyZXRhaWxlck9mZmVyc30gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgIHsvKiBTaWRlYmFyICovfVxuICAgICAgICAgIDxhc2lkZSBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy04MDAgYmctemluYy05NTAvODAgcC00IG1kOnAtNiBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy00MDAgbWItMlwiPlByaWNlPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0ZXh0LWFtYmVyLTMwMFwiPlxuICAgICAgICAgICAgICAgICR7cGFydC5wcmljZS50b0ZpeGVkKDIpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogUHJpY2luZyBIaXN0b3J5ICovfVxuICAgICAgICAgICAge3ByaWNpbmdIaXN0b3J5Lmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTZcIj5cbiAgICAgICAgICAgICAgICA8UHJpY2luZ0hpc3RvcnlHcmFwaFxuICAgICAgICAgICAgICAgICAgZGF0YT17cHJpY2luZ0hpc3Rvcnl9XG4gICAgICAgICAgICAgICAgICBjdXJyZW50UHJpY2U9e3BhcnQucHJpY2V9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LWF1dG8gc3BhY2UteS0zXCI+XG4gICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgaHJlZj17YC9ndW5idWlsZGVyP3NlbGVjdD0ke2NhdGVnb3J5SWR9OiR7cGFydC5pZH1gfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2NrIHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYW1iZXItNDAwLzYwIGJnLWFtYmVyLTQwMC8xMCBweC00IHB5LTMgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWFtYmVyLTIwMCBob3ZlcjpiZy1hbWJlci00MDAvMTUgdGV4dC1jZW50ZXIgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQWRkIHRvIEJ1aWxkXG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBocmVmPXtwYXJ0LmFmZmlsaWF0ZVVybH1cbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2NrIHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItemluYy03MDAgYmctemluYy05MDAvNTAgcHgtNCBweS0zIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC16aW5jLTMwMCBob3ZlcjpiZy16aW5jLTgwMCBob3Zlcjpib3JkZXItemluYy02MDAgdGV4dC1jZW50ZXIgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBSZXRhaWxlclxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2FzaWRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgKTtcbn1cblxuIl0sIm5hbWVzIjpbInVzZU1lbW8iLCJMaW5rIiwidXNlUGFyYW1zIiwiQ0FURUdPUklFUyIsIlBBUlRTIiwiZ2V0UHJpY2luZ0hpc3RvcnkiLCJnZXRSZXRhaWxlck9mZmVycyIsIlByaWNpbmdIaXN0b3J5R3JhcGgiLCJSZXRhaWxlcnNMaXN0IiwiUGFydERldGFpbFBhZ2UiLCJwYXJhbXMiLCJjYXRlZ29yeUlkIiwicGFydElkIiwiY2F0ZWdvcnkiLCJmaW5kIiwiYyIsImlkIiwicGFydCIsInAiLCJwcmljaW5nSGlzdG9yeSIsInByaWNlIiwicmV0YWlsZXJPZmZlcnMiLCJhZmZpbGlhdGVVcmwiLCJtYWluIiwiY2xhc3NOYW1lIiwiZGl2IiwiaDEiLCJocmVmIiwiaGVhZGVyIiwibmFtZSIsImJyYW5kIiwic3BhbiIsInNlY3Rpb24iLCJub3RlcyIsInN2ZyIsImZpbGwiLCJzdHJva2UiLCJ2aWV3Qm94IiwieG1sbnMiLCJwYXRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwic3Ryb2tlV2lkdGgiLCJkIiwibGVuZ3RoIiwicmV0YWlsZXJzIiwiYXNpZGUiLCJ0b0ZpeGVkIiwiZGF0YSIsImN1cnJlbnRQcmljZSIsImEiLCJ0YXJnZXQiLCJyZWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(ssr)/./app/gunbuilder/[categoryId]/[partId]/page.tsx\n");
-
-/***/ }),
-
-/***/ "(ssr)/./components/PricingHistoryGraph.tsx":
-/*!********************************************!*\
- !*** ./components/PricingHistoryGraph.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 */ PricingHistoryGraph: () => (/* binding */ PricingHistoryGraph)\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/future/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__ PricingHistoryGraph auto */ \nfunction PricingHistoryGraph({ data, currentPrice }) {\n if (data.length === 0) return null;\n // Calculate chart dimensions\n const width = 100;\n const height = 60;\n const padding = 4;\n // Find min and max prices for scaling\n const prices = data.map((d)=>d.price);\n const minPrice = Math.min(...prices);\n const maxPrice = Math.max(...prices);\n const priceRange = maxPrice - minPrice || 1; // Avoid division by zero\n // Generate path points\n const points = data.map((point, index)=>{\n const x = padding + index / (data.length - 1) * (width - padding * 2);\n const normalizedPrice = (point.price - minPrice) / priceRange;\n const y = padding + (height - padding * 2) * (1 - normalizedPrice);\n return {\n x,\n y,\n price: point.price\n };\n });\n // Create SVG path\n const pathData = points.map((point, index)=>`${index === 0 ? \"M\" : \"L\"} ${point.x} ${point.y}`).join(\" \");\n // Create area path (for gradient fill)\n const areaPath = `${pathData} L ${width - padding} ${height - padding} L ${padding} ${height - padding} Z`;\n // Format date for display\n const formatDate = (dateStr)=>{\n const date = new Date(dateStr);\n return date.toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\"\n });\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4 flex items-center 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)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400\",\n children: \"Price History (30 Days)\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 53,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 text-xs text-zinc-500\",\n children: [\n \"Current: \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300 font-semibold\",\n children: [\n \"$\",\n currentPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 57,\n columnNumber: 22\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 56,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 52,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-500\",\n children: [\n formatDate(data[0].date),\n \" - \",\n formatDate(data[data.length - 1].date)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 60,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 51,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full h-32 rounded-md border border-zinc-800 bg-zinc-900/30 p-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n viewBox: `0 0 ${width} ${height}`,\n className: \"w-full h-full\",\n preserveAspectRatio: \"none\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"linearGradient\", {\n id: \"priceGradient\",\n x1: \"0%\",\n y1: \"0%\",\n x2: \"0%\",\n y2: \"100%\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"0%\",\n stopColor: \"#fbbf24\",\n stopOpacity: \"0.3\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 73,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"100%\",\n stopColor: \"#fbbf24\",\n stopOpacity: \"0.05\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 74,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 72,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 71,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: areaPath,\n fill: \"url(#priceGradient)\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 78,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: pathData,\n fill: \"none\",\n stroke: \"#fbbf24\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 83,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: points[points.length - 1].x,\n cy: points[points.length - 1].y,\n r: \"2\",\n fill: \"#fbbf24\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 92,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 66,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 65,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-2 flex items-center justify-between text-xs text-zinc-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \"Low: $\",\n minPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 102,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \"High: $\",\n maxPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 103,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 101,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 50,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9jb21wb25lbnRzL1ByaWNpbmdIaXN0b3J5R3JhcGgudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFTTyxTQUFTQSxvQkFBb0IsRUFDbENDLElBQUksRUFDSkMsWUFBWSxFQUNhO0lBQ3pCLElBQUlELEtBQUtFLE1BQU0sS0FBSyxHQUFHLE9BQU87SUFFOUIsNkJBQTZCO0lBQzdCLE1BQU1DLFFBQVE7SUFDZCxNQUFNQyxTQUFTO0lBQ2YsTUFBTUMsVUFBVTtJQUVoQixzQ0FBc0M7SUFDdEMsTUFBTUMsU0FBU04sS0FBS08sR0FBRyxDQUFDLENBQUNDLElBQU1BLEVBQUVDLEtBQUs7SUFDdEMsTUFBTUMsV0FBV0MsS0FBS0MsR0FBRyxJQUFJTjtJQUM3QixNQUFNTyxXQUFXRixLQUFLRyxHQUFHLElBQUlSO0lBQzdCLE1BQU1TLGFBQWFGLFdBQVdILFlBQVksR0FBRyx5QkFBeUI7SUFFdEUsdUJBQXVCO0lBQ3ZCLE1BQU1NLFNBQVNoQixLQUFLTyxHQUFHLENBQUMsQ0FBQ1UsT0FBT0M7UUFDOUIsTUFBTUMsSUFBSWQsVUFBVyxRQUFVTCxDQUFBQSxLQUFLRSxNQUFNLEdBQUcsS0FBT0MsQ0FBQUEsUUFBUUUsVUFBVTtRQUN0RSxNQUFNZSxrQkFBa0IsQ0FBQ0gsTUFBTVIsS0FBSyxHQUFHQyxRQUFPLElBQUtLO1FBQ25ELE1BQU1NLElBQUloQixVQUFVLENBQUNELFNBQVNDLFVBQVUsS0FBTSxLQUFJZSxlQUFjO1FBQ2hFLE9BQU87WUFBRUQ7WUFBR0U7WUFBR1osT0FBT1EsTUFBTVIsS0FBSztRQUFDO0lBQ3BDO0lBRUEsa0JBQWtCO0lBQ2xCLE1BQU1hLFdBQVdOLE9BQ2RULEdBQUcsQ0FBQyxDQUFDVSxPQUFPQyxRQUFVLENBQUMsRUFBRUEsVUFBVSxJQUFJLE1BQU0sSUFBSSxDQUFDLEVBQUVELE1BQU1FLENBQUMsQ0FBQyxDQUFDLEVBQUVGLE1BQU1JLENBQUMsQ0FBQyxDQUFDLEVBQ3hFRSxJQUFJLENBQUM7SUFFUix1Q0FBdUM7SUFDdkMsTUFBTUMsV0FBVyxDQUFDLEVBQUVGLFNBQVMsR0FBRyxFQUFFbkIsUUFBUUUsUUFBUSxDQUFDLEVBQUVELFNBQVNDLFFBQVEsR0FBRyxFQUFFQSxRQUFRLENBQUMsRUFBRUQsU0FBU0MsUUFBUSxFQUFFLENBQUM7SUFFMUcsMEJBQTBCO0lBQzFCLE1BQU1vQixhQUFhLENBQUNDO1FBQ2xCLE1BQU1DLE9BQU8sSUFBSUMsS0FBS0Y7UUFDdEIsT0FBT0MsS0FBS0Usa0JBQWtCLENBQUMsU0FBUztZQUFFQyxPQUFPO1lBQVNDLEtBQUs7UUFBVTtJQUMzRTtJQUVBLHFCQUNFLDhEQUFDQztRQUFJQyxXQUFVOzswQkFDYiw4REFBQ0Q7Z0JBQUlDLFdBQVU7O2tDQUNiLDhEQUFDRDs7MENBQ0MsOERBQUNBO2dDQUFJQyxXQUFVOzBDQUFrRTs7Ozs7OzBDQUdqRiw4REFBQ0Q7Z0NBQUlDLFdBQVU7O29DQUE2QjtrREFDakMsOERBQUNDO3dDQUFLRCxXQUFVOzs0Q0FBK0I7NENBQUVoQyxhQUFha0MsT0FBTyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tDQUduRiw4REFBQ0g7d0JBQUlDLFdBQVU7OzRCQUNaUixXQUFXekIsSUFBSSxDQUFDLEVBQUUsQ0FBQzJCLElBQUk7NEJBQUU7NEJBQUlGLFdBQVd6QixJQUFJLENBQUNBLEtBQUtFLE1BQU0sR0FBRyxFQUFFLENBQUN5QixJQUFJOzs7Ozs7Ozs7Ozs7OzBCQUl2RSw4REFBQ0s7Z0JBQUlDLFdBQVU7MEJBQ2IsNEVBQUNHO29CQUNDQyxTQUFTLENBQUMsSUFBSSxFQUFFbEMsTUFBTSxDQUFDLEVBQUVDLE9BQU8sQ0FBQztvQkFDakM2QixXQUFVO29CQUNWSyxxQkFBb0I7O3NDQUVwQiw4REFBQ0M7c0NBQ0MsNEVBQUNDO2dDQUFlQyxJQUFHO2dDQUFnQkMsSUFBRztnQ0FBS0MsSUFBRztnQ0FBS0MsSUFBRztnQ0FBS0MsSUFBRzs7a0RBQzVELDhEQUFDQzt3Q0FBS0MsUUFBTzt3Q0FBS0MsV0FBVTt3Q0FBVUMsYUFBWTs7Ozs7O2tEQUNsRCw4REFBQ0g7d0NBQUtDLFFBQU87d0NBQU9DLFdBQVU7d0NBQVVDLGFBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQUl4RCw4REFBQ0M7NEJBQ0MxQyxHQUFHZ0I7NEJBQ0gyQixNQUFLOzs7Ozs7c0NBR1AsOERBQUNEOzRCQUNDMUMsR0FBR2M7NEJBQ0g2QixNQUFLOzRCQUNMQyxRQUFPOzRCQUNQQyxhQUFZOzRCQUNaQyxlQUFjOzRCQUNkQyxnQkFBZTs7Ozs7O3NDQUdqQiw4REFBQ0M7NEJBQ0NDLElBQUl6QyxNQUFNLENBQUNBLE9BQU9kLE1BQU0sR0FBRyxFQUFFLENBQUNpQixDQUFDOzRCQUMvQnVDLElBQUkxQyxNQUFNLENBQUNBLE9BQU9kLE1BQU0sR0FBRyxFQUFFLENBQUNtQixDQUFDOzRCQUMvQnNDLEdBQUU7NEJBQ0ZSLE1BQUs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBCQUtYLDhEQUFDbkI7Z0JBQUlDLFdBQVU7O2tDQUNiLDhEQUFDQzs7NEJBQUs7NEJBQU94QixTQUFTeUIsT0FBTyxDQUFDOzs7Ozs7O2tDQUM5Qiw4REFBQ0Q7OzRCQUFLOzRCQUFRckIsU0FBU3NCLE9BQU8sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUl2QyIsInNvdXJjZXMiOlsid2VicGFjazovL2d1bmJ1aWxkZXItcHJvdG90eXBlLy4vY29tcG9uZW50cy9QcmljaW5nSGlzdG9yeUdyYXBoLnRzeD82YzVhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgdHlwZSB7IFByaWNlSGlzdG9yeVBvaW50IH0gZnJvbSBcIkAvYXBwL2d1bmJ1aWxkZXIvW2NhdGVnb3J5SWRdL1twYXJ0SWRdL2RhdGFcIjtcblxuaW50ZXJmYWNlIFByaWNpbmdIaXN0b3J5R3JhcGhQcm9wcyB7XG4gIGRhdGE6IFByaWNlSGlzdG9yeVBvaW50W107XG4gIGN1cnJlbnRQcmljZTogbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUHJpY2luZ0hpc3RvcnlHcmFwaCh7XG4gIGRhdGEsXG4gIGN1cnJlbnRQcmljZSxcbn06IFByaWNpbmdIaXN0b3J5R3JhcGhQcm9wcykge1xuICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuXG4gIC8vIENhbGN1bGF0ZSBjaGFydCBkaW1lbnNpb25zXG4gIGNvbnN0IHdpZHRoID0gMTAwO1xuICBjb25zdCBoZWlnaHQgPSA2MDtcbiAgY29uc3QgcGFkZGluZyA9IDQ7XG5cbiAgLy8gRmluZCBtaW4gYW5kIG1heCBwcmljZXMgZm9yIHNjYWxpbmdcbiAgY29uc3QgcHJpY2VzID0gZGF0YS5tYXAoKGQpID0+IGQucHJpY2UpO1xuICBjb25zdCBtaW5QcmljZSA9IE1hdGgubWluKC4uLnByaWNlcyk7XG4gIGNvbnN0IG1heFByaWNlID0gTWF0aC5tYXgoLi4ucHJpY2VzKTtcbiAgY29uc3QgcHJpY2VSYW5nZSA9IG1heFByaWNlIC0gbWluUHJpY2UgfHwgMTsgLy8gQXZvaWQgZGl2aXNpb24gYnkgemVyb1xuXG4gIC8vIEdlbmVyYXRlIHBhdGggcG9pbnRzXG4gIGNvbnN0IHBvaW50cyA9IGRhdGEubWFwKChwb2ludCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCB4ID0gcGFkZGluZyArICgoaW5kZXggLyAoZGF0YS5sZW5ndGggLSAxKSkgKiAod2lkdGggLSBwYWRkaW5nICogMikpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRQcmljZSA9IChwb2ludC5wcmljZSAtIG1pblByaWNlKSAvIHByaWNlUmFuZ2U7XG4gICAgY29uc3QgeSA9IHBhZGRpbmcgKyAoaGVpZ2h0IC0gcGFkZGluZyAqIDIpICogKDEgLSBub3JtYWxpemVkUHJpY2UpO1xuICAgIHJldHVybiB7IHgsIHksIHByaWNlOiBwb2ludC5wcmljZSB9O1xuICB9KTtcblxuICAvLyBDcmVhdGUgU1ZHIHBhdGhcbiAgY29uc3QgcGF0aERhdGEgPSBwb2ludHNcbiAgICAubWFwKChwb2ludCwgaW5kZXgpID0+IGAke2luZGV4ID09PSAwID8gXCJNXCIgOiBcIkxcIn0gJHtwb2ludC54fSAke3BvaW50Lnl9YClcbiAgICAuam9pbihcIiBcIik7XG5cbiAgLy8gQ3JlYXRlIGFyZWEgcGF0aCAoZm9yIGdyYWRpZW50IGZpbGwpXG4gIGNvbnN0IGFyZWFQYXRoID0gYCR7cGF0aERhdGF9IEwgJHt3aWR0aCAtIHBhZGRpbmd9ICR7aGVpZ2h0IC0gcGFkZGluZ30gTCAke3BhZGRpbmd9ICR7aGVpZ2h0IC0gcGFkZGluZ30gWmA7XG5cbiAgLy8gRm9ybWF0IGRhdGUgZm9yIGRpc3BsYXlcbiAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZVN0cik7XG4gICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKFwiZW4tVVNcIiwgeyBtb250aDogXCJzaG9ydFwiLCBkYXk6IFwibnVtZXJpY1wiIH0pO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGxcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMFwiPlxuICAgICAgICAgICAgUHJpY2UgSGlzdG9yeSAoMzAgRGF5cylcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTEgdGV4dC14cyB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICBDdXJyZW50OiA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWFtYmVyLTMwMCBmb250LXNlbWlib2xkXCI+JHtjdXJyZW50UHJpY2UudG9GaXhlZCgyKX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgIHtmb3JtYXREYXRlKGRhdGFbMF0uZGF0ZSl9IC0ge2Zvcm1hdERhdGUoZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGUpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHctZnVsbCBoLTMyIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTgwMCBiZy16aW5jLTkwMC8zMCBwLTNcIj5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgIHZpZXdCb3g9e2AwIDAgJHt3aWR0aH0gJHtoZWlnaHR9YH1cbiAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgaC1mdWxsXCJcbiAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwibm9uZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cInByaWNlR3JhZGllbnRcIiB4MT1cIjAlXCIgeTE9XCIwJVwiIHgyPVwiMCVcIiB5Mj1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMCVcIiBzdG9wQ29sb3I9XCIjZmJiZjI0XCIgc3RvcE9wYWNpdHk9XCIwLjNcIiAvPlxuICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxMDAlXCIgc3RvcENvbG9yPVwiI2ZiYmYyNFwiIHN0b3BPcGFjaXR5PVwiMC4wNVwiIC8+XG4gICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxuICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICB7LyogQXJlYSBmaWxsICovfVxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPXthcmVhUGF0aH1cbiAgICAgICAgICAgIGZpbGw9XCJ1cmwoI3ByaWNlR3JhZGllbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIHsvKiBMaW5lICovfVxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPXtwYXRoRGF0YX1cbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHN0cm9rZT1cIiNmYmJmMjRcIlxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgey8qIEN1cnJlbnQgcHJpY2UgaW5kaWNhdG9yICovfVxuICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgIGN4PXtwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdLnh9XG4gICAgICAgICAgICBjeT17cG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXS55fVxuICAgICAgICAgICAgcj1cIjJcIlxuICAgICAgICAgICAgZmlsbD1cIiNmYmJmMjRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gdGV4dC14cyB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgIDxzcGFuPkxvdzogJHttaW5QcmljZS50b0ZpeGVkKDIpfTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+SGlnaDogJHttYXhQcmljZS50b0ZpeGVkKDIpfTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG4iXSwibmFtZXMiOlsiUHJpY2luZ0hpc3RvcnlHcmFwaCIsImRhdGEiLCJjdXJyZW50UHJpY2UiLCJsZW5ndGgiLCJ3aWR0aCIsImhlaWdodCIsInBhZGRpbmciLCJwcmljZXMiLCJtYXAiLCJkIiwicHJpY2UiLCJtaW5QcmljZSIsIk1hdGgiLCJtaW4iLCJtYXhQcmljZSIsIm1heCIsInByaWNlUmFuZ2UiLCJwb2ludHMiLCJwb2ludCIsImluZGV4IiwieCIsIm5vcm1hbGl6ZWRQcmljZSIsInkiLCJwYXRoRGF0YSIsImpvaW4iLCJhcmVhUGF0aCIsImZvcm1hdERhdGUiLCJkYXRlU3RyIiwiZGF0ZSIsIkRhdGUiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJtb250aCIsImRheSIsImRpdiIsImNsYXNzTmFtZSIsInNwYW4iLCJ0b0ZpeGVkIiwic3ZnIiwidmlld0JveCIsInByZXNlcnZlQXNwZWN0UmF0aW8iLCJkZWZzIiwibGluZWFyR3JhZGllbnQiLCJpZCIsIngxIiwieTEiLCJ4MiIsInkyIiwic3RvcCIsIm9mZnNldCIsInN0b3BDb2xvciIsInN0b3BPcGFjaXR5IiwicGF0aCIsImZpbGwiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsImNpcmNsZSIsImN4IiwiY3kiLCJyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./components/PricingHistoryGraph.tsx\n");
-
-/***/ }),
-
-/***/ "(ssr)/./components/RetailersList.tsx":
-/*!**************************************!*\
- !*** ./components/RetailersList.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 */ RetailersList: () => (/* binding */ RetailersList)\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/future/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__ RetailersList auto */ \nfunction RetailersList({ retailers }) {\n if (retailers.length === 0) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-500 text-center py-4\",\n children: \"No retailer offers available.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 12,\n columnNumber: 7\n }, this);\n }\n const lowestPrice = Math.min(...retailers.map((r)=>r.price));\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400\",\n children: \"Available Retailers\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 23,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 text-xs text-zinc-500\",\n children: [\n retailers.length,\n \" retailer\",\n retailers.length !== 1 ? \"s\" : \"\",\n \" found\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 26,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 22,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: retailers.map((retailer)=>{\n const isLowestPrice = retailer.price === lowestPrice;\n const isOnSale = retailer.originalPrice !== undefined;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: `border rounded-md p-3 transition-colors ${retailer.inStock ? \"border-zinc-700 bg-zinc-900/30 hover:border-zinc-600\" : \"border-zinc-800 bg-zinc-900/20 opacity-60\"}`,\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex 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 min-w-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 mb-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-semibold text-zinc-50\",\n children: retailer.retailerName\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 48,\n columnNumber: 21\n }, this),\n isLowestPrice && retailer.inStock && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[0.65rem] font-semibold uppercase tracking-wide px-1.5 py-0.5 rounded bg-amber-400/20 text-amber-300 border border-amber-400/30\",\n children: \"Best Price\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 52,\n columnNumber: 23\n }, this),\n !retailer.inStock && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[0.65rem] font-semibold uppercase tracking-wide px-1.5 py-0.5 rounded bg-red-500/20 text-red-400 border border-red-500/30\",\n children: \"Out of Stock\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 57,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 47,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: `text-lg font-semibold ${isLowestPrice && retailer.inStock ? \"text-amber-300\" : \"text-zinc-300\"}`,\n children: [\n \"$\",\n retailer.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 63,\n columnNumber: 21\n }, this),\n isOnSale && retailer.originalPrice && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-zinc-500 line-through\",\n children: [\n \"$\",\n retailer.originalPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 73,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 62,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 46,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: retailer.affiliateUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: `rounded-md border px-3 py-1.5 text-xs font-medium transition-colors whitespace-nowrap ${retailer.inStock ? \"border-amber-400/60 bg-amber-400/10 text-amber-200 hover:bg-amber-400/15\" : \"border-zinc-700 bg-zinc-800/50 text-zinc-500 cursor-not-allowed pointer-events-none\"}`,\n children: retailer.inStock ? \"Buy Now\" : \"Unavailable\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 80,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 79,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 45,\n columnNumber: 15\n }, this)\n }, retailer.id, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 37,\n columnNumber: 13\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 31,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 21,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9jb21wb25lbnRzL1JldGFpbGVyc0xpc3QudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7QUFRTyxTQUFTQSxjQUFjLEVBQUVDLFNBQVMsRUFBc0I7SUFDN0QsSUFBSUEsVUFBVUMsTUFBTSxLQUFLLEdBQUc7UUFDMUIscUJBQ0UsOERBQUNDO1lBQUlDLFdBQVU7c0JBQXlDOzs7Ozs7SUFJNUQ7SUFFQSxNQUFNQyxjQUFjQyxLQUFLQyxHQUFHLElBQUlOLFVBQVVPLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxLQUFLO0lBRTVELHFCQUNFLDhEQUFDUDtRQUFJQyxXQUFVOzswQkFDYiw4REFBQ0Q7Z0JBQUlDLFdBQVU7O2tDQUNiLDhEQUFDRDt3QkFBSUMsV0FBVTtrQ0FBa0U7Ozs7OztrQ0FHakYsOERBQUNEO3dCQUFJQyxXQUFVOzs0QkFDWkgsVUFBVUMsTUFBTTs0QkFBQzs0QkFBVUQsVUFBVUMsTUFBTSxLQUFLLElBQUksTUFBTTs0QkFBRzs7Ozs7Ozs7Ozs7OzswQkFJbEUsOERBQUNDO2dCQUFJQyxXQUFVOzBCQUNaSCxVQUFVTyxHQUFHLENBQUMsQ0FBQ0c7b0JBQ2QsTUFBTUMsZ0JBQWdCRCxTQUFTRCxLQUFLLEtBQUtMO29CQUN6QyxNQUFNUSxXQUFXRixTQUFTRyxhQUFhLEtBQUtDO29CQUU1QyxxQkFDRSw4REFBQ1o7d0JBRUNDLFdBQVcsQ0FBQyx3Q0FBd0MsRUFDbERPLFNBQVNLLE9BQU8sR0FDWix5REFDQSw0Q0FDTCxDQUFDO2tDQUVGLDRFQUFDYjs0QkFBSUMsV0FBVTs7OENBQ2IsOERBQUNEO29DQUFJQyxXQUFVOztzREFDYiw4REFBQ0Q7NENBQUlDLFdBQVU7OzhEQUNiLDhEQUFDYTtvREFBS2IsV0FBVTs4REFDYk8sU0FBU08sWUFBWTs7Ozs7O2dEQUV2Qk4saUJBQWlCRCxTQUFTSyxPQUFPLGtCQUNoQyw4REFBQ0M7b0RBQUtiLFdBQVU7OERBQXVJOzs7Ozs7Z0RBSXhKLENBQUNPLFNBQVNLLE9BQU8sa0JBQ2hCLDhEQUFDQztvREFBS2IsV0FBVTs4REFBaUk7Ozs7Ozs7Ozs7OztzREFLckosOERBQUNEOzRDQUFJQyxXQUFVOzs4REFDYiw4REFBQ2E7b0RBQ0NiLFdBQVcsQ0FBQyxzQkFBc0IsRUFDaENRLGlCQUFpQkQsU0FBU0ssT0FBTyxHQUM3QixtQkFDQSxnQkFDTCxDQUFDOzt3REFDSDt3REFDR0wsU0FBU0QsS0FBSyxDQUFDUyxPQUFPLENBQUM7Ozs7Ozs7Z0RBRTFCTixZQUFZRixTQUFTRyxhQUFhLGtCQUNqQyw4REFBQ0c7b0RBQUtiLFdBQVU7O3dEQUFxQzt3REFDakRPLFNBQVNHLGFBQWEsQ0FBQ0ssT0FBTyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhDQUt6Qyw4REFBQ2hCO29DQUFJQyxXQUFVOzhDQUNiLDRFQUFDZ0I7d0NBQ0NDLE1BQU1WLFNBQVNXLFlBQVk7d0NBQzNCQyxRQUFPO3dDQUNQQyxLQUFJO3dDQUNKcEIsV0FBVyxDQUFDLHNGQUFzRixFQUNoR08sU0FBU0ssT0FBTyxHQUNaLDZFQUNBLHNGQUNMLENBQUM7a0RBRURMLFNBQVNLLE9BQU8sR0FBRyxZQUFZOzs7Ozs7Ozs7Ozs7Ozs7Ozt1QkFwRGpDTCxTQUFTYyxFQUFFOzs7OztnQkEwRHRCOzs7Ozs7Ozs7Ozs7QUFJUiIsInNvdXJjZXMiOlsid2VicGFjazovL2d1bmJ1aWxkZXItcHJvdG90eXBlLy4vY29tcG9uZW50cy9SZXRhaWxlcnNMaXN0LnRzeD8yYmViIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgdHlwZSB7IFJldGFpbGVyT2ZmZXIgfSBmcm9tIFwiQC9hcHAvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vW3BhcnRJZF0vZGF0YVwiO1xuXG5pbnRlcmZhY2UgUmV0YWlsZXJzTGlzdFByb3BzIHtcbiAgcmV0YWlsZXJzOiBSZXRhaWxlck9mZmVyW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBSZXRhaWxlcnNMaXN0KHsgcmV0YWlsZXJzIH06IFJldGFpbGVyc0xpc3RQcm9wcykge1xuICBpZiAocmV0YWlsZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC16aW5jLTUwMCB0ZXh0LWNlbnRlciBweS00XCI+XG4gICAgICAgIE5vIHJldGFpbGVyIG9mZmVycyBhdmFpbGFibGUuXG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgY29uc3QgbG93ZXN0UHJpY2UgPSBNYXRoLm1pbiguLi5yZXRhaWxlcnMubWFwKChyKSA9PiByLnByaWNlKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRyYWNraW5nLVswLjE2ZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNDAwXCI+XG4gICAgICAgICAgQXZhaWxhYmxlIFJldGFpbGVyc1xuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0xIHRleHQteHMgdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgIHtyZXRhaWxlcnMubGVuZ3RofSByZXRhaWxlcntyZXRhaWxlcnMubGVuZ3RoICE9PSAxID8gXCJzXCIgOiBcIlwifSBmb3VuZFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxuICAgICAgICB7cmV0YWlsZXJzLm1hcCgocmV0YWlsZXIpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0xvd2VzdFByaWNlID0gcmV0YWlsZXIucHJpY2UgPT09IGxvd2VzdFByaWNlO1xuICAgICAgICAgIGNvbnN0IGlzT25TYWxlID0gcmV0YWlsZXIub3JpZ2luYWxQcmljZSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAga2V5PXtyZXRhaWxlci5pZH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgYm9yZGVyIHJvdW5kZWQtbWQgcC0zIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgICAgcmV0YWlsZXIuaW5TdG9ja1xuICAgICAgICAgICAgICAgICAgPyBcImJvcmRlci16aW5jLTcwMCBiZy16aW5jLTkwMC8zMCBob3Zlcjpib3JkZXItemluYy02MDBcIlxuICAgICAgICAgICAgICAgICAgOiBcImJvcmRlci16aW5jLTgwMCBiZy16aW5jLTkwMC8yMCBvcGFjaXR5LTYwXCJcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgbWluLXctMFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXppbmMtNTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7cmV0YWlsZXIucmV0YWlsZXJOYW1lfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIHtpc0xvd2VzdFByaWNlICYmIHJldGFpbGVyLmluU3RvY2sgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzAuNjVyZW1dIGZvbnQtc2VtaWJvbGQgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGUgcHgtMS41IHB5LTAuNSByb3VuZGVkIGJnLWFtYmVyLTQwMC8yMCB0ZXh0LWFtYmVyLTMwMCBib3JkZXIgYm9yZGVyLWFtYmVyLTQwMC8zMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQmVzdCBQcmljZVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgeyFyZXRhaWxlci5pblN0b2NrICYmIChcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LVswLjY1cmVtXSBmb250LXNlbWlib2xkIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIHB4LTEuNSBweS0wLjUgcm91bmRlZCBiZy1yZWQtNTAwLzIwIHRleHQtcmVkLTQwMCBib3JkZXIgYm9yZGVyLXJlZC01MDAvMzBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIE91dCBvZiBTdG9ja1xuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHRleHQtbGcgZm9udC1zZW1pYm9sZCAke1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNMb3dlc3RQcmljZSAmJiByZXRhaWxlci5pblN0b2NrXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJ0ZXh0LWFtYmVyLTMwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJ0ZXh0LXppbmMtMzAwXCJcbiAgICAgICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICR7cmV0YWlsZXIucHJpY2UudG9GaXhlZCgyKX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB7aXNPblNhbGUgJiYgcmV0YWlsZXIub3JpZ2luYWxQcmljZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIGxpbmUtdGhyb3VnaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtyZXRhaWxlci5vcmlnaW5hbFByaWNlLnRvRml4ZWQoMil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgaHJlZj17cmV0YWlsZXIuYWZmaWxpYXRlVXJsfVxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcm91bmRlZC1tZCBib3JkZXIgcHgtMyBweS0xLjUgdGV4dC14cyBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycyB3aGl0ZXNwYWNlLW5vd3JhcCAke1xuICAgICAgICAgICAgICAgICAgICAgIHJldGFpbGVyLmluU3RvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJib3JkZXItYW1iZXItNDAwLzYwIGJnLWFtYmVyLTQwMC8xMCB0ZXh0LWFtYmVyLTIwMCBob3ZlcjpiZy1hbWJlci00MDAvMTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBcImJvcmRlci16aW5jLTcwMCBiZy16aW5jLTgwMC81MCB0ZXh0LXppbmMtNTAwIGN1cnNvci1ub3QtYWxsb3dlZCBwb2ludGVyLWV2ZW50cy1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtyZXRhaWxlci5pblN0b2NrID8gXCJCdXkgTm93XCIgOiBcIlVuYXZhaWxhYmxlXCJ9XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuIl0sIm5hbWVzIjpbIlJldGFpbGVyc0xpc3QiLCJyZXRhaWxlcnMiLCJsZW5ndGgiLCJkaXYiLCJjbGFzc05hbWUiLCJsb3dlc3RQcmljZSIsIk1hdGgiLCJtaW4iLCJtYXAiLCJyIiwicHJpY2UiLCJyZXRhaWxlciIsImlzTG93ZXN0UHJpY2UiLCJpc09uU2FsZSIsIm9yaWdpbmFsUHJpY2UiLCJ1bmRlZmluZWQiLCJpblN0b2NrIiwic3BhbiIsInJldGFpbGVyTmFtZSIsInRvRml4ZWQiLCJhIiwiaHJlZiIsImFmZmlsaWF0ZVVybCIsInRhcmdldCIsInJlbCIsImlkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./components/RetailersList.tsx\n");
-
-/***/ }),
-
-/***/ "(ssr)/./data/gunbuilderParts.ts":
-/*!*********************************!*\
- !*** ./data/gunbuilderParts.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 */ CATEGORIES: () => (/* binding */ CATEGORIES),\n/* harmony export */ PARTS: () => (/* binding */ PARTS)\n/* harmony export */ });\nconst CATEGORIES = [\n {\n id: \"lower\",\n name: \"Lower Receiver\"\n },\n {\n id: \"upper\",\n name: \"Upper Receiver\"\n },\n {\n id: \"barrel\",\n name: \"Barrel\"\n },\n {\n id: \"handguard\",\n name: \"Handguard\"\n },\n {\n id: \"stock\",\n name: \"Stock\"\n },\n {\n id: \"optic\",\n name: \"Optic\"\n }\n];\nconst PARTS = [\n {\n id: \"lower-aero-m4e1\",\n name: \"M4E1 Stripped Lower Receiver\",\n brand: \"Aero Precision\",\n categoryId: \"lower\",\n price: 129.99,\n affiliateUrl: \"https://example.com/aero-m4e1\",\n notes: \"Forged 7075-T6, threaded bolt catch\"\n },\n {\n id: \"lower-solgw\",\n name: \"Loyal 9 Stripped Lower\",\n brand: \"Sons of Liberty Gun Works\",\n categoryId: \"lower\",\n price: 189.0,\n affiliateUrl: \"https://example.com/solgw-lower\"\n },\n {\n id: \"upper-aero-enhanced\",\n name: \"Enhanced Upper Receiver\",\n brand: \"Aero Precision\",\n categoryId: \"upper\",\n price: 149.99,\n affiliateUrl: \"https://example.com/aero-enhanced-upper\"\n },\n {\n id: \"upper-bcm-m4\",\n name: \"M4 Upper Receiver\",\n brand: \"BCM\",\n categoryId: \"upper\",\n price: 159.99,\n affiliateUrl: \"https://example.com/bcm-m4-upper\"\n },\n {\n id: \"barrel-criterion-16\",\n name: '16\" Hybrid Barrel',\n brand: \"Criterion\",\n categoryId: \"barrel\",\n price: 279.99,\n affiliateUrl: \"https://example.com/criterion-16\",\n notes: \"Mid-length gas, chrome-lined\"\n },\n {\n id: \"barrel-ba-13-9\",\n name: '13.9\" Hanson Performance Series',\n brand: \"Ballistic Advantage\",\n categoryId: \"barrel\",\n price: 209.99,\n affiliateUrl: \"https://example.com/ba-13-9\"\n },\n {\n id: \"hg-geissele-mk8\",\n name: 'MK8 Rail 13.5\"',\n brand: \"Geissele\",\n categoryId: \"handguard\",\n price: 324.99,\n affiliateUrl: \"https://example.com/geissele-mk8\"\n },\n {\n id: \"hg-centurion-c4\",\n name: 'C4 M-LOK 12\"',\n brand: \"Centurion Arms\",\n categoryId: \"handguard\",\n price: 284.99,\n affiliateUrl: \"https://example.com/centurion-c4\"\n },\n {\n id: \"stock-b5-bravo\",\n name: \"BRAVO Stock\",\n brand: \"B5 Systems\",\n categoryId: \"stock\",\n price: 74.99,\n affiliateUrl: \"https://example.com/b5-bravo\"\n },\n {\n id: \"stock-magpul-sl\",\n name: \"MOE SL Carbine Stock\",\n brand: \"Magpul\",\n categoryId: \"stock\",\n price: 69.99,\n affiliateUrl: \"https://example.com/magpul-sl\"\n },\n {\n id: \"optic-eotech-exps3\",\n name: \"EXPS3 Holographic Sight\",\n brand: \"EOTECH\",\n categoryId: \"optic\",\n price: 749.0,\n affiliateUrl: \"https://example.com/eotech-exps3\"\n },\n {\n id: \"optic-holosun-509t\",\n name: \"HE509T Red Dot\",\n brand: \"Holosun\",\n categoryId: \"optic\",\n price: 349.99,\n affiliateUrl: \"https://example.com/holosun-509t\"\n }\n];\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9kYXRhL2d1bmJ1aWxkZXJQYXJ0cy50cyIsIm1hcHBpbmdzIjoiOzs7OztBQUVPLE1BQU1BLGFBQXlCO0lBQ3BDO1FBQUVDLElBQUk7UUFBU0MsTUFBTTtJQUFpQjtJQUN0QztRQUFFRCxJQUFJO1FBQVNDLE1BQU07SUFBaUI7SUFDdEM7UUFBRUQsSUFBSTtRQUFVQyxNQUFNO0lBQVM7SUFDL0I7UUFBRUQsSUFBSTtRQUFhQyxNQUFNO0lBQVk7SUFDckM7UUFBRUQsSUFBSTtRQUFTQyxNQUFNO0lBQVE7SUFDN0I7UUFBRUQsSUFBSTtRQUFTQyxNQUFNO0lBQVE7Q0FDOUIsQ0FBQztBQUVLLE1BQU1DLFFBQWdCO0lBQzNCO1FBQ0VGLElBQUk7UUFDSkMsTUFBTTtRQUNORSxPQUFPO1FBQ1BDLFlBQVk7UUFDWkMsT0FBTztRQUNQQyxjQUFjO1FBQ2RDLE9BQU87SUFDVDtJQUNBO1FBQ0VQLElBQUk7UUFDSkMsTUFBTTtRQUNORSxPQUFPO1FBQ1BDLFlBQVk7UUFDWkMsT0FBTztRQUNQQyxjQUFjO0lBQ2hCO0lBQ0E7UUFDRU4sSUFBSTtRQUNKQyxNQUFNO1FBQ05FLE9BQU87UUFDUEMsWUFBWTtRQUNaQyxPQUFPO1FBQ1BDLGNBQWM7SUFDaEI7SUFDQTtRQUNFTixJQUFJO1FBQ0pDLE1BQU07UUFDTkUsT0FBTztRQUNQQyxZQUFZO1FBQ1pDLE9BQU87UUFDUEMsY0FBYztJQUNoQjtJQUNBO1FBQ0VOLElBQUk7UUFDSkMsTUFBTTtRQUNORSxPQUFPO1FBQ1BDLFlBQVk7UUFDWkMsT0FBTztRQUNQQyxjQUFjO1FBQ2RDLE9BQU87SUFDVDtJQUNBO1FBQ0VQLElBQUk7UUFDSkMsTUFBTTtRQUNORSxPQUFPO1FBQ1BDLFlBQVk7UUFDWkMsT0FBTztRQUNQQyxjQUFjO0lBQ2hCO0lBQ0E7UUFDRU4sSUFBSTtRQUNKQyxNQUFNO1FBQ05FLE9BQU87UUFDUEMsWUFBWTtRQUNaQyxPQUFPO1FBQ1BDLGNBQWM7SUFDaEI7SUFDQTtRQUNFTixJQUFJO1FBQ0pDLE1BQU07UUFDTkUsT0FBTztRQUNQQyxZQUFZO1FBQ1pDLE9BQU87UUFDUEMsY0FBYztJQUNoQjtJQUNBO1FBQ0VOLElBQUk7UUFDSkMsTUFBTTtRQUNORSxPQUFPO1FBQ1BDLFlBQVk7UUFDWkMsT0FBTztRQUNQQyxjQUFjO0lBQ2hCO0lBQ0E7UUFDRU4sSUFBSTtRQUNKQyxNQUFNO1FBQ05FLE9BQU87UUFDUEMsWUFBWTtRQUNaQyxPQUFPO1FBQ1BDLGNBQWM7SUFDaEI7SUFDQTtRQUNFTixJQUFJO1FBQ0pDLE1BQU07UUFDTkUsT0FBTztRQUNQQyxZQUFZO1FBQ1pDLE9BQU87UUFDUEMsY0FBYztJQUNoQjtJQUNBO1FBQ0VOLElBQUk7UUFDSkMsTUFBTTtRQUNORSxPQUFPO1FBQ1BDLFlBQVk7UUFDWkMsT0FBTztRQUNQQyxjQUFjO0lBQ2hCO0NBQ0QsQ0FBQyIsInNvdXJjZXMiOlsid2VicGFjazovL2d1bmJ1aWxkZXItcHJvdG90eXBlLy4vZGF0YS9ndW5idWlsZGVyUGFydHMudHM/NzNhZSJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IENhdGVnb3J5LCBQYXJ0IH0gZnJvbSBcIkAvdHlwZXMvZ3VuYnVpbGRlclwiO1xuXG5leHBvcnQgY29uc3QgQ0FURUdPUklFUzogQ2F0ZWdvcnlbXSA9IFtcbiAgeyBpZDogXCJsb3dlclwiLCBuYW1lOiBcIkxvd2VyIFJlY2VpdmVyXCIgfSxcbiAgeyBpZDogXCJ1cHBlclwiLCBuYW1lOiBcIlVwcGVyIFJlY2VpdmVyXCIgfSxcbiAgeyBpZDogXCJiYXJyZWxcIiwgbmFtZTogXCJCYXJyZWxcIiB9LFxuICB7IGlkOiBcImhhbmRndWFyZFwiLCBuYW1lOiBcIkhhbmRndWFyZFwiIH0sXG4gIHsgaWQ6IFwic3RvY2tcIiwgbmFtZTogXCJTdG9ja1wiIH0sXG4gIHsgaWQ6IFwib3B0aWNcIiwgbmFtZTogXCJPcHRpY1wiIH0sXG5dO1xuXG5leHBvcnQgY29uc3QgUEFSVFM6IFBhcnRbXSA9IFtcbiAge1xuICAgIGlkOiBcImxvd2VyLWFlcm8tbTRlMVwiLFxuICAgIG5hbWU6IFwiTTRFMSBTdHJpcHBlZCBMb3dlciBSZWNlaXZlclwiLFxuICAgIGJyYW5kOiBcIkFlcm8gUHJlY2lzaW9uXCIsXG4gICAgY2F0ZWdvcnlJZDogXCJsb3dlclwiLFxuICAgIHByaWNlOiAxMjkuOTksXG4gICAgYWZmaWxpYXRlVXJsOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vYWVyby1tNGUxXCIsXG4gICAgbm90ZXM6IFwiRm9yZ2VkIDcwNzUtVDYsIHRocmVhZGVkIGJvbHQgY2F0Y2hcIixcbiAgfSxcbiAge1xuICAgIGlkOiBcImxvd2VyLXNvbGd3XCIsXG4gICAgbmFtZTogXCJMb3lhbCA5IFN0cmlwcGVkIExvd2VyXCIsXG4gICAgYnJhbmQ6IFwiU29ucyBvZiBMaWJlcnR5IEd1biBXb3Jrc1wiLFxuICAgIGNhdGVnb3J5SWQ6IFwibG93ZXJcIixcbiAgICBwcmljZTogMTg5LjAsXG4gICAgYWZmaWxpYXRlVXJsOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vc29sZ3ctbG93ZXJcIixcbiAgfSxcbiAge1xuICAgIGlkOiBcInVwcGVyLWFlcm8tZW5oYW5jZWRcIixcbiAgICBuYW1lOiBcIkVuaGFuY2VkIFVwcGVyIFJlY2VpdmVyXCIsXG4gICAgYnJhbmQ6IFwiQWVybyBQcmVjaXNpb25cIixcbiAgICBjYXRlZ29yeUlkOiBcInVwcGVyXCIsXG4gICAgcHJpY2U6IDE0OS45OSxcbiAgICBhZmZpbGlhdGVVcmw6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9hZXJvLWVuaGFuY2VkLXVwcGVyXCIsXG4gIH0sXG4gIHtcbiAgICBpZDogXCJ1cHBlci1iY20tbTRcIixcbiAgICBuYW1lOiBcIk00IFVwcGVyIFJlY2VpdmVyXCIsXG4gICAgYnJhbmQ6IFwiQkNNXCIsXG4gICAgY2F0ZWdvcnlJZDogXCJ1cHBlclwiLFxuICAgIHByaWNlOiAxNTkuOTksXG4gICAgYWZmaWxpYXRlVXJsOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vYmNtLW00LXVwcGVyXCIsXG4gIH0sXG4gIHtcbiAgICBpZDogXCJiYXJyZWwtY3JpdGVyaW9uLTE2XCIsXG4gICAgbmFtZTogXCIxNlxcXCIgSHlicmlkIEJhcnJlbFwiLFxuICAgIGJyYW5kOiBcIkNyaXRlcmlvblwiLFxuICAgIGNhdGVnb3J5SWQ6IFwiYmFycmVsXCIsXG4gICAgcHJpY2U6IDI3OS45OSxcbiAgICBhZmZpbGlhdGVVcmw6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9jcml0ZXJpb24tMTZcIixcbiAgICBub3RlczogXCJNaWQtbGVuZ3RoIGdhcywgY2hyb21lLWxpbmVkXCIsXG4gIH0sXG4gIHtcbiAgICBpZDogXCJiYXJyZWwtYmEtMTMtOVwiLFxuICAgIG5hbWU6IFwiMTMuOVxcXCIgSGFuc29uIFBlcmZvcm1hbmNlIFNlcmllc1wiLFxuICAgIGJyYW5kOiBcIkJhbGxpc3RpYyBBZHZhbnRhZ2VcIixcbiAgICBjYXRlZ29yeUlkOiBcImJhcnJlbFwiLFxuICAgIHByaWNlOiAyMDkuOTksXG4gICAgYWZmaWxpYXRlVXJsOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vYmEtMTMtOVwiLFxuICB9LFxuICB7XG4gICAgaWQ6IFwiaGctZ2Vpc3NlbGUtbWs4XCIsXG4gICAgbmFtZTogXCJNSzggUmFpbCAxMy41XFxcIlwiLFxuICAgIGJyYW5kOiBcIkdlaXNzZWxlXCIsXG4gICAgY2F0ZWdvcnlJZDogXCJoYW5kZ3VhcmRcIixcbiAgICBwcmljZTogMzI0Ljk5LFxuICAgIGFmZmlsaWF0ZVVybDogXCJodHRwczovL2V4YW1wbGUuY29tL2dlaXNzZWxlLW1rOFwiLFxuICB9LFxuICB7XG4gICAgaWQ6IFwiaGctY2VudHVyaW9uLWM0XCIsXG4gICAgbmFtZTogXCJDNCBNLUxPSyAxMlxcXCJcIixcbiAgICBicmFuZDogXCJDZW50dXJpb24gQXJtc1wiLFxuICAgIGNhdGVnb3J5SWQ6IFwiaGFuZGd1YXJkXCIsXG4gICAgcHJpY2U6IDI4NC45OSxcbiAgICBhZmZpbGlhdGVVcmw6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9jZW50dXJpb24tYzRcIixcbiAgfSxcbiAge1xuICAgIGlkOiBcInN0b2NrLWI1LWJyYXZvXCIsXG4gICAgbmFtZTogXCJCUkFWTyBTdG9ja1wiLFxuICAgIGJyYW5kOiBcIkI1IFN5c3RlbXNcIixcbiAgICBjYXRlZ29yeUlkOiBcInN0b2NrXCIsXG4gICAgcHJpY2U6IDc0Ljk5LFxuICAgIGFmZmlsaWF0ZVVybDogXCJodHRwczovL2V4YW1wbGUuY29tL2I1LWJyYXZvXCIsXG4gIH0sXG4gIHtcbiAgICBpZDogXCJzdG9jay1tYWdwdWwtc2xcIixcbiAgICBuYW1lOiBcIk1PRSBTTCBDYXJiaW5lIFN0b2NrXCIsXG4gICAgYnJhbmQ6IFwiTWFncHVsXCIsXG4gICAgY2F0ZWdvcnlJZDogXCJzdG9ja1wiLFxuICAgIHByaWNlOiA2OS45OSxcbiAgICBhZmZpbGlhdGVVcmw6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9tYWdwdWwtc2xcIixcbiAgfSxcbiAge1xuICAgIGlkOiBcIm9wdGljLWVvdGVjaC1leHBzM1wiLFxuICAgIG5hbWU6IFwiRVhQUzMgSG9sb2dyYXBoaWMgU2lnaHRcIixcbiAgICBicmFuZDogXCJFT1RFQ0hcIixcbiAgICBjYXRlZ29yeUlkOiBcIm9wdGljXCIsXG4gICAgcHJpY2U6IDc0OS4wLFxuICAgIGFmZmlsaWF0ZVVybDogXCJodHRwczovL2V4YW1wbGUuY29tL2VvdGVjaC1leHBzM1wiLFxuICB9LFxuICB7XG4gICAgaWQ6IFwib3B0aWMtaG9sb3N1bi01MDl0XCIsXG4gICAgbmFtZTogXCJIRTUwOVQgUmVkIERvdFwiLFxuICAgIGJyYW5kOiBcIkhvbG9zdW5cIixcbiAgICBjYXRlZ29yeUlkOiBcIm9wdGljXCIsXG4gICAgcHJpY2U6IDM0OS45OSxcbiAgICBhZmZpbGlhdGVVcmw6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9ob2xvc3VuLTUwOXRcIixcbiAgfSxcbl07XG4iXSwibmFtZXMiOlsiQ0FURUdPUklFUyIsImlkIiwibmFtZSIsIlBBUlRTIiwiYnJhbmQiLCJjYXRlZ29yeUlkIiwicHJpY2UiLCJhZmZpbGlhdGVVcmwiLCJub3RlcyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(ssr)/./data/gunbuilderParts.ts\n");
-
-/***/ }),
-
-/***/ "(rsc)/./app/globals.css":
-/*!*************************!*\
- !*** ./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__ = (\"8e3b978f6080\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvZ2xvYmFscy5jc3MiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlFQUFlLGNBQWM7QUFDN0IsSUFBSSxLQUFVLEVBQUUsRUFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ndW5idWlsZGVyLXByb3RvdHlwZS8uL2FwcC9nbG9iYWxzLmNzcz9jZDI4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiOGUzYjk3OGY2MDgwXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./app/globals.css\n");
-
-/***/ }),
-
-/***/ "(rsc)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":
-/*!*******************************************************!*\
- !*** ./app/gunbuilder/[categoryId]/[partId]/page.tsx ***!
- \*******************************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-__webpack_require__.r(__webpack_exports__);
-/* harmony export */ __webpack_require__.d(__webpack_exports__, {
-/* harmony export */ $$typeof: () => (/* binding */ $$typeof),
-/* harmony export */ __esModule: () => (/* binding */ __esModule),
-/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__)
-/* harmony export */ });
-/* harmony import */ var next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");
-
-const proxy = (0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx`)
-
-// Accessing the __esModule property and exporting $$typeof are required here.
-// The __esModule getter forces the proxy target to create the default export
-// and the $$typeof value is for rendering logic to determine if the module
-// is a client boundary.
-const { __esModule, $$typeof } = proxy;
-const __default__ = proxy.default;
-
-/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,next_dist_build_webpack_loaders_next_flight_loader_module_proxy__WEBPACK_IMPORTED_MODULE_0__.createProxy)(String.raw`/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx#default`));
-
-
-/***/ }),
-
-/***/ "(rsc)/./app/layout.tsx":
-/*!************************!*\
- !*** ./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 */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata)\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/future/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 _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./app/globals.css\");\n\n\nconst metadata = {\n title: \"Gunbuilder Prototype | Shadow Standard\",\n description: \"Prototype AR-15 build tool by Shadow Standard.\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"en\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n children: children\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\",\n lineNumber: 12,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\",\n lineNumber: 11,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvbGF5b3V0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBdUI7QUFHaEIsTUFBTUEsV0FBVztJQUN0QkMsT0FBTztJQUNQQyxhQUFhO0FBQ2YsRUFBRTtBQUVhLFNBQVNDLFdBQVcsRUFBRUMsUUFBUSxFQUEyQjtJQUN0RSxxQkFDRSw4REFBQ0M7UUFBS0MsTUFBSztrQkFDVCw0RUFBQ0M7c0JBQU1IOzs7Ozs7Ozs7OztBQUdiIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ3VuYnVpbGRlci1wcm90b3R5cGUvLi9hcHAvbGF5b3V0LnRzeD85OTg4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIi4vZ2xvYmFscy5jc3NcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBtZXRhZGF0YSA9IHtcbiAgdGl0bGU6IFwiR3VuYnVpbGRlciBQcm90b3R5cGUgfCBTaGFkb3cgU3RhbmRhcmRcIixcbiAgZGVzY3JpcHRpb246IFwiUHJvdG90eXBlIEFSLTE1IGJ1aWxkIHRvb2wgYnkgU2hhZG93IFN0YW5kYXJkLlwiLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPGh0bWwgbGFuZz1cImVuXCI+XG4gICAgICA8Ym9keT57Y2hpbGRyZW59PC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJtZXRhZGF0YSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJSb290TGF5b3V0IiwiY2hpbGRyZW4iLCJodG1sIiwibGFuZyIsImJvZHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./app/layout.tsx\n");
-
-/***/ })
-
-};
-;
-
-// 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/next","vendor-chunks/@swc"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
-module.exports = __webpack_exports__;
-
-})();
\ No newline at end of file
diff --git a/.next/server/app/gunbuilder/[categoryId]/[partId]/page_client-reference-manifest.js b/.next/server/app/gunbuilder/[categoryId]/[partId]/page_client-reference-manifest.js
deleted file mode 100644
index 82c0f40..0000000
--- a/.next/server/app/gunbuilder/[categoryId]/[partId]/page_client-reference-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/gunbuilder/[categoryId]/[partId]/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/link.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/link.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/[partId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/build/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/page.tsx","name":"*","chunks":["app/gunbuilder/page","static/chunks/app/gunbuilder/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":["app/gunbuilder/[categoryId]/page","static/chunks/app/gunbuilder/%5BcategoryId%5D/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx","name":"*","chunks":["app/gunbuilder/[categoryId]/[partId]/page","static/chunks/app/gunbuilder/%5BcategoryId%5D/%5BpartId%5D/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/sean/Dev/gunbuilder-prototype/":[],"/Users/sean/Dev/gunbuilder-prototype/app/page":[],"/Users/sean/Dev/gunbuilder-prototype/app/layout":["static/css/app/layout.css"],"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page":[],"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page":[],"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page":[]}}
\ No newline at end of file
diff --git a/.next/server/app/gunbuilder/[categoryId]/page_client-reference-manifest.js b/.next/server/app/gunbuilder/[categoryId]/page_client-reference-manifest.js
index 2973ed3..bc47a43 100644
--- a/.next/server/app/gunbuilder/[categoryId]/page_client-reference-manifest.js
+++ b/.next/server/app/gunbuilder/[categoryId]/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/gunbuilder/[categoryId]/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/link.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/link.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/[partId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/build/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/page.tsx","name":"*","chunks":["app/gunbuilder/page","static/chunks/app/gunbuilder/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":["app/gunbuilder/[categoryId]/page","static/chunks/app/gunbuilder/%5BcategoryId%5D/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx","name":"*","chunks":[],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/sean/Dev/gunbuilder-prototype/":[],"/Users/sean/Dev/gunbuilder-prototype/app/page":[],"/Users/sean/Dev/gunbuilder-prototype/app/layout":["static/css/app/layout.css"],"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page":[],"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page":[]}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/gunbuilder/[categoryId]/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./app/gunbuilder/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/build/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/page.tsx","name":"*","chunks":["app/gunbuilder/page","static/chunks/app/gunbuilder/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":["app/gunbuilder/[categoryId]/page","static/chunks/app/gunbuilder/%5BcategoryId%5D/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/sean/Dev/gunbuilder-prototype/":[],"/Users/sean/Dev/gunbuilder-prototype/app/layout":["static/css/app/layout.css"],"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page":[],"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page":[]}}
\ No newline at end of file
diff --git a/.next/server/app/gunbuilder/build/page_client-reference-manifest.js b/.next/server/app/gunbuilder/build/page_client-reference-manifest.js
index 4962b6c..bdcd0dc 100644
--- a/.next/server/app/gunbuilder/build/page_client-reference-manifest.js
+++ b/.next/server/app/gunbuilder/build/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/gunbuilder/build/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/link.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/link.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/[partId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/build/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/page.tsx","name":"*","chunks":["app/gunbuilder/page","static/chunks/app/gunbuilder/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx","name":"*","chunks":[],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/build/page.tsx","name":"*","chunks":["app/gunbuilder/build/page","static/chunks/app/gunbuilder/build/page.js"],"async":false}},"entryCSSFiles":{"/Users/sean/Dev/gunbuilder-prototype/":[],"/Users/sean/Dev/gunbuilder-prototype/app/page":[],"/Users/sean/Dev/gunbuilder-prototype/app/layout":["static/css/app/layout.css"],"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page":[],"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page":[]}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/gunbuilder/build/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./app/gunbuilder/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/build/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/page.tsx","name":"*","chunks":["app/gunbuilder/page","static/chunks/app/gunbuilder/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/build/page.tsx","name":"*","chunks":["app/gunbuilder/build/page","static/chunks/app/gunbuilder/build/page.js"],"async":false}},"entryCSSFiles":{"/Users/sean/Dev/gunbuilder-prototype/":[],"/Users/sean/Dev/gunbuilder-prototype/app/layout":["static/css/app/layout.css"],"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page":[],"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page":[]}}
\ No newline at end of file
diff --git a/.next/server/app/gunbuilder/page_client-reference-manifest.js b/.next/server/app/gunbuilder/page_client-reference-manifest.js
index c583511..be36c69 100644
--- a/.next/server/app/gunbuilder/page_client-reference-manifest.js
+++ b/.next/server/app/gunbuilder/page_client-reference-manifest.js
@@ -1 +1 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/gunbuilder/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/link.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/link.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/[partId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/build/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/page.tsx","name":"*","chunks":["app/gunbuilder/page","static/chunks/app/gunbuilder/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx","name":"*","chunks":[],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/sean/Dev/gunbuilder-prototype/":[],"/Users/sean/Dev/gunbuilder-prototype/app/page":[],"/Users/sean/Dev/gunbuilder-prototype/app/layout":["static/css/app/layout.css"],"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page":[]}}
\ No newline at end of file
+globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/gunbuilder/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./app/gunbuilder/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/build/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/page.tsx","name":"*","chunks":["app/gunbuilder/page","static/chunks/app/gunbuilder/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/sean/Dev/gunbuilder-prototype/":[],"/Users/sean/Dev/gunbuilder-prototype/app/layout":["static/css/app/layout.css"],"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page":[]}}
\ No newline at end of file
diff --git a/.next/server/app/page.js b/.next/server/app/page.js
deleted file mode 100644
index 002ab66..0000000
--- a/.next/server/app/page.js
+++ /dev/null
@@ -1,176 +0,0 @@
-/*
- * 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/page";
-exports.ids = ["app/page"];
-exports.modules = {
-
-/***/ "./action-async-storage.external":
-/*!****************************************************************************!*\
- !*** external "next/dist/client/components/action-async-storage.external" ***!
- \****************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/action-async-storage.external");
-
-/***/ }),
-
-/***/ "../../client/components/action-async-storage.external":
-/*!*******************************************************************************!*\
- !*** external "next/dist/client/components/action-async-storage.external.js" ***!
- \*******************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/action-async-storage.external.js");
-
-/***/ }),
-
-/***/ "./request-async-storage.external":
-/*!*****************************************************************************!*\
- !*** external "next/dist/client/components/request-async-storage.external" ***!
- \*****************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/request-async-storage.external");
-
-/***/ }),
-
-/***/ "../../client/components/request-async-storage.external":
-/*!********************************************************************************!*\
- !*** external "next/dist/client/components/request-async-storage.external.js" ***!
- \********************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/request-async-storage.external.js");
-
-/***/ }),
-
-/***/ "./static-generation-async-storage.external":
-/*!***************************************************************************************!*\
- !*** external "next/dist/client/components/static-generation-async-storage.external" ***!
- \***************************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/static-generation-async-storage.external");
-
-/***/ }),
-
-/***/ "../../client/components/static-generation-async-storage.external":
-/*!******************************************************************************************!*\
- !*** external "next/dist/client/components/static-generation-async-storage.external.js" ***!
- \******************************************************************************************/
-/***/ ((module) => {
-
-"use strict";
-module.exports = require("next/dist/client/components/static-generation-async-storage.external.js");
-
-/***/ }),
-
-/***/ "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");
-
-/***/ }),
-
-/***/ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!":
-/*!**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D! ***!
- \**********************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/
-/***/ ((__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 default from dynamic */ next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default.a),\n/* harmony export */ __next_app__: () => (/* binding */ __next_app__),\n/* harmony export */ originalPathname: () => (/* binding */ originalPathname),\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_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! next/dist/server/future/route-modules/app-page/module.compiled */ \"(ssr)/./node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js?d969\");\n/* harmony import */ var next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony import */ var next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/dist/server/future/route-kind */ \"(rsc)/./node_modules/next/dist/server/future/route-kind.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! next/dist/client/components/error-boundary */ \"(rsc)/./node_modules/next/dist/client/components/error-boundary.js\");\n/* harmony import */ var next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(next_dist_client_components_error_boundary__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__ = __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_3___default = /*#__PURE__*/__webpack_require__.n(next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__);\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_3__) if([\"default\",\"tree\",\"pages\",\"GlobalError\",\"originalPathname\",\"__next_app__\",\"routeModule\"].indexOf(__WEBPACK_IMPORT_KEY__) < 0) __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => next_dist_server_app_render_entry_base__WEBPACK_IMPORTED_MODULE_3__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\"TURBOPACK { transition: next-ssr }\";\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: ['__PAGE__', {}, {\n page: [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/page.tsx */ \"(rsc)/./app/page.tsx\")), \"/Users/sean/Dev/gunbuilder-prototype/app/page.tsx\"],\n \n }]\n },\n {\n 'layout': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/layout.tsx */ \"(rsc)/./app/layout.tsx\")), \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\"],\n'not-found': [() => Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! next/dist/client/components/not-found-error */ \"(rsc)/./node_modules/next/dist/client/components/not-found-error.js\", 23)), \"next/dist/client/components/not-found-error\"],\n \n }\n ]\n }.children;\nconst pages = [\"/Users/sean/Dev/gunbuilder-prototype/app/page.tsx\"];\n\n\nconst __next_app_require__ = __webpack_require__\nconst __next_app_load_chunk__ = () => Promise.resolve()\nconst originalPathname = \"/page\";\nconst __next_app__ = {\n require: __next_app_require__,\n loadChunk: __next_app_load_chunk__\n};\n\n// Create and export the route module that will be consumed.\nconst routeModule = new next_dist_server_future_route_modules_app_page_module_compiled__WEBPACK_IMPORTED_MODULE_0__.AppPageRouteModule({\n definition: {\n kind: next_dist_server_future_route_kind__WEBPACK_IMPORTED_MODULE_1__.RouteKind.APP_PAGE,\n page: \"/page\",\n pathname: \"/\",\n // The following aren't used in production.\n bundlePath: \"\",\n filename: \"\",\n appPaths: []\n },\n userland: {\n loaderTree: tree\n }\n});\n\n//# sourceMappingURL=app-page.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWFwcC1sb2FkZXIuanM/bmFtZT1hcHAlMkZwYWdlJnBhZ2U9JTJGcGFnZSZhcHBQYXRocz0lMkZwYWdlJnBhZ2VQYXRoPXByaXZhdGUtbmV4dC1hcHAtZGlyJTJGcGFnZS50c3gmYXBwRGlyPSUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGYXBwJnBhZ2VFeHRlbnNpb25zPXRzeCZwYWdlRXh0ZW5zaW9ucz10cyZwYWdlRXh0ZW5zaW9ucz1qc3gmcGFnZUV4dGVuc2lvbnM9anMmcm9vdERpcj0lMkZVc2VycyUyRnNlYW4lMkZEZXYlMkZndW5idWlsZGVyLXByb3RvdHlwZSZpc0Rldj10cnVlJnRzY29uZmlnUGF0aD10c2NvbmZpZy5qc29uJmJhc2VQYXRoPSZhc3NldFByZWZpeD0mbmV4dENvbmZpZ091dHB1dD0mcHJlZmVycmVkUmVnaW9uPSZtaWRkbGV3YXJlQ29uZmlnPWUzMCUzRCEiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLGFBQWEsc0JBQXNCO0FBQ2lFO0FBQ3JDO0FBQy9EO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLGlDQUFpQztBQUNqQyx1QkFBdUIsd0lBQXNGO0FBQzdHO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBLHlCQUF5Qiw0SUFBd0Y7QUFDakgsb0JBQW9CLDBOQUFnRjtBQUNwRztBQUNBO0FBQ0E7QUFDQSxPQUFPO0FBQ1A7QUFDdUI7QUFDNkQ7QUFDcEYsNkJBQTZCLG1CQUFtQjtBQUNoRDtBQUNPO0FBQ0E7QUFDUDtBQUNBO0FBQ0E7QUFDdUQ7QUFDdkQ7QUFDTyx3QkFBd0IsOEdBQWtCO0FBQ2pEO0FBQ0EsY0FBYyx5RUFBUztBQUN2QjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLO0FBQ0w7QUFDQTtBQUNBO0FBQ0EsQ0FBQzs7QUFFRCIsInNvdXJjZXMiOlsid2VicGFjazovL2d1bmJ1aWxkZXItcHJvdG90eXBlLz85ZTBkIl0sInNvdXJjZXNDb250ZW50IjpbIlwiVFVSQk9QQUNLIHsgdHJhbnNpdGlvbjogbmV4dC1zc3IgfVwiO1xuaW1wb3J0IHsgQXBwUGFnZVJvdXRlTW9kdWxlIH0gZnJvbSBcIm5leHQvZGlzdC9zZXJ2ZXIvZnV0dXJlL3JvdXRlLW1vZHVsZXMvYXBwLXBhZ2UvbW9kdWxlLmNvbXBpbGVkXCI7XG5pbXBvcnQgeyBSb3V0ZUtpbmQgfSBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9mdXR1cmUvcm91dGUta2luZFwiO1xuLy8gV2UgaW5qZWN0IHRoZSB0cmVlIGFuZCBwYWdlcyBoZXJlIHNvIHRoYXQgd2UgY2FuIHVzZSB0aGVtIGluIHRoZSByb3V0ZVxuLy8gbW9kdWxlLlxuY29uc3QgdHJlZSA9IHtcbiAgICAgICAgY2hpbGRyZW46IFtcbiAgICAgICAgJycsXG4gICAgICAgIHtcbiAgICAgICAgY2hpbGRyZW46IFsnX19QQUdFX18nLCB7fSwge1xuICAgICAgICAgIHBhZ2U6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9hcHAvcGFnZS50c3hcIiksIFwiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL2FwcC9wYWdlLnRzeFwiXSxcbiAgICAgICAgICBcbiAgICAgICAgfV1cbiAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgJ2xheW91dCc6IFsoKSA9PiBpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9hcHAvbGF5b3V0LnRzeFwiKSwgXCIvVXNlcnMvc2Vhbi9EZXYvZ3VuYnVpbGRlci1wcm90b3R5cGUvYXBwL2xheW91dC50c3hcIl0sXG4nbm90LWZvdW5kJzogWygpID0+IGltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwibmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvclwiKSwgXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWVycm9yXCJdLFxuICAgICAgICBcbiAgICAgIH1cbiAgICAgIF1cbiAgICAgIH0uY2hpbGRyZW47XG5jb25zdCBwYWdlcyA9IFtcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9hcHAvcGFnZS50c3hcIl07XG5leHBvcnQgeyB0cmVlLCBwYWdlcyB9O1xuZXhwb3J0IHsgZGVmYXVsdCBhcyBHbG9iYWxFcnJvciB9IGZyb20gXCJuZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnlcIjtcbmNvbnN0IF9fbmV4dF9hcHBfcmVxdWlyZV9fID0gX193ZWJwYWNrX3JlcXVpcmVfX1xuY29uc3QgX19uZXh0X2FwcF9sb2FkX2NodW5rX18gPSAoKSA9PiBQcm9taXNlLnJlc29sdmUoKVxuZXhwb3J0IGNvbnN0IG9yaWdpbmFsUGF0aG5hbWUgPSBcIi9wYWdlXCI7XG5leHBvcnQgY29uc3QgX19uZXh0X2FwcF9fID0ge1xuICAgIHJlcXVpcmU6IF9fbmV4dF9hcHBfcmVxdWlyZV9fLFxuICAgIGxvYWRDaHVuazogX19uZXh0X2FwcF9sb2FkX2NodW5rX19cbn07XG5leHBvcnQgKiBmcm9tIFwibmV4dC9kaXN0L3NlcnZlci9hcHAtcmVuZGVyL2VudHJ5LWJhc2VcIjtcbi8vIENyZWF0ZSBhbmQgZXhwb3J0IHRoZSByb3V0ZSBtb2R1bGUgdGhhdCB3aWxsIGJlIGNvbnN1bWVkLlxuZXhwb3J0IGNvbnN0IHJvdXRlTW9kdWxlID0gbmV3IEFwcFBhZ2VSb3V0ZU1vZHVsZSh7XG4gICAgZGVmaW5pdGlvbjoge1xuICAgICAgICBraW5kOiBSb3V0ZUtpbmQuQVBQX1BBR0UsXG4gICAgICAgIHBhZ2U6IFwiL3BhZ2VcIixcbiAgICAgICAgcGF0aG5hbWU6IFwiL1wiLFxuICAgICAgICAvLyBUaGUgZm9sbG93aW5nIGFyZW4ndCB1c2VkIGluIHByb2R1Y3Rpb24uXG4gICAgICAgIGJ1bmRsZVBhdGg6IFwiXCIsXG4gICAgICAgIGZpbGVuYW1lOiBcIlwiLFxuICAgICAgICBhcHBQYXRoczogW11cbiAgICB9LFxuICAgIHVzZXJsYW5kOiB7XG4gICAgICAgIGxvYWRlclRyZWU6IHRyZWVcbiAgICB9XG59KTtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9YXBwLXBhZ2UuanMubWFwIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!\n");
-
-/***/ }),
-
-/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true! ***!
- \********************************************************************************************************************************************************************************************************************************/
-/***/ (() => {
-
-
-
-/***/ }),
-
-/***/ "(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.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/app-router.js */ \"(ssr)/./node_modules/next/dist/client/components/app-router.js\", 23));\n;\nPromise.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/error-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/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/not-found-boundary.js */ \"(ssr)/./node_modules/next/dist/client/components/not-found-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//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGYXBwLXJvdXRlci5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRnNlYW4lMkZEZXYlMkZndW5idWlsZGVyLXByb3RvdHlwZSUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmNsaWVudC1wYWdlLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGZXJyb3ItYm91bmRhcnkuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZzZWFuJTJGRGV2JTJGZ3VuYnVpbGRlci1wcm90b3R5cGUlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZsYXlvdXQtcm91dGVyLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbm90LWZvdW5kLWJvdW5kYXJ5LmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsa09BQWdJO0FBQ2hJO0FBQ0Esb09BQWlJO0FBQ2pJO0FBQ0EsME9BQW9JO0FBQ3BJO0FBQ0Esd09BQW1JO0FBQ25JO0FBQ0Esa1BBQXdJO0FBQ3hJO0FBQ0Esc1FBQWtKIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ3VuYnVpbGRlci1wcm90b3R5cGUvPzdiMjUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvc2Vhbi9EZXYvZ3VuYnVpbGRlci1wcm90b3R5cGUvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9hcHAtcm91dGVyLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvc2Vhbi9EZXYvZ3VuYnVpbGRlci1wcm90b3R5cGUvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtcGFnZS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvZXJyb3ItYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1ib3VuZGFyeS5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3NlYW4vRGV2L2d1bmJ1aWxkZXItcHJvdG90eXBlL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qc1wiKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.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%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=true!":
-/*!*******************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%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/link.js */ \"(ssr)/./node_modules/next/dist/client/link.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHNzcikvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2J1aWxkL3dlYnBhY2svbG9hZGVycy9uZXh0LWZsaWdodC1jbGllbnQtZW50cnktbG9hZGVyLmpzP21vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZsaW5rLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTIyKiUyMiU1RCU3RCZzZXJ2ZXI9dHJ1ZSEiLCJtYXBwaW5ncyI6IkFBQUEsZ01BQStHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ3VuYnVpbGRlci1wcm90b3R5cGUvPzgwODciXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvc2Vhbi9EZXYvZ3VuYnVpbGRlci1wcm90b3R5cGUvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvbGluay5qc1wiKTtcbiJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(ssr)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=true!\n");
-
-/***/ }),
-
-/***/ "(rsc)/./app/globals.css":
-/*!*************************!*\
- !*** ./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__ = (\"8e3b978f6080\");\nif (false) {}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvZ2xvYmFscy5jc3MiLCJtYXBwaW5ncyI6Ijs7OztBQUFBLGlFQUFlLGNBQWM7QUFDN0IsSUFBSSxLQUFVLEVBQUUsRUFBdUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ndW5idWlsZGVyLXByb3RvdHlwZS8uL2FwcC9nbG9iYWxzLmNzcz9jZDI4Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBkZWZhdWx0IFwiOGUzYjk3OGY2MDgwXCJcbmlmIChtb2R1bGUuaG90KSB7IG1vZHVsZS5ob3QuYWNjZXB0KCkgfVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./app/globals.css\n");
-
-/***/ }),
-
-/***/ "(rsc)/./app/layout.tsx":
-/*!************************!*\
- !*** ./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 */ RootLayout),\n/* harmony export */ metadata: () => (/* binding */ metadata)\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/future/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 _globals_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./globals.css */ \"(rsc)/./app/globals.css\");\n\n\nconst metadata = {\n title: \"Gunbuilder Prototype | Shadow Standard\",\n description: \"Prototype AR-15 build tool by Shadow Standard.\"\n};\nfunction RootLayout({ children }) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"html\", {\n lang: \"en\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"body\", {\n children: children\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\",\n lineNumber: 12,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx\",\n lineNumber: 11,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvbGF5b3V0LnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7QUFBdUI7QUFHaEIsTUFBTUEsV0FBVztJQUN0QkMsT0FBTztJQUNQQyxhQUFhO0FBQ2YsRUFBRTtBQUVhLFNBQVNDLFdBQVcsRUFBRUMsUUFBUSxFQUEyQjtJQUN0RSxxQkFDRSw4REFBQ0M7UUFBS0MsTUFBSztrQkFDVCw0RUFBQ0M7c0JBQU1IOzs7Ozs7Ozs7OztBQUdiIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vZ3VuYnVpbGRlci1wcm90b3R5cGUvLi9hcHAvbGF5b3V0LnRzeD85OTg4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBcIi4vZ2xvYmFscy5jc3NcIjtcbmltcG9ydCB0eXBlIHsgUmVhY3ROb2RlIH0gZnJvbSBcInJlYWN0XCI7XG5cbmV4cG9ydCBjb25zdCBtZXRhZGF0YSA9IHtcbiAgdGl0bGU6IFwiR3VuYnVpbGRlciBQcm90b3R5cGUgfCBTaGFkb3cgU3RhbmRhcmRcIixcbiAgZGVzY3JpcHRpb246IFwiUHJvdG90eXBlIEFSLTE1IGJ1aWxkIHRvb2wgYnkgU2hhZG93IFN0YW5kYXJkLlwiLFxufTtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUm9vdExheW91dCh7IGNoaWxkcmVuIH06IHsgY2hpbGRyZW46IFJlYWN0Tm9kZSB9KSB7XG4gIHJldHVybiAoXG4gICAgPGh0bWwgbGFuZz1cImVuXCI+XG4gICAgICA8Ym9keT57Y2hpbGRyZW59PC9ib2R5PlxuICAgIDwvaHRtbD5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJtZXRhZGF0YSIsInRpdGxlIiwiZGVzY3JpcHRpb24iLCJSb290TGF5b3V0IiwiY2hpbGRyZW4iLCJodG1sIiwibGFuZyIsImJvZHkiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./app/layout.tsx\n");
-
-/***/ }),
-
-/***/ "(rsc)/./app/page.tsx":
-/*!**********************!*\
- !*** ./app/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 */ HomePage)\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/future/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 next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(rsc)/./node_modules/next/dist/api/link.js\");\n\n\nfunction HomePage() {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50 flex items-center justify-center px-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"max-w-xl text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/page.tsx\",\n lineNumber: 7,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-2 text-3xl md:text-4xl font-semibold tracking-tight\",\n children: \"Gunbuilder Prototype\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/page.tsx\",\n lineNumber: 10,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-3 text-sm md:text-base text-zinc-400\",\n children: \"This is a minimal Next.js + Tailwind prototype of the Gunbuilder concept. Click below to open the builder and start selecting parts for an AR-15 build.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/page.tsx\",\n lineNumber: 13,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n href: \"/gunbuilder\",\n className: \"inline-flex items-center justify-center rounded-md border border-amber-400/70 bg-amber-400/10 px-4 py-2 text-sm font-medium text-amber-200 hover:bg-amber-400/15\",\n children: \"Open Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/page.tsx\",\n lineNumber: 19,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/page.tsx\",\n lineNumber: 18,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/page.tsx\",\n lineNumber: 6,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/page.tsx\",\n lineNumber: 5,\n columnNumber: 5\n }, this);\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9hcHAvcGFnZS50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUFBNkI7QUFFZCxTQUFTQztJQUN0QixxQkFDRSw4REFBQ0M7UUFBS0MsV0FBVTtrQkFDZCw0RUFBQ0M7WUFBSUQsV0FBVTs7OEJBQ2IsOERBQUNFO29CQUFFRixXQUFVOzhCQUFpRTs7Ozs7OzhCQUc5RSw4REFBQ0c7b0JBQUdILFdBQVU7OEJBQXlEOzs7Ozs7OEJBR3ZFLDhEQUFDRTtvQkFBRUYsV0FBVTs4QkFBMEM7Ozs7Ozs4QkFLdkQsOERBQUNDO29CQUFJRCxXQUFVOzhCQUNiLDRFQUFDSCxpREFBSUE7d0JBQ0hPLE1BQUs7d0JBQ0xKLFdBQVU7a0NBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFPWCIsInNvdXJjZXMiOlsid2VicGFjazovL2d1bmJ1aWxkZXItcHJvdG90eXBlLy4vYXBwL3BhZ2UudHN4Pzc2MDMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBIb21lUGFnZSgpIHtcbiAgcmV0dXJuIChcbiAgICA8bWFpbiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gYmctYmxhY2sgdGV4dC16aW5jLTUwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIHB4LTRcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWF4LXcteGwgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRyYWNraW5nLVswLjJlbV0gdXBwZXJjYXNlIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICBTaGFkb3cgU3RhbmRhcmRcbiAgICAgICAgPC9wPlxuICAgICAgICA8aDEgY2xhc3NOYW1lPVwibXQtMiB0ZXh0LTN4bCBtZDp0ZXh0LTR4bCBmb250LXNlbWlib2xkIHRyYWNraW5nLXRpZ2h0XCI+XG4gICAgICAgICAgR3VuYnVpbGRlciBQcm90b3R5cGVcbiAgICAgICAgPC9oMT5cbiAgICAgICAgPHAgY2xhc3NOYW1lPVwibXQtMyB0ZXh0LXNtIG1kOnRleHQtYmFzZSB0ZXh0LXppbmMtNDAwXCI+XG4gICAgICAgICAgVGhpcyBpcyBhIG1pbmltYWwgTmV4dC5qcyArIFRhaWx3aW5kIHByb3RvdHlwZSBvZiB0aGUgR3VuYnVpbGRlclxuICAgICAgICAgIGNvbmNlcHQuIENsaWNrIGJlbG93IHRvIG9wZW4gdGhlIGJ1aWxkZXIgYW5kIHN0YXJ0IHNlbGVjdGluZyBwYXJ0c1xuICAgICAgICAgIGZvciBhbiBBUi0xNSBidWlsZC5cbiAgICAgICAgPC9wPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTZcIj5cbiAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgaHJlZj1cIi9ndW5idWlsZGVyXCJcbiAgICAgICAgICAgIGNsYXNzTmFtZT1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYW1iZXItNDAwLzcwIGJnLWFtYmVyLTQwMC8xMCBweC00IHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWFtYmVyLTIwMCBob3ZlcjpiZy1hbWJlci00MDAvMTVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIE9wZW4gR3VuYnVpbGRlclxuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21haW4+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiTGluayIsIkhvbWVQYWdlIiwibWFpbiIsImNsYXNzTmFtZSIsImRpdiIsInAiLCJoMSIsImhyZWYiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(rsc)/./app/page.tsx\n");
-
-/***/ })
-
-};
-;
-
-// 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/next","vendor-chunks/@swc"], () => (__webpack_exec__("(rsc)/./node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!")));
-module.exports = __webpack_exports__;
-
-})();
\ No newline at end of file
diff --git a/.next/server/app/page_client-reference-manifest.js b/.next/server/app/page_client-reference-manifest.js
deleted file mode 100644
index 162c420..0000000
--- a/.next/server/app/page_client-reference-manifest.js
+++ /dev/null
@@ -1 +0,0 @@
-globalThis.__RSC_MANIFEST=(globalThis.__RSC_MANIFEST||{});globalThis.__RSC_MANIFEST["/page"]={"moduleLoading":{"prefix":"/_next/","crossOrigin":null},"ssrModuleMapping":{"(app-pages-browser)/./node_modules/next/dist/client/link.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/link.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js":{"*":{"id":"(ssr)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/[categoryId]/[partId]/page.tsx","name":"*","chunks":[],"async":false}},"(app-pages-browser)/./app/gunbuilder/build/page.tsx":{"*":{"id":"(ssr)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}}},"edgeSSRModuleMapping":{},"clientModules":{"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/link.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/link.js","name":"*","chunks":["app/page","static/chunks/app/page.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/globals.css":{"id":"(app-pages-browser)/./app/globals.css","name":"*","chunks":["app/layout","static/chunks/app/layout.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/app-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/app-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/client-page.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/error-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/layout-router.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/not-found-boundary.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-boundary.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/esm/client/components/render-from-template-context.js":{"id":"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js","name":"*","chunks":["app-pages-internals","static/chunks/app-pages-internals.js"],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/page.tsx","name":"*","chunks":[],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx","name":"*","chunks":[],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx","name":"*","chunks":[],"async":false},"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page.tsx":{"id":"(app-pages-browser)/./app/gunbuilder/build/page.tsx","name":"*","chunks":[],"async":false}},"entryCSSFiles":{"/Users/sean/Dev/gunbuilder-prototype/":[],"/Users/sean/Dev/gunbuilder-prototype/app/page":[],"/Users/sean/Dev/gunbuilder-prototype/app/layout":["static/css/app/layout.css"]}}
\ No newline at end of file
diff --git a/.next/server/server-reference-manifest.js b/.next/server/server-reference-manifest.js
index 29fb183..3469db2 100644
--- a/.next/server/server-reference-manifest.js
+++ b/.next/server/server-reference-manifest.js
@@ -1 +1 @@
-self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"4llneUJdPQIBPeEXto9fgWZtvp2uJ8z9uh6CcoNXhcI=\"\n}"
\ No newline at end of file
+self.__RSC_SERVER_MANIFEST="{\n \"node\": {},\n \"edge\": {},\n \"encryptionKey\": \"ZxASFi7MiqyHozChjYSoQefUKtZDWURXFCvYTejSOjs=\"\n}"
\ No newline at end of file
diff --git a/.next/server/server-reference-manifest.json b/.next/server/server-reference-manifest.json
index 4c940f7..9454b54 100644
--- a/.next/server/server-reference-manifest.json
+++ b/.next/server/server-reference-manifest.json
@@ -1,5 +1,5 @@
{
"node": {},
"edge": {},
- "encryptionKey": "4llneUJdPQIBPeEXto9fgWZtvp2uJ8z9uh6CcoNXhcI="
+ "encryptionKey": "ZxASFi7MiqyHozChjYSoQefUKtZDWURXFCvYTejSOjs="
}
\ No newline at end of file
diff --git a/.next/server/vendor-chunks/next.js b/.next/server/vendor-chunks/next.js
index 7c78788..1427964 100644
--- a/.next/server/vendor-chunks/next.js
+++ b/.next/server/vendor-chunks/next.js
@@ -1975,17 +1975,6 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
/***/ }),
-/***/ "(rsc)/./node_modules/next/dist/api/link.js":
-/*!********************************************!*\
- !*** ./node_modules/next/dist/api/link.js ***!
- \********************************************/
-/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => {
-
-"use strict";
-eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": () => (/* reexport default from dynamic */ _client_link__WEBPACK_IMPORTED_MODULE_0___default.a)\n/* harmony export */ });\n/* harmony import */ var _client_link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/link */ \"(rsc)/./node_modules/next/dist/client/link.js\");\n/* harmony import */ var _client_link__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_client_link__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(const __WEBPACK_IMPORT_KEY__ in _client_link__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = () => _client_link__WEBPACK_IMPORTED_MODULE_0__[__WEBPACK_IMPORT_KEY__]\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n\n//# sourceMappingURL=link.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9saW5rLmpzIiwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUF5QztBQUNWOztBQUUvQiIsInNvdXJjZXMiOlsid2VicGFjazovL2d1bmJ1aWxkZXItcHJvdG90eXBlLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9hcGkvbGluay5qcz9lZmQ0Il0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IGRlZmF1bHQgfSBmcm9tIFwiLi4vY2xpZW50L2xpbmtcIjtcbmV4cG9ydCAqIGZyb20gXCIuLi9jbGllbnQvbGlua1wiO1xuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1saW5rLmpzLm1hcCJdLCJuYW1lcyI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/api/link.js\n");
-
-/***/ }),
-
/***/ "(rsc)/./node_modules/next/dist/build/output/log.js":
/*!****************************************************!*\
!*** ./node_modules/next/dist/build/output/log.js ***!
@@ -2140,21 +2129,6 @@ eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));
"use strict";
eval("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n StaticGenBailoutError: function() {\n return StaticGenBailoutError;\n },\n isStaticGenBailoutError: function() {\n return isStaticGenBailoutError;\n }\n});\nconst NEXT_STATIC_GEN_BAILOUT = \"NEXT_STATIC_GEN_BAILOUT\";\nclass StaticGenBailoutError extends Error {\n constructor(...args){\n super(...args);\n this.code = NEXT_STATIC_GEN_BAILOUT;\n }\n}\nfunction isStaticGenBailoutError(error) {\n if (typeof error !== \"object\" || error === null || !(\"code\" in error)) {\n return false;\n }\n return error.code === NEXT_STATIC_GEN_BAILOUT;\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=static-generation-bailout.js.map\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKHJzYykvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3N0YXRpYy1nZW5lcmF0aW9uLWJhaWxvdXQuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBRWFBLHVCQUFxQjtlQUFyQkE7O0lBSUdDLHlCQUF1QjtlQUF2QkE7OztBQU5oQixNQUFNQywwQkFBMEI7QUFFekIsTUFBTUYsOEJBQThCRzs7O2FBQ3pCQyxJQUFBQSxHQUFPRjs7QUFDekI7QUFFTyxTQUFTRCx3QkFDZEksS0FBYztJQUVkLElBQUksT0FBT0EsVUFBVSxZQUFZQSxVQUFVLFFBQVEsQ0FBRSxXQUFVQSxLQUFBQSxHQUFRO1FBQ3JFLE9BQU87SUFDVDtJQUVBLE9BQU9BLE1BQU1ELElBQUksS0FBS0Y7QUFDeEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9ndW5idWlsZGVyLXByb3RvdHlwZS8uLi8uLi8uLi9zcmMvY2xpZW50L2NvbXBvbmVudHMvc3RhdGljLWdlbmVyYXRpb24tYmFpbG91dC50cz80YzMxIl0sIm5hbWVzIjpbIlN0YXRpY0dlbkJhaWxvdXRFcnJvciIsImlzU3RhdGljR2VuQmFpbG91dEVycm9yIiwiTkVYVF9TVEFUSUNfR0VOX0JBSUxPVVQiLCJFcnJvciIsImNvZGUiLCJlcnJvciJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(rsc)/./node_modules/next/dist/client/components/static-generation-bailout.js\n");
-/***/ }),
-
-/***/ "(rsc)/./node_modules/next/dist/client/link.js":
-/*!***********************************************!*\
- !*** ./node_modules/next/dist/client/link.js ***!
- \***********************************************/
-/***/ ((module, __unused_webpack_exports, __webpack_require__) => {
-
-"use strict";
-/* __next_internal_client_entry_do_not_use__ cjs */
-const { createProxy } = __webpack_require__(/*! next/dist/build/webpack/loaders/next-flight-loader/module-proxy */ "(rsc)/./node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js");
-module.exports = createProxy("/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/link.js");
- //# sourceMappingURL=link.js.map
-
-
/***/ }),
/***/ "(rsc)/./node_modules/next/dist/compiled/@opentelemetry/api/index.js":
diff --git a/.next/server/webpack-runtime.js b/.next/server/webpack-runtime.js
index 5ec3ae6..4877ebb 100644
--- a/.next/server/webpack-runtime.js
+++ b/.next/server/webpack-runtime.js
@@ -125,7 +125,7 @@
/******/
/******/ /* webpack/runtime/getFullHash */
/******/ (() => {
-/******/ __webpack_require__.h = () => ("80d591f7687d0679")
+/******/ __webpack_require__.h = () => ("cacb2d11823559d2")
/******/ })();
/******/
/******/ /* webpack/runtime/hasOwnProperty shorthand */
diff --git a/.next/static/chunks/app/_not-found/page.js b/.next/static/chunks/app/_not-found/page.js
deleted file mode 100644
index 9904048..0000000
--- a/.next/static/chunks/app/_not-found/page.js
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["app/_not-found/page"],{
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!":
-/*!***************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage! ***!
- \***************************************************************************************************************************************************************************************************************************************************/
-/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
-
-eval(__webpack_require__.ts("\n (window.__NEXT_P = window.__NEXT_P || []).push([\n \"/_not-found/page\",\n function () {\n return __webpack_require__(/*! ./node_modules/next/dist/client/components/not-found-error.js */ \"(app-pages-browser)/./node_modules/next/dist/client/components/not-found-error.js\");\n }\n ]);\n if(true) {\n module.hot.dispose(function () {\n window.__NEXT_P.push([\"/_not-found/page\"])\n });\n }\n //# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtY2xpZW50LXBhZ2VzLWxvYWRlci5qcz9hYnNvbHV0ZVBhZ2VQYXRoPSUyRlVzZXJzJTJGc2VhbiUyRkRldiUyRmd1bmJ1aWxkZXItcHJvdG90eXBlJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbm90LWZvdW5kLWVycm9yLmpzJnBhZ2U9JTJGX25vdC1mb3VuZCUyRnBhZ2UhIiwibWFwcGluZ3MiOiI7QUFDQTtBQUNBO0FBQ0E7QUFDQSxlQUFlLG1CQUFPLENBQUMsd0pBQStEO0FBQ3RGO0FBQ0E7QUFDQSxPQUFPLElBQVU7QUFDakIsTUFBTSxVQUFVO0FBQ2hCO0FBQ0EsT0FBTztBQUNQO0FBQ0EiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLz9jODJhIl0sInNvdXJjZXNDb250ZW50IjpbIlxuICAgICh3aW5kb3cuX19ORVhUX1AgPSB3aW5kb3cuX19ORVhUX1AgfHwgW10pLnB1c2goW1xuICAgICAgXCIvX25vdC1mb3VuZC9wYWdlXCIsXG4gICAgICBmdW5jdGlvbiAoKSB7XG4gICAgICAgIHJldHVybiByZXF1aXJlKFwiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvci5qc1wiKTtcbiAgICAgIH1cbiAgICBdKTtcbiAgICBpZihtb2R1bGUuaG90KSB7XG4gICAgICBtb2R1bGUuaG90LmRpc3Bvc2UoZnVuY3Rpb24gKCkge1xuICAgICAgICB3aW5kb3cuX19ORVhUX1AucHVzaChbXCIvX25vdC1mb3VuZC9wYWdlXCJdKVxuICAgICAgfSk7XG4gICAgfVxuICAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/client/components/not-found-error.js":
-/*!*********************************************************************!*\
- !*** ./node_modules/next/dist/client/components/not-found-error.js ***!
- \*********************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return NotFound;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(app-pages-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"));\nconst styles = {\n error: {\n // https://github.com/sindresorhus/modern-normalize/blob/main/modern-normalize.css#L38-L52\n fontFamily: 'system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"',\n height: \"100vh\",\n textAlign: \"center\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\"\n },\n desc: {\n display: \"inline-block\"\n },\n h1: {\n display: \"inline-block\",\n margin: \"0 20px 0 0\",\n padding: \"0 23px 0 0\",\n fontSize: 24,\n fontWeight: 500,\n verticalAlign: \"top\",\n lineHeight: \"49px\"\n },\n h2: {\n fontSize: 14,\n fontWeight: 400,\n lineHeight: \"49px\",\n margin: 0\n }\n};\nfunction NotFound() {\n return /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"title\", {\n children: \"404: This page could not be found.\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.error,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(\"div\", {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"style\", {\n dangerouslySetInnerHTML: {\n /* Minified CSS from\n body { margin: 0; color: #000; background: #fff; }\n .next-error-h1 {\n border-right: 1px solid rgba(0, 0, 0, .3);\n }\n\n @media (prefers-color-scheme: dark) {\n body { color: #fff; background: #000; }\n .next-error-h1 {\n border-right: 1px solid rgba(255, 255, 255, .3);\n }\n }\n */ __html: \"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"\n }\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h1\", {\n className: \"next-error-h1\",\n style: styles.h1,\n children: \"404\"\n }),\n /*#__PURE__*/ (0, _jsxruntime.jsx)(\"div\", {\n style: styles.desc,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(\"h2\", {\n style: styles.h2,\n children: \"This page could not be found.\"\n })\n })\n ]\n })\n })\n ]\n });\n}\n_c = NotFound;\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=not-found-error.js.map\nvar _c;\n$RefreshReg$(_c, \"NotFound\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbm90LWZvdW5kLWVycm9yLmpzIiwibWFwcGluZ3MiOiI7Ozs7MkNBcUNBOzs7ZUFBd0JBOzs7Ozs0RUFyQ047QUFFbEIsTUFBTUMsU0FBOEM7SUFDbERDLE9BQU87UUFDTCwwRkFBMEY7UUFDMUZDLFlBQ0U7UUFDRkMsUUFBUTtRQUNSQyxXQUFXO1FBQ1hDLFNBQVM7UUFDVEMsZUFBZTtRQUNmQyxZQUFZO1FBQ1pDLGdCQUFnQjtJQUNsQjtJQUVBQyxNQUFNO1FBQ0pKLFNBQVM7SUFDWDtJQUVBSyxJQUFJO1FBQ0ZMLFNBQVM7UUFDVE0sUUFBUTtRQUNSQyxTQUFTO1FBQ1RDLFVBQVU7UUFDVkMsWUFBWTtRQUNaQyxlQUFlO1FBQ2ZDLFlBQVk7SUFDZDtJQUVBQyxJQUFJO1FBQ0ZKLFVBQVU7UUFDVkMsWUFBWTtRQUNaRSxZQUFZO1FBQ1pMLFFBQVE7SUFDVjtBQUNGO0FBRWUsU0FBU1o7SUFDdEIsT0FDRSxXQURGLEdBQ0UsSUFBQW1CLFlBQUFDLElBQUEsRUFBQUQsWUFBQUUsUUFBQTs7MEJBRUUsSUFBQUYsWUFBQUcsR0FBQSxFQUFDQyxTQUFBQTswQkFBTTs7MEJBRVAsSUFBQUosWUFBQUcsR0FBQSxFQUFDRSxPQUFBQTtnQkFBSUMsT0FBT3hCLE9BQU9DLEtBQUs7MEJBQ3RCLGtCQUFBaUIsWUFBQUMsSUFBQSxFQUFDSSxPQUFBQTs7c0NBQ0MsSUFBQUwsWUFBQUcsR0FBQSxFQUFDRyxTQUFBQTs0QkFDQ0MseUJBQXlCO2dDQUN2Qjs7Ozs7Ozs7Ozs7O2NBWUEsR0FDQUMsUUFBUzs0QkFDWDs7c0NBRUYsSUFBQVIsWUFBQUcsR0FBQSxFQUFDWCxNQUFBQTs0QkFBR2lCLFdBQVU7NEJBQWdCSCxPQUFPeEIsT0FBT1UsRUFBRTtzQ0FBRTs7c0NBR2hELElBQUFRLFlBQUFHLEdBQUEsRUFBQ0UsT0FBQUE7NEJBQUlDLE9BQU94QixPQUFPUyxJQUFJO3NDQUNyQixrQkFBQVMsWUFBQUcsR0FBQSxFQUFDSixNQUFBQTtnQ0FBR08sT0FBT3hCLE9BQU9pQixFQUFFOzBDQUFFOzs7Ozs7OztBQU1sQztLQXBDd0JsQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vLi4vc3JjL2NsaWVudC9jb21wb25lbnRzL25vdC1mb3VuZC1lcnJvci50c3g/ZjcwOSJdLCJuYW1lcyI6WyJOb3RGb3VuZCIsInN0eWxlcyIsImVycm9yIiwiZm9udEZhbWlseSIsImhlaWdodCIsInRleHRBbGlnbiIsImRpc3BsYXkiLCJmbGV4RGlyZWN0aW9uIiwiYWxpZ25JdGVtcyIsImp1c3RpZnlDb250ZW50IiwiZGVzYyIsImgxIiwibWFyZ2luIiwicGFkZGluZyIsImZvbnRTaXplIiwiZm9udFdlaWdodCIsInZlcnRpY2FsQWxpZ24iLCJsaW5lSGVpZ2h0IiwiaDIiLCJfanN4cnVudGltZSIsImpzeHMiLCJGcmFnbWVudCIsImpzeCIsInRpdGxlIiwiZGl2Iiwic3R5bGUiLCJkYW5nZXJvdXNseVNldElubmVySFRNTCIsIl9faHRtbCIsImNsYXNzTmFtZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/not-found-error.js\n"));
-
-/***/ })
-
-},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
-/******/ __webpack_require__.O(0, ["main-app"], function() { return __webpack_exec__("(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"); });
-/******/ var __webpack_exports__ = __webpack_require__.O();
-/******/ _N_E = __webpack_exports__;
-/******/ }
-]);
\ No newline at end of file
diff --git a/.next/static/chunks/app/gunbuilder/[categoryId]/[partId]/page.js b/.next/static/chunks/app/gunbuilder/[categoryId]/[partId]/page.js
deleted file mode 100644
index d746a3c..0000000
--- a/.next/static/chunks/app/gunbuilder/[categoryId]/[partId]/page.js
+++ /dev/null
@@ -1,336 +0,0 @@
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["app/gunbuilder/[categoryId]/[partId]/page"],{
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!":
-/*!*****************************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false! ***!
- \*****************************************************************************************************************************************************************************************************************************************************************************/
-/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
-
-eval(__webpack_require__.ts("Promise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./app/gunbuilder/[categoryId]/[partId]/page.tsx */ \"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx\"));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWNsaWVudC1lbnRyeS1sb2FkZXIuanM/bW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZzZWFuJTJGRGV2JTJGZ3VuYnVpbGRlci1wcm90b3R5cGUlMkZhcHAlMkZndW5idWlsZGVyJTJGJTVCY2F0ZWdvcnlJZCU1RCUyRiU1QnBhcnRJZCU1RCUyRnBhZ2UudHN4JTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJnNlcnZlcj1mYWxzZSEiLCJtYXBwaW5ncyI6IkFBQUEsd05BQXVIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8/MDU4NCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9hcHAvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vW3BhcnRJZF0vcGFnZS50c3hcIik7XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/api/link.js":
-/*!********************************************!*\
- !*** ./node_modules/next/dist/api/link.js ***!
- \********************************************/
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* reexport default from dynamic */ _client_link__WEBPACK_IMPORTED_MODULE_0___default.a; }\n/* harmony export */ });\n/* harmony import */ var _client_link__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/link */ \"(app-pages-browser)/./node_modules/next/dist/client/link.js\");\n/* harmony import */ var _client_link__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_client_link__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _client_link__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _client_link__WEBPACK_IMPORTED_MODULE_0__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n\n//# sourceMappingURL=link.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL2xpbmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQXlDO0FBQ1Y7O0FBRS9CIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL2xpbmsuanM/NzkyYiJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBkZWZhdWx0IH0gZnJvbSBcIi4uL2NsaWVudC9saW5rXCI7XG5leHBvcnQgKiBmcm9tIFwiLi4vY2xpZW50L2xpbmtcIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bGluay5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/api/link.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/api/navigation.js":
-/*!**************************************************!*\
- !*** ./node_modules/next/dist/api/navigation.js ***!
- \**************************************************/
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/navigation */ \"(app-pages-browser)/./node_modules/next/dist/client/components/navigation.js\");\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_client_components_navigation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=navigation.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL25hdmlnYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWdEOztBQUVoRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9uYXZpZ2F0aW9uLmpzPzdkMGYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4uL2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb25cIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmF2aWdhdGlvbi5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/api/navigation.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/data.ts":
-/*!******************************************************!*\
- !*** ./app/gunbuilder/[categoryId]/[partId]/data.ts ***!
- \******************************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getPricingHistory: function() { return /* binding */ getPricingHistory; },\n/* harmony export */ getRetailerOffers: function() { return /* binding */ getRetailerOffers; }\n/* harmony export */ });\n// Simulated data functions - Replace these with API calls when ready\n// Example: export async function getPricingHistory(partId: string) { ... }\n/**\n * Get pricing history for a part\n * TODO: Replace with API call: GET /api/parts/{partId}/pricing-history\n */ function getPricingHistory(partId, basePrice) {\n // Generate 30 days of price history with some variation\n const days = 30;\n const history = [];\n const today = new Date();\n for(let i = days - 1; i >= 0; i--){\n const date = new Date(today);\n date.setDate(date.getDate() - i);\n // Simulate price fluctuations (±15% variation)\n const variation = (Math.random() - 0.5) * 0.3; // -15% to +15%\n const price = basePrice * (1 + variation);\n history.push({\n date: date.toISOString().split(\"T\")[0],\n price: Math.round(price * 100) / 100\n });\n }\n return history;\n}\n/**\n * Get retailer offers for a part\n * TODO: Replace with API call: GET /api/parts/{partId}/retailers\n */ function getRetailerOffers(partId, basePrice, baseAffiliateUrl) {\n const retailers = [\n \"Primary Arms\",\n \"Brownells\",\n \"Optics Planet\",\n \"MidwayUSA\",\n \"Palmetto State Armory\"\n ];\n return retailers.map((retailer, index)=>{\n // Simulate price variations between retailers\n const priceVariation = (Math.random() - 0.4) * 0.2; // -8% to +12%\n const price = basePrice * (1 + priceVariation);\n const hasSale = Math.random() > 0.6; // 40% chance of sale\n const originalPrice = hasSale ? price * 1.15 : undefined;\n const inStock = Math.random() > 0.2; // 80% chance in stock\n return {\n id: \"retailer-\".concat(index),\n retailerName: retailer,\n price: Math.round(price * 100) / 100,\n originalPrice: originalPrice ? Math.round(originalPrice * 100) / 100 : undefined,\n inStock,\n affiliateUrl: baseAffiliateUrl.replace(\"example.com\", \"\".concat(retailer.toLowerCase().replace(/\\s+/g, \"\"), \".com\")),\n lastUpdated: new Date().toISOString()\n };\n }).sort((a, b)=>a.price - b.price); // Sort by price ascending\n}\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9bcGFydElkXS9kYXRhLnRzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBQXFFO0FBQ3JFLDJFQUEyRTtBQWlCM0U7OztDQUdDLEdBQ00sU0FBU0Esa0JBQ2RDLE1BQWMsRUFDZEMsU0FBaUI7SUFFakIsd0RBQXdEO0lBQ3hELE1BQU1DLE9BQU87SUFDYixNQUFNQyxVQUErQixFQUFFO0lBQ3ZDLE1BQU1DLFFBQVEsSUFBSUM7SUFFbEIsSUFBSyxJQUFJQyxJQUFJSixPQUFPLEdBQUdJLEtBQUssR0FBR0EsSUFBSztRQUNsQyxNQUFNQyxPQUFPLElBQUlGLEtBQUtEO1FBQ3RCRyxLQUFLQyxPQUFPLENBQUNELEtBQUtFLE9BQU8sS0FBS0g7UUFFOUIsK0NBQStDO1FBQy9DLE1BQU1JLFlBQVksQ0FBQ0MsS0FBS0MsTUFBTSxLQUFLLEdBQUUsSUFBSyxLQUFLLGVBQWU7UUFDOUQsTUFBTUMsUUFBUVosWUFBYSxLQUFJUyxTQUFRO1FBRXZDUCxRQUFRVyxJQUFJLENBQUM7WUFDWFAsTUFBTUEsS0FBS1EsV0FBVyxHQUFHQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdENILE9BQU9GLEtBQUtNLEtBQUssQ0FBQ0osUUFBUSxPQUFPO1FBQ25DO0lBQ0Y7SUFFQSxPQUFPVjtBQUNUO0FBRUE7OztDQUdDLEdBQ00sU0FBU2Usa0JBQ2RsQixNQUFjLEVBQ2RDLFNBQWlCLEVBQ2pCa0IsZ0JBQXdCO0lBRXhCLE1BQU1DLFlBQVk7UUFDaEI7UUFDQTtRQUNBO1FBQ0E7UUFDQTtLQUNEO0lBRUQsT0FBT0EsVUFBVUMsR0FBRyxDQUFDLENBQUNDLFVBQVVDO1FBQzlCLDhDQUE4QztRQUM5QyxNQUFNQyxpQkFBaUIsQ0FBQ2IsS0FBS0MsTUFBTSxLQUFLLEdBQUUsSUFBSyxLQUFLLGNBQWM7UUFDbEUsTUFBTUMsUUFBUVosWUFBYSxLQUFJdUIsY0FBYTtRQUM1QyxNQUFNQyxVQUFVZCxLQUFLQyxNQUFNLEtBQUssS0FBSyxxQkFBcUI7UUFDMUQsTUFBTWMsZ0JBQWdCRCxVQUFVWixRQUFRLE9BQU9jO1FBQy9DLE1BQU1DLFVBQVVqQixLQUFLQyxNQUFNLEtBQUssS0FBSyxzQkFBc0I7UUFFM0QsT0FBTztZQUNMaUIsSUFBSSxZQUFrQixPQUFOTjtZQUNoQk8sY0FBY1I7WUFDZFQsT0FBT0YsS0FBS00sS0FBSyxDQUFDSixRQUFRLE9BQU87WUFDakNhLGVBQWVBLGdCQUNYZixLQUFLTSxLQUFLLENBQUNTLGdCQUFnQixPQUFPLE1BQ2xDQztZQUNKQztZQUNBRyxjQUFjWixpQkFBaUJhLE9BQU8sQ0FBQyxlQUFlLEdBQThDLE9BQTNDVixTQUFTVyxXQUFXLEdBQUdELE9BQU8sQ0FBQyxRQUFRLEtBQUk7WUFDcEdFLGFBQWEsSUFBSTdCLE9BQU9VLFdBQVc7UUFDckM7SUFDRixHQUFHb0IsSUFBSSxDQUFDLENBQUNDLEdBQUdDLElBQU1ELEVBQUV2QixLQUFLLEdBQUd3QixFQUFFeEIsS0FBSyxHQUFHLDBCQUEwQjtBQUNsRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vW3BhcnRJZF0vZGF0YS50cz9kNzM1Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNpbXVsYXRlZCBkYXRhIGZ1bmN0aW9ucyAtIFJlcGxhY2UgdGhlc2Ugd2l0aCBBUEkgY2FsbHMgd2hlbiByZWFkeVxuLy8gRXhhbXBsZTogZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFByaWNpbmdIaXN0b3J5KHBhcnRJZDogc3RyaW5nKSB7IC4uLiB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VIaXN0b3J5UG9pbnQge1xuICBkYXRlOiBzdHJpbmc7IC8vIElTTyBkYXRlIHN0cmluZ1xuICBwcmljZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJldGFpbGVyT2ZmZXIge1xuICBpZDogc3RyaW5nO1xuICByZXRhaWxlck5hbWU6IHN0cmluZztcbiAgcHJpY2U6IG51bWJlcjtcbiAgb3JpZ2luYWxQcmljZT86IG51bWJlcjtcbiAgaW5TdG9jazogYm9vbGVhbjtcbiAgYWZmaWxpYXRlVXJsOiBzdHJpbmc7XG4gIGxhc3RVcGRhdGVkOiBzdHJpbmc7IC8vIElTTyBkYXRlIHN0cmluZ1xufVxuXG4vKipcbiAqIEdldCBwcmljaW5nIGhpc3RvcnkgZm9yIGEgcGFydFxuICogVE9ETzogUmVwbGFjZSB3aXRoIEFQSSBjYWxsOiBHRVQgL2FwaS9wYXJ0cy97cGFydElkfS9wcmljaW5nLWhpc3RvcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFByaWNpbmdIaXN0b3J5KFxuICBwYXJ0SWQ6IHN0cmluZyxcbiAgYmFzZVByaWNlOiBudW1iZXIsXG4pOiBQcmljZUhpc3RvcnlQb2ludFtdIHtcbiAgLy8gR2VuZXJhdGUgMzAgZGF5cyBvZiBwcmljZSBoaXN0b3J5IHdpdGggc29tZSB2YXJpYXRpb25cbiAgY29uc3QgZGF5cyA9IDMwO1xuICBjb25zdCBoaXN0b3J5OiBQcmljZUhpc3RvcnlQb2ludFtdID0gW107XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcblxuICBmb3IgKGxldCBpID0gZGF5cyAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTtcbiAgICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgLSBpKTtcblxuICAgIC8vIFNpbXVsYXRlIHByaWNlIGZsdWN0dWF0aW9ucyAowrExNSUgdmFyaWF0aW9uKVxuICAgIGNvbnN0IHZhcmlhdGlvbiA9IChNYXRoLnJhbmRvbSgpIC0gMC41KSAqIDAuMzsgLy8gLTE1JSB0byArMTUlXG4gICAgY29uc3QgcHJpY2UgPSBiYXNlUHJpY2UgKiAoMSArIHZhcmlhdGlvbik7XG5cbiAgICBoaXN0b3J5LnB1c2goe1xuICAgICAgZGF0ZTogZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXSxcbiAgICAgIHByaWNlOiBNYXRoLnJvdW5kKHByaWNlICogMTAwKSAvIDEwMCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBoaXN0b3J5O1xufVxuXG4vKipcbiAqIEdldCByZXRhaWxlciBvZmZlcnMgZm9yIGEgcGFydFxuICogVE9ETzogUmVwbGFjZSB3aXRoIEFQSSBjYWxsOiBHRVQgL2FwaS9wYXJ0cy97cGFydElkfS9yZXRhaWxlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJldGFpbGVyT2ZmZXJzKFxuICBwYXJ0SWQ6IHN0cmluZyxcbiAgYmFzZVByaWNlOiBudW1iZXIsXG4gIGJhc2VBZmZpbGlhdGVVcmw6IHN0cmluZyxcbik6IFJldGFpbGVyT2ZmZXJbXSB7XG4gIGNvbnN0IHJldGFpbGVycyA9IFtcbiAgICBcIlByaW1hcnkgQXJtc1wiLFxuICAgIFwiQnJvd25lbGxzXCIsXG4gICAgXCJPcHRpY3MgUGxhbmV0XCIsXG4gICAgXCJNaWR3YXlVU0FcIixcbiAgICBcIlBhbG1ldHRvIFN0YXRlIEFybW9yeVwiLFxuICBdO1xuXG4gIHJldHVybiByZXRhaWxlcnMubWFwKChyZXRhaWxlciwgaW5kZXgpID0+IHtcbiAgICAvLyBTaW11bGF0ZSBwcmljZSB2YXJpYXRpb25zIGJldHdlZW4gcmV0YWlsZXJzXG4gICAgY29uc3QgcHJpY2VWYXJpYXRpb24gPSAoTWF0aC5yYW5kb20oKSAtIDAuNCkgKiAwLjI7IC8vIC04JSB0byArMTIlXG4gICAgY29uc3QgcHJpY2UgPSBiYXNlUHJpY2UgKiAoMSArIHByaWNlVmFyaWF0aW9uKTtcbiAgICBjb25zdCBoYXNTYWxlID0gTWF0aC5yYW5kb20oKSA+IDAuNjsgLy8gNDAlIGNoYW5jZSBvZiBzYWxlXG4gICAgY29uc3Qgb3JpZ2luYWxQcmljZSA9IGhhc1NhbGUgPyBwcmljZSAqIDEuMTUgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgaW5TdG9jayA9IE1hdGgucmFuZG9tKCkgPiAwLjI7IC8vIDgwJSBjaGFuY2UgaW4gc3RvY2tcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogYHJldGFpbGVyLSR7aW5kZXh9YCxcbiAgICAgIHJldGFpbGVyTmFtZTogcmV0YWlsZXIsXG4gICAgICBwcmljZTogTWF0aC5yb3VuZChwcmljZSAqIDEwMCkgLyAxMDAsXG4gICAgICBvcmlnaW5hbFByaWNlOiBvcmlnaW5hbFByaWNlXG4gICAgICAgID8gTWF0aC5yb3VuZChvcmlnaW5hbFByaWNlICogMTAwKSAvIDEwMFxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGluU3RvY2ssXG4gICAgICBhZmZpbGlhdGVVcmw6IGJhc2VBZmZpbGlhdGVVcmwucmVwbGFjZShcImV4YW1wbGUuY29tXCIsIGAke3JldGFpbGVyLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzKy9nLCBcIlwiKX0uY29tYCksXG4gICAgICBsYXN0VXBkYXRlZDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIH07XG4gIH0pLnNvcnQoKGEsIGIpID0+IGEucHJpY2UgLSBiLnByaWNlKTsgLy8gU29ydCBieSBwcmljZSBhc2NlbmRpbmdcbn1cblxuIl0sIm5hbWVzIjpbImdldFByaWNpbmdIaXN0b3J5IiwicGFydElkIiwiYmFzZVByaWNlIiwiZGF5cyIsImhpc3RvcnkiLCJ0b2RheSIsIkRhdGUiLCJpIiwiZGF0ZSIsInNldERhdGUiLCJnZXREYXRlIiwidmFyaWF0aW9uIiwiTWF0aCIsInJhbmRvbSIsInByaWNlIiwicHVzaCIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJyb3VuZCIsImdldFJldGFpbGVyT2ZmZXJzIiwiYmFzZUFmZmlsaWF0ZVVybCIsInJldGFpbGVycyIsIm1hcCIsInJldGFpbGVyIiwiaW5kZXgiLCJwcmljZVZhcmlhdGlvbiIsImhhc1NhbGUiLCJvcmlnaW5hbFByaWNlIiwidW5kZWZpbmVkIiwiaW5TdG9jayIsImlkIiwicmV0YWlsZXJOYW1lIiwiYWZmaWxpYXRlVXJsIiwicmVwbGFjZSIsInRvTG93ZXJDYXNlIiwibGFzdFVwZGF0ZWQiLCJzb3J0IiwiYSIsImIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/data.ts\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":
-/*!*******************************************************!*\
- !*** ./app/gunbuilder/[categoryId]/[partId]/page.tsx ***!
- \*******************************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ PartDetailPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./data */ \"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/data.ts\");\n/* harmony import */ var _components_PricingHistoryGraph__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/PricingHistoryGraph */ \"(app-pages-browser)/./components/PricingHistoryGraph.tsx\");\n/* harmony import */ var _components_RetailersList__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/RetailersList */ \"(app-pages-browser)/./components/RetailersList.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\nfunction PartDetailPage() {\n _s();\n const params = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams)();\n const categoryId = params.categoryId;\n const partId = params.partId;\n const category = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.find((c)=>c.id === categoryId), [\n categoryId\n ]);\n const part = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.find((p)=>p.id === partId && p.categoryId === categoryId), [\n partId,\n categoryId\n ]);\n // Get pricing history and retailer offers\n // TODO: Replace with API calls when endpoints are ready\n const pricingHistory = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>part ? (0,_data__WEBPACK_IMPORTED_MODULE_5__.getPricingHistory)(part.id, part.price) : [], [\n part\n ]);\n const retailerOffers = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>part ? (0,_data__WEBPACK_IMPORTED_MODULE_5__.getRetailerOffers)(part.id, part.price, part.affiliateUrl) : [], [\n part\n ]);\n if (!category || !part) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-2xl font-semibold text-zinc-50 mb-4\",\n children: \"Product Not Found\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 47,\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: \"/gunbuilder\",\n className: \"text-amber-300 hover:text-amber-200 underline\",\n children: \"Return to Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 50,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 45,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 44,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder/\".concat(categoryId),\n className: \"text-xs text-zinc-400 hover:text-zinc-300 mb-4 inline-block\",\n children: [\n \"← Back to \",\n category.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 67,\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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 74,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n part.brand,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 78,\n columnNumber: 28\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 77,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: [\n category.name,\n \" • Product Details\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 80,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 73,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 66,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 lg:grid-cols-[2fr,1fr]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-6 md:grid-cols-[1fr,1fr]\",\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)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400 mb-2\",\n children: \"Product Information\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 95,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Brand\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 100,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.brand\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 103,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 99,\n columnNumber: 21\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Model\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 108,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 111,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 107,\n columnNumber: 21\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Category\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 116,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: category.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 119,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 115,\n columnNumber: 21\n }, this),\n part.notes && /*#__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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Details\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 125,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-300 leading-relaxed\",\n children: part.notes\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 128,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 124,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 98,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 94,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full aspect-square max-w-md rounded-md border border-zinc-700 bg-zinc-900/50 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center p-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-16 h-16 mx-auto text-zinc-600 mb-2\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5,\n d: \"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 147,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 140,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide\",\n children: \"Product Image\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 154,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 139,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 138,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 137,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 92,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 91,\n columnNumber: 13\n }, this),\n retailerOffers.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_RetailersList__WEBPACK_IMPORTED_MODULE_7__.RetailersList, {\n retailers: retailerOffers\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 166,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 165,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 89,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/80 p-4 md:p-6 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-400 mb-2\",\n children: \"Price\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 174,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-3xl font-semibold text-amber-300\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 175,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 173,\n columnNumber: 13\n }, this),\n pricingHistory.length > 0 && /*#__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)(_components_PricingHistoryGraph__WEBPACK_IMPORTED_MODULE_6__.PricingHistoryGraph, {\n data: pricingHistory,\n currentPrice: part.price\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 183,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 182,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-auto space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder?select=\".concat(categoryId, \":\").concat(part.id),\n className: \"block w-full rounded-md border border-amber-400/60 bg-amber-400/10 px-4 py-3 text-sm font-medium text-amber-200 hover:bg-amber-400/15 text-center transition-colors\",\n children: \"Add to Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 191,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: part.affiliateUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"block w-full rounded-md border border-zinc-700 bg-zinc-900/50 px-4 py-3 text-sm font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 text-center transition-colors\",\n children: \"View Retailer\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 197,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 190,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 172,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 87,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 64,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 63,\n columnNumber: 5\n }, this);\n}\n_s(PartDetailPage, \"ZpwVUtr8mmMYWPNCCmGSoaSl2YI=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams\n ];\n});\n_c = PartDetailPage;\nvar _c;\n$RefreshReg$(_c, \"PartDetailPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9bcGFydElkXS9wYWdlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFFZ0M7QUFDSDtBQUNlO0FBQ2U7QUFFRztBQUNTO0FBQ1o7QUFFNUMsU0FBU1M7O0lBQ3RCLE1BQU1DLFNBQVNSLDBEQUFTQTtJQUN4QixNQUFNUyxhQUFhRCxPQUFPQyxVQUFVO0lBQ3BDLE1BQU1DLFNBQVNGLE9BQU9FLE1BQU07SUFFNUIsTUFBTUMsV0FBV2IsOENBQU9BLENBQ3RCLElBQU1HLDZEQUFVQSxDQUFDVyxJQUFJLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsRUFBRSxLQUFLTCxhQUN0QztRQUFDQTtLQUFXO0lBR2QsTUFBTU0sT0FBT2pCLDhDQUFPQSxDQUNsQixJQUFNSSx3REFBS0EsQ0FBQ1UsSUFBSSxDQUFDLENBQUNJLElBQU1BLEVBQUVGLEVBQUUsS0FBS0osVUFBVU0sRUFBRVAsVUFBVSxLQUFLQSxhQUM1RDtRQUFDQztRQUFRRDtLQUFXO0lBR3RCLDBDQUEwQztJQUMxQyx3REFBd0Q7SUFDeEQsTUFBTVEsaUJBQWlCbkIsOENBQU9BLENBQzVCLElBQU9pQixPQUFPWix3REFBaUJBLENBQUNZLEtBQUtELEVBQUUsRUFBRUMsS0FBS0csS0FBSyxJQUFJLEVBQUUsRUFDekQ7UUFBQ0g7S0FBSztJQUdSLE1BQU1JLGlCQUFpQnJCLDhDQUFPQSxDQUM1QixJQUNFaUIsT0FDSVgsd0RBQWlCQSxDQUFDVyxLQUFLRCxFQUFFLEVBQUVDLEtBQUtHLEtBQUssRUFBRUgsS0FBS0ssWUFBWSxJQUN4RCxFQUFFLEVBQ1I7UUFBQ0w7S0FBSztJQUdSLElBQUksQ0FBQ0osWUFBWSxDQUFDSSxNQUFNO1FBQ3RCLHFCQUNFLDhEQUFDTTtZQUFLQyxXQUFVO3NCQUNkLDRFQUFDQztnQkFBSUQsV0FBVTswQkFDYiw0RUFBQ0M7b0JBQUlELFdBQVU7O3NDQUNiLDhEQUFDRTs0QkFBR0YsV0FBVTtzQ0FBMkM7Ozs7OztzQ0FHekQsOERBQUN2QixpREFBSUE7NEJBQ0gwQixNQUFLOzRCQUNMSCxXQUFVO3NDQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBT1g7SUFFQSxxQkFDRSw4REFBQ0Q7UUFBS0MsV0FBVTtrQkFDZCw0RUFBQ0M7WUFBSUQsV0FBVTs7OEJBRWIsOERBQUNJO29CQUFPSixXQUFVOztzQ0FDaEIsOERBQUN2QixpREFBSUE7NEJBQ0gwQixNQUFNLGVBQTBCLE9BQVhoQjs0QkFDckJhLFdBQVU7O2dDQUNYO2dDQUNZWCxTQUFTZ0IsSUFBSTs7Ozs7OztzQ0FFMUIsOERBQUNKOzs4Q0FDQyw4REFBQ1A7b0NBQUVNLFdBQVU7OENBQWlFOzs7Ozs7OENBRzlFLDhEQUFDRTtvQ0FBR0YsV0FBVTs7d0NBQ1hQLEtBQUthLEtBQUs7d0NBQUM7c0RBQUMsOERBQUNDOzRDQUFLUCxXQUFVO3NEQUFrQlAsS0FBS1ksSUFBSTs7Ozs7Ozs7Ozs7OzhDQUUxRCw4REFBQ1g7b0NBQUVNLFdBQVU7O3dDQUNWWCxTQUFTZ0IsSUFBSTt3Q0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFNckIsOERBQUNKO29CQUFJRCxXQUFVOztzQ0FFYiw4REFBQ1E7NEJBQVFSLFdBQVU7OzhDQUVqQiw4REFBQ0M7b0NBQUlELFdBQVU7OENBQ2IsNEVBQUNDO3dDQUFJRCxXQUFVOzswREFFYiw4REFBQ0M7O2tFQUNDLDhEQUFDQTt3REFBSUQsV0FBVTtrRUFBdUU7Ozs7OztrRUFHdEYsOERBQUNDO3dEQUFJRCxXQUFVOzswRUFDYiw4REFBQ0M7O2tGQUNDLDhEQUFDQTt3RUFBSUQsV0FBVTtrRkFBcUQ7Ozs7OztrRkFHcEUsOERBQUNDO3dFQUFJRCxXQUFVO2tGQUNaUCxLQUFLYSxLQUFLOzs7Ozs7Ozs7Ozs7MEVBR2YsOERBQUNMOztrRkFDQyw4REFBQ0E7d0VBQUlELFdBQVU7a0ZBQXFEOzs7Ozs7a0ZBR3BFLDhEQUFDQzt3RUFBSUQsV0FBVTtrRkFDWlAsS0FBS1ksSUFBSTs7Ozs7Ozs7Ozs7OzBFQUdkLDhEQUFDSjs7a0ZBQ0MsOERBQUNBO3dFQUFJRCxXQUFVO2tGQUFxRDs7Ozs7O2tGQUdwRSw4REFBQ0M7d0VBQUlELFdBQVU7a0ZBQ1pYLFNBQVNnQixJQUFJOzs7Ozs7Ozs7Ozs7NERBR2pCWixLQUFLZ0IsS0FBSyxrQkFDVCw4REFBQ1I7O2tGQUNDLDhEQUFDQTt3RUFBSUQsV0FBVTtrRkFBcUQ7Ozs7OztrRkFHcEUsOERBQUNDO3dFQUFJRCxXQUFVO2tGQUNaUCxLQUFLZ0IsS0FBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBEQVFyQiw4REFBQ1I7Z0RBQUlELFdBQVU7MERBQ2IsNEVBQUNDO29EQUFJRCxXQUFVOzhEQUNiLDRFQUFDQzt3REFBSUQsV0FBVTs7MEVBQ2IsOERBQUNVO2dFQUNDVixXQUFVO2dFQUNWVyxNQUFLO2dFQUNMQyxRQUFPO2dFQUNQQyxTQUFRO2dFQUNSQyxPQUFNOzBFQUVOLDRFQUFDQztvRUFDQ0MsZUFBYztvRUFDZEMsZ0JBQWU7b0VBQ2ZDLGFBQWE7b0VBQ2JDLEdBQUU7Ozs7Ozs7Ozs7OzBFQUdOLDhEQUFDekI7Z0VBQUVNLFdBQVU7MEVBQWdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0NBVXRFSCxlQUFldUIsTUFBTSxHQUFHLG1CQUN2Qiw4REFBQ25CO29DQUFJRCxXQUFVOzhDQUNiLDRFQUFDaEIsb0VBQWFBO3dDQUFDcUMsV0FBV3hCOzs7Ozs7Ozs7Ozs7Ozs7OztzQ0FNaEMsOERBQUN5Qjs0QkFBTXRCLFdBQVU7OzhDQUNmLDhEQUFDQztvQ0FBSUQsV0FBVTs7c0RBQ2IsOERBQUNDOzRDQUFJRCxXQUFVO3NEQUE2Qjs7Ozs7O3NEQUM1Qyw4REFBQ0M7NENBQUlELFdBQVU7O2dEQUF3QztnREFDbkRQLEtBQUtHLEtBQUssQ0FBQzJCLE9BQU8sQ0FBQzs7Ozs7Ozs7Ozs7OztnQ0FLeEI1QixlQUFleUIsTUFBTSxHQUFHLG1CQUN2Qiw4REFBQ25CO29DQUFJRCxXQUFVOzhDQUNiLDRFQUFDakIsZ0ZBQW1CQTt3Q0FDbEJ5QyxNQUFNN0I7d0NBQ044QixjQUFjaEMsS0FBS0csS0FBSzs7Ozs7Ozs7Ozs7OENBSzlCLDhEQUFDSztvQ0FBSUQsV0FBVTs7c0RBQ2IsOERBQUN2QixpREFBSUE7NENBQ0gwQixNQUFNLHNCQUFvQ1YsT0FBZE4sWUFBVyxLQUFXLE9BQVJNLEtBQUtELEVBQUU7NENBQ2pEUSxXQUFVO3NEQUNYOzs7Ozs7c0RBR0QsOERBQUMwQjs0Q0FDQ3ZCLE1BQU1WLEtBQUtLLFlBQVk7NENBQ3ZCNkIsUUFBTzs0Q0FDUEMsS0FBSTs0Q0FDSjVCLFdBQVU7c0RBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU2Y7R0F2TXdCZjs7UUFDUFAsc0RBQVNBOzs7S0FERk8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2d1bmJ1aWxkZXIvW2NhdGVnb3J5SWRdL1twYXJ0SWRdL3BhZ2UudHN4PzQyYzEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcbmltcG9ydCB7IHVzZVBhcmFtcyB9IGZyb20gXCJuZXh0L25hdmlnYXRpb25cIjtcbmltcG9ydCB7IENBVEVHT1JJRVMsIFBBUlRTIH0gZnJvbSBcIkAvZGF0YS9ndW5idWlsZGVyUGFydHNcIjtcbmltcG9ydCB0eXBlIHsgQ2F0ZWdvcnlJZCB9IGZyb20gXCJAL3R5cGVzL2d1bmJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFByaWNpbmdIaXN0b3J5LCBnZXRSZXRhaWxlck9mZmVycyB9IGZyb20gXCIuL2RhdGFcIjtcbmltcG9ydCB7IFByaWNpbmdIaXN0b3J5R3JhcGggfSBmcm9tIFwiQC9jb21wb25lbnRzL1ByaWNpbmdIaXN0b3J5R3JhcGhcIjtcbmltcG9ydCB7IFJldGFpbGVyc0xpc3QgfSBmcm9tIFwiQC9jb21wb25lbnRzL1JldGFpbGVyc0xpc3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFydERldGFpbFBhZ2UoKSB7XG4gIGNvbnN0IHBhcmFtcyA9IHVzZVBhcmFtcygpO1xuICBjb25zdCBjYXRlZ29yeUlkID0gcGFyYW1zLmNhdGVnb3J5SWQgYXMgQ2F0ZWdvcnlJZDtcbiAgY29uc3QgcGFydElkID0gcGFyYW1zLnBhcnRJZCBhcyBzdHJpbmc7XG5cbiAgY29uc3QgY2F0ZWdvcnkgPSB1c2VNZW1vKFxuICAgICgpID0+IENBVEVHT1JJRVMuZmluZCgoYykgPT4gYy5pZCA9PT0gY2F0ZWdvcnlJZCksXG4gICAgW2NhdGVnb3J5SWRdLFxuICApO1xuXG4gIGNvbnN0IHBhcnQgPSB1c2VNZW1vKFxuICAgICgpID0+IFBBUlRTLmZpbmQoKHApID0+IHAuaWQgPT09IHBhcnRJZCAmJiBwLmNhdGVnb3J5SWQgPT09IGNhdGVnb3J5SWQpLFxuICAgIFtwYXJ0SWQsIGNhdGVnb3J5SWRdLFxuICApO1xuXG4gIC8vIEdldCBwcmljaW5nIGhpc3RvcnkgYW5kIHJldGFpbGVyIG9mZmVyc1xuICAvLyBUT0RPOiBSZXBsYWNlIHdpdGggQVBJIGNhbGxzIHdoZW4gZW5kcG9pbnRzIGFyZSByZWFkeVxuICBjb25zdCBwcmljaW5nSGlzdG9yeSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHBhcnQgPyBnZXRQcmljaW5nSGlzdG9yeShwYXJ0LmlkLCBwYXJ0LnByaWNlKSA6IFtdKSxcbiAgICBbcGFydF0sXG4gICk7XG5cbiAgY29uc3QgcmV0YWlsZXJPZmZlcnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBwYXJ0XG4gICAgICAgID8gZ2V0UmV0YWlsZXJPZmZlcnMocGFydC5pZCwgcGFydC5wcmljZSwgcGFydC5hZmZpbGlhdGVVcmwpXG4gICAgICAgIDogW10sXG4gICAgW3BhcnRdLFxuICApO1xuXG4gIGlmICghY2F0ZWdvcnkgfHwgIXBhcnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPG1haW4gY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLWJsYWNrIHRleHQtemluYy01MFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14LWF1dG8gbWF4LXctNnhsIHB4LTQgcHktNiBsZzpweS0xMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LXNlbWlib2xkIHRleHQtemluYy01MCBtYi00XCI+XG4gICAgICAgICAgICAgIFByb2R1Y3QgTm90IEZvdW5kXG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgaHJlZj1cIi9ndW5idWlsZGVyXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDAgaG92ZXI6dGV4dC1hbWJlci0yMDAgdW5kZXJsaW5lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgUmV0dXJuIHRvIEd1bmJ1aWxkZXJcbiAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21haW4+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPG1haW4gY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLWJsYWNrIHRleHQtemluYy01MFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJteC1hdXRvIG1heC13LTZ4bCBweC00IHB5LTYgbGc6cHktMTBcIj5cbiAgICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJtYi02XCI+XG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIGhyZWY9e2AvZ3VuYnVpbGRlci8ke2NhdGVnb3J5SWR9YH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTQwMCBob3Zlcjp0ZXh0LXppbmMtMzAwIG1iLTQgaW5saW5lLWJsb2NrXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICDihpAgQmFjayB0byB7Y2F0ZWdvcnkubmFtZX1cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4yZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICAgIFNoYWRvdyBTdGFuZGFyZFxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm10LTEgdGV4dC0yeGwgbWQ6dGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0cmFja2luZy10aWdodFwiPlxuICAgICAgICAgICAgICB7cGFydC5icmFuZH0gPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDBcIj57cGFydC5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0yIHRleHQtc20gdGV4dC16aW5jLTQwMCBtYXgtdy14bFwiPlxuICAgICAgICAgICAgICB7Y2F0ZWdvcnkubmFtZX0g4oCiIFByb2R1Y3QgRGV0YWlsc1xuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICB7LyogUHJvZHVjdCBEZXRhaWxzICovfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ2FwLTQgbGc6Z3JpZC1jb2xzLVsyZnIsMWZyXVwiPlxuICAgICAgICAgIHsvKiBNYWluIENvbnRlbnQgKi99XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XG4gICAgICAgICAgICB7LyogUHJvZHVjdCBJbmZvcm1hdGlvbiAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzYwIHAtNCBtZDpwLTZcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC02IG1kOmdyaWQtY29scy1bMWZyLDFmcl1cIj5cbiAgICAgICAgICAgICAgICB7LyogUHJvZHVjdCBJbmZvICovfVxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMCBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIFByb2R1Y3QgSW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBCcmFuZFxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQuYnJhbmR9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIE1vZGVsXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cGFydC5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBDYXRlZ29yeVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NhdGVnb3J5Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB7cGFydC5ub3RlcyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC16aW5jLTMwMCBsZWFkaW5nLXJlbGF4ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubm90ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgey8qIFByb2R1Y3QgSW1hZ2UgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBhc3BlY3Qtc3F1YXJlIG1heC13LW1kIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTcwMCBiZy16aW5jLTkwMC81MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHAtOFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctMTYgaC0xNiBteC1hdXRvIHRleHQtemluYy02MDAgbWItMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezEuNX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00IDE2bDQuNTg2LTQuNTg2YTIgMiAwIDAxMi44MjggMEwxNiAxNm0tMi0ybDEuNTg2LTEuNTg2YTIgMiAwIDAxMi44MjggMEwyMCAxNG0tNi02aC4wMU02IDIwaDEyYTIgMiAwIDAwMi0yVjZhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyelwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvZHVjdCBJbWFnZVxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIFJldGFpbGVycyBMaXN0ICovfVxuICAgICAgICAgICAge3JldGFpbGVyT2ZmZXJzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci16aW5jLTgwMCBiZy16aW5jLTk1MC82MCBwLTQgbWQ6cC02XCI+XG4gICAgICAgICAgICAgICAgPFJldGFpbGVyc0xpc3QgcmV0YWlsZXJzPXtyZXRhaWxlck9mZmVyc30gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgIHsvKiBTaWRlYmFyICovfVxuICAgICAgICAgIDxhc2lkZSBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy04MDAgYmctemluYy05NTAvODAgcC00IG1kOnAtNiBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy00MDAgbWItMlwiPlByaWNlPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0ZXh0LWFtYmVyLTMwMFwiPlxuICAgICAgICAgICAgICAgICR7cGFydC5wcmljZS50b0ZpeGVkKDIpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogUHJpY2luZyBIaXN0b3J5ICovfVxuICAgICAgICAgICAge3ByaWNpbmdIaXN0b3J5Lmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTZcIj5cbiAgICAgICAgICAgICAgICA8UHJpY2luZ0hpc3RvcnlHcmFwaFxuICAgICAgICAgICAgICAgICAgZGF0YT17cHJpY2luZ0hpc3Rvcnl9XG4gICAgICAgICAgICAgICAgICBjdXJyZW50UHJpY2U9e3BhcnQucHJpY2V9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LWF1dG8gc3BhY2UteS0zXCI+XG4gICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgaHJlZj17YC9ndW5idWlsZGVyP3NlbGVjdD0ke2NhdGVnb3J5SWR9OiR7cGFydC5pZH1gfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2NrIHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYW1iZXItNDAwLzYwIGJnLWFtYmVyLTQwMC8xMCBweC00IHB5LTMgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWFtYmVyLTIwMCBob3ZlcjpiZy1hbWJlci00MDAvMTUgdGV4dC1jZW50ZXIgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQWRkIHRvIEJ1aWxkXG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBocmVmPXtwYXJ0LmFmZmlsaWF0ZVVybH1cbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2NrIHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItemluYy03MDAgYmctemluYy05MDAvNTAgcHgtNCBweS0zIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC16aW5jLTMwMCBob3ZlcjpiZy16aW5jLTgwMCBob3Zlcjpib3JkZXItemluYy02MDAgdGV4dC1jZW50ZXIgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBSZXRhaWxlclxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2FzaWRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgKTtcbn1cblxuIl0sIm5hbWVzIjpbInVzZU1lbW8iLCJMaW5rIiwidXNlUGFyYW1zIiwiQ0FURUdPUklFUyIsIlBBUlRTIiwiZ2V0UHJpY2luZ0hpc3RvcnkiLCJnZXRSZXRhaWxlck9mZmVycyIsIlByaWNpbmdIaXN0b3J5R3JhcGgiLCJSZXRhaWxlcnNMaXN0IiwiUGFydERldGFpbFBhZ2UiLCJwYXJhbXMiLCJjYXRlZ29yeUlkIiwicGFydElkIiwiY2F0ZWdvcnkiLCJmaW5kIiwiYyIsImlkIiwicGFydCIsInAiLCJwcmljaW5nSGlzdG9yeSIsInByaWNlIiwicmV0YWlsZXJPZmZlcnMiLCJhZmZpbGlhdGVVcmwiLCJtYWluIiwiY2xhc3NOYW1lIiwiZGl2IiwiaDEiLCJocmVmIiwiaGVhZGVyIiwibmFtZSIsImJyYW5kIiwic3BhbiIsInNlY3Rpb24iLCJub3RlcyIsInN2ZyIsImZpbGwiLCJzdHJva2UiLCJ2aWV3Qm94IiwieG1sbnMiLCJwYXRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwic3Ryb2tlV2lkdGgiLCJkIiwibGVuZ3RoIiwicmV0YWlsZXJzIiwiYXNpZGUiLCJ0b0ZpeGVkIiwiZGF0YSIsImN1cnJlbnRQcmljZSIsImEiLCJ0YXJnZXQiLCJyZWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./components/PricingHistoryGraph.tsx":
-/*!********************************************!*\
- !*** ./components/PricingHistoryGraph.tsx ***!
- \********************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PricingHistoryGraph: function() { return /* binding */ PricingHistoryGraph; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ PricingHistoryGraph auto */ \nfunction PricingHistoryGraph(param) {\n let { data, currentPrice } = param;\n if (data.length === 0) return null;\n // Calculate chart dimensions\n const width = 100;\n const height = 60;\n const padding = 4;\n // Find min and max prices for scaling\n const prices = data.map((d)=>d.price);\n const minPrice = Math.min(...prices);\n const maxPrice = Math.max(...prices);\n const priceRange = maxPrice - minPrice || 1; // Avoid division by zero\n // Generate path points\n const points = data.map((point, index)=>{\n const x = padding + index / (data.length - 1) * (width - padding * 2);\n const normalizedPrice = (point.price - minPrice) / priceRange;\n const y = padding + (height - padding * 2) * (1 - normalizedPrice);\n return {\n x,\n y,\n price: point.price\n };\n });\n // Create SVG path\n const pathData = points.map((point, index)=>\"\".concat(index === 0 ? \"M\" : \"L\", \" \").concat(point.x, \" \").concat(point.y)).join(\" \");\n // Create area path (for gradient fill)\n const areaPath = \"\".concat(pathData, \" L \").concat(width - padding, \" \").concat(height - padding, \" L \").concat(padding, \" \").concat(height - padding, \" Z\");\n // Format date for display\n const formatDate = (dateStr)=>{\n const date = new Date(dateStr);\n return date.toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\"\n });\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4 flex items-center 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)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400\",\n children: \"Price History (30 Days)\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 53,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 text-xs text-zinc-500\",\n children: [\n \"Current: \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300 font-semibold\",\n children: [\n \"$\",\n currentPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 57,\n columnNumber: 22\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 56,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 52,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-500\",\n children: [\n formatDate(data[0].date),\n \" - \",\n formatDate(data[data.length - 1].date)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 60,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 51,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full h-32 rounded-md border border-zinc-800 bg-zinc-900/30 p-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n viewBox: \"0 0 \".concat(width, \" \").concat(height),\n className: \"w-full h-full\",\n preserveAspectRatio: \"none\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"linearGradient\", {\n id: \"priceGradient\",\n x1: \"0%\",\n y1: \"0%\",\n x2: \"0%\",\n y2: \"100%\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"0%\",\n stopColor: \"#fbbf24\",\n stopOpacity: \"0.3\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 73,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"100%\",\n stopColor: \"#fbbf24\",\n stopOpacity: \"0.05\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 74,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 72,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 71,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: areaPath,\n fill: \"url(#priceGradient)\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 78,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: pathData,\n fill: \"none\",\n stroke: \"#fbbf24\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 83,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: points[points.length - 1].x,\n cy: points[points.length - 1].y,\n r: \"2\",\n fill: \"#fbbf24\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 92,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 66,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 65,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-2 flex items-center justify-between text-xs text-zinc-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \"Low: $\",\n minPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 102,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \"High: $\",\n maxPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 103,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 101,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 50,\n columnNumber: 5\n }, this);\n}\n_c = PricingHistoryGraph;\nvar _c;\n$RefreshReg$(_c, \"PricingHistoryGraph\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvUHJpY2luZ0hpc3RvcnlHcmFwaC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBU08sU0FBU0Esb0JBQW9CLEtBR1Q7UUFIUyxFQUNsQ0MsSUFBSSxFQUNKQyxZQUFZLEVBQ2EsR0FIUztJQUlsQyxJQUFJRCxLQUFLRSxNQUFNLEtBQUssR0FBRyxPQUFPO0lBRTlCLDZCQUE2QjtJQUM3QixNQUFNQyxRQUFRO0lBQ2QsTUFBTUMsU0FBUztJQUNmLE1BQU1DLFVBQVU7SUFFaEIsc0NBQXNDO0lBQ3RDLE1BQU1DLFNBQVNOLEtBQUtPLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxLQUFLO0lBQ3RDLE1BQU1DLFdBQVdDLEtBQUtDLEdBQUcsSUFBSU47SUFDN0IsTUFBTU8sV0FBV0YsS0FBS0csR0FBRyxJQUFJUjtJQUM3QixNQUFNUyxhQUFhRixXQUFXSCxZQUFZLEdBQUcseUJBQXlCO0lBRXRFLHVCQUF1QjtJQUN2QixNQUFNTSxTQUFTaEIsS0FBS08sR0FBRyxDQUFDLENBQUNVLE9BQU9DO1FBQzlCLE1BQU1DLElBQUlkLFVBQVcsUUFBVUwsQ0FBQUEsS0FBS0UsTUFBTSxHQUFHLEtBQU9DLENBQUFBLFFBQVFFLFVBQVU7UUFDdEUsTUFBTWUsa0JBQWtCLENBQUNILE1BQU1SLEtBQUssR0FBR0MsUUFBTyxJQUFLSztRQUNuRCxNQUFNTSxJQUFJaEIsVUFBVSxDQUFDRCxTQUFTQyxVQUFVLEtBQU0sS0FBSWUsZUFBYztRQUNoRSxPQUFPO1lBQUVEO1lBQUdFO1lBQUdaLE9BQU9RLE1BQU1SLEtBQUs7UUFBQztJQUNwQztJQUVBLGtCQUFrQjtJQUNsQixNQUFNYSxXQUFXTixPQUNkVCxHQUFHLENBQUMsQ0FBQ1UsT0FBT0MsUUFBVSxHQUE4QkQsT0FBM0JDLFVBQVUsSUFBSSxNQUFNLEtBQUksS0FBY0QsT0FBWEEsTUFBTUUsQ0FBQyxFQUFDLEtBQVcsT0FBUkYsTUFBTUksQ0FBQyxHQUN0RUUsSUFBSSxDQUFDO0lBRVIsdUNBQXVDO0lBQ3ZDLE1BQU1DLFdBQVcsR0FBaUJyQixPQUFkbUIsVUFBUyxPQUF3QmxCLE9BQW5CRCxRQUFRRSxTQUFRLEtBQXlCQSxPQUF0QkQsU0FBU0MsU0FBUSxPQUFnQkQsT0FBWEMsU0FBUSxLQUFvQixPQUFqQkQsU0FBU0MsU0FBUTtJQUV2RywwQkFBMEI7SUFDMUIsTUFBTW9CLGFBQWEsQ0FBQ0M7UUFDbEIsTUFBTUMsT0FBTyxJQUFJQyxLQUFLRjtRQUN0QixPQUFPQyxLQUFLRSxrQkFBa0IsQ0FBQyxTQUFTO1lBQUVDLE9BQU87WUFBU0MsS0FBSztRQUFVO0lBQzNFO0lBRUEscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNEOzswQ0FDQyw4REFBQ0E7Z0NBQUlDLFdBQVU7MENBQWtFOzs7Ozs7MENBR2pGLDhEQUFDRDtnQ0FBSUMsV0FBVTs7b0NBQTZCO2tEQUNqQyw4REFBQ0M7d0NBQUtELFdBQVU7OzRDQUErQjs0Q0FBRWhDLGFBQWFrQyxPQUFPLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBR25GLDhEQUFDSDt3QkFBSUMsV0FBVTs7NEJBQ1pSLFdBQVd6QixJQUFJLENBQUMsRUFBRSxDQUFDMkIsSUFBSTs0QkFBRTs0QkFBSUYsV0FBV3pCLElBQUksQ0FBQ0EsS0FBS0UsTUFBTSxHQUFHLEVBQUUsQ0FBQ3lCLElBQUk7Ozs7Ozs7Ozs7Ozs7MEJBSXZFLDhEQUFDSztnQkFBSUMsV0FBVTswQkFDYiw0RUFBQ0c7b0JBQ0NDLFNBQVMsT0FBZ0JqQyxPQUFURCxPQUFNLEtBQVUsT0FBUEM7b0JBQ3pCNkIsV0FBVTtvQkFDVksscUJBQW9COztzQ0FFcEIsOERBQUNDO3NDQUNDLDRFQUFDQztnQ0FBZUMsSUFBRztnQ0FBZ0JDLElBQUc7Z0NBQUtDLElBQUc7Z0NBQUtDLElBQUc7Z0NBQUtDLElBQUc7O2tEQUM1RCw4REFBQ0M7d0NBQUtDLFFBQU87d0NBQUtDLFdBQVU7d0NBQVVDLGFBQVk7Ozs7OztrREFDbEQsOERBQUNIO3dDQUFLQyxRQUFPO3dDQUFPQyxXQUFVO3dDQUFVQyxhQUFZOzs7Ozs7Ozs7Ozs7Ozs7OztzQ0FJeEQsOERBQUNDOzRCQUNDMUMsR0FBR2dCOzRCQUNIMkIsTUFBSzs7Ozs7O3NDQUdQLDhEQUFDRDs0QkFDQzFDLEdBQUdjOzRCQUNINkIsTUFBSzs0QkFDTEMsUUFBTzs0QkFDUEMsYUFBWTs0QkFDWkMsZUFBYzs0QkFDZEMsZ0JBQWU7Ozs7OztzQ0FHakIsOERBQUNDOzRCQUNDQyxJQUFJekMsTUFBTSxDQUFDQSxPQUFPZCxNQUFNLEdBQUcsRUFBRSxDQUFDaUIsQ0FBQzs0QkFDL0J1QyxJQUFJMUMsTUFBTSxDQUFDQSxPQUFPZCxNQUFNLEdBQUcsRUFBRSxDQUFDbUIsQ0FBQzs0QkFDL0JzQyxHQUFFOzRCQUNGUixNQUFLOzs7Ozs7Ozs7Ozs7Ozs7OzswQkFLWCw4REFBQ25CO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0M7OzRCQUFLOzRCQUFPeEIsU0FBU3lCLE9BQU8sQ0FBQzs7Ozs7OztrQ0FDOUIsOERBQUNEOzs0QkFBSzs0QkFBUXJCLFNBQVNzQixPQUFPLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJdkM7S0FqR2dCcEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy9QcmljaW5nSGlzdG9yeUdyYXBoLnRzeD82YzVhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgdHlwZSB7IFByaWNlSGlzdG9yeVBvaW50IH0gZnJvbSBcIkAvYXBwL2d1bmJ1aWxkZXIvW2NhdGVnb3J5SWRdL1twYXJ0SWRdL2RhdGFcIjtcblxuaW50ZXJmYWNlIFByaWNpbmdIaXN0b3J5R3JhcGhQcm9wcyB7XG4gIGRhdGE6IFByaWNlSGlzdG9yeVBvaW50W107XG4gIGN1cnJlbnRQcmljZTogbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUHJpY2luZ0hpc3RvcnlHcmFwaCh7XG4gIGRhdGEsXG4gIGN1cnJlbnRQcmljZSxcbn06IFByaWNpbmdIaXN0b3J5R3JhcGhQcm9wcykge1xuICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuXG4gIC8vIENhbGN1bGF0ZSBjaGFydCBkaW1lbnNpb25zXG4gIGNvbnN0IHdpZHRoID0gMTAwO1xuICBjb25zdCBoZWlnaHQgPSA2MDtcbiAgY29uc3QgcGFkZGluZyA9IDQ7XG5cbiAgLy8gRmluZCBtaW4gYW5kIG1heCBwcmljZXMgZm9yIHNjYWxpbmdcbiAgY29uc3QgcHJpY2VzID0gZGF0YS5tYXAoKGQpID0+IGQucHJpY2UpO1xuICBjb25zdCBtaW5QcmljZSA9IE1hdGgubWluKC4uLnByaWNlcyk7XG4gIGNvbnN0IG1heFByaWNlID0gTWF0aC5tYXgoLi4ucHJpY2VzKTtcbiAgY29uc3QgcHJpY2VSYW5nZSA9IG1heFByaWNlIC0gbWluUHJpY2UgfHwgMTsgLy8gQXZvaWQgZGl2aXNpb24gYnkgemVyb1xuXG4gIC8vIEdlbmVyYXRlIHBhdGggcG9pbnRzXG4gIGNvbnN0IHBvaW50cyA9IGRhdGEubWFwKChwb2ludCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCB4ID0gcGFkZGluZyArICgoaW5kZXggLyAoZGF0YS5sZW5ndGggLSAxKSkgKiAod2lkdGggLSBwYWRkaW5nICogMikpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRQcmljZSA9IChwb2ludC5wcmljZSAtIG1pblByaWNlKSAvIHByaWNlUmFuZ2U7XG4gICAgY29uc3QgeSA9IHBhZGRpbmcgKyAoaGVpZ2h0IC0gcGFkZGluZyAqIDIpICogKDEgLSBub3JtYWxpemVkUHJpY2UpO1xuICAgIHJldHVybiB7IHgsIHksIHByaWNlOiBwb2ludC5wcmljZSB9O1xuICB9KTtcblxuICAvLyBDcmVhdGUgU1ZHIHBhdGhcbiAgY29uc3QgcGF0aERhdGEgPSBwb2ludHNcbiAgICAubWFwKChwb2ludCwgaW5kZXgpID0+IGAke2luZGV4ID09PSAwID8gXCJNXCIgOiBcIkxcIn0gJHtwb2ludC54fSAke3BvaW50Lnl9YClcbiAgICAuam9pbihcIiBcIik7XG5cbiAgLy8gQ3JlYXRlIGFyZWEgcGF0aCAoZm9yIGdyYWRpZW50IGZpbGwpXG4gIGNvbnN0IGFyZWFQYXRoID0gYCR7cGF0aERhdGF9IEwgJHt3aWR0aCAtIHBhZGRpbmd9ICR7aGVpZ2h0IC0gcGFkZGluZ30gTCAke3BhZGRpbmd9ICR7aGVpZ2h0IC0gcGFkZGluZ30gWmA7XG5cbiAgLy8gRm9ybWF0IGRhdGUgZm9yIGRpc3BsYXlcbiAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZVN0cik7XG4gICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKFwiZW4tVVNcIiwgeyBtb250aDogXCJzaG9ydFwiLCBkYXk6IFwibnVtZXJpY1wiIH0pO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGxcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMFwiPlxuICAgICAgICAgICAgUHJpY2UgSGlzdG9yeSAoMzAgRGF5cylcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTEgdGV4dC14cyB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICBDdXJyZW50OiA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWFtYmVyLTMwMCBmb250LXNlbWlib2xkXCI+JHtjdXJyZW50UHJpY2UudG9GaXhlZCgyKX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgIHtmb3JtYXREYXRlKGRhdGFbMF0uZGF0ZSl9IC0ge2Zvcm1hdERhdGUoZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGUpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHctZnVsbCBoLTMyIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTgwMCBiZy16aW5jLTkwMC8zMCBwLTNcIj5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgIHZpZXdCb3g9e2AwIDAgJHt3aWR0aH0gJHtoZWlnaHR9YH1cbiAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgaC1mdWxsXCJcbiAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwibm9uZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cInByaWNlR3JhZGllbnRcIiB4MT1cIjAlXCIgeTE9XCIwJVwiIHgyPVwiMCVcIiB5Mj1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMCVcIiBzdG9wQ29sb3I9XCIjZmJiZjI0XCIgc3RvcE9wYWNpdHk9XCIwLjNcIiAvPlxuICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxMDAlXCIgc3RvcENvbG9yPVwiI2ZiYmYyNFwiIHN0b3BPcGFjaXR5PVwiMC4wNVwiIC8+XG4gICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxuICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICB7LyogQXJlYSBmaWxsICovfVxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPXthcmVhUGF0aH1cbiAgICAgICAgICAgIGZpbGw9XCJ1cmwoI3ByaWNlR3JhZGllbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIHsvKiBMaW5lICovfVxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPXtwYXRoRGF0YX1cbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHN0cm9rZT1cIiNmYmJmMjRcIlxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgey8qIEN1cnJlbnQgcHJpY2UgaW5kaWNhdG9yICovfVxuICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgIGN4PXtwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdLnh9XG4gICAgICAgICAgICBjeT17cG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXS55fVxuICAgICAgICAgICAgcj1cIjJcIlxuICAgICAgICAgICAgZmlsbD1cIiNmYmJmMjRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gdGV4dC14cyB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgIDxzcGFuPkxvdzogJHttaW5QcmljZS50b0ZpeGVkKDIpfTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+SGlnaDogJHttYXhQcmljZS50b0ZpeGVkKDIpfTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG4iXSwibmFtZXMiOlsiUHJpY2luZ0hpc3RvcnlHcmFwaCIsImRhdGEiLCJjdXJyZW50UHJpY2UiLCJsZW5ndGgiLCJ3aWR0aCIsImhlaWdodCIsInBhZGRpbmciLCJwcmljZXMiLCJtYXAiLCJkIiwicHJpY2UiLCJtaW5QcmljZSIsIk1hdGgiLCJtaW4iLCJtYXhQcmljZSIsIm1heCIsInByaWNlUmFuZ2UiLCJwb2ludHMiLCJwb2ludCIsImluZGV4IiwieCIsIm5vcm1hbGl6ZWRQcmljZSIsInkiLCJwYXRoRGF0YSIsImpvaW4iLCJhcmVhUGF0aCIsImZvcm1hdERhdGUiLCJkYXRlU3RyIiwiZGF0ZSIsIkRhdGUiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJtb250aCIsImRheSIsImRpdiIsImNsYXNzTmFtZSIsInNwYW4iLCJ0b0ZpeGVkIiwic3ZnIiwidmlld0JveCIsInByZXNlcnZlQXNwZWN0UmF0aW8iLCJkZWZzIiwibGluZWFyR3JhZGllbnQiLCJpZCIsIngxIiwieTEiLCJ4MiIsInkyIiwic3RvcCIsIm9mZnNldCIsInN0b3BDb2xvciIsInN0b3BPcGFjaXR5IiwicGF0aCIsImZpbGwiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsImNpcmNsZSIsImN4IiwiY3kiLCJyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/PricingHistoryGraph.tsx\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./components/RetailersList.tsx":
-/*!**************************************!*\
- !*** ./components/RetailersList.tsx ***!
- \**************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RetailersList: function() { return /* binding */ RetailersList; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ RetailersList auto */ \nfunction RetailersList(param) {\n let { retailers } = param;\n if (retailers.length === 0) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-500 text-center py-4\",\n children: \"No retailer offers available.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 12,\n columnNumber: 7\n }, this);\n }\n const lowestPrice = Math.min(...retailers.map((r)=>r.price));\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400\",\n children: \"Available Retailers\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 23,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 text-xs text-zinc-500\",\n children: [\n retailers.length,\n \" retailer\",\n retailers.length !== 1 ? \"s\" : \"\",\n \" found\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 26,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 22,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: retailers.map((retailer)=>{\n const isLowestPrice = retailer.price === lowestPrice;\n const isOnSale = retailer.originalPrice !== undefined;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border rounded-md p-3 transition-colors \".concat(retailer.inStock ? \"border-zinc-700 bg-zinc-900/30 hover:border-zinc-600\" : \"border-zinc-800 bg-zinc-900/20 opacity-60\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex 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 min-w-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 mb-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-semibold text-zinc-50\",\n children: retailer.retailerName\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 48,\n columnNumber: 21\n }, this),\n isLowestPrice && retailer.inStock && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[0.65rem] font-semibold uppercase tracking-wide px-1.5 py-0.5 rounded bg-amber-400/20 text-amber-300 border border-amber-400/30\",\n children: \"Best Price\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 52,\n columnNumber: 23\n }, this),\n !retailer.inStock && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[0.65rem] font-semibold uppercase tracking-wide px-1.5 py-0.5 rounded bg-red-500/20 text-red-400 border border-red-500/30\",\n children: \"Out of Stock\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 57,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 47,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-lg font-semibold \".concat(isLowestPrice && retailer.inStock ? \"text-amber-300\" : \"text-zinc-300\"),\n children: [\n \"$\",\n retailer.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 63,\n columnNumber: 21\n }, this),\n isOnSale && retailer.originalPrice && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-zinc-500 line-through\",\n children: [\n \"$\",\n retailer.originalPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 73,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 62,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 46,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: retailer.affiliateUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"rounded-md border px-3 py-1.5 text-xs font-medium transition-colors whitespace-nowrap \".concat(retailer.inStock ? \"border-amber-400/60 bg-amber-400/10 text-amber-200 hover:bg-amber-400/15\" : \"border-zinc-700 bg-zinc-800/50 text-zinc-500 cursor-not-allowed pointer-events-none\"),\n children: retailer.inStock ? \"Buy Now\" : \"Unavailable\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 80,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 79,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 45,\n columnNumber: 15\n }, this)\n }, retailer.id, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 37,\n columnNumber: 13\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 31,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 21,\n columnNumber: 5\n }, this);\n}\n_c = RetailersList;\nvar _c;\n$RefreshReg$(_c, \"RetailersList\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvUmV0YWlsZXJzTGlzdC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBUU8sU0FBU0EsY0FBYyxLQUFpQztRQUFqQyxFQUFFQyxTQUFTLEVBQXNCLEdBQWpDO0lBQzVCLElBQUlBLFVBQVVDLE1BQU0sS0FBSyxHQUFHO1FBQzFCLHFCQUNFLDhEQUFDQztZQUFJQyxXQUFVO3NCQUF5Qzs7Ozs7O0lBSTVEO0lBRUEsTUFBTUMsY0FBY0MsS0FBS0MsR0FBRyxJQUFJTixVQUFVTyxHQUFHLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsS0FBSztJQUU1RCxxQkFDRSw4REFBQ1A7UUFBSUMsV0FBVTs7MEJBQ2IsOERBQUNEO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0Q7d0JBQUlDLFdBQVU7a0NBQWtFOzs7Ozs7a0NBR2pGLDhEQUFDRDt3QkFBSUMsV0FBVTs7NEJBQ1pILFVBQVVDLE1BQU07NEJBQUM7NEJBQVVELFVBQVVDLE1BQU0sS0FBSyxJQUFJLE1BQU07NEJBQUc7Ozs7Ozs7Ozs7Ozs7MEJBSWxFLDhEQUFDQztnQkFBSUMsV0FBVTswQkFDWkgsVUFBVU8sR0FBRyxDQUFDLENBQUNHO29CQUNkLE1BQU1DLGdCQUFnQkQsU0FBU0QsS0FBSyxLQUFLTDtvQkFDekMsTUFBTVEsV0FBV0YsU0FBU0csYUFBYSxLQUFLQztvQkFFNUMscUJBQ0UsOERBQUNaO3dCQUVDQyxXQUFXLDJDQUlWLE9BSENPLFNBQVNLLE9BQU8sR0FDWix5REFDQTtrQ0FHTiw0RUFBQ2I7NEJBQUlDLFdBQVU7OzhDQUNiLDhEQUFDRDtvQ0FBSUMsV0FBVTs7c0RBQ2IsOERBQUNEOzRDQUFJQyxXQUFVOzs4REFDYiw4REFBQ2E7b0RBQUtiLFdBQVU7OERBQ2JPLFNBQVNPLFlBQVk7Ozs7OztnREFFdkJOLGlCQUFpQkQsU0FBU0ssT0FBTyxrQkFDaEMsOERBQUNDO29EQUFLYixXQUFVOzhEQUF1STs7Ozs7O2dEQUl4SixDQUFDTyxTQUFTSyxPQUFPLGtCQUNoQiw4REFBQ0M7b0RBQUtiLFdBQVU7OERBQWlJOzs7Ozs7Ozs7Ozs7c0RBS3JKLDhEQUFDRDs0Q0FBSUMsV0FBVTs7OERBQ2IsOERBQUNhO29EQUNDYixXQUFXLHlCQUlWLE9BSENRLGlCQUFpQkQsU0FBU0ssT0FBTyxHQUM3QixtQkFDQTs7d0RBRVA7d0RBQ0dMLFNBQVNELEtBQUssQ0FBQ1MsT0FBTyxDQUFDOzs7Ozs7O2dEQUUxQk4sWUFBWUYsU0FBU0csYUFBYSxrQkFDakMsOERBQUNHO29EQUFLYixXQUFVOzt3REFBcUM7d0RBQ2pETyxTQUFTRyxhQUFhLENBQUNLLE9BQU8sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4Q0FLekMsOERBQUNoQjtvQ0FBSUMsV0FBVTs4Q0FDYiw0RUFBQ2dCO3dDQUNDQyxNQUFNVixTQUFTVyxZQUFZO3dDQUMzQkMsUUFBTzt3Q0FDUEMsS0FBSTt3Q0FDSnBCLFdBQVcseUZBSVYsT0FIQ08sU0FBU0ssT0FBTyxHQUNaLDZFQUNBO2tEQUdMTCxTQUFTSyxPQUFPLEdBQUcsWUFBWTs7Ozs7Ozs7Ozs7Ozs7Ozs7dUJBcERqQ0wsU0FBU2MsRUFBRTs7Ozs7Z0JBMER0Qjs7Ozs7Ozs7Ozs7O0FBSVI7S0EzRmdCekIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy9SZXRhaWxlcnNMaXN0LnRzeD8yYmViIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgdHlwZSB7IFJldGFpbGVyT2ZmZXIgfSBmcm9tIFwiQC9hcHAvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vW3BhcnRJZF0vZGF0YVwiO1xuXG5pbnRlcmZhY2UgUmV0YWlsZXJzTGlzdFByb3BzIHtcbiAgcmV0YWlsZXJzOiBSZXRhaWxlck9mZmVyW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBSZXRhaWxlcnNMaXN0KHsgcmV0YWlsZXJzIH06IFJldGFpbGVyc0xpc3RQcm9wcykge1xuICBpZiAocmV0YWlsZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC16aW5jLTUwMCB0ZXh0LWNlbnRlciBweS00XCI+XG4gICAgICAgIE5vIHJldGFpbGVyIG9mZmVycyBhdmFpbGFibGUuXG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgY29uc3QgbG93ZXN0UHJpY2UgPSBNYXRoLm1pbiguLi5yZXRhaWxlcnMubWFwKChyKSA9PiByLnByaWNlKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRyYWNraW5nLVswLjE2ZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNDAwXCI+XG4gICAgICAgICAgQXZhaWxhYmxlIFJldGFpbGVyc1xuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0xIHRleHQteHMgdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgIHtyZXRhaWxlcnMubGVuZ3RofSByZXRhaWxlcntyZXRhaWxlcnMubGVuZ3RoICE9PSAxID8gXCJzXCIgOiBcIlwifSBmb3VuZFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxuICAgICAgICB7cmV0YWlsZXJzLm1hcCgocmV0YWlsZXIpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0xvd2VzdFByaWNlID0gcmV0YWlsZXIucHJpY2UgPT09IGxvd2VzdFByaWNlO1xuICAgICAgICAgIGNvbnN0IGlzT25TYWxlID0gcmV0YWlsZXIub3JpZ2luYWxQcmljZSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAga2V5PXtyZXRhaWxlci5pZH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgYm9yZGVyIHJvdW5kZWQtbWQgcC0zIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgICAgcmV0YWlsZXIuaW5TdG9ja1xuICAgICAgICAgICAgICAgICAgPyBcImJvcmRlci16aW5jLTcwMCBiZy16aW5jLTkwMC8zMCBob3Zlcjpib3JkZXItemluYy02MDBcIlxuICAgICAgICAgICAgICAgICAgOiBcImJvcmRlci16aW5jLTgwMCBiZy16aW5jLTkwMC8yMCBvcGFjaXR5LTYwXCJcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgbWluLXctMFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXppbmMtNTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7cmV0YWlsZXIucmV0YWlsZXJOYW1lfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIHtpc0xvd2VzdFByaWNlICYmIHJldGFpbGVyLmluU3RvY2sgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzAuNjVyZW1dIGZvbnQtc2VtaWJvbGQgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGUgcHgtMS41IHB5LTAuNSByb3VuZGVkIGJnLWFtYmVyLTQwMC8yMCB0ZXh0LWFtYmVyLTMwMCBib3JkZXIgYm9yZGVyLWFtYmVyLTQwMC8zMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQmVzdCBQcmljZVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgeyFyZXRhaWxlci5pblN0b2NrICYmIChcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LVswLjY1cmVtXSBmb250LXNlbWlib2xkIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIHB4LTEuNSBweS0wLjUgcm91bmRlZCBiZy1yZWQtNTAwLzIwIHRleHQtcmVkLTQwMCBib3JkZXIgYm9yZGVyLXJlZC01MDAvMzBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIE91dCBvZiBTdG9ja1xuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHRleHQtbGcgZm9udC1zZW1pYm9sZCAke1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNMb3dlc3RQcmljZSAmJiByZXRhaWxlci5pblN0b2NrXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJ0ZXh0LWFtYmVyLTMwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJ0ZXh0LXppbmMtMzAwXCJcbiAgICAgICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICR7cmV0YWlsZXIucHJpY2UudG9GaXhlZCgyKX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB7aXNPblNhbGUgJiYgcmV0YWlsZXIub3JpZ2luYWxQcmljZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIGxpbmUtdGhyb3VnaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtyZXRhaWxlci5vcmlnaW5hbFByaWNlLnRvRml4ZWQoMil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgaHJlZj17cmV0YWlsZXIuYWZmaWxpYXRlVXJsfVxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcm91bmRlZC1tZCBib3JkZXIgcHgtMyBweS0xLjUgdGV4dC14cyBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycyB3aGl0ZXNwYWNlLW5vd3JhcCAke1xuICAgICAgICAgICAgICAgICAgICAgIHJldGFpbGVyLmluU3RvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJib3JkZXItYW1iZXItNDAwLzYwIGJnLWFtYmVyLTQwMC8xMCB0ZXh0LWFtYmVyLTIwMCBob3ZlcjpiZy1hbWJlci00MDAvMTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBcImJvcmRlci16aW5jLTcwMCBiZy16aW5jLTgwMC81MCB0ZXh0LXppbmMtNTAwIGN1cnNvci1ub3QtYWxsb3dlZCBwb2ludGVyLWV2ZW50cy1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtyZXRhaWxlci5pblN0b2NrID8gXCJCdXkgTm93XCIgOiBcIlVuYXZhaWxhYmxlXCJ9XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuIl0sIm5hbWVzIjpbIlJldGFpbGVyc0xpc3QiLCJyZXRhaWxlcnMiLCJsZW5ndGgiLCJkaXYiLCJjbGFzc05hbWUiLCJsb3dlc3RQcmljZSIsIk1hdGgiLCJtaW4iLCJtYXAiLCJyIiwicHJpY2UiLCJyZXRhaWxlciIsImlzTG93ZXN0UHJpY2UiLCJpc09uU2FsZSIsIm9yaWdpbmFsUHJpY2UiLCJ1bmRlZmluZWQiLCJpblN0b2NrIiwic3BhbiIsInJldGFpbGVyTmFtZSIsInRvRml4ZWQiLCJhIiwiaHJlZiIsImFmZmlsaWF0ZVVybCIsInRhcmdldCIsInJlbCIsImlkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/RetailersList.tsx\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./data/gunbuilderParts.ts":
-/*!*********************************!*\
- !*** ./data/gunbuilderParts.ts ***!
- \*********************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CATEGORIES: function() { return /* binding */ CATEGORIES; },\n/* harmony export */ PARTS: function() { return /* binding */ PARTS; }\n/* harmony export */ });\nconst CATEGORIES = [\n {\n id: \"lower\",\n name: \"Lower Receiver\"\n },\n {\n id: \"upper\",\n name: \"Upper Receiver\"\n },\n {\n id: \"barrel\",\n name: \"Barrel\"\n },\n {\n id: \"handguard\",\n name: \"Handguard\"\n },\n {\n id: \"stock\",\n name: \"Stock\"\n },\n {\n id: \"optic\",\n name: \"Optic\"\n }\n];\nconst PARTS = [\n {\n id: \"lower-aero-m4e1\",\n name: \"M4E1 Stripped Lower Receiver\",\n brand: \"Aero Precision\",\n categoryId: \"lower\",\n price: 129.99,\n affiliateUrl: \"https://example.com/aero-m4e1\",\n notes: \"Forged 7075-T6, threaded bolt catch\"\n },\n {\n id: \"lower-solgw\",\n name: \"Loyal 9 Stripped Lower\",\n brand: \"Sons of Liberty Gun Works\",\n categoryId: \"lower\",\n price: 189.0,\n affiliateUrl: \"https://example.com/solgw-lower\"\n },\n {\n id: \"upper-aero-enhanced\",\n name: \"Enhanced Upper Receiver\",\n brand: \"Aero Precision\",\n categoryId: \"upper\",\n price: 149.99,\n affiliateUrl: \"https://example.com/aero-enhanced-upper\"\n },\n {\n id: \"upper-bcm-m4\",\n name: \"M4 Upper Receiver\",\n brand: \"BCM\",\n categoryId: \"upper\",\n price: 159.99,\n affiliateUrl: \"https://example.com/bcm-m4-upper\"\n },\n {\n id: \"barrel-criterion-16\",\n name: '16\" Hybrid Barrel',\n brand: \"Criterion\",\n categoryId: \"barrel\",\n price: 279.99,\n affiliateUrl: \"https://example.com/criterion-16\",\n notes: \"Mid-length gas, chrome-lined\"\n },\n {\n id: \"barrel-ba-13-9\",\n name: '13.9\" Hanson Performance Series',\n brand: \"Ballistic Advantage\",\n categoryId: \"barrel\",\n price: 209.99,\n affiliateUrl: \"https://example.com/ba-13-9\"\n },\n {\n id: \"hg-geissele-mk8\",\n name: 'MK8 Rail 13.5\"',\n brand: \"Geissele\",\n categoryId: \"handguard\",\n price: 324.99,\n affiliateUrl: \"https://example.com/geissele-mk8\"\n },\n {\n id: \"hg-centurion-c4\",\n name: 'C4 M-LOK 12\"',\n brand: \"Centurion Arms\",\n categoryId: \"handguard\",\n price: 284.99,\n affiliateUrl: \"https://example.com/centurion-c4\"\n },\n {\n id: \"stock-b5-bravo\",\n name: \"BRAVO Stock\",\n brand: \"B5 Systems\",\n categoryId: \"stock\",\n price: 74.99,\n affiliateUrl: \"https://example.com/b5-bravo\"\n },\n {\n id: \"stock-magpul-sl\",\n name: \"MOE SL Carbine Stock\",\n brand: \"Magpul\",\n categoryId: \"stock\",\n price: 69.99,\n affiliateUrl: \"https://example.com/magpul-sl\"\n },\n {\n id: \"optic-eotech-exps3\",\n name: \"EXPS3 Holographic Sight\",\n brand: \"EOTECH\",\n categoryId: \"optic\",\n price: 749.0,\n affiliateUrl: \"https://example.com/eotech-exps3\"\n },\n {\n id: \"optic-holosun-509t\",\n name: \"HE509T Red Dot\",\n brand: \"Holosun\",\n categoryId: \"optic\",\n price: 349.99,\n affiliateUrl: \"https://example.com/holosun-509t\"\n }\n];\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2RhdGEvZ3VuYnVpbGRlclBhcnRzLnRzIiwibWFwcGluZ3MiOiI7Ozs7O0FBRU8sTUFBTUEsYUFBeUI7SUFDcEM7UUFBRUMsSUFBSTtRQUFTQyxNQUFNO0lBQWlCO0lBQ3RDO1FBQUVELElBQUk7UUFBU0MsTUFBTTtJQUFpQjtJQUN0QztRQUFFRCxJQUFJO1FBQVVDLE1BQU07SUFBUztJQUMvQjtRQUFFRCxJQUFJO1FBQWFDLE1BQU07SUFBWTtJQUNyQztRQUFFRCxJQUFJO1FBQVNDLE1BQU07SUFBUTtJQUM3QjtRQUFFRCxJQUFJO1FBQVNDLE1BQU07SUFBUTtDQUM5QixDQUFDO0FBRUssTUFBTUMsUUFBZ0I7SUFDM0I7UUFDRUYsSUFBSTtRQUNKQyxNQUFNO1FBQ05FLE9BQU87UUFDUEMsWUFBWTtRQUNaQyxPQUFPO1FBQ1BDLGNBQWM7UUFDZEMsT0FBTztJQUNUO0lBQ0E7UUFDRVAsSUFBSTtRQUNKQyxNQUFNO1FBQ05FLE9BQU87UUFDUEMsWUFBWTtRQUNaQyxPQUFPO1FBQ1BDLGNBQWM7SUFDaEI7SUFDQTtRQUNFTixJQUFJO1FBQ0pDLE1BQU07UUFDTkUsT0FBTztRQUNQQyxZQUFZO1FBQ1pDLE9BQU87UUFDUEMsY0FBYztJQUNoQjtJQUNBO1FBQ0VOLElBQUk7UUFDSkMsTUFBTTtRQUNORSxPQUFPO1FBQ1BDLFlBQVk7UUFDWkMsT0FBTztRQUNQQyxjQUFjO0lBQ2hCO0lBQ0E7UUFDRU4sSUFBSTtRQUNKQyxNQUFNO1FBQ05FLE9BQU87UUFDUEMsWUFBWTtRQUNaQyxPQUFPO1FBQ1BDLGNBQWM7UUFDZEMsT0FBTztJQUNUO0lBQ0E7UUFDRVAsSUFBSTtRQUNKQyxNQUFNO1FBQ05FLE9BQU87UUFDUEMsWUFBWTtRQUNaQyxPQUFPO1FBQ1BDLGNBQWM7SUFDaEI7SUFDQTtRQUNFTixJQUFJO1FBQ0pDLE1BQU07UUFDTkUsT0FBTztRQUNQQyxZQUFZO1FBQ1pDLE9BQU87UUFDUEMsY0FBYztJQUNoQjtJQUNBO1FBQ0VOLElBQUk7UUFDSkMsTUFBTTtRQUNORSxPQUFPO1FBQ1BDLFlBQVk7UUFDWkMsT0FBTztRQUNQQyxjQUFjO0lBQ2hCO0lBQ0E7UUFDRU4sSUFBSTtRQUNKQyxNQUFNO1FBQ05FLE9BQU87UUFDUEMsWUFBWTtRQUNaQyxPQUFPO1FBQ1BDLGNBQWM7SUFDaEI7SUFDQTtRQUNFTixJQUFJO1FBQ0pDLE1BQU07UUFDTkUsT0FBTztRQUNQQyxZQUFZO1FBQ1pDLE9BQU87UUFDUEMsY0FBYztJQUNoQjtJQUNBO1FBQ0VOLElBQUk7UUFDSkMsTUFBTTtRQUNORSxPQUFPO1FBQ1BDLFlBQVk7UUFDWkMsT0FBTztRQUNQQyxjQUFjO0lBQ2hCO0lBQ0E7UUFDRU4sSUFBSTtRQUNKQyxNQUFNO1FBQ05FLE9BQU87UUFDUEMsWUFBWTtRQUNaQyxPQUFPO1FBQ1BDLGNBQWM7SUFDaEI7Q0FDRCxDQUFDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2RhdGEvZ3VuYnVpbGRlclBhcnRzLnRzPzczYWUiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDYXRlZ29yeSwgUGFydCB9IGZyb20gXCJAL3R5cGVzL2d1bmJ1aWxkZXJcIjtcblxuZXhwb3J0IGNvbnN0IENBVEVHT1JJRVM6IENhdGVnb3J5W10gPSBbXG4gIHsgaWQ6IFwibG93ZXJcIiwgbmFtZTogXCJMb3dlciBSZWNlaXZlclwiIH0sXG4gIHsgaWQ6IFwidXBwZXJcIiwgbmFtZTogXCJVcHBlciBSZWNlaXZlclwiIH0sXG4gIHsgaWQ6IFwiYmFycmVsXCIsIG5hbWU6IFwiQmFycmVsXCIgfSxcbiAgeyBpZDogXCJoYW5kZ3VhcmRcIiwgbmFtZTogXCJIYW5kZ3VhcmRcIiB9LFxuICB7IGlkOiBcInN0b2NrXCIsIG5hbWU6IFwiU3RvY2tcIiB9LFxuICB7IGlkOiBcIm9wdGljXCIsIG5hbWU6IFwiT3B0aWNcIiB9LFxuXTtcblxuZXhwb3J0IGNvbnN0IFBBUlRTOiBQYXJ0W10gPSBbXG4gIHtcbiAgICBpZDogXCJsb3dlci1hZXJvLW00ZTFcIixcbiAgICBuYW1lOiBcIk00RTEgU3RyaXBwZWQgTG93ZXIgUmVjZWl2ZXJcIixcbiAgICBicmFuZDogXCJBZXJvIFByZWNpc2lvblwiLFxuICAgIGNhdGVnb3J5SWQ6IFwibG93ZXJcIixcbiAgICBwcmljZTogMTI5Ljk5LFxuICAgIGFmZmlsaWF0ZVVybDogXCJodHRwczovL2V4YW1wbGUuY29tL2Flcm8tbTRlMVwiLFxuICAgIG5vdGVzOiBcIkZvcmdlZCA3MDc1LVQ2LCB0aHJlYWRlZCBib2x0IGNhdGNoXCIsXG4gIH0sXG4gIHtcbiAgICBpZDogXCJsb3dlci1zb2xnd1wiLFxuICAgIG5hbWU6IFwiTG95YWwgOSBTdHJpcHBlZCBMb3dlclwiLFxuICAgIGJyYW5kOiBcIlNvbnMgb2YgTGliZXJ0eSBHdW4gV29ya3NcIixcbiAgICBjYXRlZ29yeUlkOiBcImxvd2VyXCIsXG4gICAgcHJpY2U6IDE4OS4wLFxuICAgIGFmZmlsaWF0ZVVybDogXCJodHRwczovL2V4YW1wbGUuY29tL3NvbGd3LWxvd2VyXCIsXG4gIH0sXG4gIHtcbiAgICBpZDogXCJ1cHBlci1hZXJvLWVuaGFuY2VkXCIsXG4gICAgbmFtZTogXCJFbmhhbmNlZCBVcHBlciBSZWNlaXZlclwiLFxuICAgIGJyYW5kOiBcIkFlcm8gUHJlY2lzaW9uXCIsXG4gICAgY2F0ZWdvcnlJZDogXCJ1cHBlclwiLFxuICAgIHByaWNlOiAxNDkuOTksXG4gICAgYWZmaWxpYXRlVXJsOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vYWVyby1lbmhhbmNlZC11cHBlclwiLFxuICB9LFxuICB7XG4gICAgaWQ6IFwidXBwZXItYmNtLW00XCIsXG4gICAgbmFtZTogXCJNNCBVcHBlciBSZWNlaXZlclwiLFxuICAgIGJyYW5kOiBcIkJDTVwiLFxuICAgIGNhdGVnb3J5SWQ6IFwidXBwZXJcIixcbiAgICBwcmljZTogMTU5Ljk5LFxuICAgIGFmZmlsaWF0ZVVybDogXCJodHRwczovL2V4YW1wbGUuY29tL2JjbS1tNC11cHBlclwiLFxuICB9LFxuICB7XG4gICAgaWQ6IFwiYmFycmVsLWNyaXRlcmlvbi0xNlwiLFxuICAgIG5hbWU6IFwiMTZcXFwiIEh5YnJpZCBCYXJyZWxcIixcbiAgICBicmFuZDogXCJDcml0ZXJpb25cIixcbiAgICBjYXRlZ29yeUlkOiBcImJhcnJlbFwiLFxuICAgIHByaWNlOiAyNzkuOTksXG4gICAgYWZmaWxpYXRlVXJsOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vY3JpdGVyaW9uLTE2XCIsXG4gICAgbm90ZXM6IFwiTWlkLWxlbmd0aCBnYXMsIGNocm9tZS1saW5lZFwiLFxuICB9LFxuICB7XG4gICAgaWQ6IFwiYmFycmVsLWJhLTEzLTlcIixcbiAgICBuYW1lOiBcIjEzLjlcXFwiIEhhbnNvbiBQZXJmb3JtYW5jZSBTZXJpZXNcIixcbiAgICBicmFuZDogXCJCYWxsaXN0aWMgQWR2YW50YWdlXCIsXG4gICAgY2F0ZWdvcnlJZDogXCJiYXJyZWxcIixcbiAgICBwcmljZTogMjA5Ljk5LFxuICAgIGFmZmlsaWF0ZVVybDogXCJodHRwczovL2V4YW1wbGUuY29tL2JhLTEzLTlcIixcbiAgfSxcbiAge1xuICAgIGlkOiBcImhnLWdlaXNzZWxlLW1rOFwiLFxuICAgIG5hbWU6IFwiTUs4IFJhaWwgMTMuNVxcXCJcIixcbiAgICBicmFuZDogXCJHZWlzc2VsZVwiLFxuICAgIGNhdGVnb3J5SWQ6IFwiaGFuZGd1YXJkXCIsXG4gICAgcHJpY2U6IDMyNC45OSxcbiAgICBhZmZpbGlhdGVVcmw6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9nZWlzc2VsZS1tazhcIixcbiAgfSxcbiAge1xuICAgIGlkOiBcImhnLWNlbnR1cmlvbi1jNFwiLFxuICAgIG5hbWU6IFwiQzQgTS1MT0sgMTJcXFwiXCIsXG4gICAgYnJhbmQ6IFwiQ2VudHVyaW9uIEFybXNcIixcbiAgICBjYXRlZ29yeUlkOiBcImhhbmRndWFyZFwiLFxuICAgIHByaWNlOiAyODQuOTksXG4gICAgYWZmaWxpYXRlVXJsOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vY2VudHVyaW9uLWM0XCIsXG4gIH0sXG4gIHtcbiAgICBpZDogXCJzdG9jay1iNS1icmF2b1wiLFxuICAgIG5hbWU6IFwiQlJBVk8gU3RvY2tcIixcbiAgICBicmFuZDogXCJCNSBTeXN0ZW1zXCIsXG4gICAgY2F0ZWdvcnlJZDogXCJzdG9ja1wiLFxuICAgIHByaWNlOiA3NC45OSxcbiAgICBhZmZpbGlhdGVVcmw6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9iNS1icmF2b1wiLFxuICB9LFxuICB7XG4gICAgaWQ6IFwic3RvY2stbWFncHVsLXNsXCIsXG4gICAgbmFtZTogXCJNT0UgU0wgQ2FyYmluZSBTdG9ja1wiLFxuICAgIGJyYW5kOiBcIk1hZ3B1bFwiLFxuICAgIGNhdGVnb3J5SWQ6IFwic3RvY2tcIixcbiAgICBwcmljZTogNjkuOTksXG4gICAgYWZmaWxpYXRlVXJsOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vbWFncHVsLXNsXCIsXG4gIH0sXG4gIHtcbiAgICBpZDogXCJvcHRpYy1lb3RlY2gtZXhwczNcIixcbiAgICBuYW1lOiBcIkVYUFMzIEhvbG9ncmFwaGljIFNpZ2h0XCIsXG4gICAgYnJhbmQ6IFwiRU9URUNIXCIsXG4gICAgY2F0ZWdvcnlJZDogXCJvcHRpY1wiLFxuICAgIHByaWNlOiA3NDkuMCxcbiAgICBhZmZpbGlhdGVVcmw6IFwiaHR0cHM6Ly9leGFtcGxlLmNvbS9lb3RlY2gtZXhwczNcIixcbiAgfSxcbiAge1xuICAgIGlkOiBcIm9wdGljLWhvbG9zdW4tNTA5dFwiLFxuICAgIG5hbWU6IFwiSEU1MDlUIFJlZCBEb3RcIixcbiAgICBicmFuZDogXCJIb2xvc3VuXCIsXG4gICAgY2F0ZWdvcnlJZDogXCJvcHRpY1wiLFxuICAgIHByaWNlOiAzNDkuOTksXG4gICAgYWZmaWxpYXRlVXJsOiBcImh0dHBzOi8vZXhhbXBsZS5jb20vaG9sb3N1bi01MDl0XCIsXG4gIH0sXG5dO1xuIl0sIm5hbWVzIjpbIkNBVEVHT1JJRVMiLCJpZCIsIm5hbWUiLCJQQVJUUyIsImJyYW5kIiwiY2F0ZWdvcnlJZCIsInByaWNlIiwiYWZmaWxpYXRlVXJsIiwibm90ZXMiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./data/gunbuilderParts.ts\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/client/add-locale.js":
-/*!*****************************************************!*\
- !*** ./node_modules/next/dist/client/add-locale.js ***!
- \*****************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(app-pages-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst addLocale = function(path) {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n if (false) {}\n return path;\n};\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=add-locale.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2FkZC1sb2NhbGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs2Q0FHYUE7OztlQUFBQTs7O29EQUY4QjtBQUVwQyxNQUFNQSxZQUF1QixTQUFDQyxJQUFBQTtxQ0FBU0MsT0FBQUEsSUFBQUEsTUFBQUEsT0FBQUEsSUFBQUEsT0FBQUEsSUFBQUEsSUFBQUEsT0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsT0FBQUE7UUFBQUEsSUFBQUEsQ0FBQUEsT0FBQUEsRUFBQUEsR0FBQUEsU0FBQUEsQ0FBQUEsS0FBQUE7O0lBQzVDLElBQUlDLEtBQStCLEVBQUUsRUFJckM7SUFDQSxPQUFPRjtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9zcmMvY2xpZW50L2FkZC1sb2NhbGUudHM/ZmFhZSJdLCJuYW1lcyI6WyJhZGRMb2NhbGUiLCJwYXRoIiwiYXJncyIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJyZXF1aXJlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/add-locale.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/client/get-domain-locale.js":
-/*!************************************************************!*\
- !*** ./node_modules/next/dist/client/get-domain-locale.js ***!
- \************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getDomainLocale\", ({\n enumerable: true,\n get: function() {\n return getDomainLocale;\n }\n}));\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(app-pages-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || \"\";\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) {} else {\n return false;\n }\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-domain-locale.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2dldC1kb21haW4tbG9jYWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBT2dCQTs7O2VBQUFBOzs7b0RBSjJCO0FBRTNDLE1BQU1DLFdBQVdDLE1BQW1DLElBQWU7QUFFNUQsU0FBU0YsZ0JBQ2RLLElBQVksRUFDWkMsTUFBdUIsRUFDdkJDLE9BQWtCLEVBQ2xCQyxhQUE4QjtJQUU5QixJQUFJTixLQUErQixFQUFFLEVBZ0JyQyxNQUFPO1FBQ0wsT0FBTztJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL3NyYy9jbGllbnQvZ2V0LWRvbWFpbi1sb2NhbGUudHM/MWQ0ZSJdLCJuYW1lcyI6WyJnZXREb21haW5Mb2NhbGUiLCJiYXNlUGF0aCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwicGF0aCIsImxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiX19ORVhUX0kxOE5fU1VQUE9SVCIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJyZXF1aXJlIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwidGFyZ2V0IiwiZGV0ZWN0ZWRMb2NhbGUiLCJkb21haW4iLCJ1bmRlZmluZWQiLCJwcm90byIsImh0dHAiLCJmaW5hbExvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/get-domain-locale.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/client/link.js":
-/*!***********************************************!*\
- !*** ./node_modules/next/dist/client/link.js ***!
- \***********************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(app-pages-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"));\nconst _resolvehref = __webpack_require__(/*! ./resolve-href */ \"(app-pages-browser)/./node_modules/next/dist/client/resolve-href.js\");\nconst _islocalurl = __webpack_require__(/*! ../shared/lib/router/utils/is-local-url */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(app-pages-browser)/./node_modules/next/dist/client/add-locale.js\");\nconst _routercontextsharedruntime = __webpack_require__(/*! ../shared/lib/router-context.shared-runtime */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../shared/lib/app-router-context.shared-runtime */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js\");\nconst _useintersection = __webpack_require__(/*! ./use-intersection */ \"(app-pages-browser)/./node_modules/next/dist/client/use-intersection.js\");\nconst _getdomainlocale = __webpack_require__(/*! ./get-domain-locale */ \"(app-pages-browser)/./node_modules/next/dist/client/get-domain-locale.js\");\nconst _addbasepath = __webpack_require__(/*! ./add-base-path */ \"(app-pages-browser)/./node_modules/next/dist/client/add-base-path.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./components/router-reducer/router-reducer-types */ \"(app-pages-browser)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst prefetched = new Set();\nfunction prefetch(router, href, as, options, appOptions, isAppRouter) {\n if (typeof window === \"undefined\") {\n return;\n }\n // app-router supports external urls out of the box so it shouldn't short-circuit here as support for e.g. `replace` is added in the app-router.\n if (!isAppRouter && !(0, _islocalurl.isLocalURL)(href)) {\n return;\n }\n // We should only dedupe requests when experimental.optimisticClientCache is\n // disabled.\n if (!options.bypassPrefetchedCheck) {\n const locale = typeof options.locale !== \"undefined\" ? options.locale : \"locale\" in router ? router.locale : undefined;\n const prefetchedKey = href + \"%\" + as + \"%\" + locale;\n // If we've already fetched the key, then don't prefetch it again!\n if (prefetched.has(prefetchedKey)) {\n return;\n }\n // Mark this URL as prefetched.\n prefetched.add(prefetchedKey);\n }\n const prefetchPromise = isAppRouter ? router.prefetch(href, appOptions) : router.prefetch(href, as, options);\n // Prefetch the JSON page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n Promise.resolve(prefetchPromise).catch((err)=>{\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n}\nfunction isModifiedEvent(event) {\n const eventTarget = event.currentTarget;\n const target = eventTarget.getAttribute(\"target\");\n return target && target !== \"_self\" || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || // triggers resource download\n event.nativeEvent && event.nativeEvent.which === 2;\n}\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale, isAppRouter) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === \"A\";\n if (isAnchorNodeName && (isModifiedEvent(e) || // app-router supports external urls out of the box so it shouldn't short-circuit here as support for e.g. `replace` is added in the app-router.\n !isAppRouter && !(0, _islocalurl.isLocalURL)(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n e.preventDefault();\n const navigate = ()=>{\n // If the router is an NextRouter instance it will have `beforePopState`\n const routerScroll = scroll != null ? scroll : true;\n if (\"beforePopState\" in router) {\n router[replace ? \"replace\" : \"push\"](href, as, {\n shallow,\n locale,\n scroll: routerScroll\n });\n } else {\n router[replace ? \"replace\" : \"push\"](as || href, {\n scroll: routerScroll\n });\n }\n };\n if (isAppRouter) {\n _react.default.startTransition(navigate);\n } else {\n navigate();\n }\n}\nfunction formatStringOrUrl(urlObjOrString) {\n if (typeof urlObjOrString === \"string\") {\n return urlObjOrString;\n }\n return (0, _formaturl.formatUrl)(urlObjOrString);\n}\n/**\n * A React component that extends the HTML `` element to provide [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation between routes.\n *\n * It is the primary way to navigate between routes in Next.js.\n *\n * Read more: [Next.js docs: ``](https://nextjs.org/docs/app/api-reference/components/link)\n */ const Link = /*#__PURE__*/ _s(_react.default.forwardRef(_c = _s(function LinkComponent(props, forwardedRef) {\n _s();\n let children;\n const { href: hrefProp, as: asProp, children: childrenProp, prefetch: prefetchProp = null, passHref, replace, shallow, scroll, locale, onClick, onMouseEnter: onMouseEnterProp, onTouchStart: onTouchStartProp, legacyBehavior = false, ...restProps } = props;\n children = childrenProp;\n if (legacyBehavior && (typeof children === \"string\" || typeof children === \"number\")) {\n children = /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n children: children\n });\n }\n const pagesRouter = _react.default.useContext(_routercontextsharedruntime.RouterContext);\n const appRouter = _react.default.useContext(_approutercontextsharedruntime.AppRouterContext);\n const router = pagesRouter != null ? pagesRouter : appRouter;\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter;\n const prefetchEnabled = prefetchProp !== false;\n /**\n * The possible states for prefetch are:\n * - null: this is the default \"auto\" mode, where we will prefetch partially if the link is in the viewport\n * - true: we will prefetch if the link is visible and prefetch the full page, not just partially\n * - false: we will not prefetch if in the viewport at all\n */ const appPrefetchKind = prefetchProp === null ? _routerreducertypes.PrefetchKind.AUTO : _routerreducertypes.PrefetchKind.FULL;\n if (true) {\n function createPropError(args) {\n return new Error(\"Failed prop type: The prop `\" + args.key + \"` expects a \" + args.expected + \" in ``, but got `\" + args.actual + \"` instead.\" + (typeof window !== \"undefined\" ? \"\\nOpen your browser's console to view the Component stack trace.\" : \"\"));\n }\n // TypeScript trick for type-guarding:\n const requiredPropsGuard = {\n href: true\n };\n const requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach((key)=>{\n if (key === \"href\") {\n if (props[key] == null || typeof props[key] !== \"string\" && typeof props[key] !== \"object\") {\n throw createPropError({\n key,\n expected: \"`string` or `object`\",\n actual: props[key] === null ? \"null\" : typeof props[key]\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // TypeScript trick for type-guarding:\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach((key)=>{\n const valType = typeof props[key];\n if (key === \"as\") {\n if (props[key] && valType !== \"string\" && valType !== \"object\") {\n throw createPropError({\n key,\n expected: \"`string` or `object`\",\n actual: valType\n });\n }\n } else if (key === \"locale\") {\n if (props[key] && valType !== \"string\") {\n throw createPropError({\n key,\n expected: \"`string`\",\n actual: valType\n });\n }\n } else if (key === \"onClick\" || key === \"onMouseEnter\" || key === \"onTouchStart\") {\n if (props[key] && valType !== \"function\") {\n throw createPropError({\n key,\n expected: \"`function`\",\n actual: valType\n });\n }\n } else if (key === \"replace\" || key === \"scroll\" || key === \"shallow\" || key === \"passHref\" || key === \"prefetch\" || key === \"legacyBehavior\") {\n if (props[key] != null && valType !== \"boolean\") {\n throw createPropError({\n key,\n expected: \"`boolean`\",\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const hasWarned = _react.default.useRef(false);\n if (props.prefetch && !hasWarned.current && !isAppRouter) {\n hasWarned.current = true;\n console.warn(\"Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated\");\n }\n }\n if (true) {\n if (isAppRouter && !asProp) {\n let href;\n if (typeof hrefProp === \"string\") {\n href = hrefProp;\n } else if (typeof hrefProp === \"object\" && typeof hrefProp.pathname === \"string\") {\n href = hrefProp.pathname;\n }\n if (href) {\n const hasDynamicSegment = href.split(\"/\").some((segment)=>segment.startsWith(\"[\") && segment.endsWith(\"]\"));\n if (hasDynamicSegment) {\n throw new Error(\"Dynamic href `\" + href + \"` found in while using the `/app` router, this is not supported. Read more: https://nextjs.org/docs/messages/app-dir-dynamic-href\");\n }\n }\n }\n }\n const { href, as } = _react.default.useMemo(()=>{\n if (!pagesRouter) {\n const resolvedHref = formatStringOrUrl(hrefProp);\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref\n };\n }\n const [resolvedHref, resolvedAs] = (0, _resolvehref.resolveHref)(pagesRouter, hrefProp, true);\n return {\n href: resolvedHref,\n as: asProp ? (0, _resolvehref.resolveHref)(pagesRouter, asProp) : resolvedAs || resolvedHref\n };\n }, [\n pagesRouter,\n hrefProp,\n asProp\n ]);\n const previousHref = _react.default.useRef(href);\n const previousAs = _react.default.useRef(as);\n // This will return the first child, if multiple are provided it will throw an error\n let child;\n if (legacyBehavior) {\n if (true) {\n if (onClick) {\n console.warn('\"onClick\" was passed to with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link');\n }\n if (onMouseEnterProp) {\n console.warn('\"onMouseEnter\" was passed to with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link');\n }\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n if (!children) {\n throw new Error(\"No children were passed to with `href` of `\" + hrefProp + \"` but one child is required https://nextjs.org/docs/messages/link-no-children\");\n }\n throw new Error(\"Multiple children were passed to with `href` of `\" + hrefProp + \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\" + (typeof window !== \"undefined\" ? \" \\nOpen your browser's console to view the Component stack trace.\" : \"\"));\n }\n } else {}\n } else {\n if (true) {\n if ((children == null ? void 0 : children.type) === \"a\") {\n throw new Error(\"Invalid with child. Please remove or use .\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor\");\n }\n }\n }\n const childRef = legacyBehavior ? child && typeof child === \"object\" && child.ref : forwardedRef;\n const [setIntersectionRef, isVisible, resetVisible] = (0, _useintersection.useIntersection)({\n rootMargin: \"200px\"\n });\n const setRef = _react.default.useCallback((el)=>{\n // Before the link getting observed, check if visible state need to be reset\n if (previousAs.current !== as || previousHref.current !== href) {\n resetVisible();\n previousAs.current = as;\n previousHref.current = href;\n }\n setIntersectionRef(el);\n if (childRef) {\n if (typeof childRef === \"function\") childRef(el);\n else if (typeof childRef === \"object\") {\n childRef.current = el;\n }\n }\n }, [\n as,\n childRef,\n href,\n resetVisible,\n setIntersectionRef\n ]);\n // Prefetch the URL if we haven't already and it's visible.\n _react.default.useEffect(()=>{\n // in dev, we only prefetch on hover to avoid wasting resources as the prefetch will trigger compiling the page.\n if (true) {\n return;\n }\n if (!router) {\n return;\n }\n // If we don't need to prefetch the URL, don't do prefetch.\n if (!isVisible || !prefetchEnabled) {\n return;\n }\n // Prefetch the URL.\n prefetch(router, href, as, {\n locale\n }, {\n kind: appPrefetchKind\n }, isAppRouter);\n }, [\n as,\n href,\n isVisible,\n locale,\n prefetchEnabled,\n pagesRouter == null ? void 0 : pagesRouter.locale,\n router,\n isAppRouter,\n appPrefetchKind\n ]);\n const childProps = {\n ref: setRef,\n onClick (e) {\n if (true) {\n if (!e) {\n throw new Error('Component rendered inside next/link has to pass click event to \"onClick\" prop.');\n }\n }\n if (!legacyBehavior && typeof onClick === \"function\") {\n onClick(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onClick === \"function\") {\n child.props.onClick(e);\n }\n if (!router) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n linkClicked(e, router, href, as, replace, shallow, scroll, locale, isAppRouter);\n },\n onMouseEnter (e) {\n if (!legacyBehavior && typeof onMouseEnterProp === \"function\") {\n onMouseEnterProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onMouseEnter === \"function\") {\n child.props.onMouseEnter(e);\n }\n if (!router) {\n return;\n }\n if ((!prefetchEnabled || \"development\" === \"development\") && isAppRouter) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n }, {\n kind: appPrefetchKind\n }, isAppRouter);\n },\n onTouchStart: false ? 0 : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === \"function\") {\n onTouchStartProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onTouchStart === \"function\") {\n child.props.onTouchStart(e);\n }\n if (!router) {\n return;\n }\n if (!prefetchEnabled && isAppRouter) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n }, {\n kind: appPrefetchKind\n }, isAppRouter);\n }\n };\n // If child is an tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user.\n // If the url is absolute, we can bypass the logic to prepend the domain and locale.\n if ((0, _utils.isAbsoluteUrl)(as)) {\n childProps.href = as;\n } else if (!legacyBehavior || passHref || child.type === \"a\" && !(\"href\" in child.props)) {\n const curLocale = typeof locale !== \"undefined\" ? locale : pagesRouter == null ? void 0 : pagesRouter.locale;\n // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n const localeDomain = (pagesRouter == null ? void 0 : pagesRouter.isLocaleDomain) && (0, _getdomainlocale.getDomainLocale)(as, curLocale, pagesRouter == null ? void 0 : pagesRouter.locales, pagesRouter == null ? void 0 : pagesRouter.domainLocales);\n childProps.href = localeDomain || (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, curLocale, pagesRouter == null ? void 0 : pagesRouter.defaultLocale));\n }\n return legacyBehavior ? /*#__PURE__*/ _react.default.cloneElement(child, childProps) : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n ...restProps,\n ...childProps,\n children: children\n });\n}, \"wKD5mb5mk47bkaStGb/Fvd6RWZE=\")), \"wKD5mb5mk47bkaStGb/Fvd6RWZE=\");\n_c1 = Link;\nconst _default = Link;\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=link.js.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Link$_react.default.forwardRef\");\n$RefreshReg$(_c1, \"Link\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2xpbmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7NkJBUzRCQSx5QkFBQUMsQ0FBQSxDQUFBQyxtQkFBQUEsQ0FBQTt5Q0FDRDt3Q0FDRDt1Q0FDSTs7Ozt1Q0FRRUEsbUJBQUFBLENBQUE7NkNBQ0E7NkNBQ0o7O0FBMkY1QixNQUFNQyxzQkFBaUJDLG1CQUFBQSxDQUFBQSwrSkFBQUE7QUFVdkIsTUFBQUQsYUFDRUUsSUFBQUE7U0FPSUMsU0FBT0MsTUFBQUEsRUFBV0MsSUFBQSxFQUFBQyxFQUFBLEVBQUFDLE9BQWEsRUFBQUMsVUFBQSxFQUFBQyxXQUFBO1FBQ2pDLE9BQUFMLFdBQUE7UUFDRjtJQUVBO0lBQ0EsZ0pBQXVDO1FBQ3JDLENBQUFLLGVBQUEsS0FBQUMsWUFBQUMsVUFBQSxFQUFBTixPQUFBO1FBQ0Y7SUFFQTtJQUNBLDRFQUFZO0lBQ1osWUFBS0U7UUFDSCxDQUFBQSxRQUFNSyxxQkFDSjtRQUNBLE1BQUFBLFNBT0YsT0FBTUMsUUFBQUEsTUFBQUEsS0FBZ0JSLGNBQWtCRSxRQUFNSyxNQUFBQSxHQUFBQSxZQUFBQSxTQUFBQSxPQUFBQSxNQUFBQSxHQUFBQTtRQUU5QyxNQUFBQyxnQkFBQVIsT0FBQSxNQUFBQyxLQUFBLE1BQUFNO1FBQ0Esa0VBQW1DO1lBQ2pDWixXQUFBYyxHQUFBLENBQUFELGdCQUFBO1lBQ0Y7UUFFQTtRQUNBYiwrQkFBZWE7UUFDakJiLFdBQUFlLEdBQUEsQ0FBQUY7SUFFQTtJQUlBLE1BQUFHLGtCQUFBUCxjQUFBUCxPQUFBQyxRQUFBLENBQUFFLE1BQXVERyxjQUFBTixPQUFBQyxRQUFBLENBQUFFLE1BQUFDLElBQUFDO0lBQ3ZEO0lBQ0EsMERBQXNEO0lBQ3REO0lBQ0FVLHlEQUF3Q0M7WUFDbENDLE9BQUFBLENBQVFDLGlCQUFpQkMsS0FBQSxFQUFBSDtZQUMzQkMsSUFBQSxFQUFxQztZQUNyQyxxQ0FBTUQ7WUFDUixNQUFBQTtRQUNGO0lBQ0Y7QUFFQTtTQUNFSSxnQkFBb0JDLEtBQU1DO0lBQzFCLE1BQU1DLGNBQVNDLE1BQUFBLGFBQXdCO0lBQ3ZDLE1BQUFELFNBQ0dBLFlBQVVBLFlBQ1hGLENBQUFBO0lBSUNBLE9BQU1JLFVBQVdGLFdBQVVFLFdBQVlDLE1BQUtDLE9BQUssSUFBQU4sTUFBQU8sT0FBQSxJQUFBUCxNQUFBUSxRQUFBLElBQUFSLE1BQUFTLE1BQUE7SUFFdERULE1BQUFJLFdBQUEsSUFBQUosTUFBQUksV0FBQSxDQUFBQyxLQUFBO0FBRUE7U0FXRUssWUFBZ0JDLENBQUUsRUFBQWhDLE1BQUtzQixFQUFBQSxJQUFBQSxFQUFBQSxFQUFhLEVBQUFXLE9BQUEsRUFBQUMsT0FBQSxFQUFBQyxNQUFBLEVBQUF6QixNQUFBLEVBQUFILFdBQUE7SUFFcEMsUUFBQTZCLFFBQUEsS0FBQUosRUFBQVYsYUFBQTtJQUNBLGtEQUE2QztJQUU3QyxNQUNFZSxtQkFDQ2pCLFNBQUFBLFdBQWdCWSxPQUNmO0lBQ0MsSUFBQ3pCLG9CQUFnQkUsQ0FBQUEsZ0JBQUFBLE1BQVdOLGdKQUMvQjtvQkFDQSxLQUFBSyxZQUFBQyxVQUFBLEVBQUFOLEtBQUEsR0FBOEM7UUFDOUM7UUFDRjtJQUVBNkI7SUFFQUEsRUFBQU0sY0FBTUM7VUFDSkEsV0FBQTtRQUNBLHdFQUErQjtRQUMvQixNQUFJQyxlQUFBTCxVQUFvQm5DLE9BQVFtQyxTQUFBO1lBQzlCbkMsb0JBQWlCQSxRQUFBO2tCQUNma0MsQ0FBQUEsVUFBQUEsWUFBQUEsT0FBQUEsQ0FBQUEsTUFBQUEsSUFBQUE7Z0JBQ0F4QjtnQkFDQXlCO2dCQUNGQSxRQUFBSztZQUNGO2VBQ0V4QztrQkFDRW1DLENBQUFBLFVBQVFLLFlBQUFBLE9BQUFBLENBQUFBLE1BQUFBLE1BQUFBO2dCQUNWTCxRQUFBSztZQUNGO1FBQ0Y7SUFFQTtRQUNFQyxhQUFBQTtRQUNGQyxPQUFPQyxPQUFBLENBQUFDLGVBQUEsQ0FBQUw7V0FDTEE7UUFDRkE7SUFDRjtBQU9BO1NBQ01NLGtCQUFPQyxjQUFtQjtRQUM1QixPQUFPQSxtQkFBQUEsVUFBQUE7UUFDVCxPQUFBQTtJQUVBO0lBQ0YsV0FBQUMsV0FBQUMsU0FBQSxFQUFBRjtBQUVBOzs7Ozs7OztJQVVJLE1BQUlHLE9BQUFBLFdBQUFBLEdBQUFBLEdBQUFBLE9BQUFBLE9BQUFBLENBQUFBLFVBQUFBLFNBQUFBLFNBQUFBLGNBQUFBLEtBQUFBLEVBQUFBLFlBQUFBOztJQUVKLElBQUFBO0lBaUJBQSxNQUFBQSxFQUFBQSxNQUFXQyxRQUFBQSxFQUFBQSxJQUFBQSxNQUFBQSxFQUFBQSxVQUFBQSxZQUFBQSxFQUFBQSxVQUFBQSxlQUFBQSxJQUFBQSxFQUFBQSxRQUFBQSxFQUFBQSxPQUFBQSxFQUFBQSxPQUFBQSxFQUFBQSxNQUFBQSxFQUFBQSxNQUFBQSxFQUFBQSxPQUFBQSxFQUFBQSxjQUFBQSxnQkFBQUEsRUFBQUEsY0FBQUEsZ0JBQUFBLEVBQUFBLGlCQUFBQSxLQUFBQSxFQUFBQSxHQUFBQSxXQUFBQSxHQUFBQTtJQUVYRCxXQUNFRTtRQUdBRixrQkFBQUEsQ0FBQUEsT0FBV0EsYUFBQSxZQUFDRyxPQUFBQSxhQUFBQSxRQUFBQSxHQUFBQTttQkFBR0gsV0FBQUEsR0FBQUEsQ0FBQUEsR0FBQUEsWUFBQUEsR0FBQUEsRUFBQUEsS0FBQUE7O1FBQ2pCO0lBRUE7SUFDQSxNQUFNSSxjQUFZWixPQUFBQSxPQUFNYSxDQUFBQSxVQUFXQyxDQUFBQSw0QkFBQUEsYUFBQUE7SUFDbkMsTUFBTXZELFlBQVN3RCxPQUFBQSxPQUFBQSxDQUFBQSxVQUFBQSxDQUFBQSwrQkFBZUgsZ0JBQUFBO0lBRTlCLE1BQUFyRCxTQUFBd0QsZUFBQSxPQUFBQSxjQUFBSDtJQUNBLDBEQUFxQkc7SUFFckIsTUFBTUMsY0FBQUEsQ0FBQUE7SUFDTixNQUFBQSxrQkFBQUMsaUJBQUE7Ozs7OztLQVNBLEdBQUl6QyxNQUFBQSxrQkFBb0J5QyxpQkFBbUIsT0FBQUMsb0JBQUFDLFlBQUEsQ0FBQUMsSUFBQSxHQUFBRixvQkFBQUMsWUFBQSxDQUFBRSxJQUFBO1FBQ3pDN0MsSUFBeUI4QyxFQUl4QjtpQkFDQ0MsZ0JBQ0dELElBQUE7WUFLTCxXQUFBRSxNQUFBLGlDQUFBRixLQUFBRyxHQUFBLG9CQUFBSCxLQUFBSSxRQUFBLCtCQUFBSixLQUFBSyxNQUFBLDBCQUFBbEUsV0FBQTtRQUVBO1FBQ0Esc0NBQTREO2NBQzFEQyxxQkFBTTtZQUNSQSxNQUFBO1FBQ0E7UUFHQWtFLE1BQUFBLGdCQUFzQkMsT0FBQ0osSUFBQUEsQ0FBQUE7c0JBQ2pCQSxPQUFRLEVBQUFBO2dCQUNWQSxRQUNFSyxRQUFVO29CQUdWQSxLQUFBLENBQU1QLElBQUFBLElBQUFBLFFBQWdCLE9BQUFPLEtBQUEsQ0FBQUwsSUFBQSx3QkFBQUssS0FBQSxDQUFBTCxJQUFBOzBCQUNwQkEsZ0JBQUFBO3dCQUNBQzt3QkFDQUMsVUFBUUc7d0JBQ1ZILFFBQUFHLEtBQUEsQ0FBQUwsSUFBQSw0QkFBQUssS0FBQSxDQUFBTCxJQUFBO29CQUNGO2dCQUNGO21CQUNFO2dCQUNBO2dCQUNBLDZEQUFpQkE7Z0JBQ25CLE1BQUF0RSxJQUFBc0U7WUFDRjtRQUVBO1FBQ0Esc0NBQTREO2NBQzFEOUQscUJBQUk7WUFDSjZCLElBQUFBO1lBQ0FFLFNBQVE7WUFDUkQsUUFBQUE7WUFDQXNDLFNBQUFBO1lBQ0F2RSxVQUFVO1lBQ1ZTLFVBQVE7WUFDUitELFFBQUFBO1lBQ0FDLFNBQUFBO1lBQ0FDLGNBQWM7WUFDZHhCLGNBQUFBO1lBQ0ZBLGdCQUFBO1FBQ0E7UUFHQXlCLE1BQUFBLGdCQUFzQk4sT0FBQ0osSUFBQUEsQ0FBQUE7c0JBQ2ZXLE9BQVUsRUFBQVg7WUFFaEIsTUFBSUEsVUFBUSxPQUFNSyxLQUFBLENBQUFMLElBQUE7Z0JBQ2hCQSxRQUFJSyxNQUFVO29CQUNaQSxLQUFBLENBQU1QLElBQUFBLElBQUFBLFlBQWdCLFlBQUFhLFlBQUE7MEJBQ3BCWCxnQkFBQUE7d0JBQ0FDO3dCQUNBQyxVQUFRUzt3QkFDVlQsUUFBQVM7b0JBQ0Y7Z0JBQ0Y7bUJBQ0UsSUFBSU4sUUFBVSxVQUFJTTtvQkFDaEJOLEtBQUEsQ0FBTVAsSUFBQUEsSUFBQUEsWUFBZ0I7MEJBQ3BCRSxnQkFBQUE7d0JBQ0FDO3dCQUNBQyxVQUFRUzt3QkFDVlQsUUFBQVM7b0JBQ0Y7Z0JBQ0Y7bUJBS0UsSUFBSU4sUUFBVSxhQUFJTSxRQUFZLGtCQUFZWCxRQUFBO29CQUN4Q0ssS0FBQSxDQUFNUCxJQUFBQSxJQUFBQSxZQUFnQjswQkFDcEJFLGdCQUFBQTt3QkFDQUM7d0JBQ0FDLFVBQVFTO3dCQUNWVCxRQUFBUztvQkFDRjtnQkFDRjttQkFRRSxJQUFJTixRQUFVLGFBQVlNLFFBQUFBLFlBQVlYLFFBQVcsYUFBQUEsUUFBQSxjQUFBQSxRQUFBLGNBQUFBLFFBQUE7b0JBQy9DSyxLQUFBLENBQU1QLElBQUFBLElBQUFBLFFBQWdCYSxZQUFBOzBCQUNwQlgsZ0JBQUFBO3dCQUNBQzt3QkFDQUMsVUFBUVM7d0JBQ1ZULFFBQUFTO29CQUNGO2dCQUNGO21CQUNFO2dCQUNBO2dCQUNBLDZEQUFpQlg7Z0JBQ25CLE1BQUF0RSxJQUFBc0U7WUFDRjtRQUVBO1FBQ0EsNEZBQXNEO1FBQ3RELHNEQUErQjtRQUMvQixNQUFJSyxZQUFjN0IsT0FBS29DLE9BQUFBLENBQVVDLE1BQUFBLENBQU87WUFDdENELE1BQUFBLFFBQVVDLElBQU8sQ0FBQUQsVUFBR0MsT0FBQSxLQUFBeEUsYUFBQTtZQUNwQnlFLFVBQVFDLE9BQ047WUFFSkQsUUFBQUMsSUFBQTtRQUNGO0lBRUE7UUFDRWhFLElBQW9CaUUsRUFBUTtZQUMxQjNFLGVBQUlKLENBQUFBLFFBQUFBO1lBQ0osSUFBSUE7Z0JBQ0ZBLE9BQU9nRixhQUFBQSxVQUFBQTtnQkFDVGhGLE9BQ0VnRjttQkFHQWhGLElBQU9nRixPQUFBQSxhQUFpQixtQkFBQUEsU0FBQUMsUUFBQTtnQkFDMUJqRixPQUFBZ0YsU0FBQUMsUUFBQTtZQUVBO2dCQUNFakYsTUFBTWtGO2dCQUlOLE1BQUlBLG9CQUFtQmxGLEtBQUFtRixLQUFBLE1BQUFDLElBQUEsRUFBQUMsVUFBQUEsUUFBQUMsVUFBQSxTQUFBRCxRQUFBRSxRQUFBO29CQUNyQkwsbUJBQ0c7b0JBRUwsVUFBQXBCLE1BQUEsbUJBQUE5RCxPQUFBO2dCQUNGO1lBQ0Y7UUFDRjtJQUVBO1VBQ0UsRUFBSUEsSUFBQ3FELEVBQUFBLEVBQUFBLEVBQUFBLEdBQUFBLE9BQWFiLE9BQUEsQ0FBQWdELE9BQUE7WUFDaEIsQ0FBQW5DLGFBQU1vQztZQUNOLE1BQUFBLGVBQU8vQyxrQkFBQXNDO21CQUNMaEY7Z0JBQ0FDLE1BQUk4RTtnQkFDTjlFLElBQUE4RSxTQUFBckMsa0JBQUFxQyxVQUFBVTtZQUNGO1FBRUE7UUFNQSxPQUFPQSxjQUFBQyxXQUFBLE9BQUFDLGFBQUFDLFdBQUEsRUFBQXZDLGFBQUEyQixVQUFBO2VBQ0xoRjtZQUNBQyxNQUFJOEU7WUFHTjlFLElBQUE4RSxTQUFBLElBQUFZLGFBQUFDLFdBQUEsRUFBQXZDLGFBQUEwQixVQUFBVyxjQUFBRDtRQUNDOztRQUFjVDtRQUFVRDtRQUFPQTtLQUVsQztJQUNBLE1BQU1jLGVBQWF2RCxPQUFBQSxPQUFNd0QsQ0FBQUEsTUFBZTdGLENBQUFBO0lBRXhDLE1BQUE0RixhQUFBdEQsT0FBQUMsT0FBQSxDQUFBc0QsTUFBQSxDQUFBN0Y7SUFDQSxvRkFBSThGO0lBQ0osSUFBSS9DO1FBQ0ZBLGdCQUFnQmdEO1lBQ2RsRixJQUFhO2dCQUNYK0QsU0FBUUM7Z0JBR1ZELFFBQUFDLElBQUEscURBQUFFLFdBQUE7WUFDQTtnQkFDRUgsa0JBQ0c7Z0JBRUxBLFFBQUFDLElBQUEsMERBQUFFLFdBQUE7WUFDQTtnQkFDRWU7Z0JBQ0FBLFFBQU9sRixPQUFLMkIsT0FBQSxDQUFBeUQsUUFBQSxDQUFBQyxJQUFBLENBQUFwRDtxQkFDUEEsS0FBQUE7b0JBQ0gsQ0FBQUEsVUFBVWdCO29CQUdaLFVBQUFBLE1BQUEsdURBQUFrQixXQUFBO2dCQUNBO2dCQU1GLFVBQUFsQixNQUFBLDZEQUFBa0IsV0FBQSxzR0FBQWpGLFdBQUE7WUFDRjtlQUNFZ0csRUFFSjtXQUNFO1lBQ0VqRixJQUFLZ0MsRUFBQUE7Z0JBQ0gsQ0FBQUEsWUFBVWdCLE9BQ1IsU0FBQWhCLFNBQUFxRCxJQUFBO2dCQUVKLFVBQUFyQyxNQUFBO1lBQ0Y7UUFDRjtJQUVBO0lBSUEsTUFBTXNDLFdBQUNDLGlCQUFvQkMsU0FBV0MsT0FBQUEsVUFBZ0JDLFlBQUFBLE1BQUFBLEdBQUFBLEdBQUFBO1VBQ3BEQyxDQUFBQSxvQkFBWUgsV0FBQUMsYUFBQSxPQUFBRyxpQkFBQUYsZUFBQTtRQUNkQyxZQUFBO0lBRUE7VUFFSUUsU0FBQXBFLE9BQUFDLE9BQUEsQ0FBQW9FLFdBQUEsRUFBQUM7UUFDQSw0RUFBZ0U7WUFDOUROLFdBQUFBLE9BQUFBLEtBQUFBLE1BQUFBLGFBQUFBLE9BQUFBLEtBQUFBLE1BQUFBO1lBQ0FWO1lBQ0FpQixXQUFBQSxPQUFhbEMsR0FBTzNFO1lBQ3RCNkcsYUFBQWxDLE9BQUEsR0FBQTVFO1FBRUFxRztRQUNBQSxtQkFBY1E7WUFDWlQsVUFBSTt1QkFDS0EsYUFBT0EsWUFBYUEsU0FBVVM7aUJBQ3JDVCxJQUFBQSxPQUFTeEIsYUFBVWlDLFVBQUFBO2dCQUNyQlQsU0FBQXhCLE9BQUEsR0FBQWlDO1lBQ0Y7UUFFRjs7UUFBS1Q7UUFBVXBHO1FBQU11RztRQUFjRjtRQUFtQkE7S0FHeEQ7SUFDQS9ELDJEQUFnQjtXQUNkRSxPQUFBLENBQUF1RSxTQUFBO1FBQ0EsZ0hBQTJDO1lBQ3pDakcsSUFBQTtZQUNGO1FBRUE7WUFDRSxDQUFBakIsUUFBQTtZQUNGO1FBRUE7UUFDQSwyREFBb0M7WUFDbEMsQ0FBQXlHLGFBQUEsQ0FBQWhELGlCQUFBO1lBQ0Y7UUFFQTtRQUNBeEQsb0JBRUVFO2lCQUVFTyxRQUFBQSxNQUFBQSxJQUFBQTtZQUNGQTs7WUFHQUgsTUFBQUE7UUFFRCxHQUFBQTs7UUFFREo7UUFDQXNHO1FBQ0EvRjtRQUNBK0M7UUFDQUQ7UUFDQXhELGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFlBQUFBLE1BQUFBO1FBQ0FPO1FBQ0E0RztRQUNEQTtLQUVEO1VBT0VDLGFBQUtOO1FBQ0xyQyxLQUFBQTtpQkFDTXhELENBQUFBO2dCQUNGQSxJQUFRO29CQUNOLENBQUFlLEdBQUE7b0JBR0YsVUFBQWlDLE1BQUE7Z0JBQ0Y7WUFFQTtnQkFDRVEsQ0FBQUEsa0JBQVF6QyxPQUFBQSxZQUFBQSxZQUFBQTtnQkFDVnlDLFFBQUF6QztZQUVBO2dCQUtFa0Usa0JBQVl6QixNQUFRekMsS0FBQUEsSUFBQUEsT0FBQUEsTUFBQUEsS0FBQUEsQ0FBQUEsT0FBQUEsS0FBQUEsWUFBQUE7Z0JBQ3RCa0UsTUFBQTNCLEtBQUEsQ0FBQUUsT0FBQSxDQUFBekM7WUFFQTtnQkFDRSxDQUFBaEMsUUFBQTtnQkFDRjtZQUVBO2dCQUNFZ0MsRUFBQXFGLGdCQUFBO2dCQUNGO1lBRUF0RjtZQVdGQSxZQUFBQyxHQUFBaEMsUUFBQUcsTUFBQUMsSUFBQTZCLFNBQUFDLFNBQUFDLFFBQUF6QixRQUFBSDtRQUNBbUU7c0JBQ092QixDQUFBQTtnQkFDSG1FLENBQUFBLGtCQUFpQnRGLE9BQUFBLHFCQUFBQSxZQUFBQTtnQkFDbkJzRixpQkFBQXRGO1lBRUE7Z0JBS0VrRSxrQkFBWXhCLE1BQVlILEtBQUN2QyxJQUFBQSxPQUFBQSxNQUFBQSxLQUFBQSxDQUFBQSxZQUFBQSxLQUFBQSxZQUFBQTtnQkFDM0JrRSxNQUFBM0IsS0FBQSxDQUFBRyxZQUFBLENBQUExQztZQUVBO2dCQUNFLENBQUFoQyxRQUFBO2dCQUNGO1lBRUE7Z0JBSUUsRUFBQXlELG1CQUFBeEMsa0JBQUEsa0JBQUFWLGFBQUE7Z0JBQ0Y7WUFFQU47cUJBS0lTLFFBQUFBLE1BQUFBLElBQUFBO2dCQUNBNkc7Z0JBQ0FBLFVBQUE7Z0JBQ0FDLGdHQUF1QjtnQkFFekJBLHVCQUFBOztnQkFHQWpILE1BQUFBO1lBRUosR0FBQUE7UUFDQW9FO3NCQUdXeEIsTUFBeUJzRSxHQUFxQkMsQ0FBQUEsR0FBWSxTQUFBL0MsYUFBQTNDLENBQUE7Z0JBQzdEeUYsQ0FBQUEsa0JBQWlCekYsT0FBQUEscUJBQUFBLFlBQUFBO2dCQUNuQnlGLGlCQUFBekY7WUFFQTtnQkFLRWtFLGtCQUFZdkIsTUFBWUosS0FBQ3ZDLElBQUFBLE9BQUFBLE1BQUFBLEtBQUFBLENBQUFBLFlBQUFBLEtBQUFBLFlBQUFBO2dCQUMzQmtFLE1BQUEzQixLQUFBLENBQUFJLFlBQUEsQ0FBQTNDO1lBRUE7Z0JBQ0UsQ0FBQWhDLFFBQUE7Z0JBQ0Y7WUFFQTtnQkFDRSxDQUFBeUQsbUJBQUFsRCxhQUFBO2dCQUNGO1lBRUFOO3FCQUtJUyxRQUFBQSxNQUFBQSxJQUFBQTtnQkFDQTZHO2dCQUNBQSxVQUFBO2dCQUNBQyxnR0FBdUI7Z0JBRXpCQSx1QkFBQTs7Z0JBR0FqSCxNQUFBQTtZQUVKLEdBQUFBO1FBQ047SUFFQTtJQUNBLDZGQUF3RjtJQUN4Rix3RkFBb0Y7SUFDcEYsb0ZBQXVCO1FBQ3JCb0gsQ0FBQUEsR0FBQUEsT0FBV3hILGFBQU9DLEVBQUFBLEtBQUFBO1FBQ3BCdUgsV0FDR3hFLElBQUFBLEdBQUFBO1dBSUQsSUFBTXlFLENBQUFBLGtCQUNHbEgsWUFBV3dGLE1BQUFJLElBQUEsS0FBYzVGLE9BQVM4QyxDQUFBQSxDQUFBQSxVQUFBQSxNQUFBQSxLQUFBQSxHQUFBQTtRQUUzQyxNQUFBb0UsWUFBQSxPQUFBbEgsV0FBQSxjQUFBQSxTQUFBOEMsZUFBdUUsZ0JBQUFBLFlBQUE5QyxNQUFBO1FBQ3ZFLHVFQUF1RTtRQUN2RSx1RUFDZW1IO1FBUWZGLE1BQUFBLGVBQ0VHLENBQUFBLGVBQ0FDLE9BQUFBLEtBQUFBLElBQUFBLFlBQVlDLGNBQUFBLEtBQUFBLENBQUFBLEdBQVNDLGlCQUFnQnpFLGVBQUFBLEVBQUFBLElBQUFBLFdBQUFBLGVBQWEwRSxPQUFBQSxLQUFhLElBQUExRSxZQUFBMkUsT0FBQSxFQUFBM0UsZUFBQSxnQkFBQUEsWUFBQTRFLGFBQUE7UUFDbkVULFdBQUF4SCxJQUFBLEdBQUEySCxnQkFBQSxJQUFBTyxhQUFBTixXQUFBLE1BQUFPLFdBQUFOLFNBQUEsRUFBQTVILElBQUF3SCxXQUFBcEUsZUFBQSxnQkFBQUEsWUFBQTBFLGFBQUE7SUFFQTtXQUdTSyxpQkFBUyxjQUFBN0YsT0FBQUMsT0FBQSxDQUFBNkYsWUFBQSxDQUFBdEMsT0FBQXlCLGNBQUEsa0JBQUFjLFlBQUFDLEdBQUE7UUFBRyxHQUFHZixTQUFBQTtxQkFDbkIxRTs7SUFHUCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vc3JjL2NsaWVudC9saW5rLnRzeD9hY2YwIl0sIm5hbWVzIjpbIl9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCIsIl8iLCJyZXF1aXJlIiwicHJlZmV0Y2hlZCIsIlNldCIsInJvdXRlciIsInByZWZldGNoIiwid2luZG93IiwiaHJlZiIsImFzIiwib3B0aW9ucyIsImFwcE9wdGlvbnMiLCJpc0FwcFJvdXRlciIsIl9pc2xvY2FsdXJsIiwiaXNMb2NhbFVSTCIsImxvY2FsZSIsInByZWZldGNoZWRLZXkiLCJoYXMiLCJhZGQiLCJwcmVmZXRjaFByb21pc2UiLCJQcm9taXNlIiwiZXJyIiwicHJvY2VzcyIsImVudiIsImNhdGNoIiwiaXNNb2RpZmllZEV2ZW50IiwiZXZlbnQiLCJjdXJyZW50VGFyZ2V0IiwidGFyZ2V0IiwiZXZlbnRUYXJnZXQiLCJuYXRpdmVFdmVudCIsIndoaWNoIiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsImxpbmtDbGlja2VkIiwiZSIsInJlcGxhY2UiLCJzaGFsbG93Iiwic2Nyb2xsIiwibm9kZU5hbWUiLCJpc0FuY2hvck5vZGVOYW1lIiwicHJldmVudERlZmF1bHQiLCJuYXZpZ2F0ZSIsInJvdXRlclNjcm9sbCIsIlJlYWN0IiwiX3JlYWN0IiwiZGVmYXVsdCIsInN0YXJ0VHJhbnNpdGlvbiIsImZvcm1hdFN0cmluZ09yVXJsIiwidXJsT2JqT3JTdHJpbmciLCJfZm9ybWF0dXJsIiwiZm9ybWF0VXJsIiwiY2hpbGRyZW4iLCJjaGlsZHJlblByb3AiLCJsZWdhY3lCZWhhdmlvciIsImEiLCJhcHBSb3V0ZXIiLCJ1c2VDb250ZXh0IiwiQXBwUm91dGVyQ29udGV4dCIsInBhZ2VzUm91dGVyIiwicHJlZmV0Y2hFbmFibGVkIiwicHJlZmV0Y2hQcm9wIiwiX3JvdXRlcnJlZHVjZXJ0eXBlcyIsIlByZWZldGNoS2luZCIsIkFVVE8iLCJGVUxMIiwiYXJncyIsImNyZWF0ZVByb3BFcnJvciIsIkVycm9yIiwia2V5IiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJyZXF1aXJlZFByb3BzIiwiT2JqZWN0IiwicHJvcHMiLCJwYXNzSHJlZiIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvblRvdWNoU3RhcnQiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsImhhc1dhcm5lZCIsImN1cnJlbnQiLCJjb25zb2xlIiwid2FybiIsImFzUHJvcCIsImhyZWZQcm9wIiwicGF0aG5hbWUiLCJoYXNEeW5hbWljU2VnbWVudCIsInNwbGl0Iiwic29tZSIsInNlZ21lbnQiLCJzdGFydHNXaXRoIiwiZW5kc1dpdGgiLCJ1c2VNZW1vIiwicmVzb2x2ZWRIcmVmIiwicmVzb2x2ZWRBcyIsIl9yZXNvbHZlaHJlZiIsInJlc29sdmVIcmVmIiwicHJldmlvdXNBcyIsInVzZVJlZiIsImNoaWxkIiwiTk9ERV9FTlYiLCJDaGlsZHJlbiIsIm9ubHkiLCJ0eXBlIiwiY2hpbGRSZWYiLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJyZXNldFZpc2libGUiLCJ1c2VJbnRlcnNlY3Rpb24iLCJyb290TWFyZ2luIiwiX3VzZWludGVyc2VjdGlvbiIsInNldFJlZiIsInVzZUNhbGxiYWNrIiwiZWwiLCJwcmV2aW91c0hyZWYiLCJ1c2VFZmZlY3QiLCJhcHBQcmVmZXRjaEtpbmQiLCJyZWYiLCJkZWZhdWx0UHJldmVudGVkIiwib25Nb3VzZUVudGVyUHJvcCIsInByaW9yaXR5IiwiYnlwYXNzUHJlZmV0Y2hlZENoZWNrIiwib25Ub3VjaFN0YXJ0UHJvcCIsInVuZGVmaW5lZCIsImNoaWxkUHJvcHMiLCJjdXJMb2NhbGUiLCJpc0xvY2FsZURvbWFpbiIsImxvY2FsZURvbWFpbiIsImFkZEJhc2VQYXRoIiwiYWRkTG9jYWxlIiwiX2dldGRvbWFpbmxvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJsb2NhbGVzIiwiZG9tYWluTG9jYWxlcyIsIl9hZGRiYXNlcGF0aCIsIl9hZGRsb2NhbGUiLCJyZXN0UHJvcHMiLCJjbG9uZUVsZW1lbnQiLCJfanN4cnVudGltZSIsImpzeCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/link.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/client/request-idle-callback.js":
-/*!****************************************************************!*\
- !*** ./node_modules/next/dist/client/request-idle-callback.js ***!
- \****************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n cancelIdleCallback: function() {\n return cancelIdleCallback;\n },\n requestIdleCallback: function() {\n return requestIdleCallback;\n }\n});\nconst requestIdleCallback = typeof self !== \"undefined\" && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function(cb) {\n let start = Date.now();\n return self.setTimeout(function() {\n cb({\n didTimeout: false,\n timeRemaining: function() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\nconst cancelIdleCallback = typeof self !== \"undefined\" && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function(id) {\n return clearTimeout(id);\n};\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=request-idle-callback.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3QtaWRsZS1jYWxsYmFjay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFnQmFBLG9CQUFrQjtlQUFsQkE7O0lBaEJBQyxxQkFBbUI7ZUFBbkJBOzs7QUFBTixNQUFNQSxzQkFDWCxPQUFRQyxTQUFTLGVBQ2ZBLEtBQUtELG1CQUFtQixJQUN4QkMsS0FBS0QsbUJBQW1CLENBQUNFLElBQUksQ0FBQ0MsV0FDaEMsU0FBVUMsRUFBdUI7SUFDL0IsSUFBSUMsUUFBUUMsS0FBS0MsR0FBRztJQUNwQixPQUFPTixLQUFLTyxVQUFVLENBQUM7UUFDckJKLEdBQUc7WUFDREssWUFBWTtZQUNaQyxlQUFlO2dCQUNiLE9BQU9DLEtBQUtDLEdBQUcsQ0FBQyxHQUFHLEtBQU1OLENBQUFBLEtBQUtDLEdBQUcsS0FBS0YsS0FBQUE7WUFDeEM7UUFDRjtJQUNGLEdBQUc7QUFDTDtBQUVLLE1BQU1OLHFCQUNYLE9BQVFFLFNBQVMsZUFDZkEsS0FBS0Ysa0JBQWtCLElBQ3ZCRSxLQUFLRixrQkFBa0IsQ0FBQ0csSUFBSSxDQUFDQyxXQUMvQixTQUFVVSxFQUFVO0lBQ2xCLE9BQU9DLGFBQWFEO0FBQ3RCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9zcmMvY2xpZW50L3JlcXVlc3QtaWRsZS1jYWxsYmFjay50cz8wNWY0Il0sIm5hbWVzIjpbImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/request-idle-callback.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/client/resolve-href.js":
-/*!*******************************************************!*\
- !*** ./node_modules/next/dist/client/resolve-href.js ***!
- \*******************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"resolveHref\", ({\n enumerable: true,\n get: function() {\n return resolveHref;\n }\n}));\nconst _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _omit = __webpack_require__(/*! ../shared/lib/router/utils/omit */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/omit.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(app-pages-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst _islocalurl = __webpack_require__(/*! ../shared/lib/router/utils/is-local-url */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _utils1 = __webpack_require__(/*! ../shared/lib/router/utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _interpolateas = __webpack_require__(/*! ../shared/lib/router/utils/interpolate-as */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\");\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n let base;\n let urlAsString = typeof href === \"string\" ? href : (0, _formaturl.formatWithValidation)(href);\n // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n const urlProtoMatch = urlAsString.match(/^[a-zA-Z]{1,}:\\/\\//);\n const urlAsStringNoProto = urlProtoMatch ? urlAsString.slice(urlProtoMatch[0].length) : urlAsString;\n const urlParts = urlAsStringNoProto.split(\"?\", 1);\n if ((urlParts[0] || \"\").match(/(\\/\\/|\\\\)/)) {\n console.error(\"Invalid href '\" + urlAsString + \"' passed to next/router in page: '\" + router.pathname + \"'. Repeated forward-slashes (//) or backslashes \\\\ are not valid in the href.\");\n const normalizedUrl = (0, _utils.normalizeRepeatedSlashes)(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : \"\") + normalizedUrl;\n }\n // Return because it cannot be routed by the Next.js router\n if (!(0, _islocalurl.isLocalURL)(urlAsString)) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\n }\n try {\n base = new URL(urlAsString.startsWith(\"#\") ? router.asPath : router.pathname, \"http://n\");\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL(\"/\", \"http://n\");\n }\n try {\n const finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizetrailingslash.normalizePathTrailingSlash)(finalUrl.pathname);\n let interpolatedAs = \"\";\n if ((0, _utils1.isDynamicRoute)(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n const query = (0, _querystring.searchParamsToUrlQuery)(finalUrl.searchParams);\n const { result, params } = (0, _interpolateas.interpolateAs)(finalUrl.pathname, finalUrl.pathname, query);\n if (result) {\n interpolatedAs = (0, _formaturl.formatWithValidation)({\n pathname: result,\n hash: finalUrl.hash,\n query: (0, _omit.omit)(query, params)\n });\n }\n }\n // if the origin didn't change, it means we received a relative href\n const resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [\n resolvedHref,\n interpolatedAs || resolvedHref\n ] : resolvedHref;\n } catch (_) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\n }\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=resolve-href.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3Jlc29sdmUtaHJlZi5qcyIsIm1hcHBpbmdzIjoiOzs7OytDQXlCZ0JBOzs7ZUFBQUE7Ozt5Q0F2QnVCO3VDQUNGO2tDQUNoQjttQ0FDb0I7b0RBQ0U7d0NBQ2hCO29DQUNJOzJDQUNEO0FBZ0J2QixTQUFTQSxZQUNkQyxNQUFrQixFQUNsQkMsSUFBUyxFQUNUQyxTQUFtQjtJQUVuQiw0Q0FBNEM7SUFDNUMsSUFBSUM7SUFDSixJQUFJQyxjQUFjLE9BQU9ILFNBQVMsV0FBV0EsT0FBT0ksQ0FBQUEsR0FBQUEsV0FBQUEsb0JBQW9CLEVBQUNKO0lBRXpFLDZEQUE2RDtJQUM3RCxtREFBbUQ7SUFDbkQsTUFBTUssZ0JBQWdCRixZQUFZRyxLQUFLLENBQUM7SUFDeEMsTUFBTUMscUJBQXFCRixnQkFDdkJGLFlBQVlLLEtBQUssQ0FBQ0gsYUFBYSxDQUFDLEVBQUUsQ0FBQ0ksTUFBTSxJQUN6Q047SUFFSixNQUFNTyxXQUFXSCxtQkFBbUJJLEtBQUssQ0FBQyxLQUFLO0lBRS9DLElBQUksQ0FBQ0QsUUFBUSxDQUFDLEVBQUUsSUFBSSxJQUFJSixLQUFLLENBQUMsY0FBYztRQUMxQ00sUUFBUUMsS0FBSyxDQUNYLG1CQUFpQlYsY0FBWSx1Q0FBb0NKLE9BQU9lLFFBQVEsR0FBQztRQUVuRixNQUFNQyxnQkFBZ0JDLENBQUFBLEdBQUFBLE9BQUFBLHdCQUF3QixFQUFDVDtRQUMvQ0osY0FBYyxDQUFDRSxnQkFBZ0JBLGFBQWEsQ0FBQyxFQUFFLEdBQUcsTUFBTVU7SUFDMUQ7SUFFQSwyREFBMkQ7SUFDM0QsSUFBSSxDQUFDRSxDQUFBQSxHQUFBQSxZQUFBQSxVQUFVLEVBQUNkLGNBQWM7UUFDNUIsT0FBUUYsWUFBWTtZQUFDRTtTQUFZLEdBQUdBO0lBQ3RDO0lBRUEsSUFBSTtRQUNGRCxPQUFPLElBQUlnQixJQUNUZixZQUFZZ0IsVUFBVSxDQUFDLE9BQU9wQixPQUFPcUIsTUFBTSxHQUFHckIsT0FBT2UsUUFBUSxFQUM3RDtJQUVKLEVBQUUsT0FBT08sR0FBRztRQUNWLGtEQUFrRDtRQUNsRG5CLE9BQU8sSUFBSWdCLElBQUksS0FBSztJQUN0QjtJQUVBLElBQUk7UUFDRixNQUFNSSxXQUFXLElBQUlKLElBQUlmLGFBQWFEO1FBQ3RDb0IsU0FBU1IsUUFBUSxHQUFHUyxDQUFBQSxHQUFBQSx3QkFBQUEsMEJBQTBCLEVBQUNELFNBQVNSLFFBQVE7UUFDaEUsSUFBSVUsaUJBQWlCO1FBRXJCLElBQ0VDLENBQUFBLEdBQUFBLFFBQUFBLGNBQWMsRUFBQ0gsU0FBU1IsUUFBUSxLQUNoQ1EsU0FBU0ksWUFBWSxJQUNyQnpCLFdBQ0E7WUFDQSxNQUFNMEIsUUFBUUMsQ0FBQUEsR0FBQUEsYUFBQUEsc0JBQXNCLEVBQUNOLFNBQVNJLFlBQVk7WUFFMUQsTUFBTSxFQUFFRyxNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFhLEVBQ3RDVCxTQUFTUixRQUFRLEVBQ2pCUSxTQUFTUixRQUFRLEVBQ2pCYTtZQUdGLElBQUlFLFFBQVE7Z0JBQ1ZMLGlCQUFpQnBCLENBQUFBLEdBQUFBLFdBQUFBLG9CQUFvQixFQUFDO29CQUNwQ1UsVUFBVWU7b0JBQ1ZHLE1BQU1WLFNBQVNVLElBQUk7b0JBQ25CTCxPQUFPTSxDQUFBQSxHQUFBQSxNQUFBQSxJQUFJLEVBQUNOLE9BQU9HO2dCQUNyQjtZQUNGO1FBQ0Y7UUFFQSxvRUFBb0U7UUFDcEUsTUFBTUksZUFDSlosU0FBU2EsTUFBTSxLQUFLakMsS0FBS2lDLE1BQU0sR0FDM0JiLFNBQVN0QixJQUFJLENBQUNRLEtBQUssQ0FBQ2MsU0FBU2EsTUFBTSxDQUFDMUIsTUFBTSxJQUMxQ2EsU0FBU3RCLElBQUk7UUFFbkIsT0FBT0MsWUFDSDtZQUFDaUM7WUFBY1Ysa0JBQWtCVTtTQUFhLEdBQzlDQTtJQUNOLEVBQUUsT0FBT2IsR0FBRztRQUNWLE9BQU9wQixZQUFZO1lBQUNFO1NBQVksR0FBR0E7SUFDckM7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vc3JjL2NsaWVudC9yZXNvbHZlLWhyZWYudHM/ZTZkMiJdLCJuYW1lcyI6WyJyZXNvbHZlSHJlZiIsInJvdXRlciIsImhyZWYiLCJyZXNvbHZlQXMiLCJiYXNlIiwidXJsQXNTdHJpbmciLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsInVybFByb3RvTWF0Y2giLCJtYXRjaCIsInVybEFzU3RyaW5nTm9Qcm90byIsInNsaWNlIiwibGVuZ3RoIiwidXJsUGFydHMiLCJzcGxpdCIsImNvbnNvbGUiLCJlcnJvciIsInBhdGhuYW1lIiwibm9ybWFsaXplZFVybCIsIm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyIsImlzTG9jYWxVUkwiLCJVUkwiLCJzdGFydHNXaXRoIiwiYXNQYXRoIiwiXyIsImZpbmFsVXJsIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJpbnRlcnBvbGF0ZWRBcyIsImlzRHluYW1pY1JvdXRlIiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwicmVzdWx0IiwicGFyYW1zIiwiaW50ZXJwb2xhdGVBcyIsImhhc2giLCJvbWl0IiwicmVzb2x2ZWRIcmVmIiwib3JpZ2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/resolve-href.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/client/use-intersection.js":
-/*!***********************************************************!*\
- !*** ./node_modules/next/dist/client/use-intersection.js ***!
- \***********************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useIntersection\", ({\n enumerable: true,\n get: function() {\n return useIntersection;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\nconst _requestidlecallback = __webpack_require__(/*! ./request-idle-callback */ \"(app-pages-browser)/./node_modules/next/dist/client/request-idle-callback.js\");\nconst hasIntersectionObserver = typeof IntersectionObserver === \"function\";\nconst observers = new Map();\nconst idList = [];\nfunction createObserver(options) {\n const id = {\n root: options.root || null,\n margin: options.rootMargin || \"\"\n };\n const existing = idList.find((obj)=>obj.root === id.root && obj.margin === id.margin);\n let instance;\n if (existing) {\n instance = observers.get(existing);\n if (instance) {\n return instance;\n }\n }\n const elements = new Map();\n const observer = new IntersectionObserver((entries)=>{\n entries.forEach((entry)=>{\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n instance = {\n id,\n observer,\n elements\n };\n idList.push(id);\n observers.set(id, instance);\n return instance;\n}\nfunction observe(element, callback, options) {\n const { id, observer, elements } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element);\n // Destroy observer when there's nothing left to watch:\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n const index = idList.findIndex((obj)=>obj.root === id.root && obj.margin === id.margin);\n if (index > -1) {\n idList.splice(index, 1);\n }\n }\n };\n}\nfunction useIntersection(param) {\n let { rootRef, rootMargin, disabled } = param;\n const isDisabled = disabled || !hasIntersectionObserver;\n const [visible, setVisible] = (0, _react.useState)(false);\n const elementRef = (0, _react.useRef)(null);\n const setElement = (0, _react.useCallback)((element)=>{\n elementRef.current = element;\n }, []);\n (0, _react.useEffect)(()=>{\n if (hasIntersectionObserver) {\n if (isDisabled || visible) return;\n const element = elementRef.current;\n if (element && element.tagName) {\n const unobserve = observe(element, (isVisible)=>isVisible && setVisible(isVisible), {\n root: rootRef == null ? void 0 : rootRef.current,\n rootMargin\n });\n return unobserve;\n }\n } else {\n if (!visible) {\n const idleCallback = (0, _requestidlecallback.requestIdleCallback)(()=>setVisible(true));\n return ()=>(0, _requestidlecallback.cancelIdleCallback)(idleCallback);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isDisabled,\n rootMargin,\n rootRef,\n visible,\n elementRef.current\n ]);\n const resetVisible = (0, _react.useCallback)(()=>{\n setVisible(false);\n }, []);\n return [\n setElement,\n visible,\n resetVisible\n ];\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-intersection.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1pbnRlcnNlY3Rpb24uanMiLCJtYXBwaW5ncyI6Ijs7OzttREErRmdCQTs7O2VBQUFBOzs7bUNBL0Z5QztpREFJbEQ7QUFxQlAsTUFBTUMsMEJBQTBCLE9BQU9DLHlCQUF5QjtBQUVoRSxNQUFNQyxZQUFZLElBQUlDO0FBQ3RCLE1BQU1DLFNBQXVCLEVBQUU7QUFFL0IsU0FBU0MsZUFBZUMsT0FBb0M7SUFDMUQsTUFBTUMsS0FBSztRQUNUQyxNQUFNRixRQUFRRSxJQUFJLElBQUk7UUFDdEJDLFFBQVFILFFBQVFJLFVBQVUsSUFBSTtJQUNoQztJQUNBLE1BQU1DLFdBQVdQLE9BQU9RLElBQUksQ0FDMUIsQ0FBQ0MsTUFBUUEsSUFBSUwsSUFBSSxLQUFLRCxHQUFHQyxJQUFJLElBQUlLLElBQUlKLE1BQU0sS0FBS0YsR0FBR0UsTUFBTTtJQUUzRCxJQUFJSztJQUVKLElBQUlILFVBQVU7UUFDWkcsV0FBV1osVUFBVWEsR0FBRyxDQUFDSjtRQUN6QixJQUFJRyxVQUFVO1lBQ1osT0FBT0E7UUFDVDtJQUNGO0lBRUEsTUFBTUUsV0FBVyxJQUFJYjtJQUNyQixNQUFNYyxXQUFXLElBQUloQixxQkFBcUIsQ0FBQ2lCO1FBQ3pDQSxRQUFRQyxPQUFPLENBQUMsQ0FBQ0M7WUFDZixNQUFNQyxXQUFXTCxTQUFTRCxHQUFHLENBQUNLLE1BQU1FLE1BQU07WUFDMUMsTUFBTUMsWUFBWUgsTUFBTUksY0FBYyxJQUFJSixNQUFNSyxpQkFBaUIsR0FBRztZQUNwRSxJQUFJSixZQUFZRSxXQUFXO2dCQUN6QkYsU0FBU0U7WUFDWDtRQUNGO0lBQ0YsR0FBR2pCO0lBQ0hRLFdBQVc7UUFDVFA7UUFDQVU7UUFDQUQ7SUFDRjtJQUVBWixPQUFPc0IsSUFBSSxDQUFDbkI7SUFDWkwsVUFBVXlCLEdBQUcsQ0FBQ3BCLElBQUlPO0lBQ2xCLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTYyxRQUNQQyxPQUFnQixFQUNoQlIsUUFBeUIsRUFDekJmLE9BQW9DO0lBRXBDLE1BQU0sRUFBRUMsRUFBRSxFQUFFVSxRQUFRLEVBQUVELFFBQVEsRUFBRSxHQUFHWCxlQUFlQztJQUNsRFUsU0FBU1csR0FBRyxDQUFDRSxTQUFTUjtJQUV0QkosU0FBU1csT0FBTyxDQUFDQztJQUNqQixPQUFPLFNBQVNDO1FBQ2RkLFNBQVNlLE1BQU0sQ0FBQ0Y7UUFDaEJaLFNBQVNhLFNBQVMsQ0FBQ0Q7UUFFbkIsdURBQXVEO1FBQ3ZELElBQUliLFNBQVNnQixJQUFJLEtBQUssR0FBRztZQUN2QmYsU0FBU2dCLFVBQVU7WUFDbkIvQixVQUFVNkIsTUFBTSxDQUFDeEI7WUFDakIsTUFBTTJCLFFBQVE5QixPQUFPK0IsU0FBUyxDQUM1QixDQUFDdEIsTUFBUUEsSUFBSUwsSUFBSSxLQUFLRCxHQUFHQyxJQUFJLElBQUlLLElBQUlKLE1BQU0sS0FBS0YsR0FBR0UsTUFBTTtZQUUzRCxJQUFJeUIsUUFBUSxDQUFDLEdBQUc7Z0JBQ2Q5QixPQUFPZ0MsTUFBTSxDQUFDRixPQUFPO1lBQ3ZCO1FBQ0Y7SUFDRjtBQUNGO0FBRU8sU0FBU25DLGdCQUFtQ3NDLEtBSWpDO0lBSmlDLE1BQ2pEQyxPQUFPLEVBQ1A1QixVQUFVLEVBQ1Y2QixRQUFRLEVBQ1EsR0FKaUNGO0lBS2pELE1BQU1HLGFBQXNCRCxZQUFZLENBQUN2QztJQUV6QyxNQUFNLENBQUN5QyxTQUFTQyxXQUFXLEdBQUdDLENBQUFBLEdBQUFBLE9BQUFBLFFBQVEsRUFBQztJQUN2QyxNQUFNQyxhQUFhQyxDQUFBQSxHQUFBQSxPQUFBQSxNQUFNLEVBQVc7SUFDcEMsTUFBTUMsYUFBYUMsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBVyxFQUFDLENBQUNsQjtRQUM5QmUsV0FBV0ksT0FBTyxHQUFHbkI7SUFDdkIsR0FBRyxFQUFFO0lBRUxvQixDQUFBQSxHQUFBQSxPQUFBQSxTQUFTLEVBQUM7UUFDUixJQUFJakQseUJBQXlCO1lBQzNCLElBQUl3QyxjQUFjQyxTQUFTO1lBRTNCLE1BQU1aLFVBQVVlLFdBQVdJLE9BQU87WUFDbEMsSUFBSW5CLFdBQVdBLFFBQVFxQixPQUFPLEVBQUU7Z0JBQzlCLE1BQU1wQixZQUFZRixRQUNoQkMsU0FDQSxDQUFDTixZQUFjQSxhQUFhbUIsV0FBV25CLFlBQ3ZDO29CQUFFZixNQUFNOEIsV0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsUUFBU1UsT0FBTztvQkFBRXRDO2dCQUFXO2dCQUd2QyxPQUFPb0I7WUFDVDtRQUNGLE9BQU87WUFDTCxJQUFJLENBQUNXLFNBQVM7Z0JBQ1osTUFBTVUsZUFBZUMsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFtQixFQUFDLElBQU1WLFdBQVc7Z0JBQzFELE9BQU8sSUFBTVcsQ0FBQUEsR0FBQUEscUJBQUFBLGtCQUFrQixFQUFDRjtZQUNsQztRQUNGO0lBQ0EsdURBQXVEO0lBQ3pELEdBQUc7UUFBQ1g7UUFBWTlCO1FBQVk0QjtRQUFTRztRQUFTRyxXQUFXSSxPQUFPO0tBQUM7SUFFakUsTUFBTU0sZUFBZVAsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBVyxFQUFDO1FBQy9CTCxXQUFXO0lBQ2IsR0FBRyxFQUFFO0lBRUwsT0FBTztRQUFDSTtRQUFZTDtRQUFTYTtLQUFhO0FBQzVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9zcmMvY2xpZW50L3VzZS1pbnRlcnNlY3Rpb24udHN4PzU3ZWUiXSwibmFtZXMiOlsidXNlSW50ZXJzZWN0aW9uIiwiaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsIm9ic2VydmVycyIsIk1hcCIsImlkTGlzdCIsImNyZWF0ZU9ic2VydmVyIiwib3B0aW9ucyIsImlkIiwicm9vdCIsIm1hcmdpbiIsInJvb3RNYXJnaW4iLCJleGlzdGluZyIsImZpbmQiLCJvYmoiLCJpbnN0YW5jZSIsImdldCIsImVsZW1lbnRzIiwib2JzZXJ2ZXIiLCJlbnRyaWVzIiwiZm9yRWFjaCIsImVudHJ5IiwiY2FsbGJhY2siLCJ0YXJnZXQiLCJpc1Zpc2libGUiLCJpc0ludGVyc2VjdGluZyIsImludGVyc2VjdGlvblJhdGlvIiwicHVzaCIsInNldCIsIm9ic2VydmUiLCJlbGVtZW50IiwidW5vYnNlcnZlIiwiZGVsZXRlIiwic2l6ZSIsImRpc2Nvbm5lY3QiLCJpbmRleCIsImZpbmRJbmRleCIsInNwbGljZSIsInBhcmFtIiwicm9vdFJlZiIsImRpc2FibGVkIiwiaXNEaXNhYmxlZCIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwidXNlU3RhdGUiLCJlbGVtZW50UmVmIiwidXNlUmVmIiwic2V0RWxlbWVudCIsInVzZUNhbGxiYWNrIiwiY3VycmVudCIsInVzZUVmZmVjdCIsInRhZ05hbWUiLCJpZGxlQ2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwiY2FuY2VsSWRsZUNhbGxiYWNrIiwicmVzZXRWaXNpYmxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/use-intersection.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/escape-regexp.js":
-/*!************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/escape-regexp.js ***!
- \************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("// regexp is based on https://github.com/sindresorhus/escape-string-regexp\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"escapeStringRegexp\", ({\n enumerable: true,\n get: function() {\n return escapeStringRegexp;\n }\n}));\nconst reHasRegExp = /[|\\\\{}()[\\]^$+*?.-]/;\nconst reReplaceRegExp = /[|\\\\{}()[\\]^$+*?.-]/g;\nfunction escapeStringRegexp(str) {\n // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23\n if (reHasRegExp.test(str)) {\n return str.replace(reReplaceRegExp, \"\\\\$&\");\n }\n return str;\n} //# sourceMappingURL=escape-regexp.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lc2NhcGUtcmVnZXhwLmpzIiwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTs7Ozs7c0RBSTFEQTs7O2VBQUFBOzs7QUFIaEIsTUFBTUMsY0FBYztBQUNwQixNQUFNQyxrQkFBa0I7QUFFakIsU0FBU0YsbUJBQW1CRyxHQUFXO0lBQzVDLCtHQUErRztJQUMvRyxJQUFJRixZQUFZRyxJQUFJLENBQUNELE1BQU07UUFDekIsT0FBT0EsSUFBSUUsT0FBTyxDQUFDSCxpQkFBaUI7SUFDdEM7SUFDQSxPQUFPQztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi9lc2NhcGUtcmVnZXhwLnRzP2RjYjEiXSwibmFtZXMiOlsiZXNjYXBlU3RyaW5nUmVnZXhwIiwicmVIYXNSZWdFeHAiLCJyZVJlcGxhY2VSZWdFeHAiLCJzdHIiLCJ0ZXN0IiwicmVwbGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/escape-regexp.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js":
-/*!****************************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router-context.shared-runtime.js ***!
- \****************************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouterContext\", ({\n enumerable: true,\n get: function() {\n return RouterContext;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(app-pages-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"));\nconst RouterContext = _react.default.createContext(null);\nif (true) {\n RouterContext.displayName = \"RouterContext\";\n} //# sourceMappingURL=router-context.shared-runtime.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQUdhQTs7O2VBQUFBOzs7OzRFQUhLO0FBR1gsTUFBTUEsZ0JBQWdCQyxPQUFBQSxPQUFLLENBQUNDLGFBQWEsQ0FBb0I7QUFFcEUsSUFBSUMsSUFBeUIsRUFBYztJQUN6Q0gsY0FBY0ksV0FBVyxHQUFHO0FBQzlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZS50cz82MzZjIl0sIm5hbWVzIjpbIlJvdXRlckNvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJwcm9jZXNzIiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js":
-/*!**********************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***!
- \**********************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatUrl: function() {\n return formatUrl;\n },\n formatWithValidation: function() {\n return formatWithValidation;\n },\n urlObjectKeys: function() {\n return urlObjectKeys;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(app-pages-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _querystring = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./querystring */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\nconst slashedProtocols = /https?|ftp|gopher|file/;\nfunction formatUrl(urlObj) {\n let { auth, hostname } = urlObj;\n let protocol = urlObj.protocol || \"\";\n let pathname = urlObj.pathname || \"\";\n let hash = urlObj.hash || \"\";\n let query = urlObj.query || \"\";\n let host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, \":\") + \"@\" : \"\";\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(\":\") ? \"[\" + hostname + \"]\" : hostname);\n if (urlObj.port) {\n host += \":\" + urlObj.port;\n }\n }\n if (query && typeof query === \"object\") {\n query = String(_querystring.urlQueryToSearchParams(query));\n }\n let search = urlObj.search || query && \"?\" + query || \"\";\n if (protocol && !protocol.endsWith(\":\")) protocol += \":\";\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = \"//\" + (host || \"\");\n if (pathname && pathname[0] !== \"/\") pathname = \"/\" + pathname;\n } else if (!host) {\n host = \"\";\n }\n if (hash && hash[0] !== \"#\") hash = \"#\" + hash;\n if (search && search[0] !== \"?\") search = \"?\" + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace(\"#\", \"%23\");\n return \"\" + protocol + host + pathname + search + hash;\n}\nconst urlObjectKeys = [\n \"auth\",\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"slashes\"\n];\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === \"object\") {\n Object.keys(url).forEach((key)=>{\n if (!urlObjectKeys.includes(key)) {\n console.warn(\"Unknown key passed via urlObject into url.format: \" + key);\n }\n });\n }\n }\n return formatUrl(url);\n} //# sourceMappingURL=format-url.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7QUFDdkMsc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsZ0VBQWdFO0FBQ2hFLHNFQUFzRTtBQUN0RSxzRUFBc0U7QUFDdEUsNEVBQTRFO0FBQzVFLHFFQUFxRTtBQUNyRSx3QkFBd0I7QUFDeEIsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSw2REFBNkQ7QUFDN0QsNEVBQTRFO0FBQzVFLDJFQUEyRTtBQUMzRSx3RUFBd0U7QUFDeEUsNEVBQTRFO0FBQzVFLHlDQUF5Qzs7Ozs7Ozs7Ozs7OztJQVF6QkEsV0FBUztlQUFUQTs7SUE2REFDLHNCQUFvQjtlQUFwQkE7O0lBZkhDLGVBQWE7ZUFBYkE7Ozs7bUZBbERnQjtBQUU3QixNQUFNQyxtQkFBbUI7QUFFbEIsU0FBU0gsVUFBVUksTUFBaUI7SUFDekMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsRUFBRSxHQUFHRjtJQUN6QixJQUFJRyxXQUFXSCxPQUFPRyxRQUFRLElBQUk7SUFDbEMsSUFBSUMsV0FBV0osT0FBT0ksUUFBUSxJQUFJO0lBQ2xDLElBQUlDLE9BQU9MLE9BQU9LLElBQUksSUFBSTtJQUMxQixJQUFJQyxRQUFRTixPQUFPTSxLQUFLLElBQUk7SUFDNUIsSUFBSUMsT0FBdUI7SUFFM0JOLE9BQU9BLE9BQU9PLG1CQUFtQlAsTUFBTVEsT0FBTyxDQUFDLFFBQVEsT0FBTyxNQUFNO0lBRXBFLElBQUlULE9BQU9PLElBQUksRUFBRTtRQUNmQSxPQUFPTixPQUFPRCxPQUFPTyxJQUFJO0lBQzNCLE9BQU8sSUFBSUwsVUFBVTtRQUNuQkssT0FBT04sT0FBUSxFQUFDQyxTQUFTUSxPQUFPLENBQUMsT0FBTyxNQUFJUixXQUFTLE1BQUtBLFFBQUFBO1FBQzFELElBQUlGLE9BQU9XLElBQUksRUFBRTtZQUNmSixRQUFRLE1BQU1QLE9BQU9XLElBQUk7UUFDM0I7SUFDRjtJQUVBLElBQUlMLFNBQVMsT0FBT0EsVUFBVSxVQUFVO1FBQ3RDQSxRQUFRTSxPQUFPQyxhQUFZQyxzQkFBc0IsQ0FBQ1I7SUFDcEQ7SUFFQSxJQUFJUyxTQUFTZixPQUFPZSxNQUFNLElBQUtULFNBQVMsTUFBSUEsU0FBWTtJQUV4RCxJQUFJSCxZQUFZLENBQUNBLFNBQVNhLFFBQVEsQ0FBQyxNQUFNYixZQUFZO0lBRXJELElBQ0VILE9BQU9pQixPQUFPLElBQ2IsQ0FBQyxDQUFDZCxZQUFZSixpQkFBaUJtQixJQUFJLENBQUNmLFNBQUFBLEtBQWNJLFNBQVMsT0FDNUQ7UUFDQUEsT0FBTyxPQUFRQSxDQUFBQSxRQUFRO1FBQ3ZCLElBQUlILFlBQVlBLFFBQVEsQ0FBQyxFQUFFLEtBQUssS0FBS0EsV0FBVyxNQUFNQTtJQUN4RCxPQUFPLElBQUksQ0FBQ0csTUFBTTtRQUNoQkEsT0FBTztJQUNUO0lBRUEsSUFBSUYsUUFBUUEsSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxPQUFPLE1BQU1BO0lBQzFDLElBQUlVLFVBQVVBLE1BQU0sQ0FBQyxFQUFFLEtBQUssS0FBS0EsU0FBUyxNQUFNQTtJQUVoRFgsV0FBV0EsU0FBU0ssT0FBTyxDQUFDLFNBQVNEO0lBQ3JDTyxTQUFTQSxPQUFPTixPQUFPLENBQUMsS0FBSztJQUU3QixPQUFPLEtBQUdOLFdBQVdJLE9BQU9ILFdBQVdXLFNBQVNWO0FBQ2xEO0FBRU8sTUFBTVAsZ0JBQWdCO0lBQzNCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sU0FBU0QscUJBQXFCc0IsR0FBYztJQUNqRCxJQUFJQyxJQUF5QixFQUFlO1FBQzFDLElBQUlELFFBQVEsUUFBUSxPQUFPQSxRQUFRLFVBQVU7WUFDM0NFLE9BQU9DLElBQUksQ0FBQ0gsS0FBS0ksT0FBTyxDQUFDLENBQUNDO2dCQUN4QixJQUFJLENBQUMxQixjQUFjMkIsUUFBUSxDQUFDRCxNQUFNO29CQUNoQ0UsUUFBUUMsSUFBSSxDQUNWLHVEQUFxREg7Z0JBRXpEO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsT0FBTzVCLFVBQVV1QjtBQUNuQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwudHM/NTJiMSJdLCJuYW1lcyI6WyJmb3JtYXRVcmwiLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsInVybE9iamVjdEtleXMiLCJzbGFzaGVkUHJvdG9jb2xzIiwidXJsT2JqIiwiYXV0aCIsImhvc3RuYW1lIiwicHJvdG9jb2wiLCJwYXRobmFtZSIsImhhc2giLCJxdWVyeSIsImhvc3QiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiaW5kZXhPZiIsInBvcnQiLCJTdHJpbmciLCJxdWVyeXN0cmluZyIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJlbmRzV2l0aCIsInNsYXNoZXMiLCJ0ZXN0IiwidXJsIiwicHJvY2VzcyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwiaW5jbHVkZXMiLCJjb25zb2xlIiwid2FybiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js":
-/*!*****************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/index.js ***!
- \*****************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRoutes: function() {\n return _sortedroutes.getSortedRoutes;\n },\n isDynamicRoute: function() {\n return _isdynamic.isDynamicRoute;\n }\n});\nconst _sortedroutes = __webpack_require__(/*! ./sorted-routes */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\");\nconst _isdynamic = __webpack_require__(/*! ./is-dynamic */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\"); //# sourceMappingURL=index.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQVNBLGlCQUFlO2VBQWZBLGNBQUFBLGVBQWU7O0lBQ2ZDLGdCQUFjO2VBQWRBLFdBQUFBLGNBQWM7OzswQ0FEUzt1Q0FDRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2luZGV4LnRzPzkxMmIiXSwibmFtZXMiOlsiZ2V0U29ydGVkUm91dGVzIiwiaXNEeW5hbWljUm91dGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js":
-/*!**************************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js ***!
- \**************************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interpolateAs\", ({\n enumerable: true,\n get: function() {\n return interpolateAs;\n }\n}));\nconst _routematcher = __webpack_require__(/*! ./route-matcher */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _routeregex = __webpack_require__(/*! ./route-regex */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nfunction interpolateAs(route, asPathname, query) {\n let interpolatedRoute = \"\";\n const dynamicRegex = (0, _routeregex.getRouteRegex)(route);\n const dynamicGroups = dynamicRegex.groups;\n const dynamicMatches = (asPathname !== route ? (0, _routematcher.getRouteMatcher)(dynamicRegex)(asPathname) : \"\") || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n const params = Object.keys(dynamicGroups);\n if (!params.every((param)=>{\n let value = dynamicMatches[param] || \"\";\n const { repeat, optional } = dynamicGroups[param];\n // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n let replaced = \"[\" + (repeat ? \"...\" : \"\") + param + \"]\";\n if (optional) {\n replaced = (!value ? \"/\" : \"\") + \"[\" + replaced + \"]\";\n }\n if (repeat && !Array.isArray(value)) value = [\n value\n ];\n return (optional || param in dynamicMatches) && // Interpolate group into data URL if present\n (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map(// path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n (segment)=>encodeURIComponent(segment)).join(\"/\") : encodeURIComponent(value)) || \"/\");\n })) {\n interpolatedRoute = \"\" // did not satisfy all requirements\n ;\n // n.b. We ignore this error because we handle warning for this case in\n // development in the `` component directly.\n }\n return {\n params,\n result: interpolatedRoute\n };\n} //# sourceMappingURL=interpolate-as.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJwb2xhdGUtYXMuanMiLCJtYXBwaW5ncyI6Ijs7OztpREFLZ0JBOzs7ZUFBQUE7OzswQ0FIZ0I7d0NBQ0Y7QUFFdkIsU0FBU0EsY0FDZEMsS0FBYSxFQUNiQyxVQUFrQixFQUNsQkMsS0FBcUI7SUFFckIsSUFBSUMsb0JBQW9CO0lBRXhCLE1BQU1DLGVBQWVDLENBQUFBLEdBQUFBLFlBQUFBLGFBQWEsRUFBQ0w7SUFDbkMsTUFBTU0sZ0JBQWdCRixhQUFhRyxNQUFNO0lBQ3pDLE1BQU1DLGlCQUVIUCxDQUFBQSxlQUFlRCxRQUFRUyxDQUFBQSxHQUFBQSxjQUFBQSxlQUFlLEVBQUNMLGNBQWNILGNBQWMsT0FDcEUsZ0RBQWdEO0lBQ2hELHNFQUFzRTtJQUN0RUM7SUFFRkMsb0JBQW9CSDtJQUNwQixNQUFNVSxTQUFTQyxPQUFPQyxJQUFJLENBQUNOO0lBRTNCLElBQ0UsQ0FBQ0ksT0FBT0csS0FBSyxDQUFDLENBQUNDO1FBQ2IsSUFBSUMsUUFBUVAsY0FBYyxDQUFDTSxNQUFNLElBQUk7UUFDckMsTUFBTSxFQUFFRSxNQUFNLEVBQUVDLFFBQVEsRUFBRSxHQUFHWCxhQUFhLENBQUNRLE1BQU07UUFFakQsaUNBQWlDO1FBQ2pDLDBEQUEwRDtRQUMxRCxJQUFJSSxXQUFXLE1BQUlGLENBQUFBLFNBQVMsUUFBUSxNQUFLRixRQUFNO1FBQy9DLElBQUlHLFVBQVU7WUFDWkMsV0FBVyxDQUFHLENBQUNILFFBQVEsTUFBTSxNQUFHLE1BQUdHLFdBQVM7UUFDOUM7UUFDQSxJQUFJRixVQUFVLENBQUNHLE1BQU1DLE9BQU8sQ0FBQ0wsUUFBUUEsUUFBUTtZQUFDQTtTQUFNO1FBRXBELE9BQ0UsQ0FBQ0UsWUFBWUgsU0FBU04sY0FBQUEsS0FDdEIsNkNBQTZDO1FBQzVDTCxDQUFBQSxvQkFDQ0Esa0JBQW1Ca0IsT0FBTyxDQUN4QkgsVUFDQUYsU0FDSUQsTUFDR08sR0FBRyxDQUVGLHVEQUF1RDtRQUN2RCxrREFBa0Q7UUFDbEQsb0NBQW9DO1FBQ3BDLENBQUNDLFVBQVlDLG1CQUFtQkQsVUFFakNFLElBQUksQ0FBQyxPQUNSRCxtQkFBbUJULFdBQ3BCO0lBRVgsSUFDQTtRQUNBWixvQkFBb0IsR0FBRyxtQ0FBbUM7O0lBRTFELHVFQUF1RTtJQUN2RSxrREFBa0Q7SUFDcEQ7SUFDQSxPQUFPO1FBQ0xPO1FBQ0FnQixRQUFRdkI7SUFDVjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJwb2xhdGUtYXMudHM/ODUyZCJdLCJuYW1lcyI6WyJpbnRlcnBvbGF0ZUFzIiwicm91dGUiLCJhc1BhdGhuYW1lIiwicXVlcnkiLCJpbnRlcnBvbGF0ZWRSb3V0ZSIsImR5bmFtaWNSZWdleCIsImdldFJvdXRlUmVnZXgiLCJkeW5hbWljR3JvdXBzIiwiZ3JvdXBzIiwiZHluYW1pY01hdGNoZXMiLCJnZXRSb3V0ZU1hdGNoZXIiLCJwYXJhbXMiLCJPYmplY3QiLCJrZXlzIiwiZXZlcnkiLCJwYXJhbSIsInZhbHVlIiwicmVwZWF0Iiwib3B0aW9uYWwiLCJyZXBsYWNlZCIsIkFycmF5IiwiaXNBcnJheSIsInJlcGxhY2UiLCJtYXAiLCJzZWdtZW50IiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwiam9pbiIsInJlc3VsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js":
-/*!**********************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***!
- \**********************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isDynamicRoute\", ({\n enumerable: true,\n get: function() {\n return isDynamicRoute;\n }\n}));\nconst _interceptionroutes = __webpack_require__(/*! ../../../../server/future/helpers/interception-routes */ \"(app-pages-browser)/./node_modules/next/dist/server/future/helpers/interception-routes.js\");\n// Identify /[param]/ in route string\nconst TEST_ROUTE = /\\/\\[[^/]+?\\](?=\\/|$)/;\nfunction isDynamicRoute(route) {\n if ((0, _interceptionroutes.isInterceptionRouteAppPath)(route)) {\n route = (0, _interceptionroutes.extractInterceptionRouteInformation)(route).interceptedRoute;\n }\n return TEST_ROUTE.test(route);\n} //# sourceMappingURL=is-dynamic.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy5qcyIsIm1hcHBpbmdzIjoiOzs7O2tEQVFnQkE7OztlQUFBQTs7O2dEQUxUO0FBRVAscUNBQXFDO0FBQ3JDLE1BQU1DLGFBQWE7QUFFWixTQUFTRCxlQUFlRSxLQUFhO0lBQzFDLElBQUlDLENBQUFBLEdBQUFBLG9CQUFBQSwwQkFBMEIsRUFBQ0QsUUFBUTtRQUNyQ0EsUUFBUUUsQ0FBQUEsR0FBQUEsb0JBQUFBLG1DQUFtQyxFQUFDRixPQUFPRyxnQkFBZ0I7SUFDckU7SUFFQSxPQUFPSixXQUFXSyxJQUFJLENBQUNKO0FBQ3pCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy50cz8xNDY1Il0sIm5hbWVzIjpbImlzRHluYW1pY1JvdXRlIiwiVEVTVF9ST1VURSIsInJvdXRlIiwiaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgiLCJleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbiIsImludGVyY2VwdGVkUm91dGUiLCJ0ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js":
-/*!************************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/is-local-url.js ***!
- \************************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isLocalURL\", ({\n enumerable: true,\n get: function() {\n return isLocalURL;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _hasbasepath = __webpack_require__(/*! ../../../../client/has-base-path */ \"(app-pages-browser)/./node_modules/next/dist/client/has-base-path.js\");\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (!(0, _utils.isAbsoluteUrl)(url)) return true;\n try {\n // absolute urls can be local if they are on the same origin\n const locationOrigin = (0, _utils.getLocationOrigin)();\n const resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && (0, _hasbasepath.hasBasePath)(resolved.pathname);\n } catch (_) {\n return false;\n }\n} //# sourceMappingURL=is-local-url.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtbG9jYWwtdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7OENBTWdCQTs7O2VBQUFBOzs7bUNBTmlDO3lDQUNyQjtBQUtyQixTQUFTQSxXQUFXQyxHQUFXO0lBQ3BDLGdFQUFnRTtJQUNoRSxJQUFJLENBQUNDLENBQUFBLEdBQUFBLE9BQUFBLGFBQWEsRUFBQ0QsTUFBTSxPQUFPO0lBQ2hDLElBQUk7UUFDRiw0REFBNEQ7UUFDNUQsTUFBTUUsaUJBQWlCQyxDQUFBQSxHQUFBQSxPQUFBQSxpQkFBaUI7UUFDeEMsTUFBTUMsV0FBVyxJQUFJQyxJQUFJTCxLQUFLRTtRQUM5QixPQUFPRSxTQUFTRSxNQUFNLEtBQUtKLGtCQUFrQkssQ0FBQUEsR0FBQUEsYUFBQUEsV0FBVyxFQUFDSCxTQUFTSSxRQUFRO0lBQzVFLEVBQUUsT0FBT0MsR0FBRztRQUNWLE9BQU87SUFDVDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtbG9jYWwtdXJsLnRzP2UxYzIiXSwibmFtZXMiOlsiaXNMb2NhbFVSTCIsInVybCIsImlzQWJzb2x1dGVVcmwiLCJsb2NhdGlvbk9yaWdpbiIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWQiLCJVUkwiLCJvcmlnaW4iLCJoYXNCYXNlUGF0aCIsInBhdGhuYW1lIiwiXyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/omit.js":
-/*!****************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/omit.js ***!
- \****************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"omit\", ({\n enumerable: true,\n get: function() {\n return omit;\n }\n}));\nfunction omit(object, keys) {\n const omitted = {};\n Object.keys(object).forEach((key)=>{\n if (!keys.includes(key)) {\n omitted[key] = object[key];\n }\n });\n return omitted;\n} //# sourceMappingURL=omit.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvb21pdC5qcyIsIm1hcHBpbmdzIjoiOzs7O3dDQUFnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsS0FDZEMsTUFBUyxFQUNUQyxJQUFTO0lBRVQsTUFBTUMsVUFBc0MsQ0FBQztJQUM3Q0MsT0FBT0YsSUFBSSxDQUFDRCxRQUFRSSxPQUFPLENBQUMsQ0FBQ0M7UUFDM0IsSUFBSSxDQUFDSixLQUFLSyxRQUFRLENBQUNELE1BQVc7WUFDNUJILE9BQU8sQ0FBQ0csSUFBSSxHQUFHTCxNQUFNLENBQUNLLElBQUk7UUFDNUI7SUFDRjtJQUNBLE9BQU9IO0FBQ1QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9vbWl0LnRzP2Y3ZWEiXSwibmFtZXMiOlsib21pdCIsIm9iamVjdCIsImtleXMiLCJvbWl0dGVkIiwiT2JqZWN0IiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/omit.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js":
-/*!***********************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***!
- \***********************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n assign: function() {\n return assign;\n },\n searchParamsToUrlQuery: function() {\n return searchParamsToUrlQuery;\n },\n urlQueryToSearchParams: function() {\n return urlQueryToSearchParams;\n }\n});\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n searchParams.forEach((value, key)=>{\n if (typeof query[key] === \"undefined\") {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n query[key].push(value);\n } else {\n query[key] = [\n query[key],\n value\n ];\n }\n });\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === \"string\" || typeof param === \"number\" && !isNaN(param) || typeof param === \"boolean\") {\n return String(param);\n } else {\n return \"\";\n }\n}\nfunction urlQueryToSearchParams(urlQuery) {\n const result = new URLSearchParams();\n Object.entries(urlQuery).forEach((param)=>{\n let [key, value] = param;\n if (Array.isArray(value)) {\n value.forEach((item)=>result.append(key, stringifyUrlQueryParam(item)));\n } else {\n result.set(key, stringifyUrlQueryParam(value));\n }\n });\n return result;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n searchParamsList.forEach((searchParams)=>{\n Array.from(searchParams.keys()).forEach((key)=>target.delete(key));\n searchParams.forEach((value, key)=>target.append(key, value));\n });\n return target;\n} //# sourceMappingURL=querystring.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBNENnQkEsUUFBTTtlQUFOQTs7SUExQ0FDLHdCQUFzQjtlQUF0QkE7O0lBNEJBQyx3QkFBc0I7ZUFBdEJBOzs7QUE1QlQsU0FBU0QsdUJBQ2RFLFlBQTZCO0lBRTdCLE1BQU1DLFFBQXdCLENBQUM7SUFDL0JELGFBQWFFLE9BQU8sQ0FBQyxDQUFDQyxPQUFPQztRQUMzQixJQUFJLE9BQU9ILEtBQUssQ0FBQ0csSUFBSSxLQUFLLGFBQWE7WUFDckNILEtBQUssQ0FBQ0csSUFBSSxHQUFHRDtRQUNmLE9BQU8sSUFBSUUsTUFBTUMsT0FBTyxDQUFDTCxLQUFLLENBQUNHLElBQUksR0FBRztZQUNsQ0gsS0FBSyxDQUFDRyxJQUFJLENBQWNHLElBQUksQ0FBQ0o7UUFDakMsT0FBTztZQUNMRixLQUFLLENBQUNHLElBQUksR0FBRztnQkFBQ0gsS0FBSyxDQUFDRyxJQUFJO2dCQUFZRDthQUFNO1FBQzVDO0lBQ0Y7SUFDQSxPQUFPRjtBQUNUO0FBRUEsU0FBU08sdUJBQXVCQyxLQUFjO0lBQzVDLElBQ0UsT0FBT0EsVUFBVSxZQUNoQixPQUFPQSxVQUFVLFlBQVksQ0FBQ0MsTUFBTUQsVUFDckMsT0FBT0EsVUFBVSxXQUNqQjtRQUNBLE9BQU9FLE9BQU9GO0lBQ2hCLE9BQU87UUFDTCxPQUFPO0lBQ1Q7QUFDRjtBQUVPLFNBQVNWLHVCQUNkYSxRQUF3QjtJQUV4QixNQUFNQyxTQUFTLElBQUlDO0lBQ25CQyxPQUFPQyxPQUFPLENBQUNKLFVBQVVWLE9BQU8sQ0FBQyxDQUFBTztZQUFDLENBQUNMLEtBQUtELE1BQU0sR0FBQU07UUFDNUMsSUFBSUosTUFBTUMsT0FBTyxDQUFDSCxRQUFRO1lBQ3hCQSxNQUFNRCxPQUFPLENBQUMsQ0FBQ2UsT0FBU0osT0FBT0ssTUFBTSxDQUFDZCxLQUFLSSx1QkFBdUJTO1FBQ3BFLE9BQU87WUFDTEosT0FBT00sR0FBRyxDQUFDZixLQUFLSSx1QkFBdUJMO1FBQ3pDO0lBQ0Y7SUFDQSxPQUFPVTtBQUNUO0FBRU8sU0FBU2hCLE9BQ2R1QixNQUF1QjtJQUN2QixRQUFBQyxPQUFBQyxVQUFBQyxNQUFBLEVBQUFDLG1CQUFBLElBQUFuQixNQUFBZ0IsT0FBQSxJQUFBQSxPQUFBLFFBQUFJLE9BQUEsR0FBQUEsT0FBQUosTUFBQUksT0FBQTtRQUFHRCxnQkFBQUEsQ0FBSEMsT0FBQSxLQUFBSCxTQUFBLENBQUFHLEtBQXNDOztJQUV0Q0QsaUJBQWlCdEIsT0FBTyxDQUFDLENBQUNGO1FBQ3hCSyxNQUFNcUIsSUFBSSxDQUFDMUIsYUFBYTJCLElBQUksSUFBSXpCLE9BQU8sQ0FBQyxDQUFDRSxNQUFRZ0IsT0FBT1EsTUFBTSxDQUFDeEI7UUFDL0RKLGFBQWFFLE9BQU8sQ0FBQyxDQUFDQyxPQUFPQyxNQUFRZ0IsT0FBT0YsTUFBTSxDQUFDZCxLQUFLRDtJQUMxRDtJQUNBLE9BQU9pQjtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcudHM/NTIxNSJdLCJuYW1lcyI6WyJhc3NpZ24iLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsInNlYXJjaFBhcmFtcyIsInF1ZXJ5IiwiZm9yRWFjaCIsInZhbHVlIiwia2V5IiwiQXJyYXkiLCJpc0FycmF5IiwicHVzaCIsInN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0iLCJwYXJhbSIsImlzTmFOIiwiU3RyaW5nIiwidXJsUXVlcnkiLCJyZXN1bHQiLCJVUkxTZWFyY2hQYXJhbXMiLCJPYmplY3QiLCJlbnRyaWVzIiwiaXRlbSIsImFwcGVuZCIsInNldCIsInRhcmdldCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzZWFyY2hQYXJhbXNMaXN0IiwiX2tleSIsImZyb20iLCJrZXlzIiwiZGVsZXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js":
-/*!*************************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/route-matcher.js ***!
- \*************************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRouteMatcher\", ({\n enumerable: true,\n get: function() {\n return getRouteMatcher;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nfunction getRouteMatcher(param) {\n let { re, groups } = param;\n return (pathname)=>{\n const routeMatch = re.exec(pathname);\n if (!routeMatch) {\n return false;\n }\n const decode = (param)=>{\n try {\n return decodeURIComponent(param);\n } catch (_) {\n throw new _utils.DecodeError(\"failed to decode param\");\n }\n };\n const params = {};\n Object.keys(groups).forEach((slugName)=>{\n const g = groups[slugName];\n const m = routeMatch[g.pos];\n if (m !== undefined) {\n params[slugName] = ~m.indexOf(\"/\") ? m.split(\"/\").map((entry)=>decode(entry)) : g.repeat ? [\n decode(m)\n ] : decode(m);\n }\n });\n return params;\n };\n} //# sourceMappingURL=route-matcher.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci5qcyIsIm1hcHBpbmdzIjoiOzs7O21EQVdnQkE7OztlQUFBQTs7O21DQVZZO0FBVXJCLFNBQVNBLGdCQUFnQkMsS0FBMEI7SUFBMUIsTUFBRUMsRUFBRSxFQUFFQyxNQUFNLEVBQWMsR0FBMUJGO0lBQzlCLE9BQU8sQ0FBQ0c7UUFDTixNQUFNQyxhQUFhSCxHQUFHSSxJQUFJLENBQUNGO1FBQzNCLElBQUksQ0FBQ0MsWUFBWTtZQUNmLE9BQU87UUFDVDtRQUVBLE1BQU1FLFNBQVMsQ0FBQ047WUFDZCxJQUFJO2dCQUNGLE9BQU9PLG1CQUFtQlA7WUFDNUIsRUFBRSxPQUFPUSxHQUFHO2dCQUNWLE1BQU0sSUFBSUMsT0FBQUEsV0FBVyxDQUFDO1lBQ3hCO1FBQ0Y7UUFDQSxNQUFNQyxTQUFxRCxDQUFDO1FBRTVEQyxPQUFPQyxJQUFJLENBQUNWLFFBQVFXLE9BQU8sQ0FBQyxDQUFDQztZQUMzQixNQUFNQyxJQUFJYixNQUFNLENBQUNZLFNBQVM7WUFDMUIsTUFBTUUsSUFBSVosVUFBVSxDQUFDVyxFQUFFRSxHQUFHLENBQUM7WUFDM0IsSUFBSUQsTUFBTUUsV0FBVztnQkFDbkJSLE1BQU0sQ0FBQ0ksU0FBUyxHQUFHLENBQUNFLEVBQUVHLE9BQU8sQ0FBQyxPQUMxQkgsRUFBRUksS0FBSyxDQUFDLEtBQUtDLEdBQUcsQ0FBQyxDQUFDQyxRQUFVaEIsT0FBT2dCLFVBQ25DUCxFQUFFUSxNQUFNLEdBQ1I7b0JBQUNqQixPQUFPVTtpQkFBRyxHQUNYVixPQUFPVTtZQUNiO1FBQ0Y7UUFDQSxPQUFPTjtJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yb3V0ZS1tYXRjaGVyLnRzP2JlZmYiXSwibmFtZXMiOlsiZ2V0Um91dGVNYXRjaGVyIiwicGFyYW0iLCJyZSIsImdyb3VwcyIsInBhdGhuYW1lIiwicm91dGVNYXRjaCIsImV4ZWMiLCJkZWNvZGUiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfIiwiRGVjb2RlRXJyb3IiLCJwYXJhbXMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInNsdWdOYW1lIiwiZyIsIm0iLCJwb3MiLCJ1bmRlZmluZWQiLCJpbmRleE9mIiwic3BsaXQiLCJtYXAiLCJlbnRyeSIsInJlcGVhdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js":
-/*!***********************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/route-regex.js ***!
- \***********************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getNamedMiddlewareRegex: function() {\n return getNamedMiddlewareRegex;\n },\n getNamedRouteRegex: function() {\n return getNamedRouteRegex;\n },\n getRouteRegex: function() {\n return getRouteRegex;\n }\n});\nconst _interceptionroutes = __webpack_require__(/*! ../../../../server/future/helpers/interception-routes */ \"(app-pages-browser)/./node_modules/next/dist/server/future/helpers/interception-routes.js\");\nconst _escaperegexp = __webpack_require__(/*! ../../escape-regexp */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/escape-regexp.js\");\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst NEXT_QUERY_PARAM_PREFIX = \"nxtP\";\nconst NEXT_INTERCEPTION_MARKER_PREFIX = \"nxtI\";\n/**\n * Parses a given parameter from a route to a data structure that can be used\n * to generate the parametrized route. Examples:\n * - `[...slug]` -> `{ key: 'slug', repeat: true, optional: true }`\n * - `...slug` -> `{ key: 'slug', repeat: true, optional: false }`\n * - `[foo]` -> `{ key: 'foo', repeat: false, optional: true }`\n * - `bar` -> `{ key: 'bar', repeat: false, optional: false }`\n */ function parseParameter(param) {\n const optional = param.startsWith(\"[\") && param.endsWith(\"]\");\n if (optional) {\n param = param.slice(1, -1);\n }\n const repeat = param.startsWith(\"...\");\n if (repeat) {\n param = param.slice(3);\n }\n return {\n key: param,\n repeat,\n optional\n };\n}\nfunction getParametrizedRoute(route) {\n const segments = (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split(\"/\");\n const groups = {};\n let groupIndex = 1;\n return {\n parameterizedRoute: segments.map((segment)=>{\n const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n const paramMatches = segment.match(/\\[((?:\\[.*\\])|.+)\\]/) // Check for parameters\n ;\n if (markerMatch && paramMatches) {\n const { key, optional, repeat } = parseParameter(paramMatches[1]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n return \"/\" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + \"([^/]+?)\";\n } else if (paramMatches) {\n const { key, repeat, optional } = parseParameter(paramMatches[1]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n return repeat ? optional ? \"(?:/(.+?))?\" : \"/(.+?)\" : \"/([^/]+?)\";\n } else {\n return \"/\" + (0, _escaperegexp.escapeStringRegexp)(segment);\n }\n }).join(\"\"),\n groups\n };\n}\nfunction getRouteRegex(normalizedRoute) {\n const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute);\n return {\n re: new RegExp(\"^\" + parameterizedRoute + \"(?:/)?$\"),\n groups: groups\n };\n}\n/**\n * Builds a function to generate a minimal routeKey using only a-z and minimal\n * number of characters.\n */ function buildGetSafeRouteKey() {\n let i = 0;\n return ()=>{\n let routeKey = \"\";\n let j = ++i;\n while(j > 0){\n routeKey += String.fromCharCode(97 + (j - 1) % 26);\n j = Math.floor((j - 1) / 26);\n }\n return routeKey;\n };\n}\nfunction getSafeKeyFromSegment(param) {\n let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix } = param;\n const { key, optional, repeat } = parseParameter(segment);\n // replace any non-word characters since they can break\n // the named regex\n let cleanedKey = key.replace(/\\W/g, \"\");\n if (keyPrefix) {\n cleanedKey = \"\" + keyPrefix + cleanedKey;\n }\n let invalidKey = false;\n // check if the key is still invalid and fallback to using a known\n // safe key\n if (cleanedKey.length === 0 || cleanedKey.length > 30) {\n invalidKey = true;\n }\n if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) {\n invalidKey = true;\n }\n if (invalidKey) {\n cleanedKey = getSafeRouteKey();\n }\n if (keyPrefix) {\n routeKeys[cleanedKey] = \"\" + keyPrefix + key;\n } else {\n routeKeys[cleanedKey] = key;\n }\n // if the segment has an interception marker, make sure that's part of the regex pattern\n // this is to ensure that the route with the interception marker doesn't incorrectly match\n // the non-intercepted route (ie /app/(.)[username] should not match /app/[username])\n const interceptionPrefix = interceptionMarker ? (0, _escaperegexp.escapeStringRegexp)(interceptionMarker) : \"\";\n return repeat ? optional ? \"(?:/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">.+?))?\" : \"/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">.+?)\" : \"/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">[^/]+?)\";\n}\nfunction getNamedParametrizedRoute(route, prefixRouteKeys) {\n const segments = (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split(\"/\");\n const getSafeRouteKey = buildGetSafeRouteKey();\n const routeKeys = {};\n return {\n namedParameterizedRoute: segments.map((segment)=>{\n const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m));\n const paramMatches = segment.match(/\\[((?:\\[.*\\])|.+)\\]/) // Check for parameters\n ;\n if (hasInterceptionMarker && paramMatches) {\n const [usedMarker] = segment.split(paramMatches[0]);\n return getSafeKeyFromSegment({\n getSafeRouteKey,\n interceptionMarker: usedMarker,\n segment: paramMatches[1],\n routeKeys,\n keyPrefix: prefixRouteKeys ? NEXT_INTERCEPTION_MARKER_PREFIX : undefined\n });\n } else if (paramMatches) {\n return getSafeKeyFromSegment({\n getSafeRouteKey,\n segment: paramMatches[1],\n routeKeys,\n keyPrefix: prefixRouteKeys ? NEXT_QUERY_PARAM_PREFIX : undefined\n });\n } else {\n return \"/\" + (0, _escaperegexp.escapeStringRegexp)(segment);\n }\n }).join(\"\"),\n routeKeys\n };\n}\nfunction getNamedRouteRegex(normalizedRoute, prefixRouteKey) {\n const result = getNamedParametrizedRoute(normalizedRoute, prefixRouteKey);\n return {\n ...getRouteRegex(normalizedRoute),\n namedRegex: \"^\" + result.namedParameterizedRoute + \"(?:/)?$\",\n routeKeys: result.routeKeys\n };\n}\nfunction getNamedMiddlewareRegex(normalizedRoute, options) {\n const { parameterizedRoute } = getParametrizedRoute(normalizedRoute);\n const { catchAll = true } = options;\n if (parameterizedRoute === \"/\") {\n let catchAllRegex = catchAll ? \".*\" : \"\";\n return {\n namedRegex: \"^/\" + catchAllRegex + \"$\"\n };\n }\n const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false);\n let catchAllGroupedRegex = catchAll ? \"(?:(/.*)?)\" : \"\";\n return {\n namedRegex: \"^\" + namedParameterizedRoute + catchAllGroupedRegex + \"$\"\n };\n} //# sourceMappingURL=route-regex.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtcmVnZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBMk5nQkEseUJBQXVCO2VBQXZCQTs7SUFoQkFDLG9CQUFrQjtlQUFsQkE7O0lBbklBQyxlQUFhO2VBQWJBOzs7Z0RBeEUyQjswQ0FDUjtpREFDQztBQUVwQyxNQUFNQywwQkFBMEI7QUFDaEMsTUFBTUMsa0NBQWtDO0FBYXhDOzs7Ozs7O0NBT0MsR0FDRCxTQUFTQyxlQUFlQyxLQUFhO0lBQ25DLE1BQU1DLFdBQVdELE1BQU1FLFVBQVUsQ0FBQyxRQUFRRixNQUFNRyxRQUFRLENBQUM7SUFDekQsSUFBSUYsVUFBVTtRQUNaRCxRQUFRQSxNQUFNSSxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQzFCO0lBQ0EsTUFBTUMsU0FBU0wsTUFBTUUsVUFBVSxDQUFDO0lBQ2hDLElBQUlHLFFBQVE7UUFDVkwsUUFBUUEsTUFBTUksS0FBSyxDQUFDO0lBQ3RCO0lBQ0EsT0FBTztRQUFFRSxLQUFLTjtRQUFPSztRQUFRSjtJQUFTO0FBQ3hDO0FBRUEsU0FBU00scUJBQXFCQyxLQUFhO0lBQ3pDLE1BQU1DLFdBQVdDLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBbUIsRUFBQ0YsT0FBT0osS0FBSyxDQUFDLEdBQUdPLEtBQUssQ0FBQztJQUMzRCxNQUFNQyxTQUF5QyxDQUFDO0lBQ2hELElBQUlDLGFBQWE7SUFDakIsT0FBTztRQUNMQyxvQkFBb0JMLFNBQ2pCTSxHQUFHLENBQUMsQ0FBQ0M7WUFDSixNQUFNQyxjQUFjQyxvQkFBQUEsMEJBQTBCLENBQUNDLElBQUksQ0FBQyxDQUFDQyxJQUNuREosUUFBUWQsVUFBVSxDQUFDa0I7WUFFckIsTUFBTUMsZUFBZUwsUUFBUU0sS0FBSyxDQUFDLHVCQUF1Qix1QkFBdUI7O1lBRWpGLElBQUlMLGVBQWVJLGNBQWM7Z0JBQy9CLE1BQU0sRUFBRWYsR0FBRyxFQUFFTCxRQUFRLEVBQUVJLE1BQU0sRUFBRSxHQUFHTixlQUFlc0IsWUFBWSxDQUFDLEVBQUU7Z0JBQ2hFVCxNQUFNLENBQUNOLElBQUksR0FBRztvQkFBRWlCLEtBQUtWO29CQUFjUjtvQkFBUUo7Z0JBQVM7Z0JBQ3BELE9BQU8sTUFBSXVCLENBQUFBLEdBQUFBLGNBQUFBLGtCQUFrQixFQUFDUCxlQUFhO1lBQzdDLE9BQU8sSUFBSUksY0FBYztnQkFDdkIsTUFBTSxFQUFFZixHQUFHLEVBQUVELE1BQU0sRUFBRUosUUFBUSxFQUFFLEdBQUdGLGVBQWVzQixZQUFZLENBQUMsRUFBRTtnQkFDaEVULE1BQU0sQ0FBQ04sSUFBSSxHQUFHO29CQUFFaUIsS0FBS1Y7b0JBQWNSO29CQUFRSjtnQkFBUztnQkFDcEQsT0FBT0ksU0FBVUosV0FBVyxnQkFBZ0IsV0FBWTtZQUMxRCxPQUFPO2dCQUNMLE9BQU8sTUFBSXVCLENBQUFBLEdBQUFBLGNBQUFBLGtCQUFrQixFQUFDUjtZQUNoQztRQUNGLEdBQ0NTLElBQUksQ0FBQztRQUNSYjtJQUNGO0FBQ0Y7QUFPTyxTQUFTaEIsY0FBYzhCLGVBQXVCO0lBQ25ELE1BQU0sRUFBRVosa0JBQWtCLEVBQUVGLE1BQU0sRUFBRSxHQUFHTCxxQkFBcUJtQjtJQUM1RCxPQUFPO1FBQ0xDLElBQUksSUFBSUMsT0FBTyxNQUFJZCxxQkFBbUI7UUFDdENGLFFBQVFBO0lBQ1Y7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNpQjtJQUNQLElBQUlDLElBQUk7SUFFUixPQUFPO1FBQ0wsSUFBSUMsV0FBVztRQUNmLElBQUlDLElBQUksRUFBRUY7UUFDVixNQUFPRSxJQUFJLEVBQUc7WUFDWkQsWUFBWUUsT0FBT0MsWUFBWSxDQUFDLEtBQU0sQ0FBQ0YsSUFBSSxLQUFLO1lBQ2hEQSxJQUFJRyxLQUFLQyxLQUFLLENBQUMsQ0FBQ0osSUFBSSxLQUFLO1FBQzNCO1FBQ0EsT0FBT0Q7SUFDVDtBQUNGO0FBRUEsU0FBU00sc0JBQXNCckMsS0FZOUI7SUFaOEIsTUFDN0JzQyxrQkFBa0IsRUFDbEJDLGVBQWUsRUFDZnZCLE9BQU8sRUFDUHdCLFNBQVMsRUFDVEMsU0FBUyxFQU9WLEdBWjhCekM7SUFhN0IsTUFBTSxFQUFFTSxHQUFHLEVBQUVMLFFBQVEsRUFBRUksTUFBTSxFQUFFLEdBQUdOLGVBQWVpQjtJQUVqRCx1REFBdUQ7SUFDdkQsa0JBQWtCO0lBQ2xCLElBQUkwQixhQUFhcEMsSUFBSXFDLE9BQU8sQ0FBQyxPQUFPO0lBRXBDLElBQUlGLFdBQVc7UUFDYkMsYUFBYSxLQUFHRCxZQUFZQztJQUM5QjtJQUNBLElBQUlFLGFBQWE7SUFFakIsa0VBQWtFO0lBQ2xFLFdBQVc7SUFDWCxJQUFJRixXQUFXRyxNQUFNLEtBQUssS0FBS0gsV0FBV0csTUFBTSxHQUFHLElBQUk7UUFDckRELGFBQWE7SUFDZjtJQUNBLElBQUksQ0FBQ0UsTUFBTUMsU0FBU0wsV0FBV3RDLEtBQUssQ0FBQyxHQUFHLE1BQU07UUFDNUN3QyxhQUFhO0lBQ2Y7SUFFQSxJQUFJQSxZQUFZO1FBQ2RGLGFBQWFIO0lBQ2Y7SUFFQSxJQUFJRSxXQUFXO1FBQ2JELFNBQVMsQ0FBQ0UsV0FBVyxHQUFHLEtBQUdELFlBQVluQztJQUN6QyxPQUFPO1FBQ0xrQyxTQUFTLENBQUNFLFdBQVcsR0FBR3BDO0lBQzFCO0lBRUEsd0ZBQXdGO0lBQ3hGLDBGQUEwRjtJQUMxRixxRkFBcUY7SUFDckYsTUFBTTBDLHFCQUFxQlYscUJBQ3ZCZCxDQUFBQSxHQUFBQSxjQUFBQSxrQkFBa0IsRUFBQ2Msc0JBQ25CO0lBRUosT0FBT2pDLFNBQ0hKLFdBQ0UsU0FBTytDLHFCQUFtQixRQUFLTixhQUFXLFlBQzFDLE1BQUlNLHFCQUFtQixRQUFLTixhQUFXLFVBQ3pDLE1BQUlNLHFCQUFtQixRQUFLTixhQUFXO0FBQzdDO0FBRUEsU0FBU08sMEJBQTBCekMsS0FBYSxFQUFFMEMsZUFBd0I7SUFDeEUsTUFBTXpDLFdBQVdDLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBbUIsRUFBQ0YsT0FBT0osS0FBSyxDQUFDLEdBQUdPLEtBQUssQ0FBQztJQUMzRCxNQUFNNEIsa0JBQWtCVjtJQUN4QixNQUFNVyxZQUF5QyxDQUFDO0lBQ2hELE9BQU87UUFDTFcseUJBQXlCMUMsU0FDdEJNLEdBQUcsQ0FBQyxDQUFDQztZQUNKLE1BQU1vQyx3QkFBd0JsQyxvQkFBQUEsMEJBQTBCLENBQUNtQyxJQUFJLENBQUMsQ0FBQ2pDLElBQzdESixRQUFRZCxVQUFVLENBQUNrQjtZQUVyQixNQUFNQyxlQUFlTCxRQUFRTSxLQUFLLENBQUMsdUJBQXVCLHVCQUF1Qjs7WUFFakYsSUFBSThCLHlCQUF5Qi9CLGNBQWM7Z0JBQ3pDLE1BQU0sQ0FBQ2lDLFdBQVcsR0FBR3RDLFFBQVFMLEtBQUssQ0FBQ1UsWUFBWSxDQUFDLEVBQUU7Z0JBRWxELE9BQU9nQixzQkFBc0I7b0JBQzNCRTtvQkFDQUQsb0JBQW9CZ0I7b0JBQ3BCdEMsU0FBU0ssWUFBWSxDQUFDLEVBQUU7b0JBQ3hCbUI7b0JBQ0FDLFdBQVdTLGtCQUNQcEQsa0NBQ0F5RDtnQkFDTjtZQUNGLE9BQU8sSUFBSWxDLGNBQWM7Z0JBQ3ZCLE9BQU9nQixzQkFBc0I7b0JBQzNCRTtvQkFDQXZCLFNBQVNLLFlBQVksQ0FBQyxFQUFFO29CQUN4Qm1CO29CQUNBQyxXQUFXUyxrQkFBa0JyRCwwQkFBMEIwRDtnQkFDekQ7WUFDRixPQUFPO2dCQUNMLE9BQU8sTUFBSS9CLENBQUFBLEdBQUFBLGNBQUFBLGtCQUFrQixFQUFDUjtZQUNoQztRQUNGLEdBQ0NTLElBQUksQ0FBQztRQUNSZTtJQUNGO0FBQ0Y7QUFVTyxTQUFTN0MsbUJBQ2QrQixlQUF1QixFQUN2QjhCLGNBQXVCO0lBRXZCLE1BQU1DLFNBQVNSLDBCQUEwQnZCLGlCQUFpQjhCO0lBQzFELE9BQU87UUFDTCxHQUFHNUQsY0FBYzhCLGdCQUFnQjtRQUNqQ2dDLFlBQVksTUFBSUQsT0FBT04sdUJBQXVCLEdBQUM7UUFDL0NYLFdBQVdpQixPQUFPakIsU0FBUztJQUM3QjtBQUNGO0FBTU8sU0FBUzlDLHdCQUNkZ0MsZUFBdUIsRUFDdkJpQyxPQUVDO0lBRUQsTUFBTSxFQUFFN0Msa0JBQWtCLEVBQUUsR0FBR1AscUJBQXFCbUI7SUFDcEQsTUFBTSxFQUFFa0MsV0FBVyxJQUFJLEVBQUUsR0FBR0Q7SUFDNUIsSUFBSTdDLHVCQUF1QixLQUFLO1FBQzlCLElBQUkrQyxnQkFBZ0JELFdBQVcsT0FBTztRQUN0QyxPQUFPO1lBQ0xGLFlBQVksT0FBS0csZ0JBQWM7UUFDakM7SUFDRjtJQUVBLE1BQU0sRUFBRVYsdUJBQXVCLEVBQUUsR0FBR0YsMEJBQ2xDdkIsaUJBQ0E7SUFFRixJQUFJb0MsdUJBQXVCRixXQUFXLGVBQWU7SUFDckQsT0FBTztRQUNMRixZQUFZLE1BQUlQLDBCQUEwQlcsdUJBQXFCO0lBQ2pFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yb3V0ZS1yZWdleC50cz8yYjM3Il0sIm5hbWVzIjpbImdldE5hbWVkTWlkZGxld2FyZVJlZ2V4IiwiZ2V0TmFtZWRSb3V0ZVJlZ2V4IiwiZ2V0Um91dGVSZWdleCIsIk5FWFRfUVVFUllfUEFSQU1fUFJFRklYIiwiTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCIsInBhcnNlUGFyYW1ldGVyIiwicGFyYW0iLCJvcHRpb25hbCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInNsaWNlIiwicmVwZWF0Iiwia2V5IiwiZ2V0UGFyYW1ldHJpemVkUm91dGUiLCJyb3V0ZSIsInNlZ21lbnRzIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsInNwbGl0IiwiZ3JvdXBzIiwiZ3JvdXBJbmRleCIsInBhcmFtZXRlcml6ZWRSb3V0ZSIsIm1hcCIsInNlZ21lbnQiLCJtYXJrZXJNYXRjaCIsIklOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTIiwiZmluZCIsIm0iLCJwYXJhbU1hdGNoZXMiLCJtYXRjaCIsInBvcyIsImVzY2FwZVN0cmluZ1JlZ2V4cCIsImpvaW4iLCJub3JtYWxpemVkUm91dGUiLCJyZSIsIlJlZ0V4cCIsImJ1aWxkR2V0U2FmZVJvdXRlS2V5IiwiaSIsInJvdXRlS2V5IiwiaiIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsIk1hdGgiLCJmbG9vciIsImdldFNhZmVLZXlGcm9tU2VnbWVudCIsImludGVyY2VwdGlvbk1hcmtlciIsImdldFNhZmVSb3V0ZUtleSIsInJvdXRlS2V5cyIsImtleVByZWZpeCIsImNsZWFuZWRLZXkiLCJyZXBsYWNlIiwiaW52YWxpZEtleSIsImxlbmd0aCIsImlzTmFOIiwicGFyc2VJbnQiLCJpbnRlcmNlcHRpb25QcmVmaXgiLCJnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlIiwicHJlZml4Um91dGVLZXlzIiwibmFtZWRQYXJhbWV0ZXJpemVkUm91dGUiLCJoYXNJbnRlcmNlcHRpb25NYXJrZXIiLCJzb21lIiwidXNlZE1hcmtlciIsInVuZGVmaW5lZCIsInByZWZpeFJvdXRlS2V5IiwicmVzdWx0IiwibmFtZWRSZWdleCIsIm9wdGlvbnMiLCJjYXRjaEFsbCIsImNhdGNoQWxsUmVnZXgiLCJjYXRjaEFsbEdyb3VwZWRSZWdleCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js":
-/*!*************************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js ***!
- \*************************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getSortedRoutes\", ({\n enumerable: true,\n get: function() {\n return getSortedRoutes;\n }\n}));\nclass UrlNode {\n insert(urlPath) {\n this._insert(urlPath.split(\"/\").filter(Boolean), [], false);\n }\n smoosh() {\n return this._smoosh();\n }\n _smoosh(prefix) {\n if (prefix === void 0) prefix = \"/\";\n const childrenPaths = [\n ...this.children.keys()\n ].sort();\n if (this.slugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf(\"[]\"), 1);\n }\n if (this.restSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf(\"[...]\"), 1);\n }\n if (this.optionalRestSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf(\"[[...]]\"), 1);\n }\n const routes = childrenPaths.map((c)=>this.children.get(c)._smoosh(\"\" + prefix + c + \"/\")).reduce((prev, curr)=>[\n ...prev,\n ...curr\n ], []);\n if (this.slugName !== null) {\n routes.push(...this.children.get(\"[]\")._smoosh(prefix + \"[\" + this.slugName + \"]/\"));\n }\n if (!this.placeholder) {\n const r = prefix === \"/\" ? \"/\" : prefix.slice(0, -1);\n if (this.optionalRestSlugName != null) {\n throw new Error('You cannot define a route with the same specificity as a optional catch-all route (\"' + r + '\" and \"' + r + \"[[...\" + this.optionalRestSlugName + ']]\").');\n }\n routes.unshift(r);\n }\n if (this.restSlugName !== null) {\n routes.push(...this.children.get(\"[...]\")._smoosh(prefix + \"[...\" + this.restSlugName + \"]/\"));\n }\n if (this.optionalRestSlugName !== null) {\n routes.push(...this.children.get(\"[[...]]\")._smoosh(prefix + \"[[...\" + this.optionalRestSlugName + \"]]/\"));\n }\n return routes;\n }\n _insert(urlPaths, slugNames, isCatchAll) {\n if (urlPaths.length === 0) {\n this.placeholder = false;\n return;\n }\n if (isCatchAll) {\n throw new Error(\"Catch-all must be the last part of the URL.\");\n }\n // The next segment in the urlPaths list\n let nextSegment = urlPaths[0];\n // Check if the segment matches `[something]`\n if (nextSegment.startsWith(\"[\") && nextSegment.endsWith(\"]\")) {\n // Strip `[` and `]`, leaving only `something`\n let segmentName = nextSegment.slice(1, -1);\n let isOptional = false;\n if (segmentName.startsWith(\"[\") && segmentName.endsWith(\"]\")) {\n // Strip optional `[` and `]`, leaving only `something`\n segmentName = segmentName.slice(1, -1);\n isOptional = true;\n }\n if (segmentName.startsWith(\"...\")) {\n // Strip `...`, leaving only `something`\n segmentName = segmentName.substring(3);\n isCatchAll = true;\n }\n if (segmentName.startsWith(\"[\") || segmentName.endsWith(\"]\")) {\n throw new Error(\"Segment names may not start or end with extra brackets ('\" + segmentName + \"').\");\n }\n if (segmentName.startsWith(\".\")) {\n throw new Error(\"Segment names may not start with erroneous periods ('\" + segmentName + \"').\");\n }\n function handleSlug(previousSlug, nextSlug) {\n if (previousSlug !== null) {\n // If the specific segment already has a slug but the slug is not `something`\n // This prevents collisions like:\n // pages/[post]/index.js\n // pages/[id]/index.js\n // Because currently multiple dynamic params on the same segment level are not supported\n if (previousSlug !== nextSlug) {\n // TODO: This error seems to be confusing for users, needs an error link, the description can be based on above comment.\n throw new Error(\"You cannot use different slug names for the same dynamic path ('\" + previousSlug + \"' !== '\" + nextSlug + \"').\");\n }\n }\n slugNames.forEach((slug)=>{\n if (slug === nextSlug) {\n throw new Error('You cannot have the same slug name \"' + nextSlug + '\" repeat within a single dynamic path');\n }\n if (slug.replace(/\\W/g, \"\") === nextSegment.replace(/\\W/g, \"\")) {\n throw new Error('You cannot have the slug names \"' + slug + '\" and \"' + nextSlug + '\" differ only by non-word symbols within a single dynamic path');\n }\n });\n slugNames.push(nextSlug);\n }\n if (isCatchAll) {\n if (isOptional) {\n if (this.restSlugName != null) {\n throw new Error('You cannot use both an required and optional catch-all route at the same level (\"[...' + this.restSlugName + ']\" and \"' + urlPaths[0] + '\" ).');\n }\n handleSlug(this.optionalRestSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.optionalRestSlugName = segmentName;\n // nextSegment is overwritten to [[...]] so that it can later be sorted specifically\n nextSegment = \"[[...]]\";\n } else {\n if (this.optionalRestSlugName != null) {\n throw new Error('You cannot use both an optional and required catch-all route at the same level (\"[[...' + this.optionalRestSlugName + ']]\" and \"' + urlPaths[0] + '\").');\n }\n handleSlug(this.restSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.restSlugName = segmentName;\n // nextSegment is overwritten to [...] so that it can later be sorted specifically\n nextSegment = \"[...]\";\n }\n } else {\n if (isOptional) {\n throw new Error('Optional route parameters are not yet supported (\"' + urlPaths[0] + '\").');\n }\n handleSlug(this.slugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.slugName = segmentName;\n // nextSegment is overwritten to [] so that it can later be sorted specifically\n nextSegment = \"[]\";\n }\n }\n // If this UrlNode doesn't have the nextSegment yet we create a new child UrlNode\n if (!this.children.has(nextSegment)) {\n this.children.set(nextSegment, new UrlNode());\n }\n this.children.get(nextSegment)._insert(urlPaths.slice(1), slugNames, isCatchAll);\n }\n constructor(){\n this.placeholder = true;\n this.children = new Map();\n this.slugName = null;\n this.restSlugName = null;\n this.optionalRestSlugName = null;\n }\n}\nfunction getSortedRoutes(normalizedPages) {\n // First the UrlNode is created, and every UrlNode can have only 1 dynamic segment\n // Eg you can't have pages/[post]/abc.js and pages/[hello]/something-else.js\n // Only 1 dynamic segment per nesting level\n // So in the case that is test/integration/dynamic-routing it'll be this:\n // pages/[post]/comments.js\n // pages/blog/[post]/comment/[id].js\n // Both are fine because `pages/[post]` and `pages/blog` are on the same level\n // So in this case `UrlNode` created here has `this.slugName === 'post'`\n // And since your PR passed through `slugName` as an array basically it'd including it in too many possibilities\n // Instead what has to be passed through is the upwards path's dynamic names\n const root = new UrlNode();\n // Here the `root` gets injected multiple paths, and insert will break them up into sublevels\n normalizedPages.forEach((pagePath)=>root.insert(pagePath));\n // Smoosh will then sort those sublevels up to the point where you get the correct route definition priority\n return root.smoosh();\n} //# sourceMappingURL=sorted-routes.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvc29ydGVkLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiOzs7O21EQXFNZ0JBOzs7ZUFBQUE7OztBQXJNaEIsTUFBTUM7SUFPSkMsT0FBT0MsT0FBZSxFQUFRO1FBQzVCLElBQUksQ0FBQ0MsT0FBTyxDQUFDRCxRQUFRRSxLQUFLLENBQUMsS0FBS0MsTUFBTSxDQUFDQyxVQUFVLEVBQUUsRUFBRTtJQUN2RDtJQUVBQyxTQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQ0MsT0FBTztJQUNyQjtJQUVRQSxRQUFRQyxNQUFvQixFQUFZO1FBQWhDQSxJQUFBQSxXQUFBQSxLQUFBQSxHQUFBQSxTQUFpQjtRQUMvQixNQUFNQyxnQkFBZ0I7ZUFBSSxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSTtTQUFHLENBQUNDLElBQUk7UUFDcEQsSUFBSSxJQUFJLENBQUNDLFFBQVEsS0FBSyxNQUFNO1lBQzFCSixjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxPQUFPO1FBQ3BEO1FBQ0EsSUFBSSxJQUFJLENBQUNDLFlBQVksS0FBSyxNQUFNO1lBQzlCUCxjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxVQUFVO1FBQ3ZEO1FBQ0EsSUFBSSxJQUFJLENBQUNFLG9CQUFvQixLQUFLLE1BQU07WUFDdENSLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLFlBQVk7UUFDekQ7UUFFQSxNQUFNRyxTQUFTVCxjQUNaVSxHQUFHLENBQUMsQ0FBQ0MsSUFBTSxJQUFJLENBQUNWLFFBQVEsQ0FBQ1csR0FBRyxDQUFDRCxHQUFJYixPQUFPLENBQUMsS0FBR0MsU0FBU1ksSUFBRSxNQUN2REUsTUFBTSxDQUFDLENBQUNDLE1BQU1DLE9BQVM7bUJBQUlEO21CQUFTQzthQUFLLEVBQUUsRUFBRTtRQUVoRCxJQUFJLElBQUksQ0FBQ1gsUUFBUSxLQUFLLE1BQU07WUFDMUJLLE9BQU9PLElBQUksSUFDTixJQUFJLENBQUNmLFFBQVEsQ0FBQ1csR0FBRyxDQUFDLE1BQU9kLE9BQU8sQ0FBQ0MsU0FBVSxNQUFHLElBQUksQ0FBQ0ssUUFBUSxHQUFDO1FBRW5FO1FBRUEsSUFBSSxDQUFDLElBQUksQ0FBQ2EsV0FBVyxFQUFFO1lBQ3JCLE1BQU1DLElBQUluQixXQUFXLE1BQU0sTUFBTUEsT0FBT29CLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDbEQsSUFBSSxJQUFJLENBQUNYLG9CQUFvQixJQUFJLE1BQU07Z0JBQ3JDLE1BQU0sSUFBSVksTUFDUix5RkFBdUZGLElBQUUsWUFBU0EsSUFBRSxVQUFPLElBQUksQ0FBQ1Ysb0JBQW9CLEdBQUM7WUFFekk7WUFFQUMsT0FBT1ksT0FBTyxDQUFDSDtRQUNqQjtRQUVBLElBQUksSUFBSSxDQUFDWCxZQUFZLEtBQUssTUFBTTtZQUM5QkUsT0FBT08sSUFBSSxJQUNOLElBQUksQ0FBQ2YsUUFBUSxDQUNiVyxHQUFHLENBQUMsU0FDSmQsT0FBTyxDQUFDQyxTQUFVLFNBQU0sSUFBSSxDQUFDUSxZQUFZLEdBQUM7UUFFakQ7UUFFQSxJQUFJLElBQUksQ0FBQ0Msb0JBQW9CLEtBQUssTUFBTTtZQUN0Q0MsT0FBT08sSUFBSSxJQUNOLElBQUksQ0FBQ2YsUUFBUSxDQUNiVyxHQUFHLENBQUMsV0FDSmQsT0FBTyxDQUFDQyxTQUFVLFVBQU8sSUFBSSxDQUFDUyxvQkFBb0IsR0FBQztRQUUxRDtRQUVBLE9BQU9DO0lBQ1Q7SUFFUWhCLFFBQ042QixRQUFrQixFQUNsQkMsU0FBbUIsRUFDbkJDLFVBQW1CLEVBQ2I7UUFDTixJQUFJRixTQUFTRyxNQUFNLEtBQUssR0FBRztZQUN6QixJQUFJLENBQUNSLFdBQVcsR0FBRztZQUNuQjtRQUNGO1FBRUEsSUFBSU8sWUFBWTtZQUNkLE1BQU0sSUFBSUosTUFBTztRQUNuQjtRQUVBLHdDQUF3QztRQUN4QyxJQUFJTSxjQUFjSixRQUFRLENBQUMsRUFBRTtRQUU3Qiw2Q0FBNkM7UUFDN0MsSUFBSUksWUFBWUMsVUFBVSxDQUFDLFFBQVFELFlBQVlFLFFBQVEsQ0FBQyxNQUFNO1lBQzVELDhDQUE4QztZQUM5QyxJQUFJQyxjQUFjSCxZQUFZUCxLQUFLLENBQUMsR0FBRyxDQUFDO1lBRXhDLElBQUlXLGFBQWE7WUFDakIsSUFBSUQsWUFBWUYsVUFBVSxDQUFDLFFBQVFFLFlBQVlELFFBQVEsQ0FBQyxNQUFNO2dCQUM1RCx1REFBdUQ7Z0JBQ3ZEQyxjQUFjQSxZQUFZVixLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUNwQ1csYUFBYTtZQUNmO1lBRUEsSUFBSUQsWUFBWUYsVUFBVSxDQUFDLFFBQVE7Z0JBQ2pDLHdDQUF3QztnQkFDeENFLGNBQWNBLFlBQVlFLFNBQVMsQ0FBQztnQkFDcENQLGFBQWE7WUFDZjtZQUVBLElBQUlLLFlBQVlGLFVBQVUsQ0FBQyxRQUFRRSxZQUFZRCxRQUFRLENBQUMsTUFBTTtnQkFDNUQsTUFBTSxJQUFJUixNQUNSLDhEQUE0RFMsY0FBWTtZQUU1RTtZQUVBLElBQUlBLFlBQVlGLFVBQVUsQ0FBQyxNQUFNO2dCQUMvQixNQUFNLElBQUlQLE1BQ1IsMERBQXdEUyxjQUFZO1lBRXhFO1lBRUEsU0FBU0csV0FBV0MsWUFBMkIsRUFBRUMsUUFBZ0I7Z0JBQy9ELElBQUlELGlCQUFpQixNQUFNO29CQUN6Qiw2RUFBNkU7b0JBQzdFLGlDQUFpQztvQkFDakMsd0JBQXdCO29CQUN4QixzQkFBc0I7b0JBQ3RCLHdGQUF3RjtvQkFDeEYsSUFBSUEsaUJBQWlCQyxVQUFVO3dCQUM3Qix3SEFBd0g7d0JBQ3hILE1BQU0sSUFBSWQsTUFDUixxRUFBbUVhLGVBQWEsWUFBU0MsV0FBUztvQkFFdEc7Z0JBQ0Y7Z0JBRUFYLFVBQVVZLE9BQU8sQ0FBQyxDQUFDQztvQkFDakIsSUFBSUEsU0FBU0YsVUFBVTt3QkFDckIsTUFBTSxJQUFJZCxNQUNSLHlDQUF1Q2MsV0FBUztvQkFFcEQ7b0JBRUEsSUFBSUUsS0FBS0MsT0FBTyxDQUFDLE9BQU8sUUFBUVgsWUFBWVcsT0FBTyxDQUFDLE9BQU8sS0FBSzt3QkFDOUQsTUFBTSxJQUFJakIsTUFDUixxQ0FBbUNnQixPQUFLLFlBQVNGLFdBQVM7b0JBRTlEO2dCQUNGO2dCQUVBWCxVQUFVUCxJQUFJLENBQUNrQjtZQUNqQjtZQUVBLElBQUlWLFlBQVk7Z0JBQ2QsSUFBSU0sWUFBWTtvQkFDZCxJQUFJLElBQUksQ0FBQ3ZCLFlBQVksSUFBSSxNQUFNO3dCQUM3QixNQUFNLElBQUlhLE1BQ1IsMEZBQXdGLElBQUksQ0FBQ2IsWUFBWSxHQUFDLGFBQVVlLFFBQVEsQ0FBQyxFQUFFLEdBQUM7b0JBRXBJO29CQUVBVSxXQUFXLElBQUksQ0FBQ3hCLG9CQUFvQixFQUFFcUI7b0JBQ3RDLDZEQUE2RDtvQkFDN0QsSUFBSSxDQUFDckIsb0JBQW9CLEdBQUdxQjtvQkFDNUIsb0ZBQW9GO29CQUNwRkgsY0FBYztnQkFDaEIsT0FBTztvQkFDTCxJQUFJLElBQUksQ0FBQ2xCLG9CQUFvQixJQUFJLE1BQU07d0JBQ3JDLE1BQU0sSUFBSVksTUFDUiwyRkFBeUYsSUFBSSxDQUFDWixvQkFBb0IsR0FBQyxjQUFXYyxRQUFRLENBQUMsRUFBRSxHQUFDO29CQUU5STtvQkFFQVUsV0FBVyxJQUFJLENBQUN6QixZQUFZLEVBQUVzQjtvQkFDOUIsNkRBQTZEO29CQUM3RCxJQUFJLENBQUN0QixZQUFZLEdBQUdzQjtvQkFDcEIsa0ZBQWtGO29CQUNsRkgsY0FBYztnQkFDaEI7WUFDRixPQUFPO2dCQUNMLElBQUlJLFlBQVk7b0JBQ2QsTUFBTSxJQUFJVixNQUNSLHVEQUFxREUsUUFBUSxDQUFDLEVBQUUsR0FBQztnQkFFckU7Z0JBQ0FVLFdBQVcsSUFBSSxDQUFDNUIsUUFBUSxFQUFFeUI7Z0JBQzFCLDZEQUE2RDtnQkFDN0QsSUFBSSxDQUFDekIsUUFBUSxHQUFHeUI7Z0JBQ2hCLCtFQUErRTtnQkFDL0VILGNBQWM7WUFDaEI7UUFDRjtRQUVBLGlGQUFpRjtRQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDekIsUUFBUSxDQUFDcUMsR0FBRyxDQUFDWixjQUFjO1lBQ25DLElBQUksQ0FBQ3pCLFFBQVEsQ0FBQ3NDLEdBQUcsQ0FBQ2IsYUFBYSxJQUFJcEM7UUFDckM7UUFFQSxJQUFJLENBQUNXLFFBQVEsQ0FDVlcsR0FBRyxDQUFDYyxhQUNKakMsT0FBTyxDQUFDNkIsU0FBU0gsS0FBSyxDQUFDLElBQUlJLFdBQVdDO0lBQzNDOzthQWpNQVAsV0FBQUEsR0FBdUI7YUFDdkJoQixRQUFBQSxHQUFpQyxJQUFJdUM7YUFDckNwQyxRQUFBQSxHQUEwQjthQUMxQkcsWUFBQUEsR0FBOEI7YUFDOUJDLG9CQUFBQSxHQUFzQzs7QUE4THhDO0FBRU8sU0FBU25CLGdCQUNkb0QsZUFBc0M7SUFFdEMsa0ZBQWtGO0lBQ2xGLDRFQUE0RTtJQUM1RSwyQ0FBMkM7SUFFM0MseUVBQXlFO0lBQ3pFLDJCQUEyQjtJQUMzQixvQ0FBb0M7SUFDcEMsOEVBQThFO0lBQzlFLHdFQUF3RTtJQUN4RSxnSEFBZ0g7SUFDaEgsNEVBQTRFO0lBQzVFLE1BQU1DLE9BQU8sSUFBSXBEO0lBRWpCLDZGQUE2RjtJQUM3Rm1ELGdCQUFnQk4sT0FBTyxDQUFDLENBQUNRLFdBQWFELEtBQUtuRCxNQUFNLENBQUNvRDtJQUNsRCw0R0FBNEc7SUFDNUcsT0FBT0QsS0FBSzdDLE1BQU07QUFDcEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9zb3J0ZWQtcm91dGVzLnRzP2IwYjAiXSwibmFtZXMiOlsiZ2V0U29ydGVkUm91dGVzIiwiVXJsTm9kZSIsImluc2VydCIsInVybFBhdGgiLCJfaW5zZXJ0Iiwic3BsaXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwic21vb3NoIiwiX3Ntb29zaCIsInByZWZpeCIsImNoaWxkcmVuUGF0aHMiLCJjaGlsZHJlbiIsImtleXMiLCJzb3J0Iiwic2x1Z05hbWUiLCJzcGxpY2UiLCJpbmRleE9mIiwicmVzdFNsdWdOYW1lIiwib3B0aW9uYWxSZXN0U2x1Z05hbWUiLCJyb3V0ZXMiLCJtYXAiLCJjIiwiZ2V0IiwicmVkdWNlIiwicHJldiIsImN1cnIiLCJwdXNoIiwicGxhY2Vob2xkZXIiLCJyIiwic2xpY2UiLCJFcnJvciIsInVuc2hpZnQiLCJ1cmxQYXRocyIsInNsdWdOYW1lcyIsImlzQ2F0Y2hBbGwiLCJsZW5ndGgiLCJuZXh0U2VnbWVudCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInNlZ21lbnROYW1lIiwiaXNPcHRpb25hbCIsInN1YnN0cmluZyIsImhhbmRsZVNsdWciLCJwcmV2aW91c1NsdWciLCJuZXh0U2x1ZyIsImZvckVhY2giLCJzbHVnIiwicmVwbGFjZSIsImhhcyIsInNldCIsIk1hcCIsIm5vcm1hbGl6ZWRQYWdlcyIsInJvb3QiLCJwYWdlUGF0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js":
-/*!****************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/utils.js ***!
- \****************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n \"CLS\",\n \"FCP\",\n \"FID\",\n \"INP\",\n \"LCP\",\n \"TTFB\"\n];\nfunction execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? \":\" + port : \"\");\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === \"string\" ? Component : Component.displayName || Component.name || \"Unknown\";\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split(\"?\");\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, \"/\").replace(/\\/\\/+/g, \"/\") + (urlParts[1] ? \"?\" + urlParts.slice(1).join(\"?\") : \"\");\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw new Error(message);\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw new Error(message);\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== \"undefined\";\nconst ST = SP && [\n \"mark\",\n \"measure\",\n \"getEntriesByName\"\n].every((method)=>typeof performance[method] === \"function\");\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = \"ENOENT\";\n this.name = \"PageNotFoundError\";\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = \"ENOENT\";\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFvYWFBLGFBQVc7ZUFBWEE7O0lBb0JBQyx5QkFBdUI7ZUFBdkJBOztJQVBBQyxtQkFBaUI7ZUFBakJBOztJQVpBQyxnQkFBYztlQUFkQTs7SUFDQUMsbUJBQWlCO2VBQWpCQTs7SUFUQUMsSUFBRTtlQUFGQTs7SUFDQUMsSUFBRTtlQUFGQTs7SUFsWEFDLFlBQVU7ZUFBVkE7O0lBc1FHQyxVQUFRO2VBQVJBOztJQStCQUMsZ0JBQWM7ZUFBZEE7O0lBWEFDLG1CQUFpQjtlQUFqQkE7O0lBS0FDLFFBQU07ZUFBTkE7O0lBUEhDLGVBQWE7ZUFBYkE7O0lBbUJHQyxXQUFTO2VBQVRBOztJQWtCTUMscUJBQW1CO2VBQW5CQTs7SUFkTkMsMEJBQXdCO2VBQXhCQTs7SUErR0FDLGdCQUFjO2VBQWRBOzs7QUE5WlQsTUFBTVQsYUFBYTtJQUFDO0lBQU87SUFBTztJQUFPO0lBQU87SUFBTztDQUFPO0FBc1E5RCxTQUFTQyxTQUNkUyxFQUFLO0lBRUwsSUFBSUMsT0FBTztJQUNYLElBQUlDO0lBRUosT0FBUTt5Q0FBSUMsT0FBQUEsSUFBQUEsTUFBQUEsT0FBQUEsT0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsT0FBQUE7WUFBQUEsSUFBQUEsQ0FBQUEsS0FBQUEsR0FBQUEsU0FBQUEsQ0FBQUEsS0FBQUE7O1FBQ1YsSUFBSSxDQUFDRixNQUFNO1lBQ1RBLE9BQU87WUFDUEMsU0FBU0YsTUFBTUc7UUFDakI7UUFDQSxPQUFPRDtJQUNUO0FBQ0Y7QUFFQSwwREFBMEQ7QUFDMUQsZ0VBQWdFO0FBQ2hFLE1BQU1FLHFCQUFxQjtBQUNwQixNQUFNVCxnQkFBZ0IsQ0FBQ1UsTUFBZ0JELG1CQUFtQkUsSUFBSSxDQUFDRDtBQUUvRCxTQUFTWjtJQUNkLE1BQU0sRUFBRWMsUUFBUSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRSxHQUFHQyxPQUFPQyxRQUFRO0lBQ3BELE9BQU9KLFdBQVksT0FBSUMsV0FBV0MsQ0FBQUEsT0FBTyxNQUFNQSxPQUFPO0FBQ3hEO0FBRU8sU0FBU2Y7SUFDZCxNQUFNLEVBQUVrQixJQUFJLEVBQUUsR0FBR0YsT0FBT0MsUUFBUTtJQUNoQyxNQUFNRSxTQUFTcEI7SUFDZixPQUFPbUIsS0FBS0UsU0FBUyxDQUFDRCxPQUFPRSxNQUFNO0FBQ3JDO0FBRU8sU0FBU3ZCLGVBQWtCd0IsU0FBMkI7SUFDM0QsT0FBTyxPQUFPQSxjQUFjLFdBQ3hCQSxZQUNBQSxVQUFVQyxXQUFXLElBQUlELFVBQVVFLElBQUksSUFBSTtBQUNqRDtBQUVPLFNBQVN0QixVQUFVdUIsR0FBbUI7SUFDM0MsT0FBT0EsSUFBSUMsUUFBUSxJQUFJRCxJQUFJRSxXQUFXO0FBQ3hDO0FBRU8sU0FBU3ZCLHlCQUF5Qk8sR0FBVztJQUNsRCxNQUFNaUIsV0FBV2pCLElBQUlrQixLQUFLLENBQUM7SUFDM0IsTUFBTUMsYUFBYUYsUUFBUSxDQUFDLEVBQUU7SUFFOUIsT0FDRUUsV0FDRSw0REFBNEQ7SUFDNUQsMENBQTBDO0tBQ3pDQyxPQUFPLENBQUMsT0FBTyxLQUNmQSxPQUFPLENBQUMsVUFBVSxPQUNwQkgsQ0FBQUEsUUFBUSxDQUFDLEVBQUUsR0FBRyxNQUFJQSxTQUFTSSxLQUFLLENBQUMsR0FBR0MsSUFBSSxDQUFDLE9BQVM7QUFFdkQ7QUFFTyxlQUFlOUIsb0JBSXBCK0IsR0FBZ0MsRUFBRUMsR0FBTTtJQUN4QyxJQUFJQyxJQUF5QixFQUFjO1lBQ3JDRjtRQUFKLEtBQUlBLGlCQUFBQSxJQUFJRyxTQUFTLHFCQUFiSCxlQUFlSSxlQUFlLEVBQUU7WUFDbEMsTUFBTUMsVUFBVSxNQUFJekMsZUFDbEJvQyxPQUNBO1lBQ0YsTUFBTSxJQUFJTSxNQUFNRDtRQUNsQjtJQUNGO0lBQ0EsaURBQWlEO0lBQ2pELE1BQU1kLE1BQU1VLElBQUlWLEdBQUcsSUFBS1UsSUFBSUEsR0FBRyxJQUFJQSxJQUFJQSxHQUFHLENBQUNWLEdBQUc7SUFFOUMsSUFBSSxDQUFDUyxJQUFJSSxlQUFlLEVBQUU7UUFDeEIsSUFBSUgsSUFBSUEsR0FBRyxJQUFJQSxJQUFJYixTQUFTLEVBQUU7WUFDNUIsK0JBQStCO1lBQy9CLE9BQU87Z0JBQ0xtQixXQUFXLE1BQU10QyxvQkFBb0JnQyxJQUFJYixTQUFTLEVBQUVhLElBQUlBLEdBQUc7WUFDN0Q7UUFDRjtRQUNBLE9BQU8sQ0FBQztJQUNWO0lBRUEsTUFBTU8sUUFBUSxNQUFNUixJQUFJSSxlQUFlLENBQUNIO0lBRXhDLElBQUlWLE9BQU92QixVQUFVdUIsTUFBTTtRQUN6QixPQUFPaUI7SUFDVDtJQUVBLElBQUksQ0FBQ0EsT0FBTztRQUNWLE1BQU1ILFVBQVUsTUFBSXpDLGVBQ2xCb0MsT0FDQSxpRUFBOERRLFFBQU07UUFDdEUsTUFBTSxJQUFJRixNQUFNRDtJQUNsQjtJQUVBLElBQUlILElBQXlCLEVBQWM7UUFDekMsSUFBSU8sT0FBT0MsSUFBSSxDQUFDRixPQUFPckIsTUFBTSxLQUFLLEtBQUssQ0FBQ2MsSUFBSUEsR0FBRyxFQUFFO1lBQy9DVSxRQUFRQyxJQUFJLENBQ1YsS0FBR2hELGVBQ0RvQyxPQUNBO1FBRU47SUFDRjtJQUVBLE9BQU9RO0FBQ1Q7QUFFTyxNQUFNaEQsS0FBSyxPQUFPcUQsZ0JBQWdCO0FBQ2xDLE1BQU1wRCxLQUNYRCxNQUNBO0lBQUU7SUFBUTtJQUFXO0NBQW1CLENBQVdzRCxLQUFLLENBQ3RELENBQUNDLFNBQVcsT0FBT0YsV0FBVyxDQUFDRSxPQUFPLEtBQUs7QUFHeEMsTUFBTTVELG9CQUFvQm1EO0FBQU87QUFDakMsTUFBTWhELHVCQUF1QmdEO0FBQU87QUFDcEMsTUFBTS9DLDBCQUEwQitDO0lBR3JDVSxZQUFZQyxJQUFZLENBQUU7UUFDeEIsS0FBSztRQUNMLElBQUksQ0FBQ0MsSUFBSSxHQUFHO1FBQ1osSUFBSSxDQUFDNUIsSUFBSSxHQUFHO1FBQ1osSUFBSSxDQUFDZSxPQUFPLEdBQUcsa0NBQWdDWTtJQUNqRDtBQUNGO0FBRU8sTUFBTTVELDBCQUEwQmlEO0lBQ3JDVSxZQUFZQyxJQUFZLEVBQUVaLE9BQWUsQ0FBRTtRQUN6QyxLQUFLO1FBQ0wsSUFBSSxDQUFDQSxPQUFPLEdBQUcsMENBQXdDWSxPQUFLLE1BQUdaO0lBQ2pFO0FBQ0Y7QUFFTyxNQUFNakQsZ0NBQWdDa0Q7SUFFM0NVLGFBQWM7UUFDWixLQUFLO1FBQ0wsSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNiLE9BQU8sR0FBSTtJQUNsQjtBQUNGO0FBV08sU0FBU2xDLGVBQWVnRCxLQUFZO0lBQ3pDLE9BQU9DLEtBQUtDLFNBQVMsQ0FBQztRQUFFaEIsU0FBU2MsTUFBTWQsT0FBTztRQUFFaUIsT0FBT0gsTUFBTUcsS0FBSztJQUFDO0FBQ3JFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi91dGlscy50cz8xYmQ1Il0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IiLCJNaXNzaW5nU3RhdGljUGFnZSIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJTUCIsIlNUIiwiV0VCX1ZJVEFMUyIsImV4ZWNPbmNlIiwiZ2V0RGlzcGxheU5hbWUiLCJnZXRMb2NhdGlvbk9yaWdpbiIsImdldFVSTCIsImlzQWJzb2x1dGVVcmwiLCJpc1Jlc1NlbnQiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwic3RyaW5naWZ5RXJyb3IiLCJmbiIsInVzZWQiLCJyZXN1bHQiLCJhcmdzIiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwidXJsIiwidGVzdCIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJwcm90b3R5cGUiLCJnZXRJbml0aWFsUHJvcHMiLCJtZXNzYWdlIiwiRXJyb3IiLCJwYWdlUHJvcHMiLCJwcm9wcyIsIk9iamVjdCIsImtleXMiLCJjb25zb2xlIiwid2FybiIsInBlcmZvcm1hbmNlIiwiZXZlcnkiLCJtZXRob2QiLCJjb25zdHJ1Y3RvciIsInBhZ2UiLCJjb2RlIiwiZXJyb3IiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhY2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js":
-/*!****************************************************************************************!*\
- !*** ./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js ***!
- \****************************************************************************************/
-/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("/**\n * @license React\n * react-jsx-dev-runtime.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\n\nif (true) {\n (function() {\n'use strict';\n\nvar React = __webpack_require__(/*! next/dist/compiled/react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider'); // TODO: Delete with enableRenderableContext\n\nvar REACT_CONSUMER_TYPE = Symbol.for('react.consumer');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\nvar REACT_CACHE_TYPE = Symbol.for('react.cache');\nvar MAYBE_ITERATOR_SYMBOL = Symbol.iterator;\nvar FAUX_ITERATOR_SYMBOL = '@@iterator';\nfunction getIteratorFn(maybeIterable) {\n if (maybeIterable === null || typeof maybeIterable !== 'object') {\n return null;\n }\n\n var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];\n\n if (typeof maybeIterator === 'function') {\n return maybeIterator;\n }\n\n return null;\n}\n\nvar ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n\nfunction error(format) {\n {\n {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n printWarning('error', format, args);\n }\n }\n}\n\nfunction printWarning(level, format, args) {\n // When changing this logic, you might want to also\n // update consoleWithStackDev.www.js as well.\n {\n var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\n var stack = ReactDebugCurrentFrame.getStackAddendum();\n\n if (stack !== '') {\n format += '%s';\n args = args.concat([stack]);\n } // eslint-disable-next-line react-internal/safe-string-coercion\n\n\n var argsWithFormat = args.map(function (item) {\n return String(item);\n }); // Careful: RN currently depends on this prefix\n\n argsWithFormat.unshift('Warning: ' + format); // We intentionally don't use spread (or .apply) directly because it\n // breaks IE9: https://github.com/facebook/react/issues/13610\n // eslint-disable-next-line react-internal/no-production-logging\n\n Function.prototype.apply.call(console[level], console, argsWithFormat);\n }\n}\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\nvar enableRenderableContext = false;\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false;\n\nfunction getWrappedName(outerType, innerType, wrapperName) {\n var displayName = outerType.displayName;\n\n if (displayName) {\n return displayName;\n }\n\n var functionName = innerType.displayName || innerType.name || '';\n return functionName !== '' ? wrapperName + \"(\" + functionName + \")\" : wrapperName;\n} // Keep in sync with react-reconciler/getComponentNameFromFiber\n\n\nfunction getContextName(type) {\n return type.displayName || 'Context';\n}\n\nvar REACT_CLIENT_REFERENCE$2 = Symbol.for('react.client.reference'); // Note that the reconciler package should generally prefer to use getComponentNameFromFiber() instead.\n\nfunction getComponentNameFromType(type) {\n if (type == null) {\n // Host root, text node or just invalid type.\n return null;\n }\n\n if (typeof type === 'function') {\n if (type.$$typeof === REACT_CLIENT_REFERENCE$2) {\n // TODO: Create a convention for naming client references with debug info.\n return null;\n }\n\n return type.displayName || type.name || null;\n }\n\n if (typeof type === 'string') {\n return type;\n }\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return 'Fragment';\n\n case REACT_PORTAL_TYPE:\n return 'Portal';\n\n case REACT_PROFILER_TYPE:\n return 'Profiler';\n\n case REACT_STRICT_MODE_TYPE:\n return 'StrictMode';\n\n case REACT_SUSPENSE_TYPE:\n return 'Suspense';\n\n case REACT_SUSPENSE_LIST_TYPE:\n return 'SuspenseList';\n\n case REACT_CACHE_TYPE:\n {\n return 'Cache';\n }\n\n }\n\n if (typeof type === 'object') {\n {\n if (typeof type.tag === 'number') {\n error('Received an unexpected object in getComponentNameFromType(). ' + 'This is likely a bug in React. Please file an issue.');\n }\n }\n\n switch (type.$$typeof) {\n case REACT_PROVIDER_TYPE:\n {\n var provider = type;\n return getContextName(provider._context) + '.Provider';\n }\n\n case REACT_CONTEXT_TYPE:\n var context = type;\n\n {\n return getContextName(context) + '.Consumer';\n }\n\n case REACT_CONSUMER_TYPE:\n {\n return null;\n }\n\n case REACT_FORWARD_REF_TYPE:\n return getWrappedName(type, type.render, 'ForwardRef');\n\n case REACT_MEMO_TYPE:\n var outerName = type.displayName || null;\n\n if (outerName !== null) {\n return outerName;\n }\n\n return getComponentNameFromType(type.type) || 'Memo';\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n return getComponentNameFromType(init(payload));\n } catch (x) {\n return null;\n }\n }\n }\n }\n\n return null;\n}\n\n// $FlowFixMe[method-unbinding]\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar assign = Object.assign;\n\n/*\n * The `'' + value` pattern (used in perf-sensitive code) throws for Symbol\n * and Temporal.* types. See https://github.com/facebook/react/pull/22064.\n *\n * The functions in this module will throw an easier-to-understand,\n * easier-to-debug exception with a clear errors message message explaining the\n * problem. (Instead of a confusing exception thrown inside the implementation\n * of the `value` object).\n */\n// $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\nfunction typeName(value) {\n {\n // toStringTag is needed for namespaced types like Temporal.Instant\n var hasToStringTag = typeof Symbol === 'function' && Symbol.toStringTag;\n var type = hasToStringTag && value[Symbol.toStringTag] || value.constructor.name || 'Object'; // $FlowFixMe[incompatible-return]\n\n return type;\n }\n} // $FlowFixMe[incompatible-return] only called in DEV, so void return is not possible.\n\n\nfunction willCoercionThrow(value) {\n {\n try {\n testStringCoercion(value);\n return false;\n } catch (e) {\n return true;\n }\n }\n}\n\nfunction testStringCoercion(value) {\n // If you ended up here by following an exception call stack, here's what's\n // happened: you supplied an object or symbol value to React (as a prop, key,\n // DOM attribute, CSS property, string ref, etc.) and when React tried to\n // coerce it to a string using `'' + value`, an exception was thrown.\n //\n // The most common types that will cause this exception are `Symbol` instances\n // and Temporal objects like `Temporal.Instant`. But any object that has a\n // `valueOf` or `[Symbol.toPrimitive]` method that throws will also cause this\n // exception. (Library authors do this to prevent users from using built-in\n // numeric operators like `+` or comparison operators like `>=` because custom\n // methods are needed to perform accurate arithmetic or comparison.)\n //\n // To fix the problem, coerce this object or symbol value to a string before\n // passing it to React. The most reliable way is usually `String(value)`.\n //\n // To find which value is throwing, check the browser or debugger console.\n // Before this exception was thrown, there should be `console.error` output\n // that shows the type (Symbol, Temporal.PlainDate, etc.) that caused the\n // problem and how that type was used: key, atrribute, input value prop, etc.\n // In most cases, this console output also shows the component and its\n // ancestor components where the exception happened.\n //\n // eslint-disable-next-line react-internal/safe-string-coercion\n return '' + value;\n}\nfunction checkKeyStringCoercion(value) {\n {\n if (willCoercionThrow(value)) {\n error('The provided key is an unsupported type %s.' + ' This value must be coerced to a string before using it here.', typeName(value));\n\n return testStringCoercion(value); // throw (to help callers find troubleshooting comments)\n }\n }\n}\n\nvar REACT_CLIENT_REFERENCE$1 = Symbol.for('react.client.reference');\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || enableRenderableContext || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_CLIENT_REFERENCE$1 || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nvar isArrayImpl = Array.isArray; // eslint-disable-next-line no-redeclare\n\nfunction isArray(a) {\n return isArrayImpl(a);\n}\n\n// Helpers to patch console.logs to avoid logging during side-effect free\n// replaying on render function. This currently only patches the object\n// lazily which won't cover if the log function was extracted eagerly.\n// We could also eagerly patch the method.\nvar disabledDepth = 0;\nvar prevLog;\nvar prevInfo;\nvar prevWarn;\nvar prevError;\nvar prevGroup;\nvar prevGroupCollapsed;\nvar prevGroupEnd;\n\nfunction disabledLog() {}\n\ndisabledLog.__reactDisabledLog = true;\nfunction disableLogs() {\n {\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n prevLog = console.log;\n prevInfo = console.info;\n prevWarn = console.warn;\n prevError = console.error;\n prevGroup = console.group;\n prevGroupCollapsed = console.groupCollapsed;\n prevGroupEnd = console.groupEnd; // https://github.com/facebook/react/issues/19099\n\n var props = {\n configurable: true,\n enumerable: true,\n value: disabledLog,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n info: props,\n log: props,\n warn: props,\n error: props,\n group: props,\n groupCollapsed: props,\n groupEnd: props\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n disabledDepth++;\n }\n}\nfunction reenableLogs() {\n {\n disabledDepth--;\n\n if (disabledDepth === 0) {\n /* eslint-disable react-internal/no-production-logging */\n var props = {\n configurable: true,\n enumerable: true,\n writable: true\n }; // $FlowFixMe[cannot-write] Flow thinks console is immutable.\n\n Object.defineProperties(console, {\n log: assign({}, props, {\n value: prevLog\n }),\n info: assign({}, props, {\n value: prevInfo\n }),\n warn: assign({}, props, {\n value: prevWarn\n }),\n error: assign({}, props, {\n value: prevError\n }),\n group: assign({}, props, {\n value: prevGroup\n }),\n groupCollapsed: assign({}, props, {\n value: prevGroupCollapsed\n }),\n groupEnd: assign({}, props, {\n value: prevGroupEnd\n })\n });\n /* eslint-enable react-internal/no-production-logging */\n }\n\n if (disabledDepth < 0) {\n error('disabledDepth fell below zero. ' + 'This is a bug in React. Please file an issue.');\n }\n }\n}\n\nvar ReactCurrentDispatcher = ReactSharedInternals.ReactCurrentDispatcher;\nvar prefix;\nfunction describeBuiltInComponentFrame(name, ownerFn) {\n {\n if (prefix === undefined) {\n // Extract the VM specific prefix used by each line.\n try {\n throw Error();\n } catch (x) {\n var match = x.stack.trim().match(/\\n( *(at )?)/);\n prefix = match && match[1] || '';\n }\n } // We use the prefix to ensure our stacks line up with native stack frames.\n\n\n return '\\n' + prefix + name;\n }\n}\nvar reentry = false;\nvar componentFrameCache;\n\n{\n var PossiblyWeakMap = typeof WeakMap === 'function' ? WeakMap : Map;\n componentFrameCache = new PossiblyWeakMap();\n}\n/**\n * Leverages native browser/VM stack frames to get proper details (e.g.\n * filename, line + col number) for a single component in a component stack. We\n * do this by:\n * (1) throwing and catching an error in the function - this will be our\n * control error.\n * (2) calling the component which will eventually throw an error that we'll\n * catch - this will be our sample error.\n * (3) diffing the control and sample error stacks to find the stack frame\n * which represents our component.\n */\n\n\nfunction describeNativeComponentFrame(fn, construct) {\n // If something asked for a stack inside a fake render, it should get ignored.\n if (!fn || reentry) {\n return '';\n }\n\n {\n var frame = componentFrameCache.get(fn);\n\n if (frame !== undefined) {\n return frame;\n }\n }\n\n reentry = true;\n var previousPrepareStackTrace = Error.prepareStackTrace; // $FlowFixMe[incompatible-type] It does accept undefined.\n\n Error.prepareStackTrace = undefined;\n var previousDispatcher;\n\n {\n previousDispatcher = ReactCurrentDispatcher.current; // Set the dispatcher in DEV because this might be call in the render function\n // for warnings.\n\n ReactCurrentDispatcher.current = null;\n disableLogs();\n }\n /**\n * Finding a common stack frame between sample and control errors can be\n * tricky given the different types and levels of stack trace truncation from\n * different JS VMs. So instead we'll attempt to control what that common\n * frame should be through this object method:\n * Having both the sample and control errors be in the function under the\n * `DescribeNativeComponentFrameRoot` property, + setting the `name` and\n * `displayName` properties of the function ensures that a stack\n * frame exists that has the method name `DescribeNativeComponentFrameRoot` in\n * it for both control and sample stacks.\n */\n\n\n var RunInRootFrame = {\n DetermineComponentFrameRoot: function () {\n var control;\n\n try {\n // This should throw.\n if (construct) {\n // Something should be setting the props in the constructor.\n var Fake = function () {\n throw Error();\n }; // $FlowFixMe[prop-missing]\n\n\n Object.defineProperty(Fake.prototype, 'props', {\n set: function () {\n // We use a throwing setter instead of frozen or non-writable props\n // because that won't throw in a non-strict mode function.\n throw Error();\n }\n });\n\n if (typeof Reflect === 'object' && Reflect.construct) {\n // We construct a different control for this case to include any extra\n // frames added by the construct call.\n try {\n Reflect.construct(Fake, []);\n } catch (x) {\n control = x;\n }\n\n Reflect.construct(fn, [], Fake);\n } else {\n try {\n Fake.call();\n } catch (x) {\n control = x;\n } // $FlowFixMe[prop-missing] found when upgrading Flow\n\n\n fn.call(Fake.prototype);\n }\n } else {\n try {\n throw Error();\n } catch (x) {\n control = x;\n } // TODO(luna): This will currently only throw if the function component\n // tries to access React/ReactDOM/props. We should probably make this throw\n // in simple components too\n\n\n var maybePromise = fn(); // If the function component returns a promise, it's likely an async\n // component, which we don't yet support. Attach a noop catch handler to\n // silence the error.\n // TODO: Implement component stacks for async client components?\n\n if (maybePromise && typeof maybePromise.catch === 'function') {\n maybePromise.catch(function () {});\n }\n }\n } catch (sample) {\n // This is inlined manually because closure doesn't do it for us.\n if (sample && control && typeof sample.stack === 'string') {\n return [sample.stack, control.stack];\n }\n }\n\n return [null, null];\n }\n }; // $FlowFixMe[prop-missing]\n\n RunInRootFrame.DetermineComponentFrameRoot.displayName = 'DetermineComponentFrameRoot';\n var namePropDescriptor = Object.getOwnPropertyDescriptor(RunInRootFrame.DetermineComponentFrameRoot, 'name'); // Before ES6, the `name` property was not configurable.\n\n if (namePropDescriptor && namePropDescriptor.configurable) {\n // V8 utilizes a function's `name` property when generating a stack trace.\n Object.defineProperty(RunInRootFrame.DetermineComponentFrameRoot, // Configurable properties can be updated even if its writable descriptor\n // is set to `false`.\n // $FlowFixMe[cannot-write]\n 'name', {\n value: 'DetermineComponentFrameRoot'\n });\n }\n\n try {\n var _RunInRootFrame$Deter = RunInRootFrame.DetermineComponentFrameRoot(),\n sampleStack = _RunInRootFrame$Deter[0],\n controlStack = _RunInRootFrame$Deter[1];\n\n if (sampleStack && controlStack) {\n // This extracts the first frame from the sample that isn't also in the control.\n // Skipping one frame that we assume is the frame that calls the two.\n var sampleLines = sampleStack.split('\\n');\n var controlLines = controlStack.split('\\n');\n var s = 0;\n var c = 0;\n\n while (s < sampleLines.length && !sampleLines[s].includes('DetermineComponentFrameRoot')) {\n s++;\n }\n\n while (c < controlLines.length && !controlLines[c].includes('DetermineComponentFrameRoot')) {\n c++;\n } // We couldn't find our intentionally injected common root frame, attempt\n // to find another common root frame by search from the bottom of the\n // control stack...\n\n\n if (s === sampleLines.length || c === controlLines.length) {\n s = sampleLines.length - 1;\n c = controlLines.length - 1;\n\n while (s >= 1 && c >= 0 && sampleLines[s] !== controlLines[c]) {\n // We expect at least one stack frame to be shared.\n // Typically this will be the root most one. However, stack frames may be\n // cut off due to maximum stack limits. In this case, one maybe cut off\n // earlier than the other. We assume that the sample is longer or the same\n // and there for cut off earlier. So we should find the root most frame in\n // the sample somewhere in the control.\n c--;\n }\n }\n\n for (; s >= 1 && c >= 0; s--, c--) {\n // Next we find the first one that isn't the same which should be the\n // frame that called our sample function and the control.\n if (sampleLines[s] !== controlLines[c]) {\n // In V8, the first line is describing the message but other VMs don't.\n // If we're about to return the first line, and the control is also on the same\n // line, that's a pretty good indicator that our sample threw at same line as\n // the control. I.e. before we entered the sample frame. So we ignore this result.\n // This can happen if you passed a class to function component, or non-function.\n if (s !== 1 || c !== 1) {\n do {\n s--;\n c--; // We may still have similar intermediate frames from the construct call.\n // The next one that isn't the same should be our match though.\n\n if (c < 0 || sampleLines[s] !== controlLines[c]) {\n // V8 adds a \"new\" prefix for native classes. Let's remove it to make it prettier.\n var _frame = '\\n' + sampleLines[s].replace(' at new ', ' at '); // If our component frame is labeled \"\"\n // but we have a user-provided \"displayName\"\n // splice it in to make the stack more readable.\n\n\n if (fn.displayName && _frame.includes('')) {\n _frame = _frame.replace('', fn.displayName);\n }\n\n if (true) {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, _frame);\n }\n } // Return the line we found.\n\n\n return _frame;\n }\n } while (s >= 1 && c >= 0);\n }\n\n break;\n }\n }\n }\n } finally {\n reentry = false;\n\n {\n ReactCurrentDispatcher.current = previousDispatcher;\n reenableLogs();\n }\n\n Error.prepareStackTrace = previousPrepareStackTrace;\n } // Fallback to just using the name if we couldn't make it throw.\n\n\n var name = fn ? fn.displayName || fn.name : '';\n var syntheticFrame = name ? describeBuiltInComponentFrame(name) : '';\n\n {\n if (typeof fn === 'function') {\n componentFrameCache.set(fn, syntheticFrame);\n }\n }\n\n return syntheticFrame;\n}\nfunction describeFunctionComponentFrame(fn, ownerFn) {\n {\n return describeNativeComponentFrame(fn, false);\n }\n}\n\nfunction shouldConstruct(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction describeUnknownElementTypeFrameInDEV(type, ownerFn) {\n\n if (type == null) {\n return '';\n }\n\n if (typeof type === 'function') {\n {\n return describeNativeComponentFrame(type, shouldConstruct(type));\n }\n }\n\n if (typeof type === 'string') {\n return describeBuiltInComponentFrame(type);\n }\n\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return describeBuiltInComponentFrame('Suspense');\n\n case REACT_SUSPENSE_LIST_TYPE:\n return describeBuiltInComponentFrame('SuspenseList');\n }\n\n if (typeof type === 'object') {\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeFunctionComponentFrame(type.render);\n\n case REACT_MEMO_TYPE:\n // Memo may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(type.type, ownerFn);\n\n case REACT_LAZY_TYPE:\n {\n var lazyComponent = type;\n var payload = lazyComponent._payload;\n var init = lazyComponent._init;\n\n try {\n // Lazy may contain any component type so we recursively resolve it.\n return describeUnknownElementTypeFrameInDEV(init(payload), ownerFn);\n } catch (x) {}\n }\n }\n }\n\n return '';\n}\n\nvar ReactCurrentOwner = ReactSharedInternals.ReactCurrentOwner;\nvar ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;\nvar REACT_CLIENT_REFERENCE = Symbol.for('react.client.reference');\nvar specialPropKeyWarningShown;\nvar specialPropRefWarningShown;\nvar didWarnAboutStringRefs;\n\n{\n didWarnAboutStringRefs = {};\n}\n\nfunction hasValidRef(config) {\n {\n if (hasOwnProperty.call(config, 'ref')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'ref').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.ref !== undefined;\n}\n\nfunction hasValidKey(config) {\n {\n if (hasOwnProperty.call(config, 'key')) {\n var getter = Object.getOwnPropertyDescriptor(config, 'key').get;\n\n if (getter && getter.isReactWarning) {\n return false;\n }\n }\n }\n\n return config.key !== undefined;\n}\n\nfunction warnIfStringRefCannotBeAutoConverted(config, self) {\n {\n if (typeof config.ref === 'string' && ReactCurrentOwner.current && self && ReactCurrentOwner.current.stateNode !== self) {\n var componentName = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (!didWarnAboutStringRefs[componentName]) {\n error('Component \"%s\" contains the string ref \"%s\". ' + 'Support for string refs will be removed in a future major release. ' + 'This case cannot be automatically converted to an arrow function. ' + 'We ask you to manually fix this case by using useRef() or createRef() instead. ' + 'Learn more about using refs safely here: ' + 'https://reactjs.org/link/strict-mode-string-ref', getComponentNameFromType(ReactCurrentOwner.current.type), config.ref);\n\n didWarnAboutStringRefs[componentName] = true;\n }\n }\n }\n}\n\nfunction defineKeyPropWarningGetter(props, displayName) {\n {\n var warnAboutAccessingKey = function () {\n if (!specialPropKeyWarningShown) {\n specialPropKeyWarningShown = true;\n\n error('%s: `key` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingKey.isReactWarning = true;\n Object.defineProperty(props, 'key', {\n get: warnAboutAccessingKey,\n configurable: true\n });\n }\n}\n\nfunction defineRefPropWarningGetter(props, displayName) {\n {\n {\n var warnAboutAccessingRef = function () {\n if (!specialPropRefWarningShown) {\n specialPropRefWarningShown = true;\n\n error('%s: `ref` is not a prop. Trying to access it will result ' + 'in `undefined` being returned. If you need to access the same ' + 'value within the child component, you should pass it as a different ' + 'prop. (https://reactjs.org/link/special-props)', displayName);\n }\n };\n\n warnAboutAccessingRef.isReactWarning = true;\n Object.defineProperty(props, 'ref', {\n get: warnAboutAccessingRef,\n configurable: true\n });\n }\n }\n}\n/**\n * Factory method to create a new React element. This no longer adheres to\n * the class pattern, so do not use new to call it. Also, instanceof check\n * will not work. Instead test $$typeof field against Symbol.for('react.element') to check\n * if something is a React Element.\n *\n * @param {*} type\n * @param {*} props\n * @param {*} key\n * @param {string|object} ref\n * @param {*} owner\n * @param {*} self A *temporary* helper to detect places where `this` is\n * different from the `owner` when React.createElement is called, so that we\n * can warn. We want to get rid of owner and replace string `ref`s with arrow\n * functions, and as long as `this` and owner are the same, there will be no\n * change in behavior.\n * @param {*} source An annotation object (added by a transpiler or otherwise)\n * indicating filename, line number, and/or other information.\n * @internal\n */\n\n\nfunction ReactElement(type, key, _ref, self, source, owner, props) {\n var ref;\n\n {\n ref = _ref;\n }\n\n var element;\n\n {\n // In prod, `ref` is a regular property. It will be removed in a\n // future release.\n element = {\n // This tag allows us to uniquely identify this as a React Element\n $$typeof: REACT_ELEMENT_TYPE,\n // Built-in properties that belong on the element\n type: type,\n key: key,\n ref: ref,\n props: props,\n // Record the component responsible for creating this element.\n _owner: owner\n };\n }\n\n {\n // The validation flag is currently mutative. We put it on\n // an external backing store so that we can freeze the whole object.\n // This can be replaced with a WeakMap once they are implemented in\n // commonly used development environments.\n element._store = {}; // To make comparing ReactElements easier for testing purposes, we make\n // the validation flag non-enumerable (where possible, which should\n // include every environment we run tests in), so the test framework\n // ignores it.\n\n Object.defineProperty(element._store, 'validated', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: false\n }); // debugInfo contains Server Component debug information.\n\n Object.defineProperty(element, '_debugInfo', {\n configurable: false,\n enumerable: false,\n writable: true,\n value: null\n });\n\n if (Object.freeze) {\n Object.freeze(element.props);\n Object.freeze(element);\n }\n }\n\n return element;\n}\nvar didWarnAboutKeySpread = {};\n/**\n * https://github.com/reactjs/rfcs/pull/107\n * @param {*} type\n * @param {object} props\n * @param {string} key\n */\n\nfunction jsxDEV$1(type, config, maybeKey, isStaticChildren, source, self) {\n {\n if (!isValidElementType(type)) {\n // This is an invalid element type.\n //\n // We warn in this case but don't throw. We expect the element creation to\n // succeed and there will likely be errors in render.\n var info = '';\n\n if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {\n info += ' You likely forgot to export your component from the file ' + \"it's defined in, or you might have mixed up default and named imports.\";\n }\n\n var typeString;\n\n if (type === null) {\n typeString = 'null';\n } else if (isArray(type)) {\n typeString = 'array';\n } else if (type !== undefined && type.$$typeof === REACT_ELEMENT_TYPE) {\n typeString = \"<\" + (getComponentNameFromType(type.type) || 'Unknown') + \" />\";\n info = ' Did you accidentally export a JSX literal instead of a component?';\n } else {\n typeString = typeof type;\n }\n\n error('React.jsx: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', typeString, info);\n } else {\n // This is a valid element type.\n // Skip key warning if the type isn't valid since our key validation logic\n // doesn't expect a non-string/function type and can throw confusing\n // errors. We don't want exception behavior to differ between dev and\n // prod. (Rendering will throw with a helpful message and as soon as the\n // type is fixed, the key warnings will appear.)\n var children = config.children;\n\n if (children !== undefined) {\n if (isStaticChildren) {\n if (isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n validateChildKeys(children[i], type);\n }\n\n if (Object.freeze) {\n Object.freeze(children);\n }\n } else {\n error('React.jsx: Static children should always be an array. ' + 'You are likely explicitly calling React.jsxs or React.jsxDEV. ' + 'Use the Babel transform instead.');\n }\n } else {\n validateChildKeys(children, type);\n }\n }\n } // Warn about key spread regardless of whether the type is valid.\n\n\n if (hasOwnProperty.call(config, 'key')) {\n var componentName = getComponentNameFromType(type);\n var keys = Object.keys(config).filter(function (k) {\n return k !== 'key';\n });\n var beforeExample = keys.length > 0 ? '{key: someKey, ' + keys.join(': ..., ') + ': ...}' : '{key: someKey}';\n\n if (!didWarnAboutKeySpread[componentName + beforeExample]) {\n var afterExample = keys.length > 0 ? '{' + keys.join(': ..., ') + ': ...}' : '{}';\n\n error('A props object containing a \"key\" prop is being spread into JSX:\\n' + ' let props = %s;\\n' + ' <%s {...props} />\\n' + 'React keys must be passed directly to JSX without using spread:\\n' + ' let props = %s;\\n' + ' <%s key={someKey} {...props} />', beforeExample, componentName, afterExample, componentName);\n\n didWarnAboutKeySpread[componentName + beforeExample] = true;\n }\n }\n\n var propName; // Reserved names are extracted\n\n var props = {};\n var key = null;\n var ref = null; // Currently, key can be spread in as a prop. This causes a potential\n // issue if key is also explicitly declared (ie. \n // or ). We want to deprecate key spread,\n // but as an intermediary step, we will use jsxDEV for everything except\n // , because we aren't currently able to tell if\n // key is explicitly declared to be undefined or not.\n\n if (maybeKey !== undefined) {\n {\n checkKeyStringCoercion(maybeKey);\n }\n\n key = '' + maybeKey;\n }\n\n if (hasValidKey(config)) {\n {\n checkKeyStringCoercion(config.key);\n }\n\n key = '' + config.key;\n }\n\n if (hasValidRef(config)) {\n {\n ref = config.ref;\n }\n\n warnIfStringRefCannotBeAutoConverted(config, self);\n } // Remaining properties are added to a new props object\n\n\n for (propName in config) {\n if (hasOwnProperty.call(config, propName) && // Skip over reserved prop names\n propName !== 'key' && (propName !== 'ref')) {\n props[propName] = config[propName];\n }\n } // Resolve default props\n\n\n if (type && type.defaultProps) {\n var defaultProps = type.defaultProps;\n\n for (propName in defaultProps) {\n if (props[propName] === undefined) {\n props[propName] = defaultProps[propName];\n }\n }\n }\n\n if (key || ref) {\n var displayName = typeof type === 'function' ? type.displayName || type.name || 'Unknown' : type;\n\n if (key) {\n defineKeyPropWarningGetter(props, displayName);\n }\n\n if (ref) {\n defineRefPropWarningGetter(props, displayName);\n }\n }\n\n var element = ReactElement(type, key, ref, self, source, ReactCurrentOwner.current, props);\n\n if (type === REACT_FRAGMENT_TYPE) {\n validateFragmentProps(element);\n }\n\n return element;\n }\n}\n\nfunction getDeclarationErrorAddendum() {\n {\n if (ReactCurrentOwner.current) {\n var name = getComponentNameFromType(ReactCurrentOwner.current.type);\n\n if (name) {\n return '\\n\\nCheck the render method of `' + name + '`.';\n }\n }\n\n return '';\n }\n}\n/**\n * Ensure that every element either is passed in a static location, in an\n * array with an explicit keys property defined, or in an object literal\n * with valid key property.\n *\n * @internal\n * @param {ReactNode} node Statically passed child of any type.\n * @param {*} parentType node's parent's type.\n */\n\n\nfunction validateChildKeys(node, parentType) {\n {\n if (typeof node !== 'object' || !node) {\n return;\n }\n\n if (node.$$typeof === REACT_CLIENT_REFERENCE) ; else if (isArray(node)) {\n for (var i = 0; i < node.length; i++) {\n var child = node[i];\n\n if (isValidElement(child)) {\n validateExplicitKey(child, parentType);\n }\n }\n } else if (isValidElement(node)) {\n // This element was passed in a valid location.\n if (node._store) {\n node._store.validated = true;\n }\n } else {\n var iteratorFn = getIteratorFn(node);\n\n if (typeof iteratorFn === 'function') {\n // Entry iterators used to provide implicit keys,\n // but now we print a separate warning for them later.\n if (iteratorFn !== node.entries) {\n var iterator = iteratorFn.call(node);\n var step;\n\n while (!(step = iterator.next()).done) {\n if (isValidElement(step.value)) {\n validateExplicitKey(step.value, parentType);\n }\n }\n }\n }\n }\n }\n}\n/**\n * Verifies the object is a ReactElement.\n * See https://reactjs.org/docs/react-api.html#isvalidelement\n * @param {?object} object\n * @return {boolean} True if `object` is a ReactElement.\n * @final\n */\n\n\nfunction isValidElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nvar ownerHasKeyUseWarning = {};\n/**\n * Warn if the element doesn't have an explicit key assigned to it.\n * This element is in an array. The array could grow and shrink or be\n * reordered. All children that haven't already been validated are required to\n * have a \"key\" property assigned to it. Error statuses are cached so a warning\n * will only be shown once.\n *\n * @internal\n * @param {ReactElement} element Element that requires a key.\n * @param {*} parentType element's parent's type.\n */\n\nfunction validateExplicitKey(element, parentType) {\n {\n if (!element._store || element._store.validated || element.key != null) {\n return;\n }\n\n element._store.validated = true;\n var currentComponentErrorInfo = getCurrentComponentErrorInfo(parentType);\n\n if (ownerHasKeyUseWarning[currentComponentErrorInfo]) {\n return;\n }\n\n ownerHasKeyUseWarning[currentComponentErrorInfo] = true; // Usually the current owner is the offender, but if it accepts children as a\n // property, it may be the creator of the child that's responsible for\n // assigning it a key.\n\n var childOwner = '';\n\n if (element && element._owner && element._owner !== ReactCurrentOwner.current) {\n // Give the component that originally created this child.\n childOwner = \" It was passed a child from \" + getComponentNameFromType(element._owner.type) + \".\";\n }\n\n setCurrentlyValidatingElement(element);\n\n error('Each child in a list should have a unique \"key\" prop.' + '%s%s See https://reactjs.org/link/warning-keys for more information.', currentComponentErrorInfo, childOwner);\n\n setCurrentlyValidatingElement(null);\n }\n}\n\nfunction setCurrentlyValidatingElement(element) {\n {\n if (element) {\n var owner = element._owner;\n var stack = describeUnknownElementTypeFrameInDEV(element.type, owner ? owner.type : null);\n ReactDebugCurrentFrame.setExtraStackFrame(stack);\n } else {\n ReactDebugCurrentFrame.setExtraStackFrame(null);\n }\n }\n}\n\nfunction getCurrentComponentErrorInfo(parentType) {\n {\n var info = getDeclarationErrorAddendum();\n\n if (!info) {\n var parentName = getComponentNameFromType(parentType);\n\n if (parentName) {\n info = \"\\n\\nCheck the top-level render call using <\" + parentName + \">.\";\n }\n }\n\n return info;\n }\n}\n/**\n * Given a fragment, validate that it can only be provided with fragment props\n * @param {ReactElement} fragment\n */\n\n\nfunction validateFragmentProps(fragment) {\n // TODO: Move this to render phase instead of at element creation.\n {\n var keys = Object.keys(fragment.props);\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n\n if (key !== 'children' && key !== 'key') {\n setCurrentlyValidatingElement(fragment);\n\n error('Invalid prop `%s` supplied to `React.Fragment`. ' + 'React.Fragment can only have `key` and `children` props.', key);\n\n setCurrentlyValidatingElement(null);\n break;\n }\n }\n\n if (fragment.ref !== null) {\n setCurrentlyValidatingElement(fragment);\n\n error('Invalid attribute `ref` supplied to `React.Fragment`.');\n\n setCurrentlyValidatingElement(null);\n }\n }\n}\n\nvar jsxDEV = jsxDEV$1 ;\n\nexports.Fragment = REACT_FRAGMENT_TYPE;\nexports.jsxDEV = jsxDEV;\n })();\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcyIsIm1hcHBpbmdzIjoiQUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRWE7O0FBRWIsSUFBSSxJQUFxQztBQUN6QztBQUNBOztBQUVBLFlBQVksbUJBQU8sQ0FBQyxzR0FBMEI7O0FBRTlDO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHdEQUF3RDs7QUFFeEQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLGlHQUFpRyxlQUFlO0FBQ2hIO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQSxLQUFLLEdBQUc7O0FBRVIsa0RBQWtEO0FBQ2xEO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBLDRCQUE0QjtBQUM1QjtBQUNBLHFDQUFxQzs7QUFFckMsZ0NBQWdDO0FBQ2hDO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBOztBQUVBLHFFQUFxRTs7QUFFckU7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0Esa0dBQWtHOztBQUVsRztBQUNBO0FBQ0EsRUFBRTs7O0FBR0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE1BQU07QUFDTjtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsd0NBQXdDO0FBQ3hDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLElBQUk7OztBQUdKO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQSxpQ0FBaUM7O0FBRWpDO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLHVDQUF1Qzs7QUFFdkM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBQVM7O0FBRVQ7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQUFTOztBQUVUO0FBQ0Esc0JBQXNCO0FBQ3RCO0FBQ0EsU0FBUztBQUNULHVCQUF1QjtBQUN2QjtBQUNBLFNBQVM7QUFDVCx1QkFBdUI7QUFDdkI7QUFDQSxTQUFTO0FBQ1Qsd0JBQXdCO0FBQ3hCO0FBQ0EsU0FBUztBQUNULHdCQUF3QjtBQUN4QjtBQUNBLFNBQVM7QUFDVCxpQ0FBaUM7QUFDakM7QUFDQSxTQUFTO0FBQ1QsMkJBQTJCO0FBQzNCO0FBQ0EsU0FBUztBQUNULE9BQU87QUFDUDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7O0FBR0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsMkRBQTJEOztBQUUzRDtBQUNBOztBQUVBO0FBQ0EseURBQXlEO0FBQ3pEOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxhQUFhOzs7QUFHYjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXOztBQUVYO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxjQUFjO0FBQ2Q7QUFDQTs7QUFFQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0EsY0FBYztBQUNkO0FBQ0EsY0FBYzs7O0FBR2Q7QUFDQTtBQUNBLFVBQVU7QUFDVjtBQUNBO0FBQ0EsWUFBWTtBQUNaO0FBQ0EsWUFBWTtBQUNaO0FBQ0E7OztBQUdBLG1DQUFtQztBQUNuQztBQUNBO0FBQ0E7O0FBRUE7QUFDQSw2Q0FBNkM7QUFDN0M7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0EsZ0hBQWdIOztBQUVoSDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLEtBQUs7QUFDTDs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsYUFBYSxrQkFBa0I7QUFDL0I7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLG1CQUFtQjtBQUNuQjs7QUFFQTtBQUNBO0FBQ0EsZ0ZBQWdGO0FBQ2hGO0FBQ0E7OztBQUdBO0FBQ0E7QUFDQTs7QUFFQSxvQkFBb0IsSUFBSTtBQUN4QjtBQUNBO0FBQ0E7QUFDQSxrQkFBa0I7OztBQUdsQjtBQUNBO0FBQ0EsY0FBYztBQUNkOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsSUFBSTtBQUNKOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0EsSUFBSTs7O0FBR0o7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSztBQUNMO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLE9BQU87QUFDUDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxXQUFXLEdBQUc7QUFDZCxXQUFXLGVBQWU7QUFDMUIsV0FBVyxHQUFHO0FBQ2QsV0FBVyxHQUFHO0FBQ2Q7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLEdBQUc7QUFDZDtBQUNBO0FBQ0E7OztBQUdBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EseUJBQXlCO0FBQ3pCO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsS0FBSyxHQUFHOztBQUVSO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxLQUFLOztBQUVMO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFdBQVcsR0FBRztBQUNkLFdBQVcsUUFBUTtBQUNuQixXQUFXLFFBQVE7QUFDbkI7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBLFFBQVE7QUFDUjtBQUNBLFFBQVE7QUFDUjtBQUNBO0FBQ0EsUUFBUTtBQUNSO0FBQ0E7O0FBRUE7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0EsNEJBQTRCLHFCQUFxQjtBQUNqRDtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBLFlBQVk7QUFDWjtBQUNBO0FBQ0EsVUFBVTtBQUNWO0FBQ0E7QUFDQTtBQUNBLE1BQU07OztBQUdOO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsT0FBTztBQUNQLDhDQUE4QyxnREFBZ0QsTUFBTSxhQUFhOztBQUVqSDtBQUNBLCtDQUErQyxrQ0FBa0MsT0FBTzs7QUFFeEYsdUdBQXVHLGNBQWMsVUFBVSxnR0FBZ0csa0JBQWtCLFVBQVUsVUFBVTs7QUFFclE7QUFDQTtBQUNBOztBQUVBLGtCQUFrQjs7QUFFbEI7QUFDQTtBQUNBLG9CQUFvQjtBQUNwQiwyREFBMkQsVUFBVTtBQUNyRSx5QkFBeUIsVUFBVTtBQUNuQztBQUNBLGFBQWEsVUFBVTtBQUN2Qjs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQSxNQUFNOzs7QUFHTjtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTs7O0FBR047QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7O0FBRUE7O0FBRUE7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLFdBQVc7QUFDdEIsV0FBVyxHQUFHO0FBQ2Q7OztBQUdBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7O0FBRUEsb0RBQW9EO0FBQ3BELHNCQUFzQixpQkFBaUI7QUFDdkM7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047QUFDQTtBQUNBO0FBQ0E7QUFDQSxNQUFNO0FBQ047O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsV0FBVyxTQUFTO0FBQ3BCLFlBQVksU0FBUztBQUNyQjtBQUNBOzs7QUFHQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGNBQWM7QUFDekIsV0FBVyxHQUFHO0FBQ2Q7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQSw2REFBNkQ7QUFDN0Q7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7O0FBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsTUFBTTtBQUNOO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxXQUFXLGNBQWM7QUFDekI7OztBQUdBO0FBQ0E7QUFDQTtBQUNBOztBQUVBLG9CQUFvQixpQkFBaUI7QUFDckM7O0FBRUE7QUFDQTs7QUFFQTs7QUFFQTtBQUNBO0FBQ0E7QUFDQTs7QUFFQTtBQUNBOztBQUVBOztBQUVBO0FBQ0E7QUFDQTtBQUNBOztBQUVBOztBQUVBLGdCQUFnQjtBQUNoQixjQUFjO0FBQ2QsR0FBRztBQUNIIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcz84MDgxIl0sInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2UgUmVhY3RcbiAqIHJlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qc1xuICpcbiAqIENvcHlyaWdodCAoYykgTWV0YSBQbGF0Zm9ybXMsIEluYy4gYW5kIGFmZmlsaWF0ZXMuXG4gKlxuICogVGhpcyBzb3VyY2UgY29kZSBpcyBsaWNlbnNlZCB1bmRlciB0aGUgTUlUIGxpY2Vuc2UgZm91bmQgaW4gdGhlXG4gKiBMSUNFTlNFIGZpbGUgaW4gdGhlIHJvb3QgZGlyZWN0b3J5IG9mIHRoaXMgc291cmNlIHRyZWUuXG4gKi9cblxuJ3VzZSBzdHJpY3QnO1xuXG5pZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09IFwicHJvZHVjdGlvblwiKSB7XG4gIChmdW5jdGlvbigpIHtcbid1c2Ugc3RyaWN0JztcblxudmFyIFJlYWN0ID0gcmVxdWlyZShcIm5leHQvZGlzdC9jb21waWxlZC9yZWFjdFwiKTtcblxuLy8gQVRURU5USU9OXG4vLyBXaGVuIGFkZGluZyBuZXcgc3ltYm9scyB0byB0aGlzIGZpbGUsXG4vLyBQbGVhc2UgY29uc2lkZXIgYWxzbyBhZGRpbmcgdG8gJ3JlYWN0LWRldnRvb2xzLXNoYXJlZC9zcmMvYmFja2VuZC9SZWFjdFN5bWJvbHMnXG4vLyBUaGUgU3ltYm9sIHVzZWQgdG8gdGFnIHRoZSBSZWFjdEVsZW1lbnQtbGlrZSB0eXBlcy5cbnZhciBSRUFDVF9FTEVNRU5UX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50Jyk7XG52YXIgUkVBQ1RfUE9SVEFMX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5wb3J0YWwnKTtcbnZhciBSRUFDVF9GUkFHTUVOVF9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZnJhZ21lbnQnKTtcbnZhciBSRUFDVF9TVFJJQ1RfTU9ERV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3RyaWN0X21vZGUnKTtcbnZhciBSRUFDVF9QUk9GSUxFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvZmlsZXInKTtcbnZhciBSRUFDVF9QUk9WSURFUl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QucHJvdmlkZXInKTsgLy8gVE9ETzogRGVsZXRlIHdpdGggZW5hYmxlUmVuZGVyYWJsZUNvbnRleHRcblxudmFyIFJFQUNUX0NPTlNVTUVSX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5jb25zdW1lcicpO1xudmFyIFJFQUNUX0NPTlRFWFRfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmNvbnRleHQnKTtcbnZhciBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFID0gU3ltYm9sLmZvcigncmVhY3QuZm9yd2FyZF9yZWYnKTtcbnZhciBSRUFDVF9TVVNQRU5TRV9UWVBFID0gU3ltYm9sLmZvcigncmVhY3Quc3VzcGVuc2UnKTtcbnZhciBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5zdXNwZW5zZV9saXN0Jyk7XG52YXIgUkVBQ1RfTUVNT19UWVBFID0gU3ltYm9sLmZvcigncmVhY3QubWVtbycpO1xudmFyIFJFQUNUX0xBWllfVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0LmxhenknKTtcbnZhciBSRUFDVF9PRkZTQ1JFRU5fVFlQRSA9IFN5bWJvbC5mb3IoJ3JlYWN0Lm9mZnNjcmVlbicpO1xudmFyIFJFQUNUX0NBQ0hFX1RZUEUgPSBTeW1ib2wuZm9yKCdyZWFjdC5jYWNoZScpO1xudmFyIE1BWUJFX0lURVJBVE9SX1NZTUJPTCA9IFN5bWJvbC5pdGVyYXRvcjtcbnZhciBGQVVYX0lURVJBVE9SX1NZTUJPTCA9ICdAQGl0ZXJhdG9yJztcbmZ1bmN0aW9uIGdldEl0ZXJhdG9yRm4obWF5YmVJdGVyYWJsZSkge1xuICBpZiAobWF5YmVJdGVyYWJsZSA9PT0gbnVsbCB8fCB0eXBlb2YgbWF5YmVJdGVyYWJsZSAhPT0gJ29iamVjdCcpIHtcbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIHZhciBtYXliZUl0ZXJhdG9yID0gTUFZQkVfSVRFUkFUT1JfU1lNQk9MICYmIG1heWJlSXRlcmFibGVbTUFZQkVfSVRFUkFUT1JfU1lNQk9MXSB8fCBtYXliZUl0ZXJhYmxlW0ZBVVhfSVRFUkFUT1JfU1lNQk9MXTtcblxuICBpZiAodHlwZW9mIG1heWJlSXRlcmF0b3IgPT09ICdmdW5jdGlvbicpIHtcbiAgICByZXR1cm4gbWF5YmVJdGVyYXRvcjtcbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG52YXIgUmVhY3RTaGFyZWRJbnRlcm5hbHMgPSBSZWFjdC5fX1NFQ1JFVF9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9ZT1VfV0lMTF9CRV9GSVJFRDtcblxuZnVuY3Rpb24gZXJyb3IoZm9ybWF0KSB7XG4gIHtcbiAgICB7XG4gICAgICBmb3IgKHZhciBfbGVuMiA9IGFyZ3VtZW50cy5sZW5ndGgsIGFyZ3MgPSBuZXcgQXJyYXkoX2xlbjIgPiAxID8gX2xlbjIgLSAxIDogMCksIF9rZXkyID0gMTsgX2tleTIgPCBfbGVuMjsgX2tleTIrKykge1xuICAgICAgICBhcmdzW19rZXkyIC0gMV0gPSBhcmd1bWVudHNbX2tleTJdO1xuICAgICAgfVxuXG4gICAgICBwcmludFdhcm5pbmcoJ2Vycm9yJywgZm9ybWF0LCBhcmdzKTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gcHJpbnRXYXJuaW5nKGxldmVsLCBmb3JtYXQsIGFyZ3MpIHtcbiAgLy8gV2hlbiBjaGFuZ2luZyB0aGlzIGxvZ2ljLCB5b3UgbWlnaHQgd2FudCB0byBhbHNvXG4gIC8vIHVwZGF0ZSBjb25zb2xlV2l0aFN0YWNrRGV2Lnd3dy5qcyBhcyB3ZWxsLlxuICB7XG4gICAgdmFyIFJlYWN0RGVidWdDdXJyZW50RnJhbWUgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdERlYnVnQ3VycmVudEZyYW1lO1xuICAgIHZhciBzdGFjayA9IFJlYWN0RGVidWdDdXJyZW50RnJhbWUuZ2V0U3RhY2tBZGRlbmR1bSgpO1xuXG4gICAgaWYgKHN0YWNrICE9PSAnJykge1xuICAgICAgZm9ybWF0ICs9ICclcyc7XG4gICAgICBhcmdzID0gYXJncy5jb25jYXQoW3N0YWNrXSk7XG4gICAgfSAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cblxuXG4gICAgdmFyIGFyZ3NXaXRoRm9ybWF0ID0gYXJncy5tYXAoZnVuY3Rpb24gKGl0ZW0pIHtcbiAgICAgIHJldHVybiBTdHJpbmcoaXRlbSk7XG4gICAgfSk7IC8vIENhcmVmdWw6IFJOIGN1cnJlbnRseSBkZXBlbmRzIG9uIHRoaXMgcHJlZml4XG5cbiAgICBhcmdzV2l0aEZvcm1hdC51bnNoaWZ0KCdXYXJuaW5nOiAnICsgZm9ybWF0KTsgLy8gV2UgaW50ZW50aW9uYWxseSBkb24ndCB1c2Ugc3ByZWFkIChvciAuYXBwbHkpIGRpcmVjdGx5IGJlY2F1c2UgaXRcbiAgICAvLyBicmVha3MgSUU5OiBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvaXNzdWVzLzEzNjEwXG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZ1xuXG4gICAgRnVuY3Rpb24ucHJvdG90eXBlLmFwcGx5LmNhbGwoY29uc29sZVtsZXZlbF0sIGNvbnNvbGUsIGFyZ3NXaXRoRm9ybWF0KTtcbiAgfVxufVxuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLVxuXG52YXIgZW5hYmxlU2NvcGVBUEkgPSBmYWxzZTsgLy8gRXhwZXJpbWVudGFsIENyZWF0ZSBFdmVudCBIYW5kbGUgQVBJLlxudmFyIGVuYWJsZUNhY2hlRWxlbWVudCA9IGZhbHNlO1xudmFyIGVuYWJsZVRyYW5zaXRpb25UcmFjaW5nID0gZmFsc2U7IC8vIE5vIGtub3duIGJ1Z3MsIGJ1dCBuZWVkcyBwZXJmb3JtYW5jZSB0ZXN0aW5nXG5cbnZhciBlbmFibGVMZWdhY3lIaWRkZW4gPSBmYWxzZTsgLy8gRW5hYmxlcyB1bnN0YWJsZV9hdm9pZFRoaXNGYWxsYmFjayBmZWF0dXJlIGluIEZpYmVyXG52YXIgZW5hYmxlUmVuZGVyYWJsZUNvbnRleHQgPSBmYWxzZTtcbi8vIHN0dWZmLiBJbnRlbmRlZCB0byBlbmFibGUgUmVhY3QgY29yZSBtZW1iZXJzIHRvIG1vcmUgZWFzaWx5IGRlYnVnIHNjaGVkdWxpbmdcbi8vIGlzc3VlcyBpbiBERVYgYnVpbGRzLlxuXG52YXIgZW5hYmxlRGVidWdUcmFjaW5nID0gZmFsc2U7XG5cbmZ1bmN0aW9uIGdldFdyYXBwZWROYW1lKG91dGVyVHlwZSwgaW5uZXJUeXBlLCB3cmFwcGVyTmFtZSkge1xuICB2YXIgZGlzcGxheU5hbWUgPSBvdXRlclR5cGUuZGlzcGxheU5hbWU7XG5cbiAgaWYgKGRpc3BsYXlOYW1lKSB7XG4gICAgcmV0dXJuIGRpc3BsYXlOYW1lO1xuICB9XG5cbiAgdmFyIGZ1bmN0aW9uTmFtZSA9IGlubmVyVHlwZS5kaXNwbGF5TmFtZSB8fCBpbm5lclR5cGUubmFtZSB8fCAnJztcbiAgcmV0dXJuIGZ1bmN0aW9uTmFtZSAhPT0gJycgPyB3cmFwcGVyTmFtZSArIFwiKFwiICsgZnVuY3Rpb25OYW1lICsgXCIpXCIgOiB3cmFwcGVyTmFtZTtcbn0gLy8gS2VlcCBpbiBzeW5jIHdpdGggcmVhY3QtcmVjb25jaWxlci9nZXRDb21wb25lbnROYW1lRnJvbUZpYmVyXG5cblxuZnVuY3Rpb24gZ2V0Q29udGV4dE5hbWUodHlwZSkge1xuICByZXR1cm4gdHlwZS5kaXNwbGF5TmFtZSB8fCAnQ29udGV4dCc7XG59XG5cbnZhciBSRUFDVF9DTElFTlRfUkVGRVJFTkNFJDIgPSBTeW1ib2wuZm9yKCdyZWFjdC5jbGllbnQucmVmZXJlbmNlJyk7IC8vIE5vdGUgdGhhdCB0aGUgcmVjb25jaWxlciBwYWNrYWdlIHNob3VsZCBnZW5lcmFsbHkgcHJlZmVyIHRvIHVzZSBnZXRDb21wb25lbnROYW1lRnJvbUZpYmVyKCkgaW5zdGVhZC5cblxuZnVuY3Rpb24gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGUgPT0gbnVsbCkge1xuICAgIC8vIEhvc3Qgcm9vdCwgdGV4dCBub2RlIG9yIGp1c3QgaW52YWxpZCB0eXBlLlxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAgaWYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMikge1xuICAgICAgLy8gVE9ETzogQ3JlYXRlIGEgY29udmVudGlvbiBmb3IgbmFtaW5nIGNsaWVudCByZWZlcmVuY2VzIHdpdGggZGVidWcgaW5mby5cbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlLmRpc3BsYXlOYW1lIHx8IHR5cGUubmFtZSB8fCBudWxsO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJykge1xuICAgIHJldHVybiB0eXBlO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBSRUFDVF9GUkFHTUVOVF9UWVBFOlxuICAgICAgcmV0dXJuICdGcmFnbWVudCc7XG5cbiAgICBjYXNlIFJFQUNUX1BPUlRBTF9UWVBFOlxuICAgICAgcmV0dXJuICdQb3J0YWwnO1xuXG4gICAgY2FzZSBSRUFDVF9QUk9GSUxFUl9UWVBFOlxuICAgICAgcmV0dXJuICdQcm9maWxlcic7XG5cbiAgICBjYXNlIFJFQUNUX1NUUklDVF9NT0RFX1RZUEU6XG4gICAgICByZXR1cm4gJ1N0cmljdE1vZGUnO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgcmV0dXJuICdTdXNwZW5zZSc7XG5cbiAgICBjYXNlIFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRTpcbiAgICAgIHJldHVybiAnU3VzcGVuc2VMaXN0JztcblxuICAgIGNhc2UgUkVBQ1RfQ0FDSEVfVFlQRTpcbiAgICAgIHtcbiAgICAgICAgcmV0dXJuICdDYWNoZSc7XG4gICAgICB9XG5cbiAgfVxuXG4gIGlmICh0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcpIHtcbiAgICB7XG4gICAgICBpZiAodHlwZW9mIHR5cGUudGFnID09PSAnbnVtYmVyJykge1xuICAgICAgICBlcnJvcignUmVjZWl2ZWQgYW4gdW5leHBlY3RlZCBvYmplY3QgaW4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKCkuICcgKyAnVGhpcyBpcyBsaWtlbHkgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9QUk9WSURFUl9UWVBFOlxuICAgICAgICB7XG4gICAgICAgICAgdmFyIHByb3ZpZGVyID0gdHlwZTtcbiAgICAgICAgICByZXR1cm4gZ2V0Q29udGV4dE5hbWUocHJvdmlkZXIuX2NvbnRleHQpICsgJy5Qcm92aWRlcic7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBSRUFDVF9DT05URVhUX1RZUEU6XG4gICAgICAgIHZhciBjb250ZXh0ID0gdHlwZTtcblxuICAgICAgICB7XG4gICAgICAgICAgcmV0dXJuIGdldENvbnRleHROYW1lKGNvbnRleHQpICsgJy5Db25zdW1lcic7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBSRUFDVF9DT05TVU1FUl9UWVBFOlxuICAgICAgICB7XG4gICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cblxuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZ2V0V3JhcHBlZE5hbWUodHlwZSwgdHlwZS5yZW5kZXIsICdGb3J3YXJkUmVmJyk7XG5cbiAgICAgIGNhc2UgUkVBQ1RfTUVNT19UWVBFOlxuICAgICAgICB2YXIgb3V0ZXJOYW1lID0gdHlwZS5kaXNwbGF5TmFtZSB8fCBudWxsO1xuXG4gICAgICAgIGlmIChvdXRlck5hbWUgIT09IG51bGwpIHtcbiAgICAgICAgICByZXR1cm4gb3V0ZXJOYW1lO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdNZW1vJztcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICByZXR1cm4gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKGluaXQocGF5bG9hZCkpO1xuICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHJldHVybiBudWxsO1xufVxuXG4vLyAkRmxvd0ZpeE1lW21ldGhvZC11bmJpbmRpbmddXG52YXIgaGFzT3duUHJvcGVydHkgPSBPYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O1xuXG52YXIgYXNzaWduID0gT2JqZWN0LmFzc2lnbjtcblxuLypcbiAqIFRoZSBgJycgKyB2YWx1ZWAgcGF0dGVybiAodXNlZCBpbiBwZXJmLXNlbnNpdGl2ZSBjb2RlKSB0aHJvd3MgZm9yIFN5bWJvbFxuICogYW5kIFRlbXBvcmFsLiogdHlwZXMuIFNlZSBodHRwczovL2dpdGh1Yi5jb20vZmFjZWJvb2svcmVhY3QvcHVsbC8yMjA2NC5cbiAqXG4gKiBUaGUgZnVuY3Rpb25zIGluIHRoaXMgbW9kdWxlIHdpbGwgdGhyb3cgYW4gZWFzaWVyLXRvLXVuZGVyc3RhbmQsXG4gKiBlYXNpZXItdG8tZGVidWcgZXhjZXB0aW9uIHdpdGggYSBjbGVhciBlcnJvcnMgbWVzc2FnZSBtZXNzYWdlIGV4cGxhaW5pbmcgdGhlXG4gKiBwcm9ibGVtLiAoSW5zdGVhZCBvZiBhIGNvbmZ1c2luZyBleGNlcHRpb24gdGhyb3duIGluc2lkZSB0aGUgaW1wbGVtZW50YXRpb25cbiAqIG9mIHRoZSBgdmFsdWVgIG9iamVjdCkuXG4gKi9cbi8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXJldHVybl0gb25seSBjYWxsZWQgaW4gREVWLCBzbyB2b2lkIHJldHVybiBpcyBub3QgcG9zc2libGUuXG5mdW5jdGlvbiB0eXBlTmFtZSh2YWx1ZSkge1xuICB7XG4gICAgLy8gdG9TdHJpbmdUYWcgaXMgbmVlZGVkIGZvciBuYW1lc3BhY2VkIHR5cGVzIGxpa2UgVGVtcG9yYWwuSW5zdGFudFxuICAgIHZhciBoYXNUb1N0cmluZ1RhZyA9IHR5cGVvZiBTeW1ib2wgPT09ICdmdW5jdGlvbicgJiYgU3ltYm9sLnRvU3RyaW5nVGFnO1xuICAgIHZhciB0eXBlID0gaGFzVG9TdHJpbmdUYWcgJiYgdmFsdWVbU3ltYm9sLnRvU3RyaW5nVGFnXSB8fCB2YWx1ZS5jb25zdHJ1Y3Rvci5uYW1lIHx8ICdPYmplY3QnOyAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dXG5cbiAgICByZXR1cm4gdHlwZTtcbiAgfVxufSAvLyAkRmxvd0ZpeE1lW2luY29tcGF0aWJsZS1yZXR1cm5dIG9ubHkgY2FsbGVkIGluIERFViwgc28gdm9pZCByZXR1cm4gaXMgbm90IHBvc3NpYmxlLlxuXG5cbmZ1bmN0aW9uIHdpbGxDb2VyY2lvblRocm93KHZhbHVlKSB7XG4gIHtcbiAgICB0cnkge1xuICAgICAgdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9IGNhdGNoIChlKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gdGVzdFN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIC8vIElmIHlvdSBlbmRlZCB1cCBoZXJlIGJ5IGZvbGxvd2luZyBhbiBleGNlcHRpb24gY2FsbCBzdGFjaywgaGVyZSdzIHdoYXQnc1xuICAvLyBoYXBwZW5lZDogeW91IHN1cHBsaWVkIGFuIG9iamVjdCBvciBzeW1ib2wgdmFsdWUgdG8gUmVhY3QgKGFzIGEgcHJvcCwga2V5LFxuICAvLyBET00gYXR0cmlidXRlLCBDU1MgcHJvcGVydHksIHN0cmluZyByZWYsIGV0Yy4pIGFuZCB3aGVuIFJlYWN0IHRyaWVkIHRvXG4gIC8vIGNvZXJjZSBpdCB0byBhIHN0cmluZyB1c2luZyBgJycgKyB2YWx1ZWAsIGFuIGV4Y2VwdGlvbiB3YXMgdGhyb3duLlxuICAvL1xuICAvLyBUaGUgbW9zdCBjb21tb24gdHlwZXMgdGhhdCB3aWxsIGNhdXNlIHRoaXMgZXhjZXB0aW9uIGFyZSBgU3ltYm9sYCBpbnN0YW5jZXNcbiAgLy8gYW5kIFRlbXBvcmFsIG9iamVjdHMgbGlrZSBgVGVtcG9yYWwuSW5zdGFudGAuIEJ1dCBhbnkgb2JqZWN0IHRoYXQgaGFzIGFcbiAgLy8gYHZhbHVlT2ZgIG9yIGBbU3ltYm9sLnRvUHJpbWl0aXZlXWAgbWV0aG9kIHRoYXQgdGhyb3dzIHdpbGwgYWxzbyBjYXVzZSB0aGlzXG4gIC8vIGV4Y2VwdGlvbi4gKExpYnJhcnkgYXV0aG9ycyBkbyB0aGlzIHRvIHByZXZlbnQgdXNlcnMgZnJvbSB1c2luZyBidWlsdC1pblxuICAvLyBudW1lcmljIG9wZXJhdG9ycyBsaWtlIGArYCBvciBjb21wYXJpc29uIG9wZXJhdG9ycyBsaWtlIGA+PWAgYmVjYXVzZSBjdXN0b21cbiAgLy8gbWV0aG9kcyBhcmUgbmVlZGVkIHRvIHBlcmZvcm0gYWNjdXJhdGUgYXJpdGhtZXRpYyBvciBjb21wYXJpc29uLilcbiAgLy9cbiAgLy8gVG8gZml4IHRoZSBwcm9ibGVtLCBjb2VyY2UgdGhpcyBvYmplY3Qgb3Igc3ltYm9sIHZhbHVlIHRvIGEgc3RyaW5nIGJlZm9yZVxuICAvLyBwYXNzaW5nIGl0IHRvIFJlYWN0LiBUaGUgbW9zdCByZWxpYWJsZSB3YXkgaXMgdXN1YWxseSBgU3RyaW5nKHZhbHVlKWAuXG4gIC8vXG4gIC8vIFRvIGZpbmQgd2hpY2ggdmFsdWUgaXMgdGhyb3dpbmcsIGNoZWNrIHRoZSBicm93c2VyIG9yIGRlYnVnZ2VyIGNvbnNvbGUuXG4gIC8vIEJlZm9yZSB0aGlzIGV4Y2VwdGlvbiB3YXMgdGhyb3duLCB0aGVyZSBzaG91bGQgYmUgYGNvbnNvbGUuZXJyb3JgIG91dHB1dFxuICAvLyB0aGF0IHNob3dzIHRoZSB0eXBlIChTeW1ib2wsIFRlbXBvcmFsLlBsYWluRGF0ZSwgZXRjLikgdGhhdCBjYXVzZWQgdGhlXG4gIC8vIHByb2JsZW0gYW5kIGhvdyB0aGF0IHR5cGUgd2FzIHVzZWQ6IGtleSwgYXRycmlidXRlLCBpbnB1dCB2YWx1ZSBwcm9wLCBldGMuXG4gIC8vIEluIG1vc3QgY2FzZXMsIHRoaXMgY29uc29sZSBvdXRwdXQgYWxzbyBzaG93cyB0aGUgY29tcG9uZW50IGFuZCBpdHNcbiAgLy8gYW5jZXN0b3IgY29tcG9uZW50cyB3aGVyZSB0aGUgZXhjZXB0aW9uIGhhcHBlbmVkLlxuICAvL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgcmVhY3QtaW50ZXJuYWwvc2FmZS1zdHJpbmctY29lcmNpb25cbiAgcmV0dXJuICcnICsgdmFsdWU7XG59XG5mdW5jdGlvbiBjaGVja0tleVN0cmluZ0NvZXJjaW9uKHZhbHVlKSB7XG4gIHtcbiAgICBpZiAod2lsbENvZXJjaW9uVGhyb3codmFsdWUpKSB7XG4gICAgICBlcnJvcignVGhlIHByb3ZpZGVkIGtleSBpcyBhbiB1bnN1cHBvcnRlZCB0eXBlICVzLicgKyAnIFRoaXMgdmFsdWUgbXVzdCBiZSBjb2VyY2VkIHRvIGEgc3RyaW5nIGJlZm9yZSB1c2luZyBpdCBoZXJlLicsIHR5cGVOYW1lKHZhbHVlKSk7XG5cbiAgICAgIHJldHVybiB0ZXN0U3RyaW5nQ29lcmNpb24odmFsdWUpOyAvLyB0aHJvdyAodG8gaGVscCBjYWxsZXJzIGZpbmQgdHJvdWJsZXNob290aW5nIGNvbW1lbnRzKVxuICAgIH1cbiAgfVxufVxuXG52YXIgUkVBQ1RfQ0xJRU5UX1JFRkVSRU5DRSQxID0gU3ltYm9sLmZvcigncmVhY3QuY2xpZW50LnJlZmVyZW5jZScpO1xuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpIHtcbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnc3RyaW5nJyB8fCB0eXBlb2YgdHlwZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgIHJldHVybiB0cnVlO1xuICB9IC8vIE5vdGU6IHR5cGVvZiBtaWdodCBiZSBvdGhlciB0aGFuICdzeW1ib2wnIG9yICdudW1iZXInIChlLmcuIGlmIGl0J3MgYSBwb2x5ZmlsbCkuXG5cblxuICBpZiAodHlwZSA9PT0gUkVBQ1RfRlJBR01FTlRfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9QUk9GSUxFUl9UWVBFIHx8IGVuYWJsZURlYnVnVHJhY2luZyAgfHwgdHlwZSA9PT0gUkVBQ1RfU1RSSUNUX01PREVfVFlQRSB8fCB0eXBlID09PSBSRUFDVF9TVVNQRU5TRV9UWVBFIHx8IHR5cGUgPT09IFJFQUNUX1NVU1BFTlNFX0xJU1RfVFlQRSB8fCBlbmFibGVMZWdhY3lIaWRkZW4gIHx8IHR5cGUgPT09IFJFQUNUX09GRlNDUkVFTl9UWVBFIHx8IGVuYWJsZVNjb3BlQVBJICB8fCBlbmFibGVDYWNoZUVsZW1lbnQgIHx8IGVuYWJsZVRyYW5zaXRpb25UcmFjaW5nICkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0JyAmJiB0eXBlICE9PSBudWxsKSB7XG4gICAgaWYgKHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0xBWllfVFlQRSB8fCB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9NRU1PX1RZUEUgfHwgdHlwZS4kJHR5cGVvZiA9PT0gUkVBQ1RfQ09OVEVYVF9UWVBFIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX1BST1ZJREVSX1RZUEUgfHwgZW5hYmxlUmVuZGVyYWJsZUNvbnRleHQgIHx8IHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0ZPUldBUkRfUkVGX1RZUEUgfHwgLy8gVGhpcyBuZWVkcyB0byBpbmNsdWRlIGFsbCBwb3NzaWJsZSBtb2R1bGUgcmVmZXJlbmNlIG9iamVjdFxuICAgIC8vIHR5cGVzIHN1cHBvcnRlZCBieSBhbnkgRmxpZ2h0IGNvbmZpZ3VyYXRpb24gYW55d2hlcmUgc2luY2VcbiAgICAvLyB3ZSBkb24ndCBrbm93IHdoaWNoIEZsaWdodCBidWlsZCB0aGlzIHdpbGwgZW5kIHVwIGJlaW5nIHVzZWRcbiAgICAvLyB3aXRoLlxuICAgIHR5cGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UkMSB8fCB0eXBlLmdldE1vZHVsZUlkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn1cblxudmFyIGlzQXJyYXlJbXBsID0gQXJyYXkuaXNBcnJheTsgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXJlZGVjbGFyZVxuXG5mdW5jdGlvbiBpc0FycmF5KGEpIHtcbiAgcmV0dXJuIGlzQXJyYXlJbXBsKGEpO1xufVxuXG4vLyBIZWxwZXJzIHRvIHBhdGNoIGNvbnNvbGUubG9ncyB0byBhdm9pZCBsb2dnaW5nIGR1cmluZyBzaWRlLWVmZmVjdCBmcmVlXG4vLyByZXBsYXlpbmcgb24gcmVuZGVyIGZ1bmN0aW9uLiBUaGlzIGN1cnJlbnRseSBvbmx5IHBhdGNoZXMgdGhlIG9iamVjdFxuLy8gbGF6aWx5IHdoaWNoIHdvbid0IGNvdmVyIGlmIHRoZSBsb2cgZnVuY3Rpb24gd2FzIGV4dHJhY3RlZCBlYWdlcmx5LlxuLy8gV2UgY291bGQgYWxzbyBlYWdlcmx5IHBhdGNoIHRoZSBtZXRob2QuXG52YXIgZGlzYWJsZWREZXB0aCA9IDA7XG52YXIgcHJldkxvZztcbnZhciBwcmV2SW5mbztcbnZhciBwcmV2V2FybjtcbnZhciBwcmV2RXJyb3I7XG52YXIgcHJldkdyb3VwO1xudmFyIHByZXZHcm91cENvbGxhcHNlZDtcbnZhciBwcmV2R3JvdXBFbmQ7XG5cbmZ1bmN0aW9uIGRpc2FibGVkTG9nKCkge31cblxuZGlzYWJsZWRMb2cuX19yZWFjdERpc2FibGVkTG9nID0gdHJ1ZTtcbmZ1bmN0aW9uIGRpc2FibGVMb2dzKCkge1xuICB7XG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgICAgcHJldkxvZyA9IGNvbnNvbGUubG9nO1xuICAgICAgcHJldkluZm8gPSBjb25zb2xlLmluZm87XG4gICAgICBwcmV2V2FybiA9IGNvbnNvbGUud2FybjtcbiAgICAgIHByZXZFcnJvciA9IGNvbnNvbGUuZXJyb3I7XG4gICAgICBwcmV2R3JvdXAgPSBjb25zb2xlLmdyb3VwO1xuICAgICAgcHJldkdyb3VwQ29sbGFwc2VkID0gY29uc29sZS5ncm91cENvbGxhcHNlZDtcbiAgICAgIHByZXZHcm91cEVuZCA9IGNvbnNvbGUuZ3JvdXBFbmQ7IC8vIGh0dHBzOi8vZ2l0aHViLmNvbS9mYWNlYm9vay9yZWFjdC9pc3N1ZXMvMTkwOTlcblxuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHZhbHVlOiBkaXNhYmxlZExvZyxcbiAgICAgICAgd3JpdGFibGU6IHRydWVcbiAgICAgIH07IC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXSBGbG93IHRoaW5rcyBjb25zb2xlIGlzIGltbXV0YWJsZS5cblxuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnRpZXMoY29uc29sZSwge1xuICAgICAgICBpbmZvOiBwcm9wcyxcbiAgICAgICAgbG9nOiBwcm9wcyxcbiAgICAgICAgd2FybjogcHJvcHMsXG4gICAgICAgIGVycm9yOiBwcm9wcyxcbiAgICAgICAgZ3JvdXA6IHByb3BzLFxuICAgICAgICBncm91cENvbGxhcHNlZDogcHJvcHMsXG4gICAgICAgIGdyb3VwRW5kOiBwcm9wc1xuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGRpc2FibGVkRGVwdGgrKztcbiAgfVxufVxuZnVuY3Rpb24gcmVlbmFibGVMb2dzKCkge1xuICB7XG4gICAgZGlzYWJsZWREZXB0aC0tO1xuXG4gICAgaWYgKGRpc2FibGVkRGVwdGggPT09IDApIHtcbiAgICAgIC8qIGVzbGludC1kaXNhYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgICAgdmFyIHByb3BzID0ge1xuICAgICAgICBjb25maWd1cmFibGU6IHRydWUsXG4gICAgICAgIGVudW1lcmFibGU6IHRydWUsXG4gICAgICAgIHdyaXRhYmxlOiB0cnVlXG4gICAgICB9OyAvLyAkRmxvd0ZpeE1lW2Nhbm5vdC13cml0ZV0gRmxvdyB0aGlua3MgY29uc29sZSBpcyBpbW11dGFibGUuXG5cbiAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGNvbnNvbGUsIHtcbiAgICAgICAgbG9nOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZMb2dcbiAgICAgICAgfSksXG4gICAgICAgIGluZm86IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkluZm9cbiAgICAgICAgfSksXG4gICAgICAgIHdhcm46IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldldhcm5cbiAgICAgICAgfSksXG4gICAgICAgIGVycm9yOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZFcnJvclxuICAgICAgICB9KSxcbiAgICAgICAgZ3JvdXA6IGFzc2lnbih7fSwgcHJvcHMsIHtcbiAgICAgICAgICB2YWx1ZTogcHJldkdyb3VwXG4gICAgICAgIH0pLFxuICAgICAgICBncm91cENvbGxhcHNlZDogYXNzaWduKHt9LCBwcm9wcywge1xuICAgICAgICAgIHZhbHVlOiBwcmV2R3JvdXBDb2xsYXBzZWRcbiAgICAgICAgfSksXG4gICAgICAgIGdyb3VwRW5kOiBhc3NpZ24oe30sIHByb3BzLCB7XG4gICAgICAgICAgdmFsdWU6IHByZXZHcm91cEVuZFxuICAgICAgICB9KVxuICAgICAgfSk7XG4gICAgICAvKiBlc2xpbnQtZW5hYmxlIHJlYWN0LWludGVybmFsL25vLXByb2R1Y3Rpb24tbG9nZ2luZyAqL1xuICAgIH1cblxuICAgIGlmIChkaXNhYmxlZERlcHRoIDwgMCkge1xuICAgICAgZXJyb3IoJ2Rpc2FibGVkRGVwdGggZmVsbCBiZWxvdyB6ZXJvLiAnICsgJ1RoaXMgaXMgYSBidWcgaW4gUmVhY3QuIFBsZWFzZSBmaWxlIGFuIGlzc3VlLicpO1xuICAgIH1cbiAgfVxufVxuXG52YXIgUmVhY3RDdXJyZW50RGlzcGF0Y2hlciA9IFJlYWN0U2hhcmVkSW50ZXJuYWxzLlJlYWN0Q3VycmVudERpc3BhdGNoZXI7XG52YXIgcHJlZml4O1xuZnVuY3Rpb24gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUobmFtZSwgb3duZXJGbikge1xuICB7XG4gICAgaWYgKHByZWZpeCA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAvLyBFeHRyYWN0IHRoZSBWTSBzcGVjaWZpYyBwcmVmaXggdXNlZCBieSBlYWNoIGxpbmUuXG4gICAgICB0cnkge1xuICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICB2YXIgbWF0Y2ggPSB4LnN0YWNrLnRyaW0oKS5tYXRjaCgvXFxuKCAqKGF0ICk/KS8pO1xuICAgICAgICBwcmVmaXggPSBtYXRjaCAmJiBtYXRjaFsxXSB8fCAnJztcbiAgICAgIH1cbiAgICB9IC8vIFdlIHVzZSB0aGUgcHJlZml4IHRvIGVuc3VyZSBvdXIgc3RhY2tzIGxpbmUgdXAgd2l0aCBuYXRpdmUgc3RhY2sgZnJhbWVzLlxuXG5cbiAgICByZXR1cm4gJ1xcbicgKyBwcmVmaXggKyBuYW1lO1xuICB9XG59XG52YXIgcmVlbnRyeSA9IGZhbHNlO1xudmFyIGNvbXBvbmVudEZyYW1lQ2FjaGU7XG5cbntcbiAgdmFyIFBvc3NpYmx5V2Vha01hcCA9IHR5cGVvZiBXZWFrTWFwID09PSAnZnVuY3Rpb24nID8gV2Vha01hcCA6IE1hcDtcbiAgY29tcG9uZW50RnJhbWVDYWNoZSA9IG5ldyBQb3NzaWJseVdlYWtNYXAoKTtcbn1cbi8qKlxuICogTGV2ZXJhZ2VzIG5hdGl2ZSBicm93c2VyL1ZNIHN0YWNrIGZyYW1lcyB0byBnZXQgcHJvcGVyIGRldGFpbHMgKGUuZy5cbiAqIGZpbGVuYW1lLCBsaW5lICsgY29sIG51bWJlcikgZm9yIGEgc2luZ2xlIGNvbXBvbmVudCBpbiBhIGNvbXBvbmVudCBzdGFjay4gV2VcbiAqIGRvIHRoaXMgYnk6XG4gKiAgICgxKSB0aHJvd2luZyBhbmQgY2F0Y2hpbmcgYW4gZXJyb3IgaW4gdGhlIGZ1bmN0aW9uIC0gdGhpcyB3aWxsIGJlIG91clxuICogICAgICAgY29udHJvbCBlcnJvci5cbiAqICAgKDIpIGNhbGxpbmcgdGhlIGNvbXBvbmVudCB3aGljaCB3aWxsIGV2ZW50dWFsbHkgdGhyb3cgYW4gZXJyb3IgdGhhdCB3ZSdsbFxuICogICAgICAgY2F0Y2ggLSB0aGlzIHdpbGwgYmUgb3VyIHNhbXBsZSBlcnJvci5cbiAqICAgKDMpIGRpZmZpbmcgdGhlIGNvbnRyb2wgYW5kIHNhbXBsZSBlcnJvciBzdGFja3MgdG8gZmluZCB0aGUgc3RhY2sgZnJhbWVcbiAqICAgICAgIHdoaWNoIHJlcHJlc2VudHMgb3VyIGNvbXBvbmVudC5cbiAqL1xuXG5cbmZ1bmN0aW9uIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZm4sIGNvbnN0cnVjdCkge1xuICAvLyBJZiBzb21ldGhpbmcgYXNrZWQgZm9yIGEgc3RhY2sgaW5zaWRlIGEgZmFrZSByZW5kZXIsIGl0IHNob3VsZCBnZXQgaWdub3JlZC5cbiAgaWYgKCFmbiB8fCByZWVudHJ5KSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAge1xuICAgIHZhciBmcmFtZSA9IGNvbXBvbmVudEZyYW1lQ2FjaGUuZ2V0KGZuKTtcblxuICAgIGlmIChmcmFtZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByZXR1cm4gZnJhbWU7XG4gICAgfVxuICB9XG5cbiAgcmVlbnRyeSA9IHRydWU7XG4gIHZhciBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlID0gRXJyb3IucHJlcGFyZVN0YWNrVHJhY2U7IC8vICRGbG93Rml4TWVbaW5jb21wYXRpYmxlLXR5cGVdIEl0IGRvZXMgYWNjZXB0IHVuZGVmaW5lZC5cblxuICBFcnJvci5wcmVwYXJlU3RhY2tUcmFjZSA9IHVuZGVmaW5lZDtcbiAgdmFyIHByZXZpb3VzRGlzcGF0Y2hlcjtcblxuICB7XG4gICAgcHJldmlvdXNEaXNwYXRjaGVyID0gUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50OyAvLyBTZXQgdGhlIGRpc3BhdGNoZXIgaW4gREVWIGJlY2F1c2UgdGhpcyBtaWdodCBiZSBjYWxsIGluIHRoZSByZW5kZXIgZnVuY3Rpb25cbiAgICAvLyBmb3Igd2FybmluZ3MuXG5cbiAgICBSZWFjdEN1cnJlbnREaXNwYXRjaGVyLmN1cnJlbnQgPSBudWxsO1xuICAgIGRpc2FibGVMb2dzKCk7XG4gIH1cbiAgLyoqXG4gICAqIEZpbmRpbmcgYSBjb21tb24gc3RhY2sgZnJhbWUgYmV0d2VlbiBzYW1wbGUgYW5kIGNvbnRyb2wgZXJyb3JzIGNhbiBiZVxuICAgKiB0cmlja3kgZ2l2ZW4gdGhlIGRpZmZlcmVudCB0eXBlcyBhbmQgbGV2ZWxzIG9mIHN0YWNrIHRyYWNlIHRydW5jYXRpb24gZnJvbVxuICAgKiBkaWZmZXJlbnQgSlMgVk1zLiBTbyBpbnN0ZWFkIHdlJ2xsIGF0dGVtcHQgdG8gY29udHJvbCB3aGF0IHRoYXQgY29tbW9uXG4gICAqIGZyYW1lIHNob3VsZCBiZSB0aHJvdWdoIHRoaXMgb2JqZWN0IG1ldGhvZDpcbiAgICogSGF2aW5nIGJvdGggdGhlIHNhbXBsZSBhbmQgY29udHJvbCBlcnJvcnMgYmUgaW4gdGhlIGZ1bmN0aW9uIHVuZGVyIHRoZVxuICAgKiBgRGVzY3JpYmVOYXRpdmVDb21wb25lbnRGcmFtZVJvb3RgIHByb3BlcnR5LCArIHNldHRpbmcgdGhlIGBuYW1lYCBhbmRcbiAgICogYGRpc3BsYXlOYW1lYCBwcm9wZXJ0aWVzIG9mIHRoZSBmdW5jdGlvbiBlbnN1cmVzIHRoYXQgYSBzdGFja1xuICAgKiBmcmFtZSBleGlzdHMgdGhhdCBoYXMgdGhlIG1ldGhvZCBuYW1lIGBEZXNjcmliZU5hdGl2ZUNvbXBvbmVudEZyYW1lUm9vdGAgaW5cbiAgICogaXQgZm9yIGJvdGggY29udHJvbCBhbmQgc2FtcGxlIHN0YWNrcy5cbiAgICovXG5cblxuICB2YXIgUnVuSW5Sb290RnJhbWUgPSB7XG4gICAgRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290OiBmdW5jdGlvbiAoKSB7XG4gICAgICB2YXIgY29udHJvbDtcblxuICAgICAgdHJ5IHtcbiAgICAgICAgLy8gVGhpcyBzaG91bGQgdGhyb3cuXG4gICAgICAgIGlmIChjb25zdHJ1Y3QpIHtcbiAgICAgICAgICAvLyBTb21ldGhpbmcgc2hvdWxkIGJlIHNldHRpbmcgdGhlIHByb3BzIGluIHRoZSBjb25zdHJ1Y3Rvci5cbiAgICAgICAgICB2YXIgRmFrZSA9IGZ1bmN0aW9uICgpIHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgfTsgLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddXG5cblxuICAgICAgICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShGYWtlLnByb3RvdHlwZSwgJ3Byb3BzJywge1xuICAgICAgICAgICAgc2V0OiBmdW5jdGlvbiAoKSB7XG4gICAgICAgICAgICAgIC8vIFdlIHVzZSBhIHRocm93aW5nIHNldHRlciBpbnN0ZWFkIG9mIGZyb3plbiBvciBub24td3JpdGFibGUgcHJvcHNcbiAgICAgICAgICAgICAgLy8gYmVjYXVzZSB0aGF0IHdvbid0IHRocm93IGluIGEgbm9uLXN0cmljdCBtb2RlIGZ1bmN0aW9uLlxuICAgICAgICAgICAgICB0aHJvdyBFcnJvcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKHR5cGVvZiBSZWZsZWN0ID09PSAnb2JqZWN0JyAmJiBSZWZsZWN0LmNvbnN0cnVjdCkge1xuICAgICAgICAgICAgLy8gV2UgY29uc3RydWN0IGEgZGlmZmVyZW50IGNvbnRyb2wgZm9yIHRoaXMgY2FzZSB0byBpbmNsdWRlIGFueSBleHRyYVxuICAgICAgICAgICAgLy8gZnJhbWVzIGFkZGVkIGJ5IHRoZSBjb25zdHJ1Y3QgY2FsbC5cbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KEZha2UsIFtdKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKHgpIHtcbiAgICAgICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIFJlZmxlY3QuY29uc3RydWN0KGZuLCBbXSwgRmFrZSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgIEZha2UuY2FsbCgpO1xuICAgICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgICBjb250cm9sID0geDtcbiAgICAgICAgICAgIH0gLy8gJEZsb3dGaXhNZVtwcm9wLW1pc3NpbmddIGZvdW5kIHdoZW4gdXBncmFkaW5nIEZsb3dcblxuXG4gICAgICAgICAgICBmbi5jYWxsKEZha2UucHJvdG90eXBlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIHRocm93IEVycm9yKCk7XG4gICAgICAgICAgfSBjYXRjaCAoeCkge1xuICAgICAgICAgICAgY29udHJvbCA9IHg7XG4gICAgICAgICAgfSAvLyBUT0RPKGx1bmEpOiBUaGlzIHdpbGwgY3VycmVudGx5IG9ubHkgdGhyb3cgaWYgdGhlIGZ1bmN0aW9uIGNvbXBvbmVudFxuICAgICAgICAgIC8vIHRyaWVzIHRvIGFjY2VzcyBSZWFjdC9SZWFjdERPTS9wcm9wcy4gV2Ugc2hvdWxkIHByb2JhYmx5IG1ha2UgdGhpcyB0aHJvd1xuICAgICAgICAgIC8vIGluIHNpbXBsZSBjb21wb25lbnRzIHRvb1xuXG5cbiAgICAgICAgICB2YXIgbWF5YmVQcm9taXNlID0gZm4oKTsgLy8gSWYgdGhlIGZ1bmN0aW9uIGNvbXBvbmVudCByZXR1cm5zIGEgcHJvbWlzZSwgaXQncyBsaWtlbHkgYW4gYXN5bmNcbiAgICAgICAgICAvLyBjb21wb25lbnQsIHdoaWNoIHdlIGRvbid0IHlldCBzdXBwb3J0LiBBdHRhY2ggYSBub29wIGNhdGNoIGhhbmRsZXIgdG9cbiAgICAgICAgICAvLyBzaWxlbmNlIHRoZSBlcnJvci5cbiAgICAgICAgICAvLyBUT0RPOiBJbXBsZW1lbnQgY29tcG9uZW50IHN0YWNrcyBmb3IgYXN5bmMgY2xpZW50IGNvbXBvbmVudHM/XG5cbiAgICAgICAgICBpZiAobWF5YmVQcm9taXNlICYmIHR5cGVvZiBtYXliZVByb21pc2UuY2F0Y2ggPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIG1heWJlUHJvbWlzZS5jYXRjaChmdW5jdGlvbiAoKSB7fSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9IGNhdGNoIChzYW1wbGUpIHtcbiAgICAgICAgLy8gVGhpcyBpcyBpbmxpbmVkIG1hbnVhbGx5IGJlY2F1c2UgY2xvc3VyZSBkb2Vzbid0IGRvIGl0IGZvciB1cy5cbiAgICAgICAgaWYgKHNhbXBsZSAmJiBjb250cm9sICYmIHR5cGVvZiBzYW1wbGUuc3RhY2sgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgcmV0dXJuIFtzYW1wbGUuc3RhY2ssIGNvbnRyb2wuc3RhY2tdO1xuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbbnVsbCwgbnVsbF07XG4gICAgfVxuICB9OyAvLyAkRmxvd0ZpeE1lW3Byb3AtbWlzc2luZ11cblxuICBSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QuZGlzcGxheU5hbWUgPSAnRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290JztcbiAgdmFyIG5hbWVQcm9wRGVzY3JpcHRvciA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoUnVuSW5Sb290RnJhbWUuRGV0ZXJtaW5lQ29tcG9uZW50RnJhbWVSb290LCAnbmFtZScpOyAvLyBCZWZvcmUgRVM2LCB0aGUgYG5hbWVgIHByb3BlcnR5IHdhcyBub3QgY29uZmlndXJhYmxlLlxuXG4gIGlmIChuYW1lUHJvcERlc2NyaXB0b3IgJiYgbmFtZVByb3BEZXNjcmlwdG9yLmNvbmZpZ3VyYWJsZSkge1xuICAgIC8vIFY4IHV0aWxpemVzIGEgZnVuY3Rpb24ncyBgbmFtZWAgcHJvcGVydHkgd2hlbiBnZW5lcmF0aW5nIGEgc3RhY2sgdHJhY2UuXG4gICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KFJ1bkluUm9vdEZyYW1lLkRldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCwgLy8gQ29uZmlndXJhYmxlIHByb3BlcnRpZXMgY2FuIGJlIHVwZGF0ZWQgZXZlbiBpZiBpdHMgd3JpdGFibGUgZGVzY3JpcHRvclxuICAgIC8vIGlzIHNldCB0byBgZmFsc2VgLlxuICAgIC8vICRGbG93Rml4TWVbY2Fubm90LXdyaXRlXVxuICAgICduYW1lJywge1xuICAgICAgdmFsdWU6ICdEZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QnXG4gICAgfSk7XG4gIH1cblxuICB0cnkge1xuICAgIHZhciBfUnVuSW5Sb290RnJhbWUkRGV0ZXIgPSBSdW5JblJvb3RGcmFtZS5EZXRlcm1pbmVDb21wb25lbnRGcmFtZVJvb3QoKSxcbiAgICAgICAgc2FtcGxlU3RhY2sgPSBfUnVuSW5Sb290RnJhbWUkRGV0ZXJbMF0sXG4gICAgICAgIGNvbnRyb2xTdGFjayA9IF9SdW5JblJvb3RGcmFtZSREZXRlclsxXTtcblxuICAgIGlmIChzYW1wbGVTdGFjayAmJiBjb250cm9sU3RhY2spIHtcbiAgICAgIC8vIFRoaXMgZXh0cmFjdHMgdGhlIGZpcnN0IGZyYW1lIGZyb20gdGhlIHNhbXBsZSB0aGF0IGlzbid0IGFsc28gaW4gdGhlIGNvbnRyb2wuXG4gICAgICAvLyBTa2lwcGluZyBvbmUgZnJhbWUgdGhhdCB3ZSBhc3N1bWUgaXMgdGhlIGZyYW1lIHRoYXQgY2FsbHMgdGhlIHR3by5cbiAgICAgIHZhciBzYW1wbGVMaW5lcyA9IHNhbXBsZVN0YWNrLnNwbGl0KCdcXG4nKTtcbiAgICAgIHZhciBjb250cm9sTGluZXMgPSBjb250cm9sU3RhY2suc3BsaXQoJ1xcbicpO1xuICAgICAgdmFyIHMgPSAwO1xuICAgICAgdmFyIGMgPSAwO1xuXG4gICAgICB3aGlsZSAocyA8IHNhbXBsZUxpbmVzLmxlbmd0aCAmJiAhc2FtcGxlTGluZXNbc10uaW5jbHVkZXMoJ0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCcpKSB7XG4gICAgICAgIHMrKztcbiAgICAgIH1cblxuICAgICAgd2hpbGUgKGMgPCBjb250cm9sTGluZXMubGVuZ3RoICYmICFjb250cm9sTGluZXNbY10uaW5jbHVkZXMoJ0RldGVybWluZUNvbXBvbmVudEZyYW1lUm9vdCcpKSB7XG4gICAgICAgIGMrKztcbiAgICAgIH0gLy8gV2UgY291bGRuJ3QgZmluZCBvdXIgaW50ZW50aW9uYWxseSBpbmplY3RlZCBjb21tb24gcm9vdCBmcmFtZSwgYXR0ZW1wdFxuICAgICAgLy8gdG8gZmluZCBhbm90aGVyIGNvbW1vbiByb290IGZyYW1lIGJ5IHNlYXJjaCBmcm9tIHRoZSBib3R0b20gb2YgdGhlXG4gICAgICAvLyBjb250cm9sIHN0YWNrLi4uXG5cblxuICAgICAgaWYgKHMgPT09IHNhbXBsZUxpbmVzLmxlbmd0aCB8fCBjID09PSBjb250cm9sTGluZXMubGVuZ3RoKSB7XG4gICAgICAgIHMgPSBzYW1wbGVMaW5lcy5sZW5ndGggLSAxO1xuICAgICAgICBjID0gY29udHJvbExpbmVzLmxlbmd0aCAtIDE7XG5cbiAgICAgICAgd2hpbGUgKHMgPj0gMSAmJiBjID49IDAgJiYgc2FtcGxlTGluZXNbc10gIT09IGNvbnRyb2xMaW5lc1tjXSkge1xuICAgICAgICAgIC8vIFdlIGV4cGVjdCBhdCBsZWFzdCBvbmUgc3RhY2sgZnJhbWUgdG8gYmUgc2hhcmVkLlxuICAgICAgICAgIC8vIFR5cGljYWxseSB0aGlzIHdpbGwgYmUgdGhlIHJvb3QgbW9zdCBvbmUuIEhvd2V2ZXIsIHN0YWNrIGZyYW1lcyBtYXkgYmVcbiAgICAgICAgICAvLyBjdXQgb2ZmIGR1ZSB0byBtYXhpbXVtIHN0YWNrIGxpbWl0cy4gSW4gdGhpcyBjYXNlLCBvbmUgbWF5YmUgY3V0IG9mZlxuICAgICAgICAgIC8vIGVhcmxpZXIgdGhhbiB0aGUgb3RoZXIuIFdlIGFzc3VtZSB0aGF0IHRoZSBzYW1wbGUgaXMgbG9uZ2VyIG9yIHRoZSBzYW1lXG4gICAgICAgICAgLy8gYW5kIHRoZXJlIGZvciBjdXQgb2ZmIGVhcmxpZXIuIFNvIHdlIHNob3VsZCBmaW5kIHRoZSByb290IG1vc3QgZnJhbWUgaW5cbiAgICAgICAgICAvLyB0aGUgc2FtcGxlIHNvbWV3aGVyZSBpbiB0aGUgY29udHJvbC5cbiAgICAgICAgICBjLS07XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgZm9yICg7IHMgPj0gMSAmJiBjID49IDA7IHMtLSwgYy0tKSB7XG4gICAgICAgIC8vIE5leHQgd2UgZmluZCB0aGUgZmlyc3Qgb25lIHRoYXQgaXNuJ3QgdGhlIHNhbWUgd2hpY2ggc2hvdWxkIGJlIHRoZVxuICAgICAgICAvLyBmcmFtZSB0aGF0IGNhbGxlZCBvdXIgc2FtcGxlIGZ1bmN0aW9uIGFuZCB0aGUgY29udHJvbC5cbiAgICAgICAgaWYgKHNhbXBsZUxpbmVzW3NdICE9PSBjb250cm9sTGluZXNbY10pIHtcbiAgICAgICAgICAvLyBJbiBWOCwgdGhlIGZpcnN0IGxpbmUgaXMgZGVzY3JpYmluZyB0aGUgbWVzc2FnZSBidXQgb3RoZXIgVk1zIGRvbid0LlxuICAgICAgICAgIC8vIElmIHdlJ3JlIGFib3V0IHRvIHJldHVybiB0aGUgZmlyc3QgbGluZSwgYW5kIHRoZSBjb250cm9sIGlzIGFsc28gb24gdGhlIHNhbWVcbiAgICAgICAgICAvLyBsaW5lLCB0aGF0J3MgYSBwcmV0dHkgZ29vZCBpbmRpY2F0b3IgdGhhdCBvdXIgc2FtcGxlIHRocmV3IGF0IHNhbWUgbGluZSBhc1xuICAgICAgICAgIC8vIHRoZSBjb250cm9sLiBJLmUuIGJlZm9yZSB3ZSBlbnRlcmVkIHRoZSBzYW1wbGUgZnJhbWUuIFNvIHdlIGlnbm9yZSB0aGlzIHJlc3VsdC5cbiAgICAgICAgICAvLyBUaGlzIGNhbiBoYXBwZW4gaWYgeW91IHBhc3NlZCBhIGNsYXNzIHRvIGZ1bmN0aW9uIGNvbXBvbmVudCwgb3Igbm9uLWZ1bmN0aW9uLlxuICAgICAgICAgIGlmIChzICE9PSAxIHx8IGMgIT09IDEpIHtcbiAgICAgICAgICAgIGRvIHtcbiAgICAgICAgICAgICAgcy0tO1xuICAgICAgICAgICAgICBjLS07IC8vIFdlIG1heSBzdGlsbCBoYXZlIHNpbWlsYXIgaW50ZXJtZWRpYXRlIGZyYW1lcyBmcm9tIHRoZSBjb25zdHJ1Y3QgY2FsbC5cbiAgICAgICAgICAgICAgLy8gVGhlIG5leHQgb25lIHRoYXQgaXNuJ3QgdGhlIHNhbWUgc2hvdWxkIGJlIG91ciBtYXRjaCB0aG91Z2guXG5cbiAgICAgICAgICAgICAgaWYgKGMgPCAwIHx8IHNhbXBsZUxpbmVzW3NdICE9PSBjb250cm9sTGluZXNbY10pIHtcbiAgICAgICAgICAgICAgICAvLyBWOCBhZGRzIGEgXCJuZXdcIiBwcmVmaXggZm9yIG5hdGl2ZSBjbGFzc2VzLiBMZXQncyByZW1vdmUgaXQgdG8gbWFrZSBpdCBwcmV0dGllci5cbiAgICAgICAgICAgICAgICB2YXIgX2ZyYW1lID0gJ1xcbicgKyBzYW1wbGVMaW5lc1tzXS5yZXBsYWNlKCcgYXQgbmV3ICcsICcgYXQgJyk7IC8vIElmIG91ciBjb21wb25lbnQgZnJhbWUgaXMgbGFiZWxlZCBcIjxhbm9ueW1vdXM+XCJcbiAgICAgICAgICAgICAgICAvLyBidXQgd2UgaGF2ZSBhIHVzZXItcHJvdmlkZWQgXCJkaXNwbGF5TmFtZVwiXG4gICAgICAgICAgICAgICAgLy8gc3BsaWNlIGl0IGluIHRvIG1ha2UgdGhlIHN0YWNrIG1vcmUgcmVhZGFibGUuXG5cblxuICAgICAgICAgICAgICAgIGlmIChmbi5kaXNwbGF5TmFtZSAmJiBfZnJhbWUuaW5jbHVkZXMoJzxhbm9ueW1vdXM+JykpIHtcbiAgICAgICAgICAgICAgICAgIF9mcmFtZSA9IF9mcmFtZS5yZXBsYWNlKCc8YW5vbnltb3VzPicsIGZuLmRpc3BsYXlOYW1lKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBmbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgX2ZyYW1lKTtcbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9IC8vIFJldHVybiB0aGUgbGluZSB3ZSBmb3VuZC5cblxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIF9mcmFtZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSB3aGlsZSAocyA+PSAxICYmIGMgPj0gMCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH0gZmluYWxseSB7XG4gICAgcmVlbnRyeSA9IGZhbHNlO1xuXG4gICAge1xuICAgICAgUmVhY3RDdXJyZW50RGlzcGF0Y2hlci5jdXJyZW50ID0gcHJldmlvdXNEaXNwYXRjaGVyO1xuICAgICAgcmVlbmFibGVMb2dzKCk7XG4gICAgfVxuXG4gICAgRXJyb3IucHJlcGFyZVN0YWNrVHJhY2UgPSBwcmV2aW91c1ByZXBhcmVTdGFja1RyYWNlO1xuICB9IC8vIEZhbGxiYWNrIHRvIGp1c3QgdXNpbmcgdGhlIG5hbWUgaWYgd2UgY291bGRuJ3QgbWFrZSBpdCB0aHJvdy5cblxuXG4gIHZhciBuYW1lID0gZm4gPyBmbi5kaXNwbGF5TmFtZSB8fCBmbi5uYW1lIDogJyc7XG4gIHZhciBzeW50aGV0aWNGcmFtZSA9IG5hbWUgPyBkZXNjcmliZUJ1aWx0SW5Db21wb25lbnRGcmFtZShuYW1lKSA6ICcnO1xuXG4gIHtcbiAgICBpZiAodHlwZW9mIGZuID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICBjb21wb25lbnRGcmFtZUNhY2hlLnNldChmbiwgc3ludGhldGljRnJhbWUpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiBzeW50aGV0aWNGcmFtZTtcbn1cbmZ1bmN0aW9uIGRlc2NyaWJlRnVuY3Rpb25Db21wb25lbnRGcmFtZShmbiwgb3duZXJGbikge1xuICB7XG4gICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUoZm4sIGZhbHNlKTtcbiAgfVxufVxuXG5mdW5jdGlvbiBzaG91bGRDb25zdHJ1Y3QoQ29tcG9uZW50KSB7XG4gIHZhciBwcm90b3R5cGUgPSBDb21wb25lbnQucHJvdG90eXBlO1xuICByZXR1cm4gISEocHJvdG90eXBlICYmIHByb3RvdHlwZS5pc1JlYWN0Q29tcG9uZW50KTtcbn1cblxuZnVuY3Rpb24gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKHR5cGUsIG93bmVyRm4pIHtcblxuICBpZiAodHlwZSA9PSBudWxsKSB7XG4gICAgcmV0dXJuICcnO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nKSB7XG4gICAge1xuICAgICAgcmV0dXJuIGRlc2NyaWJlTmF0aXZlQ29tcG9uZW50RnJhbWUodHlwZSwgc2hvdWxkQ29uc3RydWN0KHR5cGUpKTtcbiAgICB9XG4gIH1cblxuICBpZiAodHlwZW9mIHR5cGUgPT09ICdzdHJpbmcnKSB7XG4gICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKHR5cGUpO1xuICB9XG5cbiAgc3dpdGNoICh0eXBlKSB7XG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9UWVBFOlxuICAgICAgcmV0dXJuIGRlc2NyaWJlQnVpbHRJbkNvbXBvbmVudEZyYW1lKCdTdXNwZW5zZScpO1xuXG4gICAgY2FzZSBSRUFDVF9TVVNQRU5TRV9MSVNUX1RZUEU6XG4gICAgICByZXR1cm4gZGVzY3JpYmVCdWlsdEluQ29tcG9uZW50RnJhbWUoJ1N1c3BlbnNlTGlzdCcpO1xuICB9XG5cbiAgaWYgKHR5cGVvZiB0eXBlID09PSAnb2JqZWN0Jykge1xuICAgIHN3aXRjaCAodHlwZS4kJHR5cGVvZikge1xuICAgICAgY2FzZSBSRUFDVF9GT1JXQVJEX1JFRl9UWVBFOlxuICAgICAgICByZXR1cm4gZGVzY3JpYmVGdW5jdGlvbkNvbXBvbmVudEZyYW1lKHR5cGUucmVuZGVyKTtcblxuICAgICAgY2FzZSBSRUFDVF9NRU1PX1RZUEU6XG4gICAgICAgIC8vIE1lbW8gbWF5IGNvbnRhaW4gYW55IGNvbXBvbmVudCB0eXBlIHNvIHdlIHJlY3Vyc2l2ZWx5IHJlc29sdmUgaXQuXG4gICAgICAgIHJldHVybiBkZXNjcmliZVVua25vd25FbGVtZW50VHlwZUZyYW1lSW5ERVYodHlwZS50eXBlLCBvd25lckZuKTtcblxuICAgICAgY2FzZSBSRUFDVF9MQVpZX1RZUEU6XG4gICAgICAgIHtcbiAgICAgICAgICB2YXIgbGF6eUNvbXBvbmVudCA9IHR5cGU7XG4gICAgICAgICAgdmFyIHBheWxvYWQgPSBsYXp5Q29tcG9uZW50Ll9wYXlsb2FkO1xuICAgICAgICAgIHZhciBpbml0ID0gbGF6eUNvbXBvbmVudC5faW5pdDtcblxuICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAvLyBMYXp5IG1heSBjb250YWluIGFueSBjb21wb25lbnQgdHlwZSBzbyB3ZSByZWN1cnNpdmVseSByZXNvbHZlIGl0LlxuICAgICAgICAgICAgcmV0dXJuIGRlc2NyaWJlVW5rbm93bkVsZW1lbnRUeXBlRnJhbWVJbkRFVihpbml0KHBheWxvYWQpLCBvd25lckZuKTtcbiAgICAgICAgICB9IGNhdGNoICh4KSB7fVxuICAgICAgICB9XG4gICAgfVxuICB9XG5cbiAgcmV0dXJuICcnO1xufVxuXG52YXIgUmVhY3RDdXJyZW50T3duZXIgPSBSZWFjdFNoYXJlZEludGVybmFscy5SZWFjdEN1cnJlbnRPd25lcjtcbnZhciBSZWFjdERlYnVnQ3VycmVudEZyYW1lID0gUmVhY3RTaGFyZWRJbnRlcm5hbHMuUmVhY3REZWJ1Z0N1cnJlbnRGcmFtZTtcbnZhciBSRUFDVF9DTElFTlRfUkVGRVJFTkNFID0gU3ltYm9sLmZvcigncmVhY3QuY2xpZW50LnJlZmVyZW5jZScpO1xudmFyIHNwZWNpYWxQcm9wS2V5V2FybmluZ1Nob3duO1xudmFyIHNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duO1xudmFyIGRpZFdhcm5BYm91dFN0cmluZ1JlZnM7XG5cbntcbiAgZGlkV2FybkFib3V0U3RyaW5nUmVmcyA9IHt9O1xufVxuXG5mdW5jdGlvbiBoYXNWYWxpZFJlZihjb25maWcpIHtcbiAge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgJ3JlZicpKSB7XG4gICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsICdyZWYnKS5nZXQ7XG5cbiAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uZmlnLnJlZiAhPT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiBoYXNWYWxpZEtleShjb25maWcpIHtcbiAge1xuICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgJ2tleScpKSB7XG4gICAgICB2YXIgZ2V0dGVyID0gT2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihjb25maWcsICdrZXknKS5nZXQ7XG5cbiAgICAgIGlmIChnZXR0ZXIgJiYgZ2V0dGVyLmlzUmVhY3RXYXJuaW5nKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICByZXR1cm4gY29uZmlnLmtleSAhPT0gdW5kZWZpbmVkO1xufVxuXG5mdW5jdGlvbiB3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQoY29uZmlnLCBzZWxmKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIGNvbmZpZy5yZWYgPT09ICdzdHJpbmcnICYmIFJlYWN0Q3VycmVudE93bmVyLmN1cnJlbnQgJiYgc2VsZiAmJiBSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LnN0YXRlTm9kZSAhPT0gc2VsZikge1xuICAgICAgdmFyIGNvbXBvbmVudE5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdKSB7XG4gICAgICAgIGVycm9yKCdDb21wb25lbnQgXCIlc1wiIGNvbnRhaW5zIHRoZSBzdHJpbmcgcmVmIFwiJXNcIi4gJyArICdTdXBwb3J0IGZvciBzdHJpbmcgcmVmcyB3aWxsIGJlIHJlbW92ZWQgaW4gYSBmdXR1cmUgbWFqb3IgcmVsZWFzZS4gJyArICdUaGlzIGNhc2UgY2Fubm90IGJlIGF1dG9tYXRpY2FsbHkgY29udmVydGVkIHRvIGFuIGFycm93IGZ1bmN0aW9uLiAnICsgJ1dlIGFzayB5b3UgdG8gbWFudWFsbHkgZml4IHRoaXMgY2FzZSBieSB1c2luZyB1c2VSZWYoKSBvciBjcmVhdGVSZWYoKSBpbnN0ZWFkLiAnICsgJ0xlYXJuIG1vcmUgYWJvdXQgdXNpbmcgcmVmcyBzYWZlbHkgaGVyZTogJyArICdodHRwczovL3JlYWN0anMub3JnL2xpbmsvc3RyaWN0LW1vZGUtc3RyaW5nLXJlZicsIGdldENvbXBvbmVudE5hbWVGcm9tVHlwZShSZWFjdEN1cnJlbnRPd25lci5jdXJyZW50LnR5cGUpLCBjb25maWcucmVmKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRTdHJpbmdSZWZzW2NvbXBvbmVudE5hbWVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVmaW5lS2V5UHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gIHtcbiAgICB2YXIgd2FybkFib3V0QWNjZXNzaW5nS2V5ID0gZnVuY3Rpb24gKCkge1xuICAgICAgaWYgKCFzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93bikge1xuICAgICAgICBzcGVjaWFsUHJvcEtleVdhcm5pbmdTaG93biA9IHRydWU7XG5cbiAgICAgICAgZXJyb3IoJyVzOiBga2V5YCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICB3YXJuQWJvdXRBY2Nlc3NpbmdLZXkuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShwcm9wcywgJ2tleScsIHtcbiAgICAgIGdldDogd2FybkFib3V0QWNjZXNzaW5nS2V5LFxuICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgfSk7XG4gIH1cbn1cblxuZnVuY3Rpb24gZGVmaW5lUmVmUHJvcFdhcm5pbmdHZXR0ZXIocHJvcHMsIGRpc3BsYXlOYW1lKSB7XG4gIHtcbiAgICB7XG4gICAgICB2YXIgd2FybkFib3V0QWNjZXNzaW5nUmVmID0gZnVuY3Rpb24gKCkge1xuICAgICAgICBpZiAoIXNwZWNpYWxQcm9wUmVmV2FybmluZ1Nob3duKSB7XG4gICAgICAgICAgc3BlY2lhbFByb3BSZWZXYXJuaW5nU2hvd24gPSB0cnVlO1xuXG4gICAgICAgICAgZXJyb3IoJyVzOiBgcmVmYCBpcyBub3QgYSBwcm9wLiBUcnlpbmcgdG8gYWNjZXNzIGl0IHdpbGwgcmVzdWx0ICcgKyAnaW4gYHVuZGVmaW5lZGAgYmVpbmcgcmV0dXJuZWQuIElmIHlvdSBuZWVkIHRvIGFjY2VzcyB0aGUgc2FtZSAnICsgJ3ZhbHVlIHdpdGhpbiB0aGUgY2hpbGQgY29tcG9uZW50LCB5b3Ugc2hvdWxkIHBhc3MgaXQgYXMgYSBkaWZmZXJlbnQgJyArICdwcm9wLiAoaHR0cHM6Ly9yZWFjdGpzLm9yZy9saW5rL3NwZWNpYWwtcHJvcHMpJywgZGlzcGxheU5hbWUpO1xuICAgICAgICB9XG4gICAgICB9O1xuXG4gICAgICB3YXJuQWJvdXRBY2Nlc3NpbmdSZWYuaXNSZWFjdFdhcm5pbmcgPSB0cnVlO1xuICAgICAgT2JqZWN0LmRlZmluZVByb3BlcnR5KHByb3BzLCAncmVmJywge1xuICAgICAgICBnZXQ6IHdhcm5BYm91dEFjY2Vzc2luZ1JlZixcbiAgICAgICAgY29uZmlndXJhYmxlOiB0cnVlXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbi8qKlxuICogRmFjdG9yeSBtZXRob2QgdG8gY3JlYXRlIGEgbmV3IFJlYWN0IGVsZW1lbnQuIFRoaXMgbm8gbG9uZ2VyIGFkaGVyZXMgdG9cbiAqIHRoZSBjbGFzcyBwYXR0ZXJuLCBzbyBkbyBub3QgdXNlIG5ldyB0byBjYWxsIGl0LiBBbHNvLCBpbnN0YW5jZW9mIGNoZWNrXG4gKiB3aWxsIG5vdCB3b3JrLiBJbnN0ZWFkIHRlc3QgJCR0eXBlb2YgZmllbGQgYWdhaW5zdCBTeW1ib2wuZm9yKCdyZWFjdC5lbGVtZW50JykgdG8gY2hlY2tcbiAqIGlmIHNvbWV0aGluZyBpcyBhIFJlYWN0IEVsZW1lbnQuXG4gKlxuICogQHBhcmFtIHsqfSB0eXBlXG4gKiBAcGFyYW0geyp9IHByb3BzXG4gKiBAcGFyYW0geyp9IGtleVxuICogQHBhcmFtIHtzdHJpbmd8b2JqZWN0fSByZWZcbiAqIEBwYXJhbSB7Kn0gb3duZXJcbiAqIEBwYXJhbSB7Kn0gc2VsZiBBICp0ZW1wb3JhcnkqIGhlbHBlciB0byBkZXRlY3QgcGxhY2VzIHdoZXJlIGB0aGlzYCBpc1xuICogZGlmZmVyZW50IGZyb20gdGhlIGBvd25lcmAgd2hlbiBSZWFjdC5jcmVhdGVFbGVtZW50IGlzIGNhbGxlZCwgc28gdGhhdCB3ZVxuICogY2FuIHdhcm4uIFdlIHdhbnQgdG8gZ2V0IHJpZCBvZiBvd25lciBhbmQgcmVwbGFjZSBzdHJpbmcgYHJlZmBzIHdpdGggYXJyb3dcbiAqIGZ1bmN0aW9ucywgYW5kIGFzIGxvbmcgYXMgYHRoaXNgIGFuZCBvd25lciBhcmUgdGhlIHNhbWUsIHRoZXJlIHdpbGwgYmUgbm9cbiAqIGNoYW5nZSBpbiBiZWhhdmlvci5cbiAqIEBwYXJhbSB7Kn0gc291cmNlIEFuIGFubm90YXRpb24gb2JqZWN0IChhZGRlZCBieSBhIHRyYW5zcGlsZXIgb3Igb3RoZXJ3aXNlKVxuICogaW5kaWNhdGluZyBmaWxlbmFtZSwgbGluZSBudW1iZXIsIGFuZC9vciBvdGhlciBpbmZvcm1hdGlvbi5cbiAqIEBpbnRlcm5hbFxuICovXG5cblxuZnVuY3Rpb24gUmVhY3RFbGVtZW50KHR5cGUsIGtleSwgX3JlZiwgc2VsZiwgc291cmNlLCBvd25lciwgcHJvcHMpIHtcbiAgdmFyIHJlZjtcblxuICB7XG4gICAgcmVmID0gX3JlZjtcbiAgfVxuXG4gIHZhciBlbGVtZW50O1xuXG4gIHtcbiAgICAvLyBJbiBwcm9kLCBgcmVmYCBpcyBhIHJlZ3VsYXIgcHJvcGVydHkuIEl0IHdpbGwgYmUgcmVtb3ZlZCBpbiBhXG4gICAgLy8gZnV0dXJlIHJlbGVhc2UuXG4gICAgZWxlbWVudCA9IHtcbiAgICAgIC8vIFRoaXMgdGFnIGFsbG93cyB1cyB0byB1bmlxdWVseSBpZGVudGlmeSB0aGlzIGFzIGEgUmVhY3QgRWxlbWVudFxuICAgICAgJCR0eXBlb2Y6IFJFQUNUX0VMRU1FTlRfVFlQRSxcbiAgICAgIC8vIEJ1aWx0LWluIHByb3BlcnRpZXMgdGhhdCBiZWxvbmcgb24gdGhlIGVsZW1lbnRcbiAgICAgIHR5cGU6IHR5cGUsXG4gICAgICBrZXk6IGtleSxcbiAgICAgIHJlZjogcmVmLFxuICAgICAgcHJvcHM6IHByb3BzLFxuICAgICAgLy8gUmVjb3JkIHRoZSBjb21wb25lbnQgcmVzcG9uc2libGUgZm9yIGNyZWF0aW5nIHRoaXMgZWxlbWVudC5cbiAgICAgIF9vd25lcjogb3duZXJcbiAgICB9O1xuICB9XG5cbiAge1xuICAgIC8vIFRoZSB2YWxpZGF0aW9uIGZsYWcgaXMgY3VycmVudGx5IG11dGF0aXZlLiBXZSBwdXQgaXQgb25cbiAgICAvLyBhbiBleHRlcm5hbCBiYWNraW5nIHN0b3JlIHNvIHRoYXQgd2UgY2FuIGZyZWV6ZSB0aGUgd2hvbGUgb2JqZWN0LlxuICAgIC8vIFRoaXMgY2FuIGJlIHJlcGxhY2VkIHdpdGggYSBXZWFrTWFwIG9uY2UgdGhleSBhcmUgaW1wbGVtZW50ZWQgaW5cbiAgICAvLyBjb21tb25seSB1c2VkIGRldmVsb3BtZW50IGVudmlyb25tZW50cy5cbiAgICBlbGVtZW50Ll9zdG9yZSA9IHt9OyAvLyBUbyBtYWtlIGNvbXBhcmluZyBSZWFjdEVsZW1lbnRzIGVhc2llciBmb3IgdGVzdGluZyBwdXJwb3Nlcywgd2UgbWFrZVxuICAgIC8vIHRoZSB2YWxpZGF0aW9uIGZsYWcgbm9uLWVudW1lcmFibGUgKHdoZXJlIHBvc3NpYmxlLCB3aGljaCBzaG91bGRcbiAgICAvLyBpbmNsdWRlIGV2ZXJ5IGVudmlyb25tZW50IHdlIHJ1biB0ZXN0cyBpbiksIHNvIHRoZSB0ZXN0IGZyYW1ld29ya1xuICAgIC8vIGlnbm9yZXMgaXQuXG5cbiAgICBPYmplY3QuZGVmaW5lUHJvcGVydHkoZWxlbWVudC5fc3RvcmUsICd2YWxpZGF0ZWQnLCB7XG4gICAgICBjb25maWd1cmFibGU6IGZhbHNlLFxuICAgICAgZW51bWVyYWJsZTogZmFsc2UsXG4gICAgICB3cml0YWJsZTogdHJ1ZSxcbiAgICAgIHZhbHVlOiBmYWxzZVxuICAgIH0pOyAvLyBkZWJ1Z0luZm8gY29udGFpbnMgU2VydmVyIENvbXBvbmVudCBkZWJ1ZyBpbmZvcm1hdGlvbi5cblxuICAgIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShlbGVtZW50LCAnX2RlYnVnSW5mbycsIHtcbiAgICAgIGNvbmZpZ3VyYWJsZTogZmFsc2UsXG4gICAgICBlbnVtZXJhYmxlOiBmYWxzZSxcbiAgICAgIHdyaXRhYmxlOiB0cnVlLFxuICAgICAgdmFsdWU6IG51bGxcbiAgICB9KTtcblxuICAgIGlmIChPYmplY3QuZnJlZXplKSB7XG4gICAgICBPYmplY3QuZnJlZXplKGVsZW1lbnQucHJvcHMpO1xuICAgICAgT2JqZWN0LmZyZWV6ZShlbGVtZW50KTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4gZWxlbWVudDtcbn1cbnZhciBkaWRXYXJuQWJvdXRLZXlTcHJlYWQgPSB7fTtcbi8qKlxuICogaHR0cHM6Ly9naXRodWIuY29tL3JlYWN0anMvcmZjcy9wdWxsLzEwN1xuICogQHBhcmFtIHsqfSB0eXBlXG4gKiBAcGFyYW0ge29iamVjdH0gcHJvcHNcbiAqIEBwYXJhbSB7c3RyaW5nfSBrZXlcbiAqL1xuXG5mdW5jdGlvbiBqc3hERVYkMSh0eXBlLCBjb25maWcsIG1heWJlS2V5LCBpc1N0YXRpY0NoaWxkcmVuLCBzb3VyY2UsIHNlbGYpIHtcbiAge1xuICAgIGlmICghaXNWYWxpZEVsZW1lbnRUeXBlKHR5cGUpKSB7XG4gICAgICAvLyBUaGlzIGlzIGFuIGludmFsaWQgZWxlbWVudCB0eXBlLlxuICAgICAgLy9cbiAgICAgIC8vIFdlIHdhcm4gaW4gdGhpcyBjYXNlIGJ1dCBkb24ndCB0aHJvdy4gV2UgZXhwZWN0IHRoZSBlbGVtZW50IGNyZWF0aW9uIHRvXG4gICAgICAvLyBzdWNjZWVkIGFuZCB0aGVyZSB3aWxsIGxpa2VseSBiZSBlcnJvcnMgaW4gcmVuZGVyLlxuICAgICAgdmFyIGluZm8gPSAnJztcblxuICAgICAgaWYgKHR5cGUgPT09IHVuZGVmaW5lZCB8fCB0eXBlb2YgdHlwZSA9PT0gJ29iamVjdCcgJiYgdHlwZSAhPT0gbnVsbCAmJiBPYmplY3Qua2V5cyh0eXBlKS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgaW5mbyArPSAnIFlvdSBsaWtlbHkgZm9yZ290IHRvIGV4cG9ydCB5b3VyIGNvbXBvbmVudCBmcm9tIHRoZSBmaWxlICcgKyBcIml0J3MgZGVmaW5lZCBpbiwgb3IgeW91IG1pZ2h0IGhhdmUgbWl4ZWQgdXAgZGVmYXVsdCBhbmQgbmFtZWQgaW1wb3J0cy5cIjtcbiAgICAgIH1cblxuICAgICAgdmFyIHR5cGVTdHJpbmc7XG5cbiAgICAgIGlmICh0eXBlID09PSBudWxsKSB7XG4gICAgICAgIHR5cGVTdHJpbmcgPSAnbnVsbCc7XG4gICAgICB9IGVsc2UgaWYgKGlzQXJyYXkodHlwZSkpIHtcbiAgICAgICAgdHlwZVN0cmluZyA9ICdhcnJheSc7XG4gICAgICB9IGVsc2UgaWYgKHR5cGUgIT09IHVuZGVmaW5lZCAmJiB0eXBlLiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEUpIHtcbiAgICAgICAgdHlwZVN0cmluZyA9IFwiPFwiICsgKGdldENvbXBvbmVudE5hbWVGcm9tVHlwZSh0eXBlLnR5cGUpIHx8ICdVbmtub3duJykgKyBcIiAvPlwiO1xuICAgICAgICBpbmZvID0gJyBEaWQgeW91IGFjY2lkZW50YWxseSBleHBvcnQgYSBKU1ggbGl0ZXJhbCBpbnN0ZWFkIG9mIGEgY29tcG9uZW50Pyc7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0eXBlU3RyaW5nID0gdHlwZW9mIHR5cGU7XG4gICAgICB9XG5cbiAgICAgIGVycm9yKCdSZWFjdC5qc3g6IHR5cGUgaXMgaW52YWxpZCAtLSBleHBlY3RlZCBhIHN0cmluZyAoZm9yICcgKyAnYnVpbHQtaW4gY29tcG9uZW50cykgb3IgYSBjbGFzcy9mdW5jdGlvbiAoZm9yIGNvbXBvc2l0ZSAnICsgJ2NvbXBvbmVudHMpIGJ1dCBnb3Q6ICVzLiVzJywgdHlwZVN0cmluZywgaW5mbyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRoaXMgaXMgYSB2YWxpZCBlbGVtZW50IHR5cGUuXG4gICAgICAvLyBTa2lwIGtleSB3YXJuaW5nIGlmIHRoZSB0eXBlIGlzbid0IHZhbGlkIHNpbmNlIG91ciBrZXkgdmFsaWRhdGlvbiBsb2dpY1xuICAgICAgLy8gZG9lc24ndCBleHBlY3QgYSBub24tc3RyaW5nL2Z1bmN0aW9uIHR5cGUgYW5kIGNhbiB0aHJvdyBjb25mdXNpbmdcbiAgICAgIC8vIGVycm9ycy4gV2UgZG9uJ3Qgd2FudCBleGNlcHRpb24gYmVoYXZpb3IgdG8gZGlmZmVyIGJldHdlZW4gZGV2IGFuZFxuICAgICAgLy8gcHJvZC4gKFJlbmRlcmluZyB3aWxsIHRocm93IHdpdGggYSBoZWxwZnVsIG1lc3NhZ2UgYW5kIGFzIHNvb24gYXMgdGhlXG4gICAgICAvLyB0eXBlIGlzIGZpeGVkLCB0aGUga2V5IHdhcm5pbmdzIHdpbGwgYXBwZWFyLilcbiAgICAgIHZhciBjaGlsZHJlbiA9IGNvbmZpZy5jaGlsZHJlbjtcblxuICAgICAgaWYgKGNoaWxkcmVuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGlzU3RhdGljQ2hpbGRyZW4pIHtcbiAgICAgICAgICBpZiAoaXNBcnJheShjaGlsZHJlbikpIHtcbiAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgdmFsaWRhdGVDaGlsZEtleXMoY2hpbGRyZW5baV0sIHR5cGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoT2JqZWN0LmZyZWV6ZSkge1xuICAgICAgICAgICAgICBPYmplY3QuZnJlZXplKGNoaWxkcmVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZXJyb3IoJ1JlYWN0LmpzeDogU3RhdGljIGNoaWxkcmVuIHNob3VsZCBhbHdheXMgYmUgYW4gYXJyYXkuICcgKyAnWW91IGFyZSBsaWtlbHkgZXhwbGljaXRseSBjYWxsaW5nIFJlYWN0LmpzeHMgb3IgUmVhY3QuanN4REVWLiAnICsgJ1VzZSB0aGUgQmFiZWwgdHJhbnNmb3JtIGluc3RlYWQuJyk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHZhbGlkYXRlQ2hpbGRLZXlzKGNoaWxkcmVuLCB0eXBlKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gLy8gV2FybiBhYm91dCBrZXkgc3ByZWFkIHJlZ2FyZGxlc3Mgb2Ygd2hldGhlciB0aGUgdHlwZSBpcyB2YWxpZC5cblxuXG4gICAgaWYgKGhhc093blByb3BlcnR5LmNhbGwoY29uZmlnLCAna2V5JykpIHtcbiAgICAgIHZhciBjb21wb25lbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHR5cGUpO1xuICAgICAgdmFyIGtleXMgPSBPYmplY3Qua2V5cyhjb25maWcpLmZpbHRlcihmdW5jdGlvbiAoaykge1xuICAgICAgICByZXR1cm4gayAhPT0gJ2tleSc7XG4gICAgICB9KTtcbiAgICAgIHZhciBiZWZvcmVFeGFtcGxlID0ga2V5cy5sZW5ndGggPiAwID8gJ3trZXk6IHNvbWVLZXksICcgKyBrZXlzLmpvaW4oJzogLi4uLCAnKSArICc6IC4uLn0nIDogJ3trZXk6IHNvbWVLZXl9JztcblxuICAgICAgaWYgKCFkaWRXYXJuQWJvdXRLZXlTcHJlYWRbY29tcG9uZW50TmFtZSArIGJlZm9yZUV4YW1wbGVdKSB7XG4gICAgICAgIHZhciBhZnRlckV4YW1wbGUgPSBrZXlzLmxlbmd0aCA+IDAgPyAneycgKyBrZXlzLmpvaW4oJzogLi4uLCAnKSArICc6IC4uLn0nIDogJ3t9JztcblxuICAgICAgICBlcnJvcignQSBwcm9wcyBvYmplY3QgY29udGFpbmluZyBhIFwia2V5XCIgcHJvcCBpcyBiZWluZyBzcHJlYWQgaW50byBKU1g6XFxuJyArICcgIGxldCBwcm9wcyA9ICVzO1xcbicgKyAnICA8JXMgey4uLnByb3BzfSAvPlxcbicgKyAnUmVhY3Qga2V5cyBtdXN0IGJlIHBhc3NlZCBkaXJlY3RseSB0byBKU1ggd2l0aG91dCB1c2luZyBzcHJlYWQ6XFxuJyArICcgIGxldCBwcm9wcyA9ICVzO1xcbicgKyAnICA8JXMga2V5PXtzb21lS2V5fSB7Li4ucHJvcHN9IC8+JywgYmVmb3JlRXhhbXBsZSwgY29tcG9uZW50TmFtZSwgYWZ0ZXJFeGFtcGxlLCBjb21wb25lbnROYW1lKTtcblxuICAgICAgICBkaWRXYXJuQWJvdXRLZXlTcHJlYWRbY29tcG9uZW50TmFtZSArIGJlZm9yZUV4YW1wbGVdID0gdHJ1ZTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB2YXIgcHJvcE5hbWU7IC8vIFJlc2VydmVkIG5hbWVzIGFyZSBleHRyYWN0ZWRcblxuICAgIHZhciBwcm9wcyA9IHt9O1xuICAgIHZhciBrZXkgPSBudWxsO1xuICAgIHZhciByZWYgPSBudWxsOyAvLyBDdXJyZW50bHksIGtleSBjYW4gYmUgc3ByZWFkIGluIGFzIGEgcHJvcC4gVGhpcyBjYXVzZXMgYSBwb3RlbnRpYWxcbiAgICAvLyBpc3N1ZSBpZiBrZXkgaXMgYWxzbyBleHBsaWNpdGx5IGRlY2xhcmVkIChpZS4gPGRpdiB7Li4ucHJvcHN9IGtleT1cIkhpXCIgLz5cbiAgICAvLyBvciA8ZGl2IGtleT1cIkhpXCIgey4uLnByb3BzfSAvPiApLiBXZSB3YW50IHRvIGRlcHJlY2F0ZSBrZXkgc3ByZWFkLFxuICAgIC8vIGJ1dCBhcyBhbiBpbnRlcm1lZGlhcnkgc3RlcCwgd2Ugd2lsbCB1c2UganN4REVWIGZvciBldmVyeXRoaW5nIGV4Y2VwdFxuICAgIC8vIDxkaXYgey4uLnByb3BzfSBrZXk9XCJIaVwiIC8+LCBiZWNhdXNlIHdlIGFyZW4ndCBjdXJyZW50bHkgYWJsZSB0byB0ZWxsIGlmXG4gICAgLy8ga2V5IGlzIGV4cGxpY2l0bHkgZGVjbGFyZWQgdG8gYmUgdW5kZWZpbmVkIG9yIG5vdC5cblxuICAgIGlmIChtYXliZUtleSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB7XG4gICAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24obWF5YmVLZXkpO1xuICAgICAgfVxuXG4gICAgICBrZXkgPSAnJyArIG1heWJlS2V5O1xuICAgIH1cblxuICAgIGlmIChoYXNWYWxpZEtleShjb25maWcpKSB7XG4gICAgICB7XG4gICAgICAgIGNoZWNrS2V5U3RyaW5nQ29lcmNpb24oY29uZmlnLmtleSk7XG4gICAgICB9XG5cbiAgICAgIGtleSA9ICcnICsgY29uZmlnLmtleTtcbiAgICB9XG5cbiAgICBpZiAoaGFzVmFsaWRSZWYoY29uZmlnKSkge1xuICAgICAge1xuICAgICAgICByZWYgPSBjb25maWcucmVmO1xuICAgICAgfVxuXG4gICAgICB3YXJuSWZTdHJpbmdSZWZDYW5ub3RCZUF1dG9Db252ZXJ0ZWQoY29uZmlnLCBzZWxmKTtcbiAgICB9IC8vIFJlbWFpbmluZyBwcm9wZXJ0aWVzIGFyZSBhZGRlZCB0byBhIG5ldyBwcm9wcyBvYmplY3RcblxuXG4gICAgZm9yIChwcm9wTmFtZSBpbiBjb25maWcpIHtcbiAgICAgIGlmIChoYXNPd25Qcm9wZXJ0eS5jYWxsKGNvbmZpZywgcHJvcE5hbWUpICYmIC8vIFNraXAgb3ZlciByZXNlcnZlZCBwcm9wIG5hbWVzXG4gICAgICBwcm9wTmFtZSAhPT0gJ2tleScgJiYgKHByb3BOYW1lICE9PSAncmVmJykpIHtcbiAgICAgICAgcHJvcHNbcHJvcE5hbWVdID0gY29uZmlnW3Byb3BOYW1lXTtcbiAgICAgIH1cbiAgICB9IC8vIFJlc29sdmUgZGVmYXVsdCBwcm9wc1xuXG5cbiAgICBpZiAodHlwZSAmJiB0eXBlLmRlZmF1bHRQcm9wcykge1xuICAgICAgdmFyIGRlZmF1bHRQcm9wcyA9IHR5cGUuZGVmYXVsdFByb3BzO1xuXG4gICAgICBmb3IgKHByb3BOYW1lIGluIGRlZmF1bHRQcm9wcykge1xuICAgICAgICBpZiAocHJvcHNbcHJvcE5hbWVdID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBwcm9wc1twcm9wTmFtZV0gPSBkZWZhdWx0UHJvcHNbcHJvcE5hbWVdO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKGtleSB8fCByZWYpIHtcbiAgICAgIHZhciBkaXNwbGF5TmFtZSA9IHR5cGVvZiB0eXBlID09PSAnZnVuY3Rpb24nID8gdHlwZS5kaXNwbGF5TmFtZSB8fCB0eXBlLm5hbWUgfHwgJ1Vua25vd24nIDogdHlwZTtcblxuICAgICAgaWYgKGtleSkge1xuICAgICAgICBkZWZpbmVLZXlQcm9wV2FybmluZ0dldHRlcihwcm9wcywgZGlzcGxheU5hbWUpO1xuICAgICAgfVxuXG4gICAgICBpZiAocmVmKSB7XG4gICAgICAgIGRlZmluZVJlZlByb3BXYXJuaW5nR2V0dGVyKHByb3BzLCBkaXNwbGF5TmFtZSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdmFyIGVsZW1lbnQgPSBSZWFjdEVsZW1lbnQodHlwZSwga2V5LCByZWYsIHNlbGYsIHNvdXJjZSwgUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCwgcHJvcHMpO1xuXG4gICAgaWYgKHR5cGUgPT09IFJFQUNUX0ZSQUdNRU5UX1RZUEUpIHtcbiAgICAgIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhlbGVtZW50KTtcbiAgICB9XG5cbiAgICByZXR1cm4gZWxlbWVudDtcbiAgfVxufVxuXG5mdW5jdGlvbiBnZXREZWNsYXJhdGlvbkVycm9yQWRkZW5kdW0oKSB7XG4gIHtcbiAgICBpZiAoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgICAgdmFyIG5hbWUgPSBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoUmVhY3RDdXJyZW50T3duZXIuY3VycmVudC50eXBlKTtcblxuICAgICAgaWYgKG5hbWUpIHtcbiAgICAgICAgcmV0dXJuICdcXG5cXG5DaGVjayB0aGUgcmVuZGVyIG1ldGhvZCBvZiBgJyArIG5hbWUgKyAnYC4nO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAnJztcbiAgfVxufVxuLyoqXG4gKiBFbnN1cmUgdGhhdCBldmVyeSBlbGVtZW50IGVpdGhlciBpcyBwYXNzZWQgaW4gYSBzdGF0aWMgbG9jYXRpb24sIGluIGFuXG4gKiBhcnJheSB3aXRoIGFuIGV4cGxpY2l0IGtleXMgcHJvcGVydHkgZGVmaW5lZCwgb3IgaW4gYW4gb2JqZWN0IGxpdGVyYWxcbiAqIHdpdGggdmFsaWQga2V5IHByb3BlcnR5LlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdE5vZGV9IG5vZGUgU3RhdGljYWxseSBwYXNzZWQgY2hpbGQgb2YgYW55IHR5cGUuXG4gKiBAcGFyYW0geyp9IHBhcmVudFR5cGUgbm9kZSdzIHBhcmVudCdzIHR5cGUuXG4gKi9cblxuXG5mdW5jdGlvbiB2YWxpZGF0ZUNoaWxkS2V5cyhub2RlLCBwYXJlbnRUeXBlKSB7XG4gIHtcbiAgICBpZiAodHlwZW9mIG5vZGUgIT09ICdvYmplY3QnIHx8ICFub2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKG5vZGUuJCR0eXBlb2YgPT09IFJFQUNUX0NMSUVOVF9SRUZFUkVOQ0UpIDsgZWxzZSBpZiAoaXNBcnJheShub2RlKSkge1xuICAgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBub2RlLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgIHZhciBjaGlsZCA9IG5vZGVbaV07XG5cbiAgICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KGNoaWxkKSkge1xuICAgICAgICAgIHZhbGlkYXRlRXhwbGljaXRLZXkoY2hpbGQsIHBhcmVudFR5cGUpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIGlmIChpc1ZhbGlkRWxlbWVudChub2RlKSkge1xuICAgICAgLy8gVGhpcyBlbGVtZW50IHdhcyBwYXNzZWQgaW4gYSB2YWxpZCBsb2NhdGlvbi5cbiAgICAgIGlmIChub2RlLl9zdG9yZSkge1xuICAgICAgICBub2RlLl9zdG9yZS52YWxpZGF0ZWQgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICB2YXIgaXRlcmF0b3JGbiA9IGdldEl0ZXJhdG9yRm4obm9kZSk7XG5cbiAgICAgIGlmICh0eXBlb2YgaXRlcmF0b3JGbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICAvLyBFbnRyeSBpdGVyYXRvcnMgdXNlZCB0byBwcm92aWRlIGltcGxpY2l0IGtleXMsXG4gICAgICAgIC8vIGJ1dCBub3cgd2UgcHJpbnQgYSBzZXBhcmF0ZSB3YXJuaW5nIGZvciB0aGVtIGxhdGVyLlxuICAgICAgICBpZiAoaXRlcmF0b3JGbiAhPT0gbm9kZS5lbnRyaWVzKSB7XG4gICAgICAgICAgdmFyIGl0ZXJhdG9yID0gaXRlcmF0b3JGbi5jYWxsKG5vZGUpO1xuICAgICAgICAgIHZhciBzdGVwO1xuXG4gICAgICAgICAgd2hpbGUgKCEoc3RlcCA9IGl0ZXJhdG9yLm5leHQoKSkuZG9uZSkge1xuICAgICAgICAgICAgaWYgKGlzVmFsaWRFbGVtZW50KHN0ZXAudmFsdWUpKSB7XG4gICAgICAgICAgICAgIHZhbGlkYXRlRXhwbGljaXRLZXkoc3RlcC52YWx1ZSwgcGFyZW50VHlwZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4vKipcbiAqIFZlcmlmaWVzIHRoZSBvYmplY3QgaXMgYSBSZWFjdEVsZW1lbnQuXG4gKiBTZWUgaHR0cHM6Ly9yZWFjdGpzLm9yZy9kb2NzL3JlYWN0LWFwaS5odG1sI2lzdmFsaWRlbGVtZW50XG4gKiBAcGFyYW0gez9vYmplY3R9IG9iamVjdFxuICogQHJldHVybiB7Ym9vbGVhbn0gVHJ1ZSBpZiBgb2JqZWN0YCBpcyBhIFJlYWN0RWxlbWVudC5cbiAqIEBmaW5hbFxuICovXG5cblxuZnVuY3Rpb24gaXNWYWxpZEVsZW1lbnQob2JqZWN0KSB7XG4gIHJldHVybiB0eXBlb2Ygb2JqZWN0ID09PSAnb2JqZWN0JyAmJiBvYmplY3QgIT09IG51bGwgJiYgb2JqZWN0LiQkdHlwZW9mID09PSBSRUFDVF9FTEVNRU5UX1RZUEU7XG59XG52YXIgb3duZXJIYXNLZXlVc2VXYXJuaW5nID0ge307XG4vKipcbiAqIFdhcm4gaWYgdGhlIGVsZW1lbnQgZG9lc24ndCBoYXZlIGFuIGV4cGxpY2l0IGtleSBhc3NpZ25lZCB0byBpdC5cbiAqIFRoaXMgZWxlbWVudCBpcyBpbiBhbiBhcnJheS4gVGhlIGFycmF5IGNvdWxkIGdyb3cgYW5kIHNocmluayBvciBiZVxuICogcmVvcmRlcmVkLiBBbGwgY2hpbGRyZW4gdGhhdCBoYXZlbid0IGFscmVhZHkgYmVlbiB2YWxpZGF0ZWQgYXJlIHJlcXVpcmVkIHRvXG4gKiBoYXZlIGEgXCJrZXlcIiBwcm9wZXJ0eSBhc3NpZ25lZCB0byBpdC4gRXJyb3Igc3RhdHVzZXMgYXJlIGNhY2hlZCBzbyBhIHdhcm5pbmdcbiAqIHdpbGwgb25seSBiZSBzaG93biBvbmNlLlxuICpcbiAqIEBpbnRlcm5hbFxuICogQHBhcmFtIHtSZWFjdEVsZW1lbnR9IGVsZW1lbnQgRWxlbWVudCB0aGF0IHJlcXVpcmVzIGEga2V5LlxuICogQHBhcmFtIHsqfSBwYXJlbnRUeXBlIGVsZW1lbnQncyBwYXJlbnQncyB0eXBlLlxuICovXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRXhwbGljaXRLZXkoZWxlbWVudCwgcGFyZW50VHlwZSkge1xuICB7XG4gICAgaWYgKCFlbGVtZW50Ll9zdG9yZSB8fCBlbGVtZW50Ll9zdG9yZS52YWxpZGF0ZWQgfHwgZWxlbWVudC5rZXkgIT0gbnVsbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGVsZW1lbnQuX3N0b3JlLnZhbGlkYXRlZCA9IHRydWU7XG4gICAgdmFyIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8gPSBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpO1xuXG4gICAgaWYgKG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIG93bmVySGFzS2V5VXNlV2FybmluZ1tjdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvXSA9IHRydWU7IC8vIFVzdWFsbHkgdGhlIGN1cnJlbnQgb3duZXIgaXMgdGhlIG9mZmVuZGVyLCBidXQgaWYgaXQgYWNjZXB0cyBjaGlsZHJlbiBhcyBhXG4gICAgLy8gcHJvcGVydHksIGl0IG1heSBiZSB0aGUgY3JlYXRvciBvZiB0aGUgY2hpbGQgdGhhdCdzIHJlc3BvbnNpYmxlIGZvclxuICAgIC8vIGFzc2lnbmluZyBpdCBhIGtleS5cblxuICAgIHZhciBjaGlsZE93bmVyID0gJyc7XG5cbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50Ll9vd25lciAmJiBlbGVtZW50Ll9vd25lciAhPT0gUmVhY3RDdXJyZW50T3duZXIuY3VycmVudCkge1xuICAgICAgLy8gR2l2ZSB0aGUgY29tcG9uZW50IHRoYXQgb3JpZ2luYWxseSBjcmVhdGVkIHRoaXMgY2hpbGQuXG4gICAgICBjaGlsZE93bmVyID0gXCIgSXQgd2FzIHBhc3NlZCBhIGNoaWxkIGZyb20gXCIgKyBnZXRDb21wb25lbnROYW1lRnJvbVR5cGUoZWxlbWVudC5fb3duZXIudHlwZSkgKyBcIi5cIjtcbiAgICB9XG5cbiAgICBzZXRDdXJyZW50bHlWYWxpZGF0aW5nRWxlbWVudChlbGVtZW50KTtcblxuICAgIGVycm9yKCdFYWNoIGNoaWxkIGluIGEgbGlzdCBzaG91bGQgaGF2ZSBhIHVuaXF1ZSBcImtleVwiIHByb3AuJyArICclcyVzIFNlZSBodHRwczovL3JlYWN0anMub3JnL2xpbmsvd2FybmluZy1rZXlzIGZvciBtb3JlIGluZm9ybWF0aW9uLicsIGN1cnJlbnRDb21wb25lbnRFcnJvckluZm8sIGNoaWxkT3duZXIpO1xuXG4gICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQoZWxlbWVudCkge1xuICB7XG4gICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgIHZhciBvd25lciA9IGVsZW1lbnQuX293bmVyO1xuICAgICAgdmFyIHN0YWNrID0gZGVzY3JpYmVVbmtub3duRWxlbWVudFR5cGVGcmFtZUluREVWKGVsZW1lbnQudHlwZSwgb3duZXIgPyBvd25lci50eXBlIDogbnVsbCk7XG4gICAgICBSZWFjdERlYnVnQ3VycmVudEZyYW1lLnNldEV4dHJhU3RhY2tGcmFtZShzdGFjayk7XG4gICAgfSBlbHNlIHtcbiAgICAgIFJlYWN0RGVidWdDdXJyZW50RnJhbWUuc2V0RXh0cmFTdGFja0ZyYW1lKG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG5mdW5jdGlvbiBnZXRDdXJyZW50Q29tcG9uZW50RXJyb3JJbmZvKHBhcmVudFR5cGUpIHtcbiAge1xuICAgIHZhciBpbmZvID0gZ2V0RGVjbGFyYXRpb25FcnJvckFkZGVuZHVtKCk7XG5cbiAgICBpZiAoIWluZm8pIHtcbiAgICAgIHZhciBwYXJlbnROYW1lID0gZ2V0Q29tcG9uZW50TmFtZUZyb21UeXBlKHBhcmVudFR5cGUpO1xuXG4gICAgICBpZiAocGFyZW50TmFtZSkge1xuICAgICAgICBpbmZvID0gXCJcXG5cXG5DaGVjayB0aGUgdG9wLWxldmVsIHJlbmRlciBjYWxsIHVzaW5nIDxcIiArIHBhcmVudE5hbWUgKyBcIj4uXCI7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIGluZm87XG4gIH1cbn1cbi8qKlxuICogR2l2ZW4gYSBmcmFnbWVudCwgdmFsaWRhdGUgdGhhdCBpdCBjYW4gb25seSBiZSBwcm92aWRlZCB3aXRoIGZyYWdtZW50IHByb3BzXG4gKiBAcGFyYW0ge1JlYWN0RWxlbWVudH0gZnJhZ21lbnRcbiAqL1xuXG5cbmZ1bmN0aW9uIHZhbGlkYXRlRnJhZ21lbnRQcm9wcyhmcmFnbWVudCkge1xuICAvLyBUT0RPOiBNb3ZlIHRoaXMgdG8gcmVuZGVyIHBoYXNlIGluc3RlYWQgb2YgYXQgZWxlbWVudCBjcmVhdGlvbi5cbiAge1xuICAgIHZhciBrZXlzID0gT2JqZWN0LmtleXMoZnJhZ21lbnQucHJvcHMpO1xuXG4gICAgZm9yICh2YXIgaSA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSsrKSB7XG4gICAgICB2YXIga2V5ID0ga2V5c1tpXTtcblxuICAgICAgaWYgKGtleSAhPT0gJ2NoaWxkcmVuJyAmJiBrZXkgIT09ICdrZXknKSB7XG4gICAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGZyYWdtZW50KTtcblxuICAgICAgICBlcnJvcignSW52YWxpZCBwcm9wIGAlc2Agc3VwcGxpZWQgdG8gYFJlYWN0LkZyYWdtZW50YC4gJyArICdSZWFjdC5GcmFnbWVudCBjYW4gb25seSBoYXZlIGBrZXlgIGFuZCBgY2hpbGRyZW5gIHByb3BzLicsIGtleSk7XG5cbiAgICAgICAgc2V0Q3VycmVudGx5VmFsaWRhdGluZ0VsZW1lbnQobnVsbCk7XG4gICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH1cblxuICAgIGlmIChmcmFnbWVudC5yZWYgIT09IG51bGwpIHtcbiAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KGZyYWdtZW50KTtcblxuICAgICAgZXJyb3IoJ0ludmFsaWQgYXR0cmlidXRlIGByZWZgIHN1cHBsaWVkIHRvIGBSZWFjdC5GcmFnbWVudGAuJyk7XG5cbiAgICAgIHNldEN1cnJlbnRseVZhbGlkYXRpbmdFbGVtZW50KG51bGwpO1xuICAgIH1cbiAgfVxufVxuXG52YXIganN4REVWID0ganN4REVWJDEgO1xuXG5leHBvcnRzLkZyYWdtZW50ID0gUkVBQ1RfRlJBR01FTlRfVFlQRTtcbmV4cG9ydHMuanN4REVWID0ganN4REVWO1xuICB9KSgpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js":
-/*!******************************************************************!*\
- !*** ./node_modules/next/dist/compiled/react/jsx-dev-runtime.js ***!
- \******************************************************************/
-/***/ (function(module, __unused_webpack_exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\n\nif (false) {} else {\n module.exports = __webpack_require__(/*! ./cjs/react-jsx-dev-runtime.development.js */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js\");\n}\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY29tcGlsZWQvcmVhY3QvanN4LWRldi1ydW50aW1lLmpzIiwibWFwcGluZ3MiOiJBQUFhOztBQUViLElBQUksS0FBcUMsRUFBRSxFQUUxQyxDQUFDO0FBQ0YsRUFBRSw4TEFBc0U7QUFDeEUiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jb21waWxlZC9yZWFjdC9qc3gtZGV2LXJ1bnRpbWUuanM/YTM2OSJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIHN0cmljdCc7XG5cbmlmIChwcm9jZXNzLmVudi5OT0RFX0VOViA9PT0gJ3Byb2R1Y3Rpb24nKSB7XG4gIG1vZHVsZS5leHBvcnRzID0gcmVxdWlyZSgnLi9janMvcmVhY3QtanN4LWRldi1ydW50aW1lLnByb2R1Y3Rpb24ubWluLmpzJyk7XG59IGVsc2Uge1xuICBtb2R1bGUuZXhwb3J0cyA9IHJlcXVpcmUoJy4vY2pzL3JlYWN0LWpzeC1kZXYtcnVudGltZS5kZXZlbG9wbWVudC5qcycpO1xufVxuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\n"));
-
-/***/ })
-
-},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
-/******/ __webpack_require__.O(0, ["main-app"], function() { return __webpack_exec__("(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"); });
-/******/ var __webpack_exports__ = __webpack_require__.O();
-/******/ _N_E = __webpack_exports__;
-/******/ }
-]);
\ No newline at end of file
diff --git a/.next/static/chunks/app/page.js b/.next/static/chunks/app/page.js
deleted file mode 100644
index 41d0a47..0000000
--- a/.next/static/chunks/app/page.js
+++ /dev/null
@@ -1,237 +0,0 @@
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([["app/page"],{
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!":
-/*!********************************************************************************************************************************************************************************************************************************************************************!*\
- !*** ./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false! ***!
- \********************************************************************************************************************************************************************************************************************************************************************/
-/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
-
-eval(__webpack_require__.ts("Promise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/link.js */ \"(app-pages-browser)/./node_modules/next/dist/client/link.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWNsaWVudC1lbnRyeS1sb2FkZXIuanM/bW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZzZWFuJTJGRGV2JTJGZ3VuYnVpbGRlci1wcm90b3R5cGUlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmxpbmsuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlMjIqJTIyJTVEJTdEJnNlcnZlcj1mYWxzZSEiLCJtYXBwaW5ncyI6IkFBQUEsOE1BQStHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8/OTA1YiJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9zZWFuL0Rldi9ndW5idWlsZGVyLXByb3RvdHlwZS9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9saW5rLmpzXCIpO1xuIl0sIm5hbWVzIjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/client/add-locale.js":
-/*!*****************************************************!*\
- !*** ./node_modules/next/dist/client/add-locale.js ***!
- \*****************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"addLocale\", ({\n enumerable: true,\n get: function() {\n return addLocale;\n }\n}));\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(app-pages-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst addLocale = function(path) {\n for(var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n args[_key - 1] = arguments[_key];\n }\n if (false) {}\n return path;\n};\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=add-locale.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2FkZC1sb2NhbGUuanMiLCJtYXBwaW5ncyI6Ijs7Ozs2Q0FHYUE7OztlQUFBQTs7O29EQUY4QjtBQUVwQyxNQUFNQSxZQUF1QixTQUFDQyxJQUFBQTtxQ0FBU0MsT0FBQUEsSUFBQUEsTUFBQUEsT0FBQUEsSUFBQUEsT0FBQUEsSUFBQUEsSUFBQUEsT0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsT0FBQUE7UUFBQUEsSUFBQUEsQ0FBQUEsT0FBQUEsRUFBQUEsR0FBQUEsU0FBQUEsQ0FBQUEsS0FBQUE7O0lBQzVDLElBQUlDLEtBQStCLEVBQUUsRUFJckM7SUFDQSxPQUFPRjtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9zcmMvY2xpZW50L2FkZC1sb2NhbGUudHM/ZmFhZSJdLCJuYW1lcyI6WyJhZGRMb2NhbGUiLCJwYXRoIiwiYXJncyIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJyZXF1aXJlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/add-locale.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/client/get-domain-locale.js":
-/*!************************************************************!*\
- !*** ./node_modules/next/dist/client/get-domain-locale.js ***!
- \************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getDomainLocale\", ({\n enumerable: true,\n get: function() {\n return getDomainLocale;\n }\n}));\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(app-pages-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst basePath = false || \"\";\nfunction getDomainLocale(path, locale, locales, domainLocales) {\n if (false) {} else {\n return false;\n }\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=get-domain-locale.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2dldC1kb21haW4tbG9jYWxlLmpzIiwibWFwcGluZ3MiOiI7Ozs7bURBT2dCQTs7O2VBQUFBOzs7b0RBSjJCO0FBRTNDLE1BQU1DLFdBQVdDLE1BQW1DLElBQWU7QUFFNUQsU0FBU0YsZ0JBQ2RLLElBQVksRUFDWkMsTUFBdUIsRUFDdkJDLE9BQWtCLEVBQ2xCQyxhQUE4QjtJQUU5QixJQUFJTixLQUErQixFQUFFLEVBZ0JyQyxNQUFPO1FBQ0wsT0FBTztJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uL3NyYy9jbGllbnQvZ2V0LWRvbWFpbi1sb2NhbGUudHM/MWQ0ZSJdLCJuYW1lcyI6WyJnZXREb21haW5Mb2NhbGUiLCJiYXNlUGF0aCIsInByb2Nlc3MiLCJlbnYiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwicGF0aCIsImxvY2FsZSIsImxvY2FsZXMiLCJkb21haW5Mb2NhbGVzIiwiX19ORVhUX0kxOE5fU1VQUE9SVCIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJyZXF1aXJlIiwiZGV0ZWN0RG9tYWluTG9jYWxlIiwidGFyZ2V0IiwiZGV0ZWN0ZWRMb2NhbGUiLCJkb21haW4iLCJ1bmRlZmluZWQiLCJwcm90byIsImh0dHAiLCJmaW5hbExvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJub3JtYWxpemVQYXRoVHJhaWxpbmdTbGFzaCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/get-domain-locale.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/client/link.js":
-/*!***********************************************!*\
- !*** ./node_modules/next/dist/client/link.js ***!
- \***********************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nvar _s = $RefreshSig$();\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return _default;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(app-pages-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"));\nconst _resolvehref = __webpack_require__(/*! ./resolve-href */ \"(app-pages-browser)/./node_modules/next/dist/client/resolve-href.js\");\nconst _islocalurl = __webpack_require__(/*! ../shared/lib/router/utils/is-local-url */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _addlocale = __webpack_require__(/*! ./add-locale */ \"(app-pages-browser)/./node_modules/next/dist/client/add-locale.js\");\nconst _routercontextsharedruntime = __webpack_require__(/*! ../shared/lib/router-context.shared-runtime */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\");\nconst _approutercontextsharedruntime = __webpack_require__(/*! ../shared/lib/app-router-context.shared-runtime */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js\");\nconst _useintersection = __webpack_require__(/*! ./use-intersection */ \"(app-pages-browser)/./node_modules/next/dist/client/use-intersection.js\");\nconst _getdomainlocale = __webpack_require__(/*! ./get-domain-locale */ \"(app-pages-browser)/./node_modules/next/dist/client/get-domain-locale.js\");\nconst _addbasepath = __webpack_require__(/*! ./add-base-path */ \"(app-pages-browser)/./node_modules/next/dist/client/add-base-path.js\");\nconst _routerreducertypes = __webpack_require__(/*! ./components/router-reducer/router-reducer-types */ \"(app-pages-browser)/./node_modules/next/dist/client/components/router-reducer/router-reducer-types.js\");\nconst prefetched = new Set();\nfunction prefetch(router, href, as, options, appOptions, isAppRouter) {\n if (typeof window === \"undefined\") {\n return;\n }\n // app-router supports external urls out of the box so it shouldn't short-circuit here as support for e.g. `replace` is added in the app-router.\n if (!isAppRouter && !(0, _islocalurl.isLocalURL)(href)) {\n return;\n }\n // We should only dedupe requests when experimental.optimisticClientCache is\n // disabled.\n if (!options.bypassPrefetchedCheck) {\n const locale = typeof options.locale !== \"undefined\" ? options.locale : \"locale\" in router ? router.locale : undefined;\n const prefetchedKey = href + \"%\" + as + \"%\" + locale;\n // If we've already fetched the key, then don't prefetch it again!\n if (prefetched.has(prefetchedKey)) {\n return;\n }\n // Mark this URL as prefetched.\n prefetched.add(prefetchedKey);\n }\n const prefetchPromise = isAppRouter ? router.prefetch(href, appOptions) : router.prefetch(href, as, options);\n // Prefetch the JSON page if asked (only in the client)\n // We need to handle a prefetch error here since we may be\n // loading with priority which can reject but we don't\n // want to force navigation since this is only a prefetch\n Promise.resolve(prefetchPromise).catch((err)=>{\n if (true) {\n // rethrow to show invalid URL errors\n throw err;\n }\n });\n}\nfunction isModifiedEvent(event) {\n const eventTarget = event.currentTarget;\n const target = eventTarget.getAttribute(\"target\");\n return target && target !== \"_self\" || event.metaKey || event.ctrlKey || event.shiftKey || event.altKey || // triggers resource download\n event.nativeEvent && event.nativeEvent.which === 2;\n}\nfunction linkClicked(e, router, href, as, replace, shallow, scroll, locale, isAppRouter) {\n const { nodeName } = e.currentTarget;\n // anchors inside an svg have a lowercase nodeName\n const isAnchorNodeName = nodeName.toUpperCase() === \"A\";\n if (isAnchorNodeName && (isModifiedEvent(e) || // app-router supports external urls out of the box so it shouldn't short-circuit here as support for e.g. `replace` is added in the app-router.\n !isAppRouter && !(0, _islocalurl.isLocalURL)(href))) {\n // ignore click for browser’s default behavior\n return;\n }\n e.preventDefault();\n const navigate = ()=>{\n // If the router is an NextRouter instance it will have `beforePopState`\n const routerScroll = scroll != null ? scroll : true;\n if (\"beforePopState\" in router) {\n router[replace ? \"replace\" : \"push\"](href, as, {\n shallow,\n locale,\n scroll: routerScroll\n });\n } else {\n router[replace ? \"replace\" : \"push\"](as || href, {\n scroll: routerScroll\n });\n }\n };\n if (isAppRouter) {\n _react.default.startTransition(navigate);\n } else {\n navigate();\n }\n}\nfunction formatStringOrUrl(urlObjOrString) {\n if (typeof urlObjOrString === \"string\") {\n return urlObjOrString;\n }\n return (0, _formaturl.formatUrl)(urlObjOrString);\n}\n/**\n * A React component that extends the HTML `` element to provide [prefetching](https://nextjs.org/docs/app/building-your-application/routing/linking-and-navigating#2-prefetching)\n * and client-side navigation between routes.\n *\n * It is the primary way to navigate between routes in Next.js.\n *\n * Read more: [Next.js docs: ``](https://nextjs.org/docs/app/api-reference/components/link)\n */ const Link = /*#__PURE__*/ _s(_react.default.forwardRef(_c = _s(function LinkComponent(props, forwardedRef) {\n _s();\n let children;\n const { href: hrefProp, as: asProp, children: childrenProp, prefetch: prefetchProp = null, passHref, replace, shallow, scroll, locale, onClick, onMouseEnter: onMouseEnterProp, onTouchStart: onTouchStartProp, legacyBehavior = false, ...restProps } = props;\n children = childrenProp;\n if (legacyBehavior && (typeof children === \"string\" || typeof children === \"number\")) {\n children = /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n children: children\n });\n }\n const pagesRouter = _react.default.useContext(_routercontextsharedruntime.RouterContext);\n const appRouter = _react.default.useContext(_approutercontextsharedruntime.AppRouterContext);\n const router = pagesRouter != null ? pagesRouter : appRouter;\n // We're in the app directory if there is no pages router.\n const isAppRouter = !pagesRouter;\n const prefetchEnabled = prefetchProp !== false;\n /**\n * The possible states for prefetch are:\n * - null: this is the default \"auto\" mode, where we will prefetch partially if the link is in the viewport\n * - true: we will prefetch if the link is visible and prefetch the full page, not just partially\n * - false: we will not prefetch if in the viewport at all\n */ const appPrefetchKind = prefetchProp === null ? _routerreducertypes.PrefetchKind.AUTO : _routerreducertypes.PrefetchKind.FULL;\n if (true) {\n function createPropError(args) {\n return new Error(\"Failed prop type: The prop `\" + args.key + \"` expects a \" + args.expected + \" in ``, but got `\" + args.actual + \"` instead.\" + (typeof window !== \"undefined\" ? \"\\nOpen your browser's console to view the Component stack trace.\" : \"\"));\n }\n // TypeScript trick for type-guarding:\n const requiredPropsGuard = {\n href: true\n };\n const requiredProps = Object.keys(requiredPropsGuard);\n requiredProps.forEach((key)=>{\n if (key === \"href\") {\n if (props[key] == null || typeof props[key] !== \"string\" && typeof props[key] !== \"object\") {\n throw createPropError({\n key,\n expected: \"`string` or `object`\",\n actual: props[key] === null ? \"null\" : typeof props[key]\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // TypeScript trick for type-guarding:\n const optionalPropsGuard = {\n as: true,\n replace: true,\n scroll: true,\n shallow: true,\n passHref: true,\n prefetch: true,\n locale: true,\n onClick: true,\n onMouseEnter: true,\n onTouchStart: true,\n legacyBehavior: true\n };\n const optionalProps = Object.keys(optionalPropsGuard);\n optionalProps.forEach((key)=>{\n const valType = typeof props[key];\n if (key === \"as\") {\n if (props[key] && valType !== \"string\" && valType !== \"object\") {\n throw createPropError({\n key,\n expected: \"`string` or `object`\",\n actual: valType\n });\n }\n } else if (key === \"locale\") {\n if (props[key] && valType !== \"string\") {\n throw createPropError({\n key,\n expected: \"`string`\",\n actual: valType\n });\n }\n } else if (key === \"onClick\" || key === \"onMouseEnter\" || key === \"onTouchStart\") {\n if (props[key] && valType !== \"function\") {\n throw createPropError({\n key,\n expected: \"`function`\",\n actual: valType\n });\n }\n } else if (key === \"replace\" || key === \"scroll\" || key === \"shallow\" || key === \"passHref\" || key === \"prefetch\" || key === \"legacyBehavior\") {\n if (props[key] != null && valType !== \"boolean\") {\n throw createPropError({\n key,\n expected: \"`boolean`\",\n actual: valType\n });\n }\n } else {\n // TypeScript trick for type-guarding:\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const _ = key;\n }\n });\n // This hook is in a conditional but that is ok because `process.env.NODE_ENV` never changes\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const hasWarned = _react.default.useRef(false);\n if (props.prefetch && !hasWarned.current && !isAppRouter) {\n hasWarned.current = true;\n console.warn(\"Next.js auto-prefetches automatically based on viewport. The prefetch attribute is no longer needed. More: https://nextjs.org/docs/messages/prefetch-true-deprecated\");\n }\n }\n if (true) {\n if (isAppRouter && !asProp) {\n let href;\n if (typeof hrefProp === \"string\") {\n href = hrefProp;\n } else if (typeof hrefProp === \"object\" && typeof hrefProp.pathname === \"string\") {\n href = hrefProp.pathname;\n }\n if (href) {\n const hasDynamicSegment = href.split(\"/\").some((segment)=>segment.startsWith(\"[\") && segment.endsWith(\"]\"));\n if (hasDynamicSegment) {\n throw new Error(\"Dynamic href `\" + href + \"` found in while using the `/app` router, this is not supported. Read more: https://nextjs.org/docs/messages/app-dir-dynamic-href\");\n }\n }\n }\n }\n const { href, as } = _react.default.useMemo(()=>{\n if (!pagesRouter) {\n const resolvedHref = formatStringOrUrl(hrefProp);\n return {\n href: resolvedHref,\n as: asProp ? formatStringOrUrl(asProp) : resolvedHref\n };\n }\n const [resolvedHref, resolvedAs] = (0, _resolvehref.resolveHref)(pagesRouter, hrefProp, true);\n return {\n href: resolvedHref,\n as: asProp ? (0, _resolvehref.resolveHref)(pagesRouter, asProp) : resolvedAs || resolvedHref\n };\n }, [\n pagesRouter,\n hrefProp,\n asProp\n ]);\n const previousHref = _react.default.useRef(href);\n const previousAs = _react.default.useRef(as);\n // This will return the first child, if multiple are provided it will throw an error\n let child;\n if (legacyBehavior) {\n if (true) {\n if (onClick) {\n console.warn('\"onClick\" was passed to with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onClick be set on the child of next/link');\n }\n if (onMouseEnterProp) {\n console.warn('\"onMouseEnter\" was passed to with `href` of `' + hrefProp + '` but \"legacyBehavior\" was set. The legacy behavior requires onMouseEnter be set on the child of next/link');\n }\n try {\n child = _react.default.Children.only(children);\n } catch (err) {\n if (!children) {\n throw new Error(\"No children were passed to with `href` of `\" + hrefProp + \"` but one child is required https://nextjs.org/docs/messages/link-no-children\");\n }\n throw new Error(\"Multiple children were passed to with `href` of `\" + hrefProp + \"` but only one child is supported https://nextjs.org/docs/messages/link-multiple-children\" + (typeof window !== \"undefined\" ? \" \\nOpen your browser's console to view the Component stack trace.\" : \"\"));\n }\n } else {}\n } else {\n if (true) {\n if ((children == null ? void 0 : children.type) === \"a\") {\n throw new Error(\"Invalid with child. Please remove or use .\\nLearn more: https://nextjs.org/docs/messages/invalid-new-link-with-extra-anchor\");\n }\n }\n }\n const childRef = legacyBehavior ? child && typeof child === \"object\" && child.ref : forwardedRef;\n const [setIntersectionRef, isVisible, resetVisible] = (0, _useintersection.useIntersection)({\n rootMargin: \"200px\"\n });\n const setRef = _react.default.useCallback((el)=>{\n // Before the link getting observed, check if visible state need to be reset\n if (previousAs.current !== as || previousHref.current !== href) {\n resetVisible();\n previousAs.current = as;\n previousHref.current = href;\n }\n setIntersectionRef(el);\n if (childRef) {\n if (typeof childRef === \"function\") childRef(el);\n else if (typeof childRef === \"object\") {\n childRef.current = el;\n }\n }\n }, [\n as,\n childRef,\n href,\n resetVisible,\n setIntersectionRef\n ]);\n // Prefetch the URL if we haven't already and it's visible.\n _react.default.useEffect(()=>{\n // in dev, we only prefetch on hover to avoid wasting resources as the prefetch will trigger compiling the page.\n if (true) {\n return;\n }\n if (!router) {\n return;\n }\n // If we don't need to prefetch the URL, don't do prefetch.\n if (!isVisible || !prefetchEnabled) {\n return;\n }\n // Prefetch the URL.\n prefetch(router, href, as, {\n locale\n }, {\n kind: appPrefetchKind\n }, isAppRouter);\n }, [\n as,\n href,\n isVisible,\n locale,\n prefetchEnabled,\n pagesRouter == null ? void 0 : pagesRouter.locale,\n router,\n isAppRouter,\n appPrefetchKind\n ]);\n const childProps = {\n ref: setRef,\n onClick (e) {\n if (true) {\n if (!e) {\n throw new Error('Component rendered inside next/link has to pass click event to \"onClick\" prop.');\n }\n }\n if (!legacyBehavior && typeof onClick === \"function\") {\n onClick(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onClick === \"function\") {\n child.props.onClick(e);\n }\n if (!router) {\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n linkClicked(e, router, href, as, replace, shallow, scroll, locale, isAppRouter);\n },\n onMouseEnter (e) {\n if (!legacyBehavior && typeof onMouseEnterProp === \"function\") {\n onMouseEnterProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onMouseEnter === \"function\") {\n child.props.onMouseEnter(e);\n }\n if (!router) {\n return;\n }\n if ((!prefetchEnabled || \"development\" === \"development\") && isAppRouter) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n }, {\n kind: appPrefetchKind\n }, isAppRouter);\n },\n onTouchStart: false ? 0 : function onTouchStart(e) {\n if (!legacyBehavior && typeof onTouchStartProp === \"function\") {\n onTouchStartProp(e);\n }\n if (legacyBehavior && child.props && typeof child.props.onTouchStart === \"function\") {\n child.props.onTouchStart(e);\n }\n if (!router) {\n return;\n }\n if (!prefetchEnabled && isAppRouter) {\n return;\n }\n prefetch(router, href, as, {\n locale,\n priority: true,\n // @see {https://github.com/vercel/next.js/discussions/40268?sort=top#discussioncomment-3572642}\n bypassPrefetchedCheck: true\n }, {\n kind: appPrefetchKind\n }, isAppRouter);\n }\n };\n // If child is an tag and doesn't have a href attribute, or if the 'passHref' property is\n // defined, we specify the current 'href', so that repetition is not needed by the user.\n // If the url is absolute, we can bypass the logic to prepend the domain and locale.\n if ((0, _utils.isAbsoluteUrl)(as)) {\n childProps.href = as;\n } else if (!legacyBehavior || passHref || child.type === \"a\" && !(\"href\" in child.props)) {\n const curLocale = typeof locale !== \"undefined\" ? locale : pagesRouter == null ? void 0 : pagesRouter.locale;\n // we only render domain locales if we are currently on a domain locale\n // so that locale links are still visitable in development/preview envs\n const localeDomain = (pagesRouter == null ? void 0 : pagesRouter.isLocaleDomain) && (0, _getdomainlocale.getDomainLocale)(as, curLocale, pagesRouter == null ? void 0 : pagesRouter.locales, pagesRouter == null ? void 0 : pagesRouter.domainLocales);\n childProps.href = localeDomain || (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, curLocale, pagesRouter == null ? void 0 : pagesRouter.defaultLocale));\n }\n return legacyBehavior ? /*#__PURE__*/ _react.default.cloneElement(child, childProps) : /*#__PURE__*/ (0, _jsxruntime.jsx)(\"a\", {\n ...restProps,\n ...childProps,\n children: children\n });\n}, \"wKD5mb5mk47bkaStGb/Fvd6RWZE=\")), \"wKD5mb5mk47bkaStGb/Fvd6RWZE=\");\n_c1 = Link;\nconst _default = Link;\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=link.js.map\nvar _c, _c1;\n$RefreshReg$(_c, \"Link$_react.default.forwardRef\");\n$RefreshReg$(_c1, \"Link\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2xpbmsuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7NkJBUzRCQSx5QkFBQUMsQ0FBQSxDQUFBQyxtQkFBQUEsQ0FBQTt5Q0FDRDt3Q0FDRDt1Q0FDSTs7Ozt1Q0FRRUEsbUJBQUFBLENBQUE7NkNBQ0E7NkNBQ0o7O0FBMkY1QixNQUFNQyxzQkFBaUJDLG1CQUFBQSxDQUFBQSwrSkFBQUE7QUFVdkIsTUFBQUQsYUFDRUUsSUFBQUE7U0FPSUMsU0FBT0MsTUFBQUEsRUFBV0MsSUFBQSxFQUFBQyxFQUFBLEVBQUFDLE9BQWEsRUFBQUMsVUFBQSxFQUFBQyxXQUFBO1FBQ2pDLE9BQUFMLFdBQUE7UUFDRjtJQUVBO0lBQ0EsZ0pBQXVDO1FBQ3JDLENBQUFLLGVBQUEsS0FBQUMsWUFBQUMsVUFBQSxFQUFBTixPQUFBO1FBQ0Y7SUFFQTtJQUNBLDRFQUFZO0lBQ1osWUFBS0U7UUFDSCxDQUFBQSxRQUFNSyxxQkFDSjtRQUNBLE1BQUFBLFNBT0YsT0FBTUMsUUFBQUEsTUFBQUEsS0FBZ0JSLGNBQWtCRSxRQUFNSyxNQUFBQSxHQUFBQSxZQUFBQSxTQUFBQSxPQUFBQSxNQUFBQSxHQUFBQTtRQUU5QyxNQUFBQyxnQkFBQVIsT0FBQSxNQUFBQyxLQUFBLE1BQUFNO1FBQ0Esa0VBQW1DO1lBQ2pDWixXQUFBYyxHQUFBLENBQUFELGdCQUFBO1lBQ0Y7UUFFQTtRQUNBYiwrQkFBZWE7UUFDakJiLFdBQUFlLEdBQUEsQ0FBQUY7SUFFQTtJQUlBLE1BQUFHLGtCQUFBUCxjQUFBUCxPQUFBQyxRQUFBLENBQUFFLE1BQXVERyxjQUFBTixPQUFBQyxRQUFBLENBQUFFLE1BQUFDLElBQUFDO0lBQ3ZEO0lBQ0EsMERBQXNEO0lBQ3REO0lBQ0FVLHlEQUF3Q0M7WUFDbENDLE9BQUFBLENBQVFDLGlCQUFpQkMsS0FBQSxFQUFBSDtZQUMzQkMsSUFBQSxFQUFxQztZQUNyQyxxQ0FBTUQ7WUFDUixNQUFBQTtRQUNGO0lBQ0Y7QUFFQTtTQUNFSSxnQkFBb0JDLEtBQU1DO0lBQzFCLE1BQU1DLGNBQVNDLE1BQUFBLGFBQXdCO0lBQ3ZDLE1BQUFELFNBQ0dBLFlBQVVBLFlBQ1hGLENBQUFBO0lBSUNBLE9BQU1JLFVBQVdGLFdBQVVFLFdBQVlDLE1BQUtDLE9BQUssSUFBQU4sTUFBQU8sT0FBQSxJQUFBUCxNQUFBUSxRQUFBLElBQUFSLE1BQUFTLE1BQUE7SUFFdERULE1BQUFJLFdBQUEsSUFBQUosTUFBQUksV0FBQSxDQUFBQyxLQUFBO0FBRUE7U0FXRUssWUFBZ0JDLENBQUUsRUFBQWhDLE1BQUtzQixFQUFBQSxJQUFBQSxFQUFBQSxFQUFhLEVBQUFXLE9BQUEsRUFBQUMsT0FBQSxFQUFBQyxNQUFBLEVBQUF6QixNQUFBLEVBQUFILFdBQUE7SUFFcEMsUUFBQTZCLFFBQUEsS0FBQUosRUFBQVYsYUFBQTtJQUNBLGtEQUE2QztJQUU3QyxNQUNFZSxtQkFDQ2pCLFNBQUFBLFdBQWdCWSxPQUNmO0lBQ0MsSUFBQ3pCLG9CQUFnQkUsQ0FBQUEsZ0JBQUFBLE1BQVdOLGdKQUMvQjtvQkFDQSxLQUFBSyxZQUFBQyxVQUFBLEVBQUFOLEtBQUEsR0FBOEM7UUFDOUM7UUFDRjtJQUVBNkI7SUFFQUEsRUFBQU0sY0FBTUM7VUFDSkEsV0FBQTtRQUNBLHdFQUErQjtRQUMvQixNQUFJQyxlQUFBTCxVQUFvQm5DLE9BQVFtQyxTQUFBO1lBQzlCbkMsb0JBQWlCQSxRQUFBO2tCQUNma0MsQ0FBQUEsVUFBQUEsWUFBQUEsT0FBQUEsQ0FBQUEsTUFBQUEsSUFBQUE7Z0JBQ0F4QjtnQkFDQXlCO2dCQUNGQSxRQUFBSztZQUNGO2VBQ0V4QztrQkFDRW1DLENBQUFBLFVBQVFLLFlBQUFBLE9BQUFBLENBQUFBLE1BQUFBLE1BQUFBO2dCQUNWTCxRQUFBSztZQUNGO1FBQ0Y7SUFFQTtRQUNFQyxhQUFBQTtRQUNGQyxPQUFPQyxPQUFBLENBQUFDLGVBQUEsQ0FBQUw7V0FDTEE7UUFDRkE7SUFDRjtBQU9BO1NBQ01NLGtCQUFPQyxjQUFtQjtRQUM1QixPQUFPQSxtQkFBQUEsVUFBQUE7UUFDVCxPQUFBQTtJQUVBO0lBQ0YsV0FBQUMsV0FBQUMsU0FBQSxFQUFBRjtBQUVBOzs7Ozs7OztJQVVJLE1BQUlHLE9BQUFBLFdBQUFBLEdBQUFBLEdBQUFBLE9BQUFBLE9BQUFBLENBQUFBLFVBQUFBLFNBQUFBLFNBQUFBLGNBQUFBLEtBQUFBLEVBQUFBLFlBQUFBOztJQUVKLElBQUFBO0lBaUJBQSxNQUFBQSxFQUFBQSxNQUFXQyxRQUFBQSxFQUFBQSxJQUFBQSxNQUFBQSxFQUFBQSxVQUFBQSxZQUFBQSxFQUFBQSxVQUFBQSxlQUFBQSxJQUFBQSxFQUFBQSxRQUFBQSxFQUFBQSxPQUFBQSxFQUFBQSxPQUFBQSxFQUFBQSxNQUFBQSxFQUFBQSxNQUFBQSxFQUFBQSxPQUFBQSxFQUFBQSxjQUFBQSxnQkFBQUEsRUFBQUEsY0FBQUEsZ0JBQUFBLEVBQUFBLGlCQUFBQSxLQUFBQSxFQUFBQSxHQUFBQSxXQUFBQSxHQUFBQTtJQUVYRCxXQUNFRTtRQUdBRixrQkFBQUEsQ0FBQUEsT0FBV0EsYUFBQSxZQUFDRyxPQUFBQSxhQUFBQSxRQUFBQSxHQUFBQTttQkFBR0gsV0FBQUEsR0FBQUEsQ0FBQUEsR0FBQUEsWUFBQUEsR0FBQUEsRUFBQUEsS0FBQUE7O1FBQ2pCO0lBRUE7SUFDQSxNQUFNSSxjQUFZWixPQUFBQSxPQUFNYSxDQUFBQSxVQUFXQyxDQUFBQSw0QkFBQUEsYUFBQUE7SUFDbkMsTUFBTXZELFlBQVN3RCxPQUFBQSxPQUFBQSxDQUFBQSxVQUFBQSxDQUFBQSwrQkFBZUgsZ0JBQUFBO0lBRTlCLE1BQUFyRCxTQUFBd0QsZUFBQSxPQUFBQSxjQUFBSDtJQUNBLDBEQUFxQkc7SUFFckIsTUFBTUMsY0FBQUEsQ0FBQUE7SUFDTixNQUFBQSxrQkFBQUMsaUJBQUE7Ozs7OztLQVNBLEdBQUl6QyxNQUFBQSxrQkFBb0J5QyxpQkFBbUIsT0FBQUMsb0JBQUFDLFlBQUEsQ0FBQUMsSUFBQSxHQUFBRixvQkFBQUMsWUFBQSxDQUFBRSxJQUFBO1FBQ3pDN0MsSUFBeUI4QyxFQUl4QjtpQkFDQ0MsZ0JBQ0dELElBQUE7WUFLTCxXQUFBRSxNQUFBLGlDQUFBRixLQUFBRyxHQUFBLG9CQUFBSCxLQUFBSSxRQUFBLCtCQUFBSixLQUFBSyxNQUFBLDBCQUFBbEUsV0FBQTtRQUVBO1FBQ0Esc0NBQTREO2NBQzFEQyxxQkFBTTtZQUNSQSxNQUFBO1FBQ0E7UUFHQWtFLE1BQUFBLGdCQUFzQkMsT0FBQ0osSUFBQUEsQ0FBQUE7c0JBQ2pCQSxPQUFRLEVBQUFBO2dCQUNWQSxRQUNFSyxRQUFVO29CQUdWQSxLQUFBLENBQU1QLElBQUFBLElBQUFBLFFBQWdCLE9BQUFPLEtBQUEsQ0FBQUwsSUFBQSx3QkFBQUssS0FBQSxDQUFBTCxJQUFBOzBCQUNwQkEsZ0JBQUFBO3dCQUNBQzt3QkFDQUMsVUFBUUc7d0JBQ1ZILFFBQUFHLEtBQUEsQ0FBQUwsSUFBQSw0QkFBQUssS0FBQSxDQUFBTCxJQUFBO29CQUNGO2dCQUNGO21CQUNFO2dCQUNBO2dCQUNBLDZEQUFpQkE7Z0JBQ25CLE1BQUF0RSxJQUFBc0U7WUFDRjtRQUVBO1FBQ0Esc0NBQTREO2NBQzFEOUQscUJBQUk7WUFDSjZCLElBQUFBO1lBQ0FFLFNBQVE7WUFDUkQsUUFBQUE7WUFDQXNDLFNBQUFBO1lBQ0F2RSxVQUFVO1lBQ1ZTLFVBQVE7WUFDUitELFFBQUFBO1lBQ0FDLFNBQUFBO1lBQ0FDLGNBQWM7WUFDZHhCLGNBQUFBO1lBQ0ZBLGdCQUFBO1FBQ0E7UUFHQXlCLE1BQUFBLGdCQUFzQk4sT0FBQ0osSUFBQUEsQ0FBQUE7c0JBQ2ZXLE9BQVUsRUFBQVg7WUFFaEIsTUFBSUEsVUFBUSxPQUFNSyxLQUFBLENBQUFMLElBQUE7Z0JBQ2hCQSxRQUFJSyxNQUFVO29CQUNaQSxLQUFBLENBQU1QLElBQUFBLElBQUFBLFlBQWdCLFlBQUFhLFlBQUE7MEJBQ3BCWCxnQkFBQUE7d0JBQ0FDO3dCQUNBQyxVQUFRUzt3QkFDVlQsUUFBQVM7b0JBQ0Y7Z0JBQ0Y7bUJBQ0UsSUFBSU4sUUFBVSxVQUFJTTtvQkFDaEJOLEtBQUEsQ0FBTVAsSUFBQUEsSUFBQUEsWUFBZ0I7MEJBQ3BCRSxnQkFBQUE7d0JBQ0FDO3dCQUNBQyxVQUFRUzt3QkFDVlQsUUFBQVM7b0JBQ0Y7Z0JBQ0Y7bUJBS0UsSUFBSU4sUUFBVSxhQUFJTSxRQUFZLGtCQUFZWCxRQUFBO29CQUN4Q0ssS0FBQSxDQUFNUCxJQUFBQSxJQUFBQSxZQUFnQjswQkFDcEJFLGdCQUFBQTt3QkFDQUM7d0JBQ0FDLFVBQVFTO3dCQUNWVCxRQUFBUztvQkFDRjtnQkFDRjttQkFRRSxJQUFJTixRQUFVLGFBQVlNLFFBQUFBLFlBQVlYLFFBQVcsYUFBQUEsUUFBQSxjQUFBQSxRQUFBLGNBQUFBLFFBQUE7b0JBQy9DSyxLQUFBLENBQU1QLElBQUFBLElBQUFBLFFBQWdCYSxZQUFBOzBCQUNwQlgsZ0JBQUFBO3dCQUNBQzt3QkFDQUMsVUFBUVM7d0JBQ1ZULFFBQUFTO29CQUNGO2dCQUNGO21CQUNFO2dCQUNBO2dCQUNBLDZEQUFpQlg7Z0JBQ25CLE1BQUF0RSxJQUFBc0U7WUFDRjtRQUVBO1FBQ0EsNEZBQXNEO1FBQ3RELHNEQUErQjtRQUMvQixNQUFJSyxZQUFjN0IsT0FBS29DLE9BQUFBLENBQVVDLE1BQUFBLENBQU87WUFDdENELE1BQUFBLFFBQVVDLElBQU8sQ0FBQUQsVUFBR0MsT0FBQSxLQUFBeEUsYUFBQTtZQUNwQnlFLFVBQVFDLE9BQ047WUFFSkQsUUFBQUMsSUFBQTtRQUNGO0lBRUE7UUFDRWhFLElBQW9CaUUsRUFBUTtZQUMxQjNFLGVBQUlKLENBQUFBLFFBQUFBO1lBQ0osSUFBSUE7Z0JBQ0ZBLE9BQU9nRixhQUFBQSxVQUFBQTtnQkFDVGhGLE9BQ0VnRjttQkFHQWhGLElBQU9nRixPQUFBQSxhQUFpQixtQkFBQUEsU0FBQUMsUUFBQTtnQkFDMUJqRixPQUFBZ0YsU0FBQUMsUUFBQTtZQUVBO2dCQUNFakYsTUFBTWtGO2dCQUlOLE1BQUlBLG9CQUFtQmxGLEtBQUFtRixLQUFBLE1BQUFDLElBQUEsRUFBQUMsVUFBQUEsUUFBQUMsVUFBQSxTQUFBRCxRQUFBRSxRQUFBO29CQUNyQkwsbUJBQ0c7b0JBRUwsVUFBQXBCLE1BQUEsbUJBQUE5RCxPQUFBO2dCQUNGO1lBQ0Y7UUFDRjtJQUVBO1VBQ0UsRUFBSUEsSUFBQ3FELEVBQUFBLEVBQUFBLEVBQUFBLEdBQUFBLE9BQWFiLE9BQUEsQ0FBQWdELE9BQUE7WUFDaEIsQ0FBQW5DLGFBQU1vQztZQUNOLE1BQUFBLGVBQU8vQyxrQkFBQXNDO21CQUNMaEY7Z0JBQ0FDLE1BQUk4RTtnQkFDTjlFLElBQUE4RSxTQUFBckMsa0JBQUFxQyxVQUFBVTtZQUNGO1FBRUE7UUFNQSxPQUFPQSxjQUFBQyxXQUFBLE9BQUFDLGFBQUFDLFdBQUEsRUFBQXZDLGFBQUEyQixVQUFBO2VBQ0xoRjtZQUNBQyxNQUFJOEU7WUFHTjlFLElBQUE4RSxTQUFBLElBQUFZLGFBQUFDLFdBQUEsRUFBQXZDLGFBQUEwQixVQUFBVyxjQUFBRDtRQUNDOztRQUFjVDtRQUFVRDtRQUFPQTtLQUVsQztJQUNBLE1BQU1jLGVBQWF2RCxPQUFBQSxPQUFNd0QsQ0FBQUEsTUFBZTdGLENBQUFBO0lBRXhDLE1BQUE0RixhQUFBdEQsT0FBQUMsT0FBQSxDQUFBc0QsTUFBQSxDQUFBN0Y7SUFDQSxvRkFBSThGO0lBQ0osSUFBSS9DO1FBQ0ZBLGdCQUFnQmdEO1lBQ2RsRixJQUFhO2dCQUNYK0QsU0FBUUM7Z0JBR1ZELFFBQUFDLElBQUEscURBQUFFLFdBQUE7WUFDQTtnQkFDRUgsa0JBQ0c7Z0JBRUxBLFFBQUFDLElBQUEsMERBQUFFLFdBQUE7WUFDQTtnQkFDRWU7Z0JBQ0FBLFFBQU9sRixPQUFLMkIsT0FBQSxDQUFBeUQsUUFBQSxDQUFBQyxJQUFBLENBQUFwRDtxQkFDUEEsS0FBQUE7b0JBQ0gsQ0FBQUEsVUFBVWdCO29CQUdaLFVBQUFBLE1BQUEsdURBQUFrQixXQUFBO2dCQUNBO2dCQU1GLFVBQUFsQixNQUFBLDZEQUFBa0IsV0FBQSxzR0FBQWpGLFdBQUE7WUFDRjtlQUNFZ0csRUFFSjtXQUNFO1lBQ0VqRixJQUFLZ0MsRUFBQUE7Z0JBQ0gsQ0FBQUEsWUFBVWdCLE9BQ1IsU0FBQWhCLFNBQUFxRCxJQUFBO2dCQUVKLFVBQUFyQyxNQUFBO1lBQ0Y7UUFDRjtJQUVBO0lBSUEsTUFBTXNDLFdBQUNDLGlCQUFvQkMsU0FBV0MsT0FBQUEsVUFBZ0JDLFlBQUFBLE1BQUFBLEdBQUFBLEdBQUFBO1VBQ3BEQyxDQUFBQSxvQkFBWUgsV0FBQUMsYUFBQSxPQUFBRyxpQkFBQUYsZUFBQTtRQUNkQyxZQUFBO0lBRUE7VUFFSUUsU0FBQXBFLE9BQUFDLE9BQUEsQ0FBQW9FLFdBQUEsRUFBQUM7UUFDQSw0RUFBZ0U7WUFDOUROLFdBQUFBLE9BQUFBLEtBQUFBLE1BQUFBLGFBQUFBLE9BQUFBLEtBQUFBLE1BQUFBO1lBQ0FWO1lBQ0FpQixXQUFBQSxPQUFhbEMsR0FBTzNFO1lBQ3RCNkcsYUFBQWxDLE9BQUEsR0FBQTVFO1FBRUFxRztRQUNBQSxtQkFBY1E7WUFDWlQsVUFBSTt1QkFDS0EsYUFBT0EsWUFBYUEsU0FBVVM7aUJBQ3JDVCxJQUFBQSxPQUFTeEIsYUFBVWlDLFVBQUFBO2dCQUNyQlQsU0FBQXhCLE9BQUEsR0FBQWlDO1lBQ0Y7UUFFRjs7UUFBS1Q7UUFBVXBHO1FBQU11RztRQUFjRjtRQUFtQkE7S0FHeEQ7SUFDQS9ELDJEQUFnQjtXQUNkRSxPQUFBLENBQUF1RSxTQUFBO1FBQ0EsZ0hBQTJDO1lBQ3pDakcsSUFBQTtZQUNGO1FBRUE7WUFDRSxDQUFBakIsUUFBQTtZQUNGO1FBRUE7UUFDQSwyREFBb0M7WUFDbEMsQ0FBQXlHLGFBQUEsQ0FBQWhELGlCQUFBO1lBQ0Y7UUFFQTtRQUNBeEQsb0JBRUVFO2lCQUVFTyxRQUFBQSxNQUFBQSxJQUFBQTtZQUNGQTs7WUFHQUgsTUFBQUE7UUFFRCxHQUFBQTs7UUFFREo7UUFDQXNHO1FBQ0EvRjtRQUNBK0M7UUFDQUQ7UUFDQXhELGVBQUFBLE9BQUFBLEtBQUFBLElBQUFBLFlBQUFBLE1BQUFBO1FBQ0FPO1FBQ0E0RztRQUNEQTtLQUVEO1VBT0VDLGFBQUtOO1FBQ0xyQyxLQUFBQTtpQkFDTXhELENBQUFBO2dCQUNGQSxJQUFRO29CQUNOLENBQUFlLEdBQUE7b0JBR0YsVUFBQWlDLE1BQUE7Z0JBQ0Y7WUFFQTtnQkFDRVEsQ0FBQUEsa0JBQVF6QyxPQUFBQSxZQUFBQSxZQUFBQTtnQkFDVnlDLFFBQUF6QztZQUVBO2dCQUtFa0Usa0JBQVl6QixNQUFRekMsS0FBQUEsSUFBQUEsT0FBQUEsTUFBQUEsS0FBQUEsQ0FBQUEsT0FBQUEsS0FBQUEsWUFBQUE7Z0JBQ3RCa0UsTUFBQTNCLEtBQUEsQ0FBQUUsT0FBQSxDQUFBekM7WUFFQTtnQkFDRSxDQUFBaEMsUUFBQTtnQkFDRjtZQUVBO2dCQUNFZ0MsRUFBQXFGLGdCQUFBO2dCQUNGO1lBRUF0RjtZQVdGQSxZQUFBQyxHQUFBaEMsUUFBQUcsTUFBQUMsSUFBQTZCLFNBQUFDLFNBQUFDLFFBQUF6QixRQUFBSDtRQUNBbUU7c0JBQ092QixDQUFBQTtnQkFDSG1FLENBQUFBLGtCQUFpQnRGLE9BQUFBLHFCQUFBQSxZQUFBQTtnQkFDbkJzRixpQkFBQXRGO1lBRUE7Z0JBS0VrRSxrQkFBWXhCLE1BQVlILEtBQUN2QyxJQUFBQSxPQUFBQSxNQUFBQSxLQUFBQSxDQUFBQSxZQUFBQSxLQUFBQSxZQUFBQTtnQkFDM0JrRSxNQUFBM0IsS0FBQSxDQUFBRyxZQUFBLENBQUExQztZQUVBO2dCQUNFLENBQUFoQyxRQUFBO2dCQUNGO1lBRUE7Z0JBSUUsRUFBQXlELG1CQUFBeEMsa0JBQUEsa0JBQUFWLGFBQUE7Z0JBQ0Y7WUFFQU47cUJBS0lTLFFBQUFBLE1BQUFBLElBQUFBO2dCQUNBNkc7Z0JBQ0FBLFVBQUE7Z0JBQ0FDLGdHQUF1QjtnQkFFekJBLHVCQUFBOztnQkFHQWpILE1BQUFBO1lBRUosR0FBQUE7UUFDQW9FO3NCQUdXeEIsTUFBeUJzRSxHQUFxQkMsQ0FBQUEsR0FBWSxTQUFBL0MsYUFBQTNDLENBQUE7Z0JBQzdEeUYsQ0FBQUEsa0JBQWlCekYsT0FBQUEscUJBQUFBLFlBQUFBO2dCQUNuQnlGLGlCQUFBekY7WUFFQTtnQkFLRWtFLGtCQUFZdkIsTUFBWUosS0FBQ3ZDLElBQUFBLE9BQUFBLE1BQUFBLEtBQUFBLENBQUFBLFlBQUFBLEtBQUFBLFlBQUFBO2dCQUMzQmtFLE1BQUEzQixLQUFBLENBQUFJLFlBQUEsQ0FBQTNDO1lBRUE7Z0JBQ0UsQ0FBQWhDLFFBQUE7Z0JBQ0Y7WUFFQTtnQkFDRSxDQUFBeUQsbUJBQUFsRCxhQUFBO2dCQUNGO1lBRUFOO3FCQUtJUyxRQUFBQSxNQUFBQSxJQUFBQTtnQkFDQTZHO2dCQUNBQSxVQUFBO2dCQUNBQyxnR0FBdUI7Z0JBRXpCQSx1QkFBQTs7Z0JBR0FqSCxNQUFBQTtZQUVKLEdBQUFBO1FBQ047SUFFQTtJQUNBLDZGQUF3RjtJQUN4Rix3RkFBb0Y7SUFDcEYsb0ZBQXVCO1FBQ3JCb0gsQ0FBQUEsR0FBQUEsT0FBV3hILGFBQU9DLEVBQUFBLEtBQUFBO1FBQ3BCdUgsV0FDR3hFLElBQUFBLEdBQUFBO1dBSUQsSUFBTXlFLENBQUFBLGtCQUNHbEgsWUFBV3dGLE1BQUFJLElBQUEsS0FBYzVGLE9BQVM4QyxDQUFBQSxDQUFBQSxVQUFBQSxNQUFBQSxLQUFBQSxHQUFBQTtRQUUzQyxNQUFBb0UsWUFBQSxPQUFBbEgsV0FBQSxjQUFBQSxTQUFBOEMsZUFBdUUsZ0JBQUFBLFlBQUE5QyxNQUFBO1FBQ3ZFLHVFQUF1RTtRQUN2RSx1RUFDZW1IO1FBUWZGLE1BQUFBLGVBQ0VHLENBQUFBLGVBQ0FDLE9BQUFBLEtBQUFBLElBQUFBLFlBQVlDLGNBQUFBLEtBQUFBLENBQUFBLEdBQVNDLGlCQUFnQnpFLGVBQUFBLEVBQUFBLElBQUFBLFdBQUFBLGVBQWEwRSxPQUFBQSxLQUFhLElBQUExRSxZQUFBMkUsT0FBQSxFQUFBM0UsZUFBQSxnQkFBQUEsWUFBQTRFLGFBQUE7UUFDbkVULFdBQUF4SCxJQUFBLEdBQUEySCxnQkFBQSxJQUFBTyxhQUFBTixXQUFBLE1BQUFPLFdBQUFOLFNBQUEsRUFBQTVILElBQUF3SCxXQUFBcEUsZUFBQSxnQkFBQUEsWUFBQTBFLGFBQUE7SUFFQTtXQUdTSyxpQkFBUyxjQUFBN0YsT0FBQUMsT0FBQSxDQUFBNkYsWUFBQSxDQUFBdEMsT0FBQXlCLGNBQUEsa0JBQUFjLFlBQUFDLEdBQUE7UUFBRyxHQUFHZixTQUFBQTtxQkFDbkIxRTs7SUFHUCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vc3JjL2NsaWVudC9saW5rLnRzeD9hY2YwIl0sIm5hbWVzIjpbIl9pbnRlcm9wX3JlcXVpcmVfZGVmYXVsdCIsIl8iLCJyZXF1aXJlIiwicHJlZmV0Y2hlZCIsIlNldCIsInJvdXRlciIsInByZWZldGNoIiwid2luZG93IiwiaHJlZiIsImFzIiwib3B0aW9ucyIsImFwcE9wdGlvbnMiLCJpc0FwcFJvdXRlciIsIl9pc2xvY2FsdXJsIiwiaXNMb2NhbFVSTCIsImxvY2FsZSIsInByZWZldGNoZWRLZXkiLCJoYXMiLCJhZGQiLCJwcmVmZXRjaFByb21pc2UiLCJQcm9taXNlIiwiZXJyIiwicHJvY2VzcyIsImVudiIsImNhdGNoIiwiaXNNb2RpZmllZEV2ZW50IiwiZXZlbnQiLCJjdXJyZW50VGFyZ2V0IiwidGFyZ2V0IiwiZXZlbnRUYXJnZXQiLCJuYXRpdmVFdmVudCIsIndoaWNoIiwibWV0YUtleSIsImN0cmxLZXkiLCJzaGlmdEtleSIsImFsdEtleSIsImxpbmtDbGlja2VkIiwiZSIsInJlcGxhY2UiLCJzaGFsbG93Iiwic2Nyb2xsIiwibm9kZU5hbWUiLCJpc0FuY2hvck5vZGVOYW1lIiwicHJldmVudERlZmF1bHQiLCJuYXZpZ2F0ZSIsInJvdXRlclNjcm9sbCIsIlJlYWN0IiwiX3JlYWN0IiwiZGVmYXVsdCIsInN0YXJ0VHJhbnNpdGlvbiIsImZvcm1hdFN0cmluZ09yVXJsIiwidXJsT2JqT3JTdHJpbmciLCJfZm9ybWF0dXJsIiwiZm9ybWF0VXJsIiwiY2hpbGRyZW4iLCJjaGlsZHJlblByb3AiLCJsZWdhY3lCZWhhdmlvciIsImEiLCJhcHBSb3V0ZXIiLCJ1c2VDb250ZXh0IiwiQXBwUm91dGVyQ29udGV4dCIsInBhZ2VzUm91dGVyIiwicHJlZmV0Y2hFbmFibGVkIiwicHJlZmV0Y2hQcm9wIiwiX3JvdXRlcnJlZHVjZXJ0eXBlcyIsIlByZWZldGNoS2luZCIsIkFVVE8iLCJGVUxMIiwiYXJncyIsImNyZWF0ZVByb3BFcnJvciIsIkVycm9yIiwia2V5IiwiZXhwZWN0ZWQiLCJhY3R1YWwiLCJyZXF1aXJlZFByb3BzIiwiT2JqZWN0IiwicHJvcHMiLCJwYXNzSHJlZiIsIm9uQ2xpY2siLCJvbk1vdXNlRW50ZXIiLCJvblRvdWNoU3RhcnQiLCJvcHRpb25hbFByb3BzIiwidmFsVHlwZSIsImhhc1dhcm5lZCIsImN1cnJlbnQiLCJjb25zb2xlIiwid2FybiIsImFzUHJvcCIsImhyZWZQcm9wIiwicGF0aG5hbWUiLCJoYXNEeW5hbWljU2VnbWVudCIsInNwbGl0Iiwic29tZSIsInNlZ21lbnQiLCJzdGFydHNXaXRoIiwiZW5kc1dpdGgiLCJ1c2VNZW1vIiwicmVzb2x2ZWRIcmVmIiwicmVzb2x2ZWRBcyIsIl9yZXNvbHZlaHJlZiIsInJlc29sdmVIcmVmIiwicHJldmlvdXNBcyIsInVzZVJlZiIsImNoaWxkIiwiTk9ERV9FTlYiLCJDaGlsZHJlbiIsIm9ubHkiLCJ0eXBlIiwiY2hpbGRSZWYiLCJzZXRJbnRlcnNlY3Rpb25SZWYiLCJpc1Zpc2libGUiLCJyZXNldFZpc2libGUiLCJ1c2VJbnRlcnNlY3Rpb24iLCJyb290TWFyZ2luIiwiX3VzZWludGVyc2VjdGlvbiIsInNldFJlZiIsInVzZUNhbGxiYWNrIiwiZWwiLCJwcmV2aW91c0hyZWYiLCJ1c2VFZmZlY3QiLCJhcHBQcmVmZXRjaEtpbmQiLCJyZWYiLCJkZWZhdWx0UHJldmVudGVkIiwib25Nb3VzZUVudGVyUHJvcCIsInByaW9yaXR5IiwiYnlwYXNzUHJlZmV0Y2hlZENoZWNrIiwib25Ub3VjaFN0YXJ0UHJvcCIsInVuZGVmaW5lZCIsImNoaWxkUHJvcHMiLCJjdXJMb2NhbGUiLCJpc0xvY2FsZURvbWFpbiIsImxvY2FsZURvbWFpbiIsImFkZEJhc2VQYXRoIiwiYWRkTG9jYWxlIiwiX2dldGRvbWFpbmxvY2FsZSIsImRlZmF1bHRMb2NhbGUiLCJsb2NhbGVzIiwiZG9tYWluTG9jYWxlcyIsIl9hZGRiYXNlcGF0aCIsIl9hZGRsb2NhbGUiLCJyZXN0UHJvcHMiLCJjbG9uZUVsZW1lbnQiLCJfanN4cnVudGltZSIsImpzeCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/link.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/client/request-idle-callback.js":
-/*!****************************************************************!*\
- !*** ./node_modules/next/dist/client/request-idle-callback.js ***!
- \****************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n cancelIdleCallback: function() {\n return cancelIdleCallback;\n },\n requestIdleCallback: function() {\n return requestIdleCallback;\n }\n});\nconst requestIdleCallback = typeof self !== \"undefined\" && self.requestIdleCallback && self.requestIdleCallback.bind(window) || function(cb) {\n let start = Date.now();\n return self.setTimeout(function() {\n cb({\n didTimeout: false,\n timeRemaining: function() {\n return Math.max(0, 50 - (Date.now() - start));\n }\n });\n }, 1);\n};\nconst cancelIdleCallback = typeof self !== \"undefined\" && self.cancelIdleCallback && self.cancelIdleCallback.bind(window) || function(id) {\n return clearTimeout(id);\n};\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=request-idle-callback.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3QtaWRsZS1jYWxsYmFjay5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFnQmFBLG9CQUFrQjtlQUFsQkE7O0lBaEJBQyxxQkFBbUI7ZUFBbkJBOzs7QUFBTixNQUFNQSxzQkFDWCxPQUFRQyxTQUFTLGVBQ2ZBLEtBQUtELG1CQUFtQixJQUN4QkMsS0FBS0QsbUJBQW1CLENBQUNFLElBQUksQ0FBQ0MsV0FDaEMsU0FBVUMsRUFBdUI7SUFDL0IsSUFBSUMsUUFBUUMsS0FBS0MsR0FBRztJQUNwQixPQUFPTixLQUFLTyxVQUFVLENBQUM7UUFDckJKLEdBQUc7WUFDREssWUFBWTtZQUNaQyxlQUFlO2dCQUNiLE9BQU9DLEtBQUtDLEdBQUcsQ0FBQyxHQUFHLEtBQU1OLENBQUFBLEtBQUtDLEdBQUcsS0FBS0YsS0FBQUE7WUFDeEM7UUFDRjtJQUNGLEdBQUc7QUFDTDtBQUVLLE1BQU1OLHFCQUNYLE9BQVFFLFNBQVMsZUFDZkEsS0FBS0Ysa0JBQWtCLElBQ3ZCRSxLQUFLRixrQkFBa0IsQ0FBQ0csSUFBSSxDQUFDQyxXQUMvQixTQUFVVSxFQUFVO0lBQ2xCLE9BQU9DLGFBQWFEO0FBQ3RCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9zcmMvY2xpZW50L3JlcXVlc3QtaWRsZS1jYWxsYmFjay50cz8wNWY0Il0sIm5hbWVzIjpbImNhbmNlbElkbGVDYWxsYmFjayIsInJlcXVlc3RJZGxlQ2FsbGJhY2siLCJzZWxmIiwiYmluZCIsIndpbmRvdyIsImNiIiwic3RhcnQiLCJEYXRlIiwibm93Iiwic2V0VGltZW91dCIsImRpZFRpbWVvdXQiLCJ0aW1lUmVtYWluaW5nIiwiTWF0aCIsIm1heCIsImlkIiwiY2xlYXJUaW1lb3V0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/request-idle-callback.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/client/resolve-href.js":
-/*!*******************************************************!*\
- !*** ./node_modules/next/dist/client/resolve-href.js ***!
- \*******************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"resolveHref\", ({\n enumerable: true,\n get: function() {\n return resolveHref;\n }\n}));\nconst _querystring = __webpack_require__(/*! ../shared/lib/router/utils/querystring */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\");\nconst _formaturl = __webpack_require__(/*! ../shared/lib/router/utils/format-url */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _omit = __webpack_require__(/*! ../shared/lib/router/utils/omit */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/omit.js\");\nconst _utils = __webpack_require__(/*! ../shared/lib/utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _normalizetrailingslash = __webpack_require__(/*! ./normalize-trailing-slash */ \"(app-pages-browser)/./node_modules/next/dist/client/normalize-trailing-slash.js\");\nconst _islocalurl = __webpack_require__(/*! ../shared/lib/router/utils/is-local-url */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _utils1 = __webpack_require__(/*! ../shared/lib/router/utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js\");\nconst _interpolateas = __webpack_require__(/*! ../shared/lib/router/utils/interpolate-as */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\");\nfunction resolveHref(router, href, resolveAs) {\n // we use a dummy base url for relative urls\n let base;\n let urlAsString = typeof href === \"string\" ? href : (0, _formaturl.formatWithValidation)(href);\n // repeated slashes and backslashes in the URL are considered\n // invalid and will never match a Next.js page/file\n const urlProtoMatch = urlAsString.match(/^[a-zA-Z]{1,}:\\/\\//);\n const urlAsStringNoProto = urlProtoMatch ? urlAsString.slice(urlProtoMatch[0].length) : urlAsString;\n const urlParts = urlAsStringNoProto.split(\"?\", 1);\n if ((urlParts[0] || \"\").match(/(\\/\\/|\\\\)/)) {\n console.error(\"Invalid href '\" + urlAsString + \"' passed to next/router in page: '\" + router.pathname + \"'. Repeated forward-slashes (//) or backslashes \\\\ are not valid in the href.\");\n const normalizedUrl = (0, _utils.normalizeRepeatedSlashes)(urlAsStringNoProto);\n urlAsString = (urlProtoMatch ? urlProtoMatch[0] : \"\") + normalizedUrl;\n }\n // Return because it cannot be routed by the Next.js router\n if (!(0, _islocalurl.isLocalURL)(urlAsString)) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\n }\n try {\n base = new URL(urlAsString.startsWith(\"#\") ? router.asPath : router.pathname, \"http://n\");\n } catch (_) {\n // fallback to / for invalid asPath values e.g. //\n base = new URL(\"/\", \"http://n\");\n }\n try {\n const finalUrl = new URL(urlAsString, base);\n finalUrl.pathname = (0, _normalizetrailingslash.normalizePathTrailingSlash)(finalUrl.pathname);\n let interpolatedAs = \"\";\n if ((0, _utils1.isDynamicRoute)(finalUrl.pathname) && finalUrl.searchParams && resolveAs) {\n const query = (0, _querystring.searchParamsToUrlQuery)(finalUrl.searchParams);\n const { result, params } = (0, _interpolateas.interpolateAs)(finalUrl.pathname, finalUrl.pathname, query);\n if (result) {\n interpolatedAs = (0, _formaturl.formatWithValidation)({\n pathname: result,\n hash: finalUrl.hash,\n query: (0, _omit.omit)(query, params)\n });\n }\n }\n // if the origin didn't change, it means we received a relative href\n const resolvedHref = finalUrl.origin === base.origin ? finalUrl.href.slice(finalUrl.origin.length) : finalUrl.href;\n return resolveAs ? [\n resolvedHref,\n interpolatedAs || resolvedHref\n ] : resolvedHref;\n } catch (_) {\n return resolveAs ? [\n urlAsString\n ] : urlAsString;\n }\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=resolve-href.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3Jlc29sdmUtaHJlZi5qcyIsIm1hcHBpbmdzIjoiOzs7OytDQXlCZ0JBOzs7ZUFBQUE7Ozt5Q0F2QnVCO3VDQUNGO2tDQUNoQjttQ0FDb0I7b0RBQ0U7d0NBQ2hCO29DQUNJOzJDQUNEO0FBZ0J2QixTQUFTQSxZQUNkQyxNQUFrQixFQUNsQkMsSUFBUyxFQUNUQyxTQUFtQjtJQUVuQiw0Q0FBNEM7SUFDNUMsSUFBSUM7SUFDSixJQUFJQyxjQUFjLE9BQU9ILFNBQVMsV0FBV0EsT0FBT0ksQ0FBQUEsR0FBQUEsV0FBQUEsb0JBQW9CLEVBQUNKO0lBRXpFLDZEQUE2RDtJQUM3RCxtREFBbUQ7SUFDbkQsTUFBTUssZ0JBQWdCRixZQUFZRyxLQUFLLENBQUM7SUFDeEMsTUFBTUMscUJBQXFCRixnQkFDdkJGLFlBQVlLLEtBQUssQ0FBQ0gsYUFBYSxDQUFDLEVBQUUsQ0FBQ0ksTUFBTSxJQUN6Q047SUFFSixNQUFNTyxXQUFXSCxtQkFBbUJJLEtBQUssQ0FBQyxLQUFLO0lBRS9DLElBQUksQ0FBQ0QsUUFBUSxDQUFDLEVBQUUsSUFBSSxJQUFJSixLQUFLLENBQUMsY0FBYztRQUMxQ00sUUFBUUMsS0FBSyxDQUNYLG1CQUFpQlYsY0FBWSx1Q0FBb0NKLE9BQU9lLFFBQVEsR0FBQztRQUVuRixNQUFNQyxnQkFBZ0JDLENBQUFBLEdBQUFBLE9BQUFBLHdCQUF3QixFQUFDVDtRQUMvQ0osY0FBYyxDQUFDRSxnQkFBZ0JBLGFBQWEsQ0FBQyxFQUFFLEdBQUcsTUFBTVU7SUFDMUQ7SUFFQSwyREFBMkQ7SUFDM0QsSUFBSSxDQUFDRSxDQUFBQSxHQUFBQSxZQUFBQSxVQUFVLEVBQUNkLGNBQWM7UUFDNUIsT0FBUUYsWUFBWTtZQUFDRTtTQUFZLEdBQUdBO0lBQ3RDO0lBRUEsSUFBSTtRQUNGRCxPQUFPLElBQUlnQixJQUNUZixZQUFZZ0IsVUFBVSxDQUFDLE9BQU9wQixPQUFPcUIsTUFBTSxHQUFHckIsT0FBT2UsUUFBUSxFQUM3RDtJQUVKLEVBQUUsT0FBT08sR0FBRztRQUNWLGtEQUFrRDtRQUNsRG5CLE9BQU8sSUFBSWdCLElBQUksS0FBSztJQUN0QjtJQUVBLElBQUk7UUFDRixNQUFNSSxXQUFXLElBQUlKLElBQUlmLGFBQWFEO1FBQ3RDb0IsU0FBU1IsUUFBUSxHQUFHUyxDQUFBQSxHQUFBQSx3QkFBQUEsMEJBQTBCLEVBQUNELFNBQVNSLFFBQVE7UUFDaEUsSUFBSVUsaUJBQWlCO1FBRXJCLElBQ0VDLENBQUFBLEdBQUFBLFFBQUFBLGNBQWMsRUFBQ0gsU0FBU1IsUUFBUSxLQUNoQ1EsU0FBU0ksWUFBWSxJQUNyQnpCLFdBQ0E7WUFDQSxNQUFNMEIsUUFBUUMsQ0FBQUEsR0FBQUEsYUFBQUEsc0JBQXNCLEVBQUNOLFNBQVNJLFlBQVk7WUFFMUQsTUFBTSxFQUFFRyxNQUFNLEVBQUVDLE1BQU0sRUFBRSxHQUFHQyxDQUFBQSxHQUFBQSxlQUFBQSxhQUFhLEVBQ3RDVCxTQUFTUixRQUFRLEVBQ2pCUSxTQUFTUixRQUFRLEVBQ2pCYTtZQUdGLElBQUlFLFFBQVE7Z0JBQ1ZMLGlCQUFpQnBCLENBQUFBLEdBQUFBLFdBQUFBLG9CQUFvQixFQUFDO29CQUNwQ1UsVUFBVWU7b0JBQ1ZHLE1BQU1WLFNBQVNVLElBQUk7b0JBQ25CTCxPQUFPTSxDQUFBQSxHQUFBQSxNQUFBQSxJQUFJLEVBQUNOLE9BQU9HO2dCQUNyQjtZQUNGO1FBQ0Y7UUFFQSxvRUFBb0U7UUFDcEUsTUFBTUksZUFDSlosU0FBU2EsTUFBTSxLQUFLakMsS0FBS2lDLE1BQU0sR0FDM0JiLFNBQVN0QixJQUFJLENBQUNRLEtBQUssQ0FBQ2MsU0FBU2EsTUFBTSxDQUFDMUIsTUFBTSxJQUMxQ2EsU0FBU3RCLElBQUk7UUFFbkIsT0FBT0MsWUFDSDtZQUFDaUM7WUFBY1Ysa0JBQWtCVTtTQUFhLEdBQzlDQTtJQUNOLEVBQUUsT0FBT2IsR0FBRztRQUNWLE9BQU9wQixZQUFZO1lBQUNFO1NBQVksR0FBR0E7SUFDckM7QUFDRiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vc3JjL2NsaWVudC9yZXNvbHZlLWhyZWYudHM/ZTZkMiJdLCJuYW1lcyI6WyJyZXNvbHZlSHJlZiIsInJvdXRlciIsImhyZWYiLCJyZXNvbHZlQXMiLCJiYXNlIiwidXJsQXNTdHJpbmciLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsInVybFByb3RvTWF0Y2giLCJtYXRjaCIsInVybEFzU3RyaW5nTm9Qcm90byIsInNsaWNlIiwibGVuZ3RoIiwidXJsUGFydHMiLCJzcGxpdCIsImNvbnNvbGUiLCJlcnJvciIsInBhdGhuYW1lIiwibm9ybWFsaXplZFVybCIsIm5vcm1hbGl6ZVJlcGVhdGVkU2xhc2hlcyIsImlzTG9jYWxVUkwiLCJVUkwiLCJzdGFydHNXaXRoIiwiYXNQYXRoIiwiXyIsImZpbmFsVXJsIiwibm9ybWFsaXplUGF0aFRyYWlsaW5nU2xhc2giLCJpbnRlcnBvbGF0ZWRBcyIsImlzRHluYW1pY1JvdXRlIiwic2VhcmNoUGFyYW1zIiwicXVlcnkiLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwicmVzdWx0IiwicGFyYW1zIiwiaW50ZXJwb2xhdGVBcyIsImhhc2giLCJvbWl0IiwicmVzb2x2ZWRIcmVmIiwib3JpZ2luIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/resolve-href.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/client/use-intersection.js":
-/*!***********************************************************!*\
- !*** ./node_modules/next/dist/client/use-intersection.js ***!
- \***********************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useIntersection\", ({\n enumerable: true,\n get: function() {\n return useIntersection;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\nconst _requestidlecallback = __webpack_require__(/*! ./request-idle-callback */ \"(app-pages-browser)/./node_modules/next/dist/client/request-idle-callback.js\");\nconst hasIntersectionObserver = typeof IntersectionObserver === \"function\";\nconst observers = new Map();\nconst idList = [];\nfunction createObserver(options) {\n const id = {\n root: options.root || null,\n margin: options.rootMargin || \"\"\n };\n const existing = idList.find((obj)=>obj.root === id.root && obj.margin === id.margin);\n let instance;\n if (existing) {\n instance = observers.get(existing);\n if (instance) {\n return instance;\n }\n }\n const elements = new Map();\n const observer = new IntersectionObserver((entries)=>{\n entries.forEach((entry)=>{\n const callback = elements.get(entry.target);\n const isVisible = entry.isIntersecting || entry.intersectionRatio > 0;\n if (callback && isVisible) {\n callback(isVisible);\n }\n });\n }, options);\n instance = {\n id,\n observer,\n elements\n };\n idList.push(id);\n observers.set(id, instance);\n return instance;\n}\nfunction observe(element, callback, options) {\n const { id, observer, elements } = createObserver(options);\n elements.set(element, callback);\n observer.observe(element);\n return function unobserve() {\n elements.delete(element);\n observer.unobserve(element);\n // Destroy observer when there's nothing left to watch:\n if (elements.size === 0) {\n observer.disconnect();\n observers.delete(id);\n const index = idList.findIndex((obj)=>obj.root === id.root && obj.margin === id.margin);\n if (index > -1) {\n idList.splice(index, 1);\n }\n }\n };\n}\nfunction useIntersection(param) {\n let { rootRef, rootMargin, disabled } = param;\n const isDisabled = disabled || !hasIntersectionObserver;\n const [visible, setVisible] = (0, _react.useState)(false);\n const elementRef = (0, _react.useRef)(null);\n const setElement = (0, _react.useCallback)((element)=>{\n elementRef.current = element;\n }, []);\n (0, _react.useEffect)(()=>{\n if (hasIntersectionObserver) {\n if (isDisabled || visible) return;\n const element = elementRef.current;\n if (element && element.tagName) {\n const unobserve = observe(element, (isVisible)=>isVisible && setVisible(isVisible), {\n root: rootRef == null ? void 0 : rootRef.current,\n rootMargin\n });\n return unobserve;\n }\n } else {\n if (!visible) {\n const idleCallback = (0, _requestidlecallback.requestIdleCallback)(()=>setVisible(true));\n return ()=>(0, _requestidlecallback.cancelIdleCallback)(idleCallback);\n }\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n isDisabled,\n rootMargin,\n rootRef,\n visible,\n elementRef.current\n ]);\n const resetVisible = (0, _react.useCallback)(()=>{\n setVisible(false);\n }, []);\n return [\n setElement,\n visible,\n resetVisible\n ];\n}\nif ((typeof exports.default === \"function\" || typeof exports.default === \"object\" && exports.default !== null) && typeof exports.default.__esModule === \"undefined\") {\n Object.defineProperty(exports.default, \"__esModule\", {\n value: true\n });\n Object.assign(exports.default, exports);\n module.exports = exports.default;\n} //# sourceMappingURL=use-intersection.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3VzZS1pbnRlcnNlY3Rpb24uanMiLCJtYXBwaW5ncyI6Ijs7OzttREErRmdCQTs7O2VBQUFBOzs7bUNBL0Z5QztpREFJbEQ7QUFxQlAsTUFBTUMsMEJBQTBCLE9BQU9DLHlCQUF5QjtBQUVoRSxNQUFNQyxZQUFZLElBQUlDO0FBQ3RCLE1BQU1DLFNBQXVCLEVBQUU7QUFFL0IsU0FBU0MsZUFBZUMsT0FBb0M7SUFDMUQsTUFBTUMsS0FBSztRQUNUQyxNQUFNRixRQUFRRSxJQUFJLElBQUk7UUFDdEJDLFFBQVFILFFBQVFJLFVBQVUsSUFBSTtJQUNoQztJQUNBLE1BQU1DLFdBQVdQLE9BQU9RLElBQUksQ0FDMUIsQ0FBQ0MsTUFBUUEsSUFBSUwsSUFBSSxLQUFLRCxHQUFHQyxJQUFJLElBQUlLLElBQUlKLE1BQU0sS0FBS0YsR0FBR0UsTUFBTTtJQUUzRCxJQUFJSztJQUVKLElBQUlILFVBQVU7UUFDWkcsV0FBV1osVUFBVWEsR0FBRyxDQUFDSjtRQUN6QixJQUFJRyxVQUFVO1lBQ1osT0FBT0E7UUFDVDtJQUNGO0lBRUEsTUFBTUUsV0FBVyxJQUFJYjtJQUNyQixNQUFNYyxXQUFXLElBQUloQixxQkFBcUIsQ0FBQ2lCO1FBQ3pDQSxRQUFRQyxPQUFPLENBQUMsQ0FBQ0M7WUFDZixNQUFNQyxXQUFXTCxTQUFTRCxHQUFHLENBQUNLLE1BQU1FLE1BQU07WUFDMUMsTUFBTUMsWUFBWUgsTUFBTUksY0FBYyxJQUFJSixNQUFNSyxpQkFBaUIsR0FBRztZQUNwRSxJQUFJSixZQUFZRSxXQUFXO2dCQUN6QkYsU0FBU0U7WUFDWDtRQUNGO0lBQ0YsR0FBR2pCO0lBQ0hRLFdBQVc7UUFDVFA7UUFDQVU7UUFDQUQ7SUFDRjtJQUVBWixPQUFPc0IsSUFBSSxDQUFDbkI7SUFDWkwsVUFBVXlCLEdBQUcsQ0FBQ3BCLElBQUlPO0lBQ2xCLE9BQU9BO0FBQ1Q7QUFFQSxTQUFTYyxRQUNQQyxPQUFnQixFQUNoQlIsUUFBeUIsRUFDekJmLE9BQW9DO0lBRXBDLE1BQU0sRUFBRUMsRUFBRSxFQUFFVSxRQUFRLEVBQUVELFFBQVEsRUFBRSxHQUFHWCxlQUFlQztJQUNsRFUsU0FBU1csR0FBRyxDQUFDRSxTQUFTUjtJQUV0QkosU0FBU1csT0FBTyxDQUFDQztJQUNqQixPQUFPLFNBQVNDO1FBQ2RkLFNBQVNlLE1BQU0sQ0FBQ0Y7UUFDaEJaLFNBQVNhLFNBQVMsQ0FBQ0Q7UUFFbkIsdURBQXVEO1FBQ3ZELElBQUliLFNBQVNnQixJQUFJLEtBQUssR0FBRztZQUN2QmYsU0FBU2dCLFVBQVU7WUFDbkIvQixVQUFVNkIsTUFBTSxDQUFDeEI7WUFDakIsTUFBTTJCLFFBQVE5QixPQUFPK0IsU0FBUyxDQUM1QixDQUFDdEIsTUFBUUEsSUFBSUwsSUFBSSxLQUFLRCxHQUFHQyxJQUFJLElBQUlLLElBQUlKLE1BQU0sS0FBS0YsR0FBR0UsTUFBTTtZQUUzRCxJQUFJeUIsUUFBUSxDQUFDLEdBQUc7Z0JBQ2Q5QixPQUFPZ0MsTUFBTSxDQUFDRixPQUFPO1lBQ3ZCO1FBQ0Y7SUFDRjtBQUNGO0FBRU8sU0FBU25DLGdCQUFtQ3NDLEtBSWpDO0lBSmlDLE1BQ2pEQyxPQUFPLEVBQ1A1QixVQUFVLEVBQ1Y2QixRQUFRLEVBQ1EsR0FKaUNGO0lBS2pELE1BQU1HLGFBQXNCRCxZQUFZLENBQUN2QztJQUV6QyxNQUFNLENBQUN5QyxTQUFTQyxXQUFXLEdBQUdDLENBQUFBLEdBQUFBLE9BQUFBLFFBQVEsRUFBQztJQUN2QyxNQUFNQyxhQUFhQyxDQUFBQSxHQUFBQSxPQUFBQSxNQUFNLEVBQVc7SUFDcEMsTUFBTUMsYUFBYUMsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBVyxFQUFDLENBQUNsQjtRQUM5QmUsV0FBV0ksT0FBTyxHQUFHbkI7SUFDdkIsR0FBRyxFQUFFO0lBRUxvQixDQUFBQSxHQUFBQSxPQUFBQSxTQUFTLEVBQUM7UUFDUixJQUFJakQseUJBQXlCO1lBQzNCLElBQUl3QyxjQUFjQyxTQUFTO1lBRTNCLE1BQU1aLFVBQVVlLFdBQVdJLE9BQU87WUFDbEMsSUFBSW5CLFdBQVdBLFFBQVFxQixPQUFPLEVBQUU7Z0JBQzlCLE1BQU1wQixZQUFZRixRQUNoQkMsU0FDQSxDQUFDTixZQUFjQSxhQUFhbUIsV0FBV25CLFlBQ3ZDO29CQUFFZixNQUFNOEIsV0FBQUEsT0FBQUEsS0FBQUEsSUFBQUEsUUFBU1UsT0FBTztvQkFBRXRDO2dCQUFXO2dCQUd2QyxPQUFPb0I7WUFDVDtRQUNGLE9BQU87WUFDTCxJQUFJLENBQUNXLFNBQVM7Z0JBQ1osTUFBTVUsZUFBZUMsQ0FBQUEsR0FBQUEscUJBQUFBLG1CQUFtQixFQUFDLElBQU1WLFdBQVc7Z0JBQzFELE9BQU8sSUFBTVcsQ0FBQUEsR0FBQUEscUJBQUFBLGtCQUFrQixFQUFDRjtZQUNsQztRQUNGO0lBQ0EsdURBQXVEO0lBQ3pELEdBQUc7UUFBQ1g7UUFBWTlCO1FBQVk0QjtRQUFTRztRQUFTRyxXQUFXSSxPQUFPO0tBQUM7SUFFakUsTUFBTU0sZUFBZVAsQ0FBQUEsR0FBQUEsT0FBQUEsV0FBVyxFQUFDO1FBQy9CTCxXQUFXO0lBQ2IsR0FBRyxFQUFFO0lBRUwsT0FBTztRQUFDSTtRQUFZTDtRQUFTYTtLQUFhO0FBQzVDIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi9zcmMvY2xpZW50L3VzZS1pbnRlcnNlY3Rpb24udHN4PzU3ZWUiXSwibmFtZXMiOlsidXNlSW50ZXJzZWN0aW9uIiwiaGFzSW50ZXJzZWN0aW9uT2JzZXJ2ZXIiLCJJbnRlcnNlY3Rpb25PYnNlcnZlciIsIm9ic2VydmVycyIsIk1hcCIsImlkTGlzdCIsImNyZWF0ZU9ic2VydmVyIiwib3B0aW9ucyIsImlkIiwicm9vdCIsIm1hcmdpbiIsInJvb3RNYXJnaW4iLCJleGlzdGluZyIsImZpbmQiLCJvYmoiLCJpbnN0YW5jZSIsImdldCIsImVsZW1lbnRzIiwib2JzZXJ2ZXIiLCJlbnRyaWVzIiwiZm9yRWFjaCIsImVudHJ5IiwiY2FsbGJhY2siLCJ0YXJnZXQiLCJpc1Zpc2libGUiLCJpc0ludGVyc2VjdGluZyIsImludGVyc2VjdGlvblJhdGlvIiwicHVzaCIsInNldCIsIm9ic2VydmUiLCJlbGVtZW50IiwidW5vYnNlcnZlIiwiZGVsZXRlIiwic2l6ZSIsImRpc2Nvbm5lY3QiLCJpbmRleCIsImZpbmRJbmRleCIsInNwbGljZSIsInBhcmFtIiwicm9vdFJlZiIsImRpc2FibGVkIiwiaXNEaXNhYmxlZCIsInZpc2libGUiLCJzZXRWaXNpYmxlIiwidXNlU3RhdGUiLCJlbGVtZW50UmVmIiwidXNlUmVmIiwic2V0RWxlbWVudCIsInVzZUNhbGxiYWNrIiwiY3VycmVudCIsInVzZUVmZmVjdCIsInRhZ05hbWUiLCJpZGxlQ2FsbGJhY2siLCJyZXF1ZXN0SWRsZUNhbGxiYWNrIiwiY2FuY2VsSWRsZUNhbGxiYWNrIiwicmVzZXRWaXNpYmxlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/use-intersection.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/escape-regexp.js":
-/*!************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/escape-regexp.js ***!
- \************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("// regexp is based on https://github.com/sindresorhus/escape-string-regexp\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"escapeStringRegexp\", ({\n enumerable: true,\n get: function() {\n return escapeStringRegexp;\n }\n}));\nconst reHasRegExp = /[|\\\\{}()[\\]^$+*?.-]/;\nconst reReplaceRegExp = /[|\\\\{}()[\\]^$+*?.-]/g;\nfunction escapeStringRegexp(str) {\n // see also: https://github.com/lodash/lodash/blob/2da024c3b4f9947a48517639de7560457cd4ec6c/escapeRegExp.js#L23\n if (reHasRegExp.test(str)) {\n return str.replace(reReplaceRegExp, \"\\\\$&\");\n }\n return str;\n} //# sourceMappingURL=escape-regexp.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9lc2NhcGUtcmVnZXhwLmpzIiwibWFwcGluZ3MiOiJBQUFBLDBFQUEwRTs7Ozs7c0RBSTFEQTs7O2VBQUFBOzs7QUFIaEIsTUFBTUMsY0FBYztBQUNwQixNQUFNQyxrQkFBa0I7QUFFakIsU0FBU0YsbUJBQW1CRyxHQUFXO0lBQzVDLCtHQUErRztJQUMvRyxJQUFJRixZQUFZRyxJQUFJLENBQUNELE1BQU07UUFDekIsT0FBT0EsSUFBSUUsT0FBTyxDQUFDSCxpQkFBaUI7SUFDdEM7SUFDQSxPQUFPQztBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi9lc2NhcGUtcmVnZXhwLnRzP2RjYjEiXSwibmFtZXMiOlsiZXNjYXBlU3RyaW5nUmVnZXhwIiwicmVIYXNSZWdFeHAiLCJyZVJlcGxhY2VSZWdFeHAiLCJzdHIiLCJ0ZXN0IiwicmVwbGFjZSJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/escape-regexp.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js":
-/*!****************************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router-context.shared-runtime.js ***!
- \****************************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"RouterContext\", ({\n enumerable: true,\n get: function() {\n return RouterContext;\n }\n}));\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"(app-pages-browser)/./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _react = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"));\nconst RouterContext = _react.default.createContext(null);\nif (true) {\n RouterContext.displayName = \"RouterContext\";\n} //# sourceMappingURL=router-context.shared-runtime.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZS5qcyIsIm1hcHBpbmdzIjoiOzs7O2lEQUdhQTs7O2VBQUFBOzs7OzRFQUhLO0FBR1gsTUFBTUEsZ0JBQWdCQyxPQUFBQSxPQUFLLENBQUNDLGFBQWEsQ0FBb0I7QUFFcEUsSUFBSUMsSUFBeUIsRUFBYztJQUN6Q0gsY0FBY0ksV0FBVyxHQUFHO0FBQzlCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZS50cz82MzZjIl0sIm5hbWVzIjpbIlJvdXRlckNvbnRleHQiLCJSZWFjdCIsImNyZWF0ZUNvbnRleHQiLCJwcm9jZXNzIiwiZGlzcGxheU5hbWUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router-context.shared-runtime.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js":
-/*!**********************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/format-url.js ***!
- \**********************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n formatUrl: function() {\n return formatUrl;\n },\n formatWithValidation: function() {\n return formatWithValidation;\n },\n urlObjectKeys: function() {\n return urlObjectKeys;\n }\n});\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(app-pages-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _querystring = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ./querystring */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\"));\nconst slashedProtocols = /https?|ftp|gopher|file/;\nfunction formatUrl(urlObj) {\n let { auth, hostname } = urlObj;\n let protocol = urlObj.protocol || \"\";\n let pathname = urlObj.pathname || \"\";\n let hash = urlObj.hash || \"\";\n let query = urlObj.query || \"\";\n let host = false;\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, \":\") + \"@\" : \"\";\n if (urlObj.host) {\n host = auth + urlObj.host;\n } else if (hostname) {\n host = auth + (~hostname.indexOf(\":\") ? \"[\" + hostname + \"]\" : hostname);\n if (urlObj.port) {\n host += \":\" + urlObj.port;\n }\n }\n if (query && typeof query === \"object\") {\n query = String(_querystring.urlQueryToSearchParams(query));\n }\n let search = urlObj.search || query && \"?\" + query || \"\";\n if (protocol && !protocol.endsWith(\":\")) protocol += \":\";\n if (urlObj.slashes || (!protocol || slashedProtocols.test(protocol)) && host !== false) {\n host = \"//\" + (host || \"\");\n if (pathname && pathname[0] !== \"/\") pathname = \"/\" + pathname;\n } else if (!host) {\n host = \"\";\n }\n if (hash && hash[0] !== \"#\") hash = \"#\" + hash;\n if (search && search[0] !== \"?\") search = \"?\" + search;\n pathname = pathname.replace(/[?#]/g, encodeURIComponent);\n search = search.replace(\"#\", \"%23\");\n return \"\" + protocol + host + pathname + search + hash;\n}\nconst urlObjectKeys = [\n \"auth\",\n \"hash\",\n \"host\",\n \"hostname\",\n \"href\",\n \"path\",\n \"pathname\",\n \"port\",\n \"protocol\",\n \"query\",\n \"search\",\n \"slashes\"\n];\nfunction formatWithValidation(url) {\n if (true) {\n if (url !== null && typeof url === \"object\") {\n Object.keys(url).forEach((key)=>{\n if (!urlObjectKeys.includes(key)) {\n console.warn(\"Unknown key passed via urlObject into url.format: \" + key);\n }\n });\n }\n }\n return formatUrl(url);\n} //# sourceMappingURL=format-url.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZm9ybWF0LXVybC5qcyIsIm1hcHBpbmdzIjoiQUFBQSx1Q0FBdUM7QUFDdkMsc0RBQXNEO0FBQ3RELEVBQUU7QUFDRiwwRUFBMEU7QUFDMUUsZ0VBQWdFO0FBQ2hFLHNFQUFzRTtBQUN0RSxzRUFBc0U7QUFDdEUsNEVBQTRFO0FBQzVFLHFFQUFxRTtBQUNyRSx3QkFBd0I7QUFDeEIsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSx5REFBeUQ7QUFDekQsRUFBRTtBQUNGLDBFQUEwRTtBQUMxRSw2REFBNkQ7QUFDN0QsNEVBQTRFO0FBQzVFLDJFQUEyRTtBQUMzRSx3RUFBd0U7QUFDeEUsNEVBQTRFO0FBQzVFLHlDQUF5Qzs7Ozs7Ozs7Ozs7OztJQVF6QkEsV0FBUztlQUFUQTs7SUE2REFDLHNCQUFvQjtlQUFwQkE7O0lBZkhDLGVBQWE7ZUFBYkE7Ozs7bUZBbERnQjtBQUU3QixNQUFNQyxtQkFBbUI7QUFFbEIsU0FBU0gsVUFBVUksTUFBaUI7SUFDekMsSUFBSSxFQUFFQyxJQUFJLEVBQUVDLFFBQVEsRUFBRSxHQUFHRjtJQUN6QixJQUFJRyxXQUFXSCxPQUFPRyxRQUFRLElBQUk7SUFDbEMsSUFBSUMsV0FBV0osT0FBT0ksUUFBUSxJQUFJO0lBQ2xDLElBQUlDLE9BQU9MLE9BQU9LLElBQUksSUFBSTtJQUMxQixJQUFJQyxRQUFRTixPQUFPTSxLQUFLLElBQUk7SUFDNUIsSUFBSUMsT0FBdUI7SUFFM0JOLE9BQU9BLE9BQU9PLG1CQUFtQlAsTUFBTVEsT0FBTyxDQUFDLFFBQVEsT0FBTyxNQUFNO0lBRXBFLElBQUlULE9BQU9PLElBQUksRUFBRTtRQUNmQSxPQUFPTixPQUFPRCxPQUFPTyxJQUFJO0lBQzNCLE9BQU8sSUFBSUwsVUFBVTtRQUNuQkssT0FBT04sT0FBUSxFQUFDQyxTQUFTUSxPQUFPLENBQUMsT0FBTyxNQUFJUixXQUFTLE1BQUtBLFFBQUFBO1FBQzFELElBQUlGLE9BQU9XLElBQUksRUFBRTtZQUNmSixRQUFRLE1BQU1QLE9BQU9XLElBQUk7UUFDM0I7SUFDRjtJQUVBLElBQUlMLFNBQVMsT0FBT0EsVUFBVSxVQUFVO1FBQ3RDQSxRQUFRTSxPQUFPQyxhQUFZQyxzQkFBc0IsQ0FBQ1I7SUFDcEQ7SUFFQSxJQUFJUyxTQUFTZixPQUFPZSxNQUFNLElBQUtULFNBQVMsTUFBSUEsU0FBWTtJQUV4RCxJQUFJSCxZQUFZLENBQUNBLFNBQVNhLFFBQVEsQ0FBQyxNQUFNYixZQUFZO0lBRXJELElBQ0VILE9BQU9pQixPQUFPLElBQ2IsQ0FBQyxDQUFDZCxZQUFZSixpQkFBaUJtQixJQUFJLENBQUNmLFNBQUFBLEtBQWNJLFNBQVMsT0FDNUQ7UUFDQUEsT0FBTyxPQUFRQSxDQUFBQSxRQUFRO1FBQ3ZCLElBQUlILFlBQVlBLFFBQVEsQ0FBQyxFQUFFLEtBQUssS0FBS0EsV0FBVyxNQUFNQTtJQUN4RCxPQUFPLElBQUksQ0FBQ0csTUFBTTtRQUNoQkEsT0FBTztJQUNUO0lBRUEsSUFBSUYsUUFBUUEsSUFBSSxDQUFDLEVBQUUsS0FBSyxLQUFLQSxPQUFPLE1BQU1BO0lBQzFDLElBQUlVLFVBQVVBLE1BQU0sQ0FBQyxFQUFFLEtBQUssS0FBS0EsU0FBUyxNQUFNQTtJQUVoRFgsV0FBV0EsU0FBU0ssT0FBTyxDQUFDLFNBQVNEO0lBQ3JDTyxTQUFTQSxPQUFPTixPQUFPLENBQUMsS0FBSztJQUU3QixPQUFPLEtBQUdOLFdBQVdJLE9BQU9ILFdBQVdXLFNBQVNWO0FBQ2xEO0FBRU8sTUFBTVAsZ0JBQWdCO0lBQzNCO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtDQUNEO0FBRU0sU0FBU0QscUJBQXFCc0IsR0FBYztJQUNqRCxJQUFJQyxJQUF5QixFQUFlO1FBQzFDLElBQUlELFFBQVEsUUFBUSxPQUFPQSxRQUFRLFVBQVU7WUFDM0NFLE9BQU9DLElBQUksQ0FBQ0gsS0FBS0ksT0FBTyxDQUFDLENBQUNDO2dCQUN4QixJQUFJLENBQUMxQixjQUFjMkIsUUFBUSxDQUFDRCxNQUFNO29CQUNoQ0UsUUFBUUMsSUFBSSxDQUNWLHVEQUFxREg7Z0JBRXpEO1lBQ0Y7UUFDRjtJQUNGO0lBRUEsT0FBTzVCLFVBQVV1QjtBQUNuQiIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2Zvcm1hdC11cmwudHM/NTJiMSJdLCJuYW1lcyI6WyJmb3JtYXRVcmwiLCJmb3JtYXRXaXRoVmFsaWRhdGlvbiIsInVybE9iamVjdEtleXMiLCJzbGFzaGVkUHJvdG9jb2xzIiwidXJsT2JqIiwiYXV0aCIsImhvc3RuYW1lIiwicHJvdG9jb2wiLCJwYXRobmFtZSIsImhhc2giLCJxdWVyeSIsImhvc3QiLCJlbmNvZGVVUklDb21wb25lbnQiLCJyZXBsYWNlIiwiaW5kZXhPZiIsInBvcnQiLCJTdHJpbmciLCJxdWVyeXN0cmluZyIsInVybFF1ZXJ5VG9TZWFyY2hQYXJhbXMiLCJzZWFyY2giLCJlbmRzV2l0aCIsInNsYXNoZXMiLCJ0ZXN0IiwidXJsIiwicHJvY2VzcyIsIk9iamVjdCIsImtleXMiLCJmb3JFYWNoIiwia2V5IiwiaW5jbHVkZXMiLCJjb25zb2xlIiwid2FybiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/format-url.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js":
-/*!*****************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/index.js ***!
- \*****************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getSortedRoutes: function() {\n return _sortedroutes.getSortedRoutes;\n },\n isDynamicRoute: function() {\n return _isdynamic.isDynamicRoute;\n }\n});\nconst _sortedroutes = __webpack_require__(/*! ./sorted-routes */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\");\nconst _isdynamic = __webpack_require__(/*! ./is-dynamic */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\"); //# sourceMappingURL=index.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW5kZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBQVNBLGlCQUFlO2VBQWZBLGNBQUFBLGVBQWU7O0lBQ2ZDLGdCQUFjO2VBQWRBLFdBQUFBLGNBQWM7OzswQ0FEUzt1Q0FDRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9saWIvcm91dGVyL3V0aWxzL2luZGV4LnRzPzkxMmIiXSwibmFtZXMiOlsiZ2V0U29ydGVkUm91dGVzIiwiaXNEeW5hbWljUm91dGUiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/index.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js":
-/*!**************************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js ***!
- \**************************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"interpolateAs\", ({\n enumerable: true,\n get: function() {\n return interpolateAs;\n }\n}));\nconst _routematcher = __webpack_require__(/*! ./route-matcher */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _routeregex = __webpack_require__(/*! ./route-regex */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nfunction interpolateAs(route, asPathname, query) {\n let interpolatedRoute = \"\";\n const dynamicRegex = (0, _routeregex.getRouteRegex)(route);\n const dynamicGroups = dynamicRegex.groups;\n const dynamicMatches = (asPathname !== route ? (0, _routematcher.getRouteMatcher)(dynamicRegex)(asPathname) : \"\") || // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query;\n interpolatedRoute = route;\n const params = Object.keys(dynamicGroups);\n if (!params.every((param)=>{\n let value = dynamicMatches[param] || \"\";\n const { repeat, optional } = dynamicGroups[param];\n // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n let replaced = \"[\" + (repeat ? \"...\" : \"\") + param + \"]\";\n if (optional) {\n replaced = (!value ? \"/\" : \"\") + \"[\" + replaced + \"]\";\n }\n if (repeat && !Array.isArray(value)) value = [\n value\n ];\n return (optional || param in dynamicMatches) && // Interpolate group into data URL if present\n (interpolatedRoute = interpolatedRoute.replace(replaced, repeat ? value.map(// path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n (segment)=>encodeURIComponent(segment)).join(\"/\") : encodeURIComponent(value)) || \"/\");\n })) {\n interpolatedRoute = \"\" // did not satisfy all requirements\n ;\n // n.b. We ignore this error because we handle warning for this case in\n // development in the `` component directly.\n }\n return {\n params,\n result: interpolatedRoute\n };\n} //# sourceMappingURL=interpolate-as.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJwb2xhdGUtYXMuanMiLCJtYXBwaW5ncyI6Ijs7OztpREFLZ0JBOzs7ZUFBQUE7OzswQ0FIZ0I7d0NBQ0Y7QUFFdkIsU0FBU0EsY0FDZEMsS0FBYSxFQUNiQyxVQUFrQixFQUNsQkMsS0FBcUI7SUFFckIsSUFBSUMsb0JBQW9CO0lBRXhCLE1BQU1DLGVBQWVDLENBQUFBLEdBQUFBLFlBQUFBLGFBQWEsRUFBQ0w7SUFDbkMsTUFBTU0sZ0JBQWdCRixhQUFhRyxNQUFNO0lBQ3pDLE1BQU1DLGlCQUVIUCxDQUFBQSxlQUFlRCxRQUFRUyxDQUFBQSxHQUFBQSxjQUFBQSxlQUFlLEVBQUNMLGNBQWNILGNBQWMsT0FDcEUsZ0RBQWdEO0lBQ2hELHNFQUFzRTtJQUN0RUM7SUFFRkMsb0JBQW9CSDtJQUNwQixNQUFNVSxTQUFTQyxPQUFPQyxJQUFJLENBQUNOO0lBRTNCLElBQ0UsQ0FBQ0ksT0FBT0csS0FBSyxDQUFDLENBQUNDO1FBQ2IsSUFBSUMsUUFBUVAsY0FBYyxDQUFDTSxNQUFNLElBQUk7UUFDckMsTUFBTSxFQUFFRSxNQUFNLEVBQUVDLFFBQVEsRUFBRSxHQUFHWCxhQUFhLENBQUNRLE1BQU07UUFFakQsaUNBQWlDO1FBQ2pDLDBEQUEwRDtRQUMxRCxJQUFJSSxXQUFXLE1BQUlGLENBQUFBLFNBQVMsUUFBUSxNQUFLRixRQUFNO1FBQy9DLElBQUlHLFVBQVU7WUFDWkMsV0FBVyxDQUFHLENBQUNILFFBQVEsTUFBTSxNQUFHLE1BQUdHLFdBQVM7UUFDOUM7UUFDQSxJQUFJRixVQUFVLENBQUNHLE1BQU1DLE9BQU8sQ0FBQ0wsUUFBUUEsUUFBUTtZQUFDQTtTQUFNO1FBRXBELE9BQ0UsQ0FBQ0UsWUFBWUgsU0FBU04sY0FBQUEsS0FDdEIsNkNBQTZDO1FBQzVDTCxDQUFBQSxvQkFDQ0Esa0JBQW1Ca0IsT0FBTyxDQUN4QkgsVUFDQUYsU0FDSUQsTUFDR08sR0FBRyxDQUVGLHVEQUF1RDtRQUN2RCxrREFBa0Q7UUFDbEQsb0NBQW9DO1FBQ3BDLENBQUNDLFVBQVlDLG1CQUFtQkQsVUFFakNFLElBQUksQ0FBQyxPQUNSRCxtQkFBbUJULFdBQ3BCO0lBRVgsSUFDQTtRQUNBWixvQkFBb0IsR0FBRyxtQ0FBbUM7O0lBRTFELHVFQUF1RTtJQUN2RSxrREFBa0Q7SUFDcEQ7SUFDQSxPQUFPO1FBQ0xPO1FBQ0FnQixRQUFRdkI7SUFDVjtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaW50ZXJwb2xhdGUtYXMudHM/ODUyZCJdLCJuYW1lcyI6WyJpbnRlcnBvbGF0ZUFzIiwicm91dGUiLCJhc1BhdGhuYW1lIiwicXVlcnkiLCJpbnRlcnBvbGF0ZWRSb3V0ZSIsImR5bmFtaWNSZWdleCIsImdldFJvdXRlUmVnZXgiLCJkeW5hbWljR3JvdXBzIiwiZ3JvdXBzIiwiZHluYW1pY01hdGNoZXMiLCJnZXRSb3V0ZU1hdGNoZXIiLCJwYXJhbXMiLCJPYmplY3QiLCJrZXlzIiwiZXZlcnkiLCJwYXJhbSIsInZhbHVlIiwicmVwZWF0Iiwib3B0aW9uYWwiLCJyZXBsYWNlZCIsIkFycmF5IiwiaXNBcnJheSIsInJlcGxhY2UiLCJtYXAiLCJzZWdtZW50IiwiZW5jb2RlVVJJQ29tcG9uZW50Iiwiam9pbiIsInJlc3VsdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js":
-/*!**********************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js ***!
- \**********************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isDynamicRoute\", ({\n enumerable: true,\n get: function() {\n return isDynamicRoute;\n }\n}));\nconst _interceptionroutes = __webpack_require__(/*! ../../../../server/future/helpers/interception-routes */ \"(app-pages-browser)/./node_modules/next/dist/server/future/helpers/interception-routes.js\");\n// Identify /[param]/ in route string\nconst TEST_ROUTE = /\\/\\[[^/]+?\\](?=\\/|$)/;\nfunction isDynamicRoute(route) {\n if ((0, _interceptionroutes.isInterceptionRouteAppPath)(route)) {\n route = (0, _interceptionroutes.extractInterceptionRouteInformation)(route).interceptedRoute;\n }\n return TEST_ROUTE.test(route);\n} //# sourceMappingURL=is-dynamic.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy5qcyIsIm1hcHBpbmdzIjoiOzs7O2tEQVFnQkE7OztlQUFBQTs7O2dEQUxUO0FBRVAscUNBQXFDO0FBQ3JDLE1BQU1DLGFBQWE7QUFFWixTQUFTRCxlQUFlRSxLQUFhO0lBQzFDLElBQUlDLENBQUFBLEdBQUFBLG9CQUFBQSwwQkFBMEIsRUFBQ0QsUUFBUTtRQUNyQ0EsUUFBUUUsQ0FBQUEsR0FBQUEsb0JBQUFBLG1DQUFtQyxFQUFDRixPQUFPRyxnQkFBZ0I7SUFDckU7SUFFQSxPQUFPSixXQUFXSyxJQUFJLENBQUNKO0FBQ3pCIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtZHluYW1pYy50cz8xNDY1Il0sIm5hbWVzIjpbImlzRHluYW1pY1JvdXRlIiwiVEVTVF9ST1VURSIsInJvdXRlIiwiaXNJbnRlcmNlcHRpb25Sb3V0ZUFwcFBhdGgiLCJleHRyYWN0SW50ZXJjZXB0aW9uUm91dGVJbmZvcm1hdGlvbiIsImludGVyY2VwdGVkUm91dGUiLCJ0ZXN0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js":
-/*!************************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/is-local-url.js ***!
- \************************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"isLocalURL\", ({\n enumerable: true,\n get: function() {\n return isLocalURL;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nconst _hasbasepath = __webpack_require__(/*! ../../../../client/has-base-path */ \"(app-pages-browser)/./node_modules/next/dist/client/has-base-path.js\");\nfunction isLocalURL(url) {\n // prevent a hydration mismatch on href for url with anchor refs\n if (!(0, _utils.isAbsoluteUrl)(url)) return true;\n try {\n // absolute urls can be local if they are on the same origin\n const locationOrigin = (0, _utils.getLocationOrigin)();\n const resolved = new URL(url, locationOrigin);\n return resolved.origin === locationOrigin && (0, _hasbasepath.hasBasePath)(resolved.pathname);\n } catch (_) {\n return false;\n }\n} //# sourceMappingURL=is-local-url.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtbG9jYWwtdXJsLmpzIiwibWFwcGluZ3MiOiI7Ozs7OENBTWdCQTs7O2VBQUFBOzs7bUNBTmlDO3lDQUNyQjtBQUtyQixTQUFTQSxXQUFXQyxHQUFXO0lBQ3BDLGdFQUFnRTtJQUNoRSxJQUFJLENBQUNDLENBQUFBLEdBQUFBLE9BQUFBLGFBQWEsRUFBQ0QsTUFBTSxPQUFPO0lBQ2hDLElBQUk7UUFDRiw0REFBNEQ7UUFDNUQsTUFBTUUsaUJBQWlCQyxDQUFBQSxHQUFBQSxPQUFBQSxpQkFBaUI7UUFDeEMsTUFBTUMsV0FBVyxJQUFJQyxJQUFJTCxLQUFLRTtRQUM5QixPQUFPRSxTQUFTRSxNQUFNLEtBQUtKLGtCQUFrQkssQ0FBQUEsR0FBQUEsYUFBQUEsV0FBVyxFQUFDSCxTQUFTSSxRQUFRO0lBQzVFLEVBQUUsT0FBT0MsR0FBRztRQUNWLE9BQU87SUFDVDtBQUNGIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvaXMtbG9jYWwtdXJsLnRzP2UxYzIiXSwibmFtZXMiOlsiaXNMb2NhbFVSTCIsInVybCIsImlzQWJzb2x1dGVVcmwiLCJsb2NhdGlvbk9yaWdpbiIsImdldExvY2F0aW9uT3JpZ2luIiwicmVzb2x2ZWQiLCJVUkwiLCJvcmlnaW4iLCJoYXNCYXNlUGF0aCIsInBhdGhuYW1lIiwiXyJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/omit.js":
-/*!****************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/omit.js ***!
- \****************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"omit\", ({\n enumerable: true,\n get: function() {\n return omit;\n }\n}));\nfunction omit(object, keys) {\n const omitted = {};\n Object.keys(object).forEach((key)=>{\n if (!keys.includes(key)) {\n omitted[key] = object[key];\n }\n });\n return omitted;\n} //# sourceMappingURL=omit.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvb21pdC5qcyIsIm1hcHBpbmdzIjoiOzs7O3dDQUFnQkE7OztlQUFBQTs7O0FBQVQsU0FBU0EsS0FDZEMsTUFBUyxFQUNUQyxJQUFTO0lBRVQsTUFBTUMsVUFBc0MsQ0FBQztJQUM3Q0MsT0FBT0YsSUFBSSxDQUFDRCxRQUFRSSxPQUFPLENBQUMsQ0FBQ0M7UUFDM0IsSUFBSSxDQUFDSixLQUFLSyxRQUFRLENBQUNELE1BQVc7WUFDNUJILE9BQU8sQ0FBQ0csSUFBSSxHQUFHTCxNQUFNLENBQUNLLElBQUk7UUFDNUI7SUFDRjtJQUNBLE9BQU9IO0FBQ1QiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9vbWl0LnRzP2Y3ZWEiXSwibmFtZXMiOlsib21pdCIsIm9iamVjdCIsImtleXMiLCJvbWl0dGVkIiwiT2JqZWN0IiwiZm9yRWFjaCIsImtleSIsImluY2x1ZGVzIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/omit.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js":
-/*!***********************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/querystring.js ***!
- \***********************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n assign: function() {\n return assign;\n },\n searchParamsToUrlQuery: function() {\n return searchParamsToUrlQuery;\n },\n urlQueryToSearchParams: function() {\n return urlQueryToSearchParams;\n }\n});\nfunction searchParamsToUrlQuery(searchParams) {\n const query = {};\n searchParams.forEach((value, key)=>{\n if (typeof query[key] === \"undefined\") {\n query[key] = value;\n } else if (Array.isArray(query[key])) {\n query[key].push(value);\n } else {\n query[key] = [\n query[key],\n value\n ];\n }\n });\n return query;\n}\nfunction stringifyUrlQueryParam(param) {\n if (typeof param === \"string\" || typeof param === \"number\" && !isNaN(param) || typeof param === \"boolean\") {\n return String(param);\n } else {\n return \"\";\n }\n}\nfunction urlQueryToSearchParams(urlQuery) {\n const result = new URLSearchParams();\n Object.entries(urlQuery).forEach((param)=>{\n let [key, value] = param;\n if (Array.isArray(value)) {\n value.forEach((item)=>result.append(key, stringifyUrlQueryParam(item)));\n } else {\n result.set(key, stringifyUrlQueryParam(value));\n }\n });\n return result;\n}\nfunction assign(target) {\n for(var _len = arguments.length, searchParamsList = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++){\n searchParamsList[_key - 1] = arguments[_key];\n }\n searchParamsList.forEach((searchParams)=>{\n Array.from(searchParams.keys()).forEach((key)=>target.delete(key));\n searchParams.forEach((value, key)=>target.append(key, value));\n });\n return target;\n} //# sourceMappingURL=querystring.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcuanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBNENnQkEsUUFBTTtlQUFOQTs7SUExQ0FDLHdCQUFzQjtlQUF0QkE7O0lBNEJBQyx3QkFBc0I7ZUFBdEJBOzs7QUE1QlQsU0FBU0QsdUJBQ2RFLFlBQTZCO0lBRTdCLE1BQU1DLFFBQXdCLENBQUM7SUFDL0JELGFBQWFFLE9BQU8sQ0FBQyxDQUFDQyxPQUFPQztRQUMzQixJQUFJLE9BQU9ILEtBQUssQ0FBQ0csSUFBSSxLQUFLLGFBQWE7WUFDckNILEtBQUssQ0FBQ0csSUFBSSxHQUFHRDtRQUNmLE9BQU8sSUFBSUUsTUFBTUMsT0FBTyxDQUFDTCxLQUFLLENBQUNHLElBQUksR0FBRztZQUNsQ0gsS0FBSyxDQUFDRyxJQUFJLENBQWNHLElBQUksQ0FBQ0o7UUFDakMsT0FBTztZQUNMRixLQUFLLENBQUNHLElBQUksR0FBRztnQkFBQ0gsS0FBSyxDQUFDRyxJQUFJO2dCQUFZRDthQUFNO1FBQzVDO0lBQ0Y7SUFDQSxPQUFPRjtBQUNUO0FBRUEsU0FBU08sdUJBQXVCQyxLQUFjO0lBQzVDLElBQ0UsT0FBT0EsVUFBVSxZQUNoQixPQUFPQSxVQUFVLFlBQVksQ0FBQ0MsTUFBTUQsVUFDckMsT0FBT0EsVUFBVSxXQUNqQjtRQUNBLE9BQU9FLE9BQU9GO0lBQ2hCLE9BQU87UUFDTCxPQUFPO0lBQ1Q7QUFDRjtBQUVPLFNBQVNWLHVCQUNkYSxRQUF3QjtJQUV4QixNQUFNQyxTQUFTLElBQUlDO0lBQ25CQyxPQUFPQyxPQUFPLENBQUNKLFVBQVVWLE9BQU8sQ0FBQyxDQUFBTztZQUFDLENBQUNMLEtBQUtELE1BQU0sR0FBQU07UUFDNUMsSUFBSUosTUFBTUMsT0FBTyxDQUFDSCxRQUFRO1lBQ3hCQSxNQUFNRCxPQUFPLENBQUMsQ0FBQ2UsT0FBU0osT0FBT0ssTUFBTSxDQUFDZCxLQUFLSSx1QkFBdUJTO1FBQ3BFLE9BQU87WUFDTEosT0FBT00sR0FBRyxDQUFDZixLQUFLSSx1QkFBdUJMO1FBQ3pDO0lBQ0Y7SUFDQSxPQUFPVTtBQUNUO0FBRU8sU0FBU2hCLE9BQ2R1QixNQUF1QjtJQUN2QixRQUFBQyxPQUFBQyxVQUFBQyxNQUFBLEVBQUFDLG1CQUFBLElBQUFuQixNQUFBZ0IsT0FBQSxJQUFBQSxPQUFBLFFBQUFJLE9BQUEsR0FBQUEsT0FBQUosTUFBQUksT0FBQTtRQUFHRCxnQkFBQUEsQ0FBSEMsT0FBQSxLQUFBSCxTQUFBLENBQUFHLEtBQXNDOztJQUV0Q0QsaUJBQWlCdEIsT0FBTyxDQUFDLENBQUNGO1FBQ3hCSyxNQUFNcUIsSUFBSSxDQUFDMUIsYUFBYTJCLElBQUksSUFBSXpCLE9BQU8sQ0FBQyxDQUFDRSxNQUFRZ0IsT0FBT1EsTUFBTSxDQUFDeEI7UUFDL0RKLGFBQWFFLE9BQU8sQ0FBQyxDQUFDQyxPQUFPQyxNQUFRZ0IsT0FBT0YsTUFBTSxDQUFDZCxLQUFLRDtJQUMxRDtJQUNBLE9BQU9pQjtBQUNUIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcXVlcnlzdHJpbmcudHM/NTIxNSJdLCJuYW1lcyI6WyJhc3NpZ24iLCJzZWFyY2hQYXJhbXNUb1VybFF1ZXJ5IiwidXJsUXVlcnlUb1NlYXJjaFBhcmFtcyIsInNlYXJjaFBhcmFtcyIsInF1ZXJ5IiwiZm9yRWFjaCIsInZhbHVlIiwia2V5IiwiQXJyYXkiLCJpc0FycmF5IiwicHVzaCIsInN0cmluZ2lmeVVybFF1ZXJ5UGFyYW0iLCJwYXJhbSIsImlzTmFOIiwiU3RyaW5nIiwidXJsUXVlcnkiLCJyZXN1bHQiLCJVUkxTZWFyY2hQYXJhbXMiLCJPYmplY3QiLCJlbnRyaWVzIiwiaXRlbSIsImFwcGVuZCIsInNldCIsInRhcmdldCIsIl9sZW4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJzZWFyY2hQYXJhbXNMaXN0IiwiX2tleSIsImZyb20iLCJrZXlzIiwiZGVsZXRlIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/querystring.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js":
-/*!*************************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/route-matcher.js ***!
- \*************************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getRouteMatcher\", ({\n enumerable: true,\n get: function() {\n return getRouteMatcher;\n }\n}));\nconst _utils = __webpack_require__(/*! ../../utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\");\nfunction getRouteMatcher(param) {\n let { re, groups } = param;\n return (pathname)=>{\n const routeMatch = re.exec(pathname);\n if (!routeMatch) {\n return false;\n }\n const decode = (param)=>{\n try {\n return decodeURIComponent(param);\n } catch (_) {\n throw new _utils.DecodeError(\"failed to decode param\");\n }\n };\n const params = {};\n Object.keys(groups).forEach((slugName)=>{\n const g = groups[slugName];\n const m = routeMatch[g.pos];\n if (m !== undefined) {\n params[slugName] = ~m.indexOf(\"/\") ? m.split(\"/\").map((entry)=>decode(entry)) : g.repeat ? [\n decode(m)\n ] : decode(m);\n }\n });\n return params;\n };\n} //# sourceMappingURL=route-matcher.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtbWF0Y2hlci5qcyIsIm1hcHBpbmdzIjoiOzs7O21EQVdnQkE7OztlQUFBQTs7O21DQVZZO0FBVXJCLFNBQVNBLGdCQUFnQkMsS0FBMEI7SUFBMUIsTUFBRUMsRUFBRSxFQUFFQyxNQUFNLEVBQWMsR0FBMUJGO0lBQzlCLE9BQU8sQ0FBQ0c7UUFDTixNQUFNQyxhQUFhSCxHQUFHSSxJQUFJLENBQUNGO1FBQzNCLElBQUksQ0FBQ0MsWUFBWTtZQUNmLE9BQU87UUFDVDtRQUVBLE1BQU1FLFNBQVMsQ0FBQ047WUFDZCxJQUFJO2dCQUNGLE9BQU9PLG1CQUFtQlA7WUFDNUIsRUFBRSxPQUFPUSxHQUFHO2dCQUNWLE1BQU0sSUFBSUMsT0FBQUEsV0FBVyxDQUFDO1lBQ3hCO1FBQ0Y7UUFDQSxNQUFNQyxTQUFxRCxDQUFDO1FBRTVEQyxPQUFPQyxJQUFJLENBQUNWLFFBQVFXLE9BQU8sQ0FBQyxDQUFDQztZQUMzQixNQUFNQyxJQUFJYixNQUFNLENBQUNZLFNBQVM7WUFDMUIsTUFBTUUsSUFBSVosVUFBVSxDQUFDVyxFQUFFRSxHQUFHLENBQUM7WUFDM0IsSUFBSUQsTUFBTUUsV0FBVztnQkFDbkJSLE1BQU0sQ0FBQ0ksU0FBUyxHQUFHLENBQUNFLEVBQUVHLE9BQU8sQ0FBQyxPQUMxQkgsRUFBRUksS0FBSyxDQUFDLEtBQUtDLEdBQUcsQ0FBQyxDQUFDQyxRQUFVaEIsT0FBT2dCLFVBQ25DUCxFQUFFUSxNQUFNLEdBQ1I7b0JBQUNqQixPQUFPVTtpQkFBRyxHQUNYVixPQUFPVTtZQUNiO1FBQ0Y7UUFDQSxPQUFPTjtJQUNUO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yb3V0ZS1tYXRjaGVyLnRzP2JlZmYiXSwibmFtZXMiOlsiZ2V0Um91dGVNYXRjaGVyIiwicGFyYW0iLCJyZSIsImdyb3VwcyIsInBhdGhuYW1lIiwicm91dGVNYXRjaCIsImV4ZWMiLCJkZWNvZGUiLCJkZWNvZGVVUklDb21wb25lbnQiLCJfIiwiRGVjb2RlRXJyb3IiLCJwYXJhbXMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInNsdWdOYW1lIiwiZyIsIm0iLCJwb3MiLCJ1bmRlZmluZWQiLCJpbmRleE9mIiwic3BsaXQiLCJtYXAiLCJlbnRyeSIsInJlcGVhdCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js":
-/*!***********************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/route-regex.js ***!
- \***********************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n getNamedMiddlewareRegex: function() {\n return getNamedMiddlewareRegex;\n },\n getNamedRouteRegex: function() {\n return getNamedRouteRegex;\n },\n getRouteRegex: function() {\n return getRouteRegex;\n }\n});\nconst _interceptionroutes = __webpack_require__(/*! ../../../../server/future/helpers/interception-routes */ \"(app-pages-browser)/./node_modules/next/dist/server/future/helpers/interception-routes.js\");\nconst _escaperegexp = __webpack_require__(/*! ../../escape-regexp */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/escape-regexp.js\");\nconst _removetrailingslash = __webpack_require__(/*! ./remove-trailing-slash */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst NEXT_QUERY_PARAM_PREFIX = \"nxtP\";\nconst NEXT_INTERCEPTION_MARKER_PREFIX = \"nxtI\";\n/**\n * Parses a given parameter from a route to a data structure that can be used\n * to generate the parametrized route. Examples:\n * - `[...slug]` -> `{ key: 'slug', repeat: true, optional: true }`\n * - `...slug` -> `{ key: 'slug', repeat: true, optional: false }`\n * - `[foo]` -> `{ key: 'foo', repeat: false, optional: true }`\n * - `bar` -> `{ key: 'bar', repeat: false, optional: false }`\n */ function parseParameter(param) {\n const optional = param.startsWith(\"[\") && param.endsWith(\"]\");\n if (optional) {\n param = param.slice(1, -1);\n }\n const repeat = param.startsWith(\"...\");\n if (repeat) {\n param = param.slice(3);\n }\n return {\n key: param,\n repeat,\n optional\n };\n}\nfunction getParametrizedRoute(route) {\n const segments = (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split(\"/\");\n const groups = {};\n let groupIndex = 1;\n return {\n parameterizedRoute: segments.map((segment)=>{\n const markerMatch = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.find((m)=>segment.startsWith(m));\n const paramMatches = segment.match(/\\[((?:\\[.*\\])|.+)\\]/) // Check for parameters\n ;\n if (markerMatch && paramMatches) {\n const { key, optional, repeat } = parseParameter(paramMatches[1]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n return \"/\" + (0, _escaperegexp.escapeStringRegexp)(markerMatch) + \"([^/]+?)\";\n } else if (paramMatches) {\n const { key, repeat, optional } = parseParameter(paramMatches[1]);\n groups[key] = {\n pos: groupIndex++,\n repeat,\n optional\n };\n return repeat ? optional ? \"(?:/(.+?))?\" : \"/(.+?)\" : \"/([^/]+?)\";\n } else {\n return \"/\" + (0, _escaperegexp.escapeStringRegexp)(segment);\n }\n }).join(\"\"),\n groups\n };\n}\nfunction getRouteRegex(normalizedRoute) {\n const { parameterizedRoute, groups } = getParametrizedRoute(normalizedRoute);\n return {\n re: new RegExp(\"^\" + parameterizedRoute + \"(?:/)?$\"),\n groups: groups\n };\n}\n/**\n * Builds a function to generate a minimal routeKey using only a-z and minimal\n * number of characters.\n */ function buildGetSafeRouteKey() {\n let i = 0;\n return ()=>{\n let routeKey = \"\";\n let j = ++i;\n while(j > 0){\n routeKey += String.fromCharCode(97 + (j - 1) % 26);\n j = Math.floor((j - 1) / 26);\n }\n return routeKey;\n };\n}\nfunction getSafeKeyFromSegment(param) {\n let { interceptionMarker, getSafeRouteKey, segment, routeKeys, keyPrefix } = param;\n const { key, optional, repeat } = parseParameter(segment);\n // replace any non-word characters since they can break\n // the named regex\n let cleanedKey = key.replace(/\\W/g, \"\");\n if (keyPrefix) {\n cleanedKey = \"\" + keyPrefix + cleanedKey;\n }\n let invalidKey = false;\n // check if the key is still invalid and fallback to using a known\n // safe key\n if (cleanedKey.length === 0 || cleanedKey.length > 30) {\n invalidKey = true;\n }\n if (!isNaN(parseInt(cleanedKey.slice(0, 1)))) {\n invalidKey = true;\n }\n if (invalidKey) {\n cleanedKey = getSafeRouteKey();\n }\n if (keyPrefix) {\n routeKeys[cleanedKey] = \"\" + keyPrefix + key;\n } else {\n routeKeys[cleanedKey] = key;\n }\n // if the segment has an interception marker, make sure that's part of the regex pattern\n // this is to ensure that the route with the interception marker doesn't incorrectly match\n // the non-intercepted route (ie /app/(.)[username] should not match /app/[username])\n const interceptionPrefix = interceptionMarker ? (0, _escaperegexp.escapeStringRegexp)(interceptionMarker) : \"\";\n return repeat ? optional ? \"(?:/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">.+?))?\" : \"/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">.+?)\" : \"/\" + interceptionPrefix + \"(?<\" + cleanedKey + \">[^/]+?)\";\n}\nfunction getNamedParametrizedRoute(route, prefixRouteKeys) {\n const segments = (0, _removetrailingslash.removeTrailingSlash)(route).slice(1).split(\"/\");\n const getSafeRouteKey = buildGetSafeRouteKey();\n const routeKeys = {};\n return {\n namedParameterizedRoute: segments.map((segment)=>{\n const hasInterceptionMarker = _interceptionroutes.INTERCEPTION_ROUTE_MARKERS.some((m)=>segment.startsWith(m));\n const paramMatches = segment.match(/\\[((?:\\[.*\\])|.+)\\]/) // Check for parameters\n ;\n if (hasInterceptionMarker && paramMatches) {\n const [usedMarker] = segment.split(paramMatches[0]);\n return getSafeKeyFromSegment({\n getSafeRouteKey,\n interceptionMarker: usedMarker,\n segment: paramMatches[1],\n routeKeys,\n keyPrefix: prefixRouteKeys ? NEXT_INTERCEPTION_MARKER_PREFIX : undefined\n });\n } else if (paramMatches) {\n return getSafeKeyFromSegment({\n getSafeRouteKey,\n segment: paramMatches[1],\n routeKeys,\n keyPrefix: prefixRouteKeys ? NEXT_QUERY_PARAM_PREFIX : undefined\n });\n } else {\n return \"/\" + (0, _escaperegexp.escapeStringRegexp)(segment);\n }\n }).join(\"\"),\n routeKeys\n };\n}\nfunction getNamedRouteRegex(normalizedRoute, prefixRouteKey) {\n const result = getNamedParametrizedRoute(normalizedRoute, prefixRouteKey);\n return {\n ...getRouteRegex(normalizedRoute),\n namedRegex: \"^\" + result.namedParameterizedRoute + \"(?:/)?$\",\n routeKeys: result.routeKeys\n };\n}\nfunction getNamedMiddlewareRegex(normalizedRoute, options) {\n const { parameterizedRoute } = getParametrizedRoute(normalizedRoute);\n const { catchAll = true } = options;\n if (parameterizedRoute === \"/\") {\n let catchAllRegex = catchAll ? \".*\" : \"\";\n return {\n namedRegex: \"^/\" + catchAllRegex + \"$\"\n };\n }\n const { namedParameterizedRoute } = getNamedParametrizedRoute(normalizedRoute, false);\n let catchAllGroupedRegex = catchAll ? \"(?:(/.*)?)\" : \"\";\n return {\n namedRegex: \"^\" + namedParameterizedRoute + catchAllGroupedRegex + \"$\"\n };\n} //# sourceMappingURL=route-regex.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvcm91dGUtcmVnZXguanMiLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0lBMk5nQkEseUJBQXVCO2VBQXZCQTs7SUFoQkFDLG9CQUFrQjtlQUFsQkE7O0lBbklBQyxlQUFhO2VBQWJBOzs7Z0RBeEUyQjswQ0FDUjtpREFDQztBQUVwQyxNQUFNQywwQkFBMEI7QUFDaEMsTUFBTUMsa0NBQWtDO0FBYXhDOzs7Ozs7O0NBT0MsR0FDRCxTQUFTQyxlQUFlQyxLQUFhO0lBQ25DLE1BQU1DLFdBQVdELE1BQU1FLFVBQVUsQ0FBQyxRQUFRRixNQUFNRyxRQUFRLENBQUM7SUFDekQsSUFBSUYsVUFBVTtRQUNaRCxRQUFRQSxNQUFNSSxLQUFLLENBQUMsR0FBRyxDQUFDO0lBQzFCO0lBQ0EsTUFBTUMsU0FBU0wsTUFBTUUsVUFBVSxDQUFDO0lBQ2hDLElBQUlHLFFBQVE7UUFDVkwsUUFBUUEsTUFBTUksS0FBSyxDQUFDO0lBQ3RCO0lBQ0EsT0FBTztRQUFFRSxLQUFLTjtRQUFPSztRQUFRSjtJQUFTO0FBQ3hDO0FBRUEsU0FBU00scUJBQXFCQyxLQUFhO0lBQ3pDLE1BQU1DLFdBQVdDLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBbUIsRUFBQ0YsT0FBT0osS0FBSyxDQUFDLEdBQUdPLEtBQUssQ0FBQztJQUMzRCxNQUFNQyxTQUF5QyxDQUFDO0lBQ2hELElBQUlDLGFBQWE7SUFDakIsT0FBTztRQUNMQyxvQkFBb0JMLFNBQ2pCTSxHQUFHLENBQUMsQ0FBQ0M7WUFDSixNQUFNQyxjQUFjQyxvQkFBQUEsMEJBQTBCLENBQUNDLElBQUksQ0FBQyxDQUFDQyxJQUNuREosUUFBUWQsVUFBVSxDQUFDa0I7WUFFckIsTUFBTUMsZUFBZUwsUUFBUU0sS0FBSyxDQUFDLHVCQUF1Qix1QkFBdUI7O1lBRWpGLElBQUlMLGVBQWVJLGNBQWM7Z0JBQy9CLE1BQU0sRUFBRWYsR0FBRyxFQUFFTCxRQUFRLEVBQUVJLE1BQU0sRUFBRSxHQUFHTixlQUFlc0IsWUFBWSxDQUFDLEVBQUU7Z0JBQ2hFVCxNQUFNLENBQUNOLElBQUksR0FBRztvQkFBRWlCLEtBQUtWO29CQUFjUjtvQkFBUUo7Z0JBQVM7Z0JBQ3BELE9BQU8sTUFBSXVCLENBQUFBLEdBQUFBLGNBQUFBLGtCQUFrQixFQUFDUCxlQUFhO1lBQzdDLE9BQU8sSUFBSUksY0FBYztnQkFDdkIsTUFBTSxFQUFFZixHQUFHLEVBQUVELE1BQU0sRUFBRUosUUFBUSxFQUFFLEdBQUdGLGVBQWVzQixZQUFZLENBQUMsRUFBRTtnQkFDaEVULE1BQU0sQ0FBQ04sSUFBSSxHQUFHO29CQUFFaUIsS0FBS1Y7b0JBQWNSO29CQUFRSjtnQkFBUztnQkFDcEQsT0FBT0ksU0FBVUosV0FBVyxnQkFBZ0IsV0FBWTtZQUMxRCxPQUFPO2dCQUNMLE9BQU8sTUFBSXVCLENBQUFBLEdBQUFBLGNBQUFBLGtCQUFrQixFQUFDUjtZQUNoQztRQUNGLEdBQ0NTLElBQUksQ0FBQztRQUNSYjtJQUNGO0FBQ0Y7QUFPTyxTQUFTaEIsY0FBYzhCLGVBQXVCO0lBQ25ELE1BQU0sRUFBRVosa0JBQWtCLEVBQUVGLE1BQU0sRUFBRSxHQUFHTCxxQkFBcUJtQjtJQUM1RCxPQUFPO1FBQ0xDLElBQUksSUFBSUMsT0FBTyxNQUFJZCxxQkFBbUI7UUFDdENGLFFBQVFBO0lBQ1Y7QUFDRjtBQUVBOzs7Q0FHQyxHQUNELFNBQVNpQjtJQUNQLElBQUlDLElBQUk7SUFFUixPQUFPO1FBQ0wsSUFBSUMsV0FBVztRQUNmLElBQUlDLElBQUksRUFBRUY7UUFDVixNQUFPRSxJQUFJLEVBQUc7WUFDWkQsWUFBWUUsT0FBT0MsWUFBWSxDQUFDLEtBQU0sQ0FBQ0YsSUFBSSxLQUFLO1lBQ2hEQSxJQUFJRyxLQUFLQyxLQUFLLENBQUMsQ0FBQ0osSUFBSSxLQUFLO1FBQzNCO1FBQ0EsT0FBT0Q7SUFDVDtBQUNGO0FBRUEsU0FBU00sc0JBQXNCckMsS0FZOUI7SUFaOEIsTUFDN0JzQyxrQkFBa0IsRUFDbEJDLGVBQWUsRUFDZnZCLE9BQU8sRUFDUHdCLFNBQVMsRUFDVEMsU0FBUyxFQU9WLEdBWjhCekM7SUFhN0IsTUFBTSxFQUFFTSxHQUFHLEVBQUVMLFFBQVEsRUFBRUksTUFBTSxFQUFFLEdBQUdOLGVBQWVpQjtJQUVqRCx1REFBdUQ7SUFDdkQsa0JBQWtCO0lBQ2xCLElBQUkwQixhQUFhcEMsSUFBSXFDLE9BQU8sQ0FBQyxPQUFPO0lBRXBDLElBQUlGLFdBQVc7UUFDYkMsYUFBYSxLQUFHRCxZQUFZQztJQUM5QjtJQUNBLElBQUlFLGFBQWE7SUFFakIsa0VBQWtFO0lBQ2xFLFdBQVc7SUFDWCxJQUFJRixXQUFXRyxNQUFNLEtBQUssS0FBS0gsV0FBV0csTUFBTSxHQUFHLElBQUk7UUFDckRELGFBQWE7SUFDZjtJQUNBLElBQUksQ0FBQ0UsTUFBTUMsU0FBU0wsV0FBV3RDLEtBQUssQ0FBQyxHQUFHLE1BQU07UUFDNUN3QyxhQUFhO0lBQ2Y7SUFFQSxJQUFJQSxZQUFZO1FBQ2RGLGFBQWFIO0lBQ2Y7SUFFQSxJQUFJRSxXQUFXO1FBQ2JELFNBQVMsQ0FBQ0UsV0FBVyxHQUFHLEtBQUdELFlBQVluQztJQUN6QyxPQUFPO1FBQ0xrQyxTQUFTLENBQUNFLFdBQVcsR0FBR3BDO0lBQzFCO0lBRUEsd0ZBQXdGO0lBQ3hGLDBGQUEwRjtJQUMxRixxRkFBcUY7SUFDckYsTUFBTTBDLHFCQUFxQlYscUJBQ3ZCZCxDQUFBQSxHQUFBQSxjQUFBQSxrQkFBa0IsRUFBQ2Msc0JBQ25CO0lBRUosT0FBT2pDLFNBQ0hKLFdBQ0UsU0FBTytDLHFCQUFtQixRQUFLTixhQUFXLFlBQzFDLE1BQUlNLHFCQUFtQixRQUFLTixhQUFXLFVBQ3pDLE1BQUlNLHFCQUFtQixRQUFLTixhQUFXO0FBQzdDO0FBRUEsU0FBU08sMEJBQTBCekMsS0FBYSxFQUFFMEMsZUFBd0I7SUFDeEUsTUFBTXpDLFdBQVdDLENBQUFBLEdBQUFBLHFCQUFBQSxtQkFBbUIsRUFBQ0YsT0FBT0osS0FBSyxDQUFDLEdBQUdPLEtBQUssQ0FBQztJQUMzRCxNQUFNNEIsa0JBQWtCVjtJQUN4QixNQUFNVyxZQUF5QyxDQUFDO0lBQ2hELE9BQU87UUFDTFcseUJBQXlCMUMsU0FDdEJNLEdBQUcsQ0FBQyxDQUFDQztZQUNKLE1BQU1vQyx3QkFBd0JsQyxvQkFBQUEsMEJBQTBCLENBQUNtQyxJQUFJLENBQUMsQ0FBQ2pDLElBQzdESixRQUFRZCxVQUFVLENBQUNrQjtZQUVyQixNQUFNQyxlQUFlTCxRQUFRTSxLQUFLLENBQUMsdUJBQXVCLHVCQUF1Qjs7WUFFakYsSUFBSThCLHlCQUF5Qi9CLGNBQWM7Z0JBQ3pDLE1BQU0sQ0FBQ2lDLFdBQVcsR0FBR3RDLFFBQVFMLEtBQUssQ0FBQ1UsWUFBWSxDQUFDLEVBQUU7Z0JBRWxELE9BQU9nQixzQkFBc0I7b0JBQzNCRTtvQkFDQUQsb0JBQW9CZ0I7b0JBQ3BCdEMsU0FBU0ssWUFBWSxDQUFDLEVBQUU7b0JBQ3hCbUI7b0JBQ0FDLFdBQVdTLGtCQUNQcEQsa0NBQ0F5RDtnQkFDTjtZQUNGLE9BQU8sSUFBSWxDLGNBQWM7Z0JBQ3ZCLE9BQU9nQixzQkFBc0I7b0JBQzNCRTtvQkFDQXZCLFNBQVNLLFlBQVksQ0FBQyxFQUFFO29CQUN4Qm1CO29CQUNBQyxXQUFXUyxrQkFBa0JyRCwwQkFBMEIwRDtnQkFDekQ7WUFDRixPQUFPO2dCQUNMLE9BQU8sTUFBSS9CLENBQUFBLEdBQUFBLGNBQUFBLGtCQUFrQixFQUFDUjtZQUNoQztRQUNGLEdBQ0NTLElBQUksQ0FBQztRQUNSZTtJQUNGO0FBQ0Y7QUFVTyxTQUFTN0MsbUJBQ2QrQixlQUF1QixFQUN2QjhCLGNBQXVCO0lBRXZCLE1BQU1DLFNBQVNSLDBCQUEwQnZCLGlCQUFpQjhCO0lBQzFELE9BQU87UUFDTCxHQUFHNUQsY0FBYzhCLGdCQUFnQjtRQUNqQ2dDLFlBQVksTUFBSUQsT0FBT04sdUJBQXVCLEdBQUM7UUFDL0NYLFdBQVdpQixPQUFPakIsU0FBUztJQUM3QjtBQUNGO0FBTU8sU0FBUzlDLHdCQUNkZ0MsZUFBdUIsRUFDdkJpQyxPQUVDO0lBRUQsTUFBTSxFQUFFN0Msa0JBQWtCLEVBQUUsR0FBR1AscUJBQXFCbUI7SUFDcEQsTUFBTSxFQUFFa0MsV0FBVyxJQUFJLEVBQUUsR0FBR0Q7SUFDNUIsSUFBSTdDLHVCQUF1QixLQUFLO1FBQzlCLElBQUkrQyxnQkFBZ0JELFdBQVcsT0FBTztRQUN0QyxPQUFPO1lBQ0xGLFlBQVksT0FBS0csZ0JBQWM7UUFDakM7SUFDRjtJQUVBLE1BQU0sRUFBRVYsdUJBQXVCLEVBQUUsR0FBR0YsMEJBQ2xDdkIsaUJBQ0E7SUFFRixJQUFJb0MsdUJBQXVCRixXQUFXLGVBQWU7SUFDckQsT0FBTztRQUNMRixZQUFZLE1BQUlQLDBCQUEwQlcsdUJBQXFCO0lBQ2pFO0FBQ0YiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9yb3V0ZS1yZWdleC50cz8yYjM3Il0sIm5hbWVzIjpbImdldE5hbWVkTWlkZGxld2FyZVJlZ2V4IiwiZ2V0TmFtZWRSb3V0ZVJlZ2V4IiwiZ2V0Um91dGVSZWdleCIsIk5FWFRfUVVFUllfUEFSQU1fUFJFRklYIiwiTkVYVF9JTlRFUkNFUFRJT05fTUFSS0VSX1BSRUZJWCIsInBhcnNlUGFyYW1ldGVyIiwicGFyYW0iLCJvcHRpb25hbCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInNsaWNlIiwicmVwZWF0Iiwia2V5IiwiZ2V0UGFyYW1ldHJpemVkUm91dGUiLCJyb3V0ZSIsInNlZ21lbnRzIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsInNwbGl0IiwiZ3JvdXBzIiwiZ3JvdXBJbmRleCIsInBhcmFtZXRlcml6ZWRSb3V0ZSIsIm1hcCIsInNlZ21lbnQiLCJtYXJrZXJNYXRjaCIsIklOVEVSQ0VQVElPTl9ST1VURV9NQVJLRVJTIiwiZmluZCIsIm0iLCJwYXJhbU1hdGNoZXMiLCJtYXRjaCIsInBvcyIsImVzY2FwZVN0cmluZ1JlZ2V4cCIsImpvaW4iLCJub3JtYWxpemVkUm91dGUiLCJyZSIsIlJlZ0V4cCIsImJ1aWxkR2V0U2FmZVJvdXRlS2V5IiwiaSIsInJvdXRlS2V5IiwiaiIsIlN0cmluZyIsImZyb21DaGFyQ29kZSIsIk1hdGgiLCJmbG9vciIsImdldFNhZmVLZXlGcm9tU2VnbWVudCIsImludGVyY2VwdGlvbk1hcmtlciIsImdldFNhZmVSb3V0ZUtleSIsInJvdXRlS2V5cyIsImtleVByZWZpeCIsImNsZWFuZWRLZXkiLCJyZXBsYWNlIiwiaW52YWxpZEtleSIsImxlbmd0aCIsImlzTmFOIiwicGFyc2VJbnQiLCJpbnRlcmNlcHRpb25QcmVmaXgiLCJnZXROYW1lZFBhcmFtZXRyaXplZFJvdXRlIiwicHJlZml4Um91dGVLZXlzIiwibmFtZWRQYXJhbWV0ZXJpemVkUm91dGUiLCJoYXNJbnRlcmNlcHRpb25NYXJrZXIiLCJzb21lIiwidXNlZE1hcmtlciIsInVuZGVmaW5lZCIsInByZWZpeFJvdXRlS2V5IiwicmVzdWx0IiwibmFtZWRSZWdleCIsIm9wdGlvbnMiLCJjYXRjaEFsbCIsImNhdGNoQWxsUmVnZXgiLCJjYXRjaEFsbEdyb3VwZWRSZWdleCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/route-regex.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js":
-/*!*************************************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js ***!
- \*************************************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"getSortedRoutes\", ({\n enumerable: true,\n get: function() {\n return getSortedRoutes;\n }\n}));\nclass UrlNode {\n insert(urlPath) {\n this._insert(urlPath.split(\"/\").filter(Boolean), [], false);\n }\n smoosh() {\n return this._smoosh();\n }\n _smoosh(prefix) {\n if (prefix === void 0) prefix = \"/\";\n const childrenPaths = [\n ...this.children.keys()\n ].sort();\n if (this.slugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf(\"[]\"), 1);\n }\n if (this.restSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf(\"[...]\"), 1);\n }\n if (this.optionalRestSlugName !== null) {\n childrenPaths.splice(childrenPaths.indexOf(\"[[...]]\"), 1);\n }\n const routes = childrenPaths.map((c)=>this.children.get(c)._smoosh(\"\" + prefix + c + \"/\")).reduce((prev, curr)=>[\n ...prev,\n ...curr\n ], []);\n if (this.slugName !== null) {\n routes.push(...this.children.get(\"[]\")._smoosh(prefix + \"[\" + this.slugName + \"]/\"));\n }\n if (!this.placeholder) {\n const r = prefix === \"/\" ? \"/\" : prefix.slice(0, -1);\n if (this.optionalRestSlugName != null) {\n throw new Error('You cannot define a route with the same specificity as a optional catch-all route (\"' + r + '\" and \"' + r + \"[[...\" + this.optionalRestSlugName + ']]\").');\n }\n routes.unshift(r);\n }\n if (this.restSlugName !== null) {\n routes.push(...this.children.get(\"[...]\")._smoosh(prefix + \"[...\" + this.restSlugName + \"]/\"));\n }\n if (this.optionalRestSlugName !== null) {\n routes.push(...this.children.get(\"[[...]]\")._smoosh(prefix + \"[[...\" + this.optionalRestSlugName + \"]]/\"));\n }\n return routes;\n }\n _insert(urlPaths, slugNames, isCatchAll) {\n if (urlPaths.length === 0) {\n this.placeholder = false;\n return;\n }\n if (isCatchAll) {\n throw new Error(\"Catch-all must be the last part of the URL.\");\n }\n // The next segment in the urlPaths list\n let nextSegment = urlPaths[0];\n // Check if the segment matches `[something]`\n if (nextSegment.startsWith(\"[\") && nextSegment.endsWith(\"]\")) {\n // Strip `[` and `]`, leaving only `something`\n let segmentName = nextSegment.slice(1, -1);\n let isOptional = false;\n if (segmentName.startsWith(\"[\") && segmentName.endsWith(\"]\")) {\n // Strip optional `[` and `]`, leaving only `something`\n segmentName = segmentName.slice(1, -1);\n isOptional = true;\n }\n if (segmentName.startsWith(\"...\")) {\n // Strip `...`, leaving only `something`\n segmentName = segmentName.substring(3);\n isCatchAll = true;\n }\n if (segmentName.startsWith(\"[\") || segmentName.endsWith(\"]\")) {\n throw new Error(\"Segment names may not start or end with extra brackets ('\" + segmentName + \"').\");\n }\n if (segmentName.startsWith(\".\")) {\n throw new Error(\"Segment names may not start with erroneous periods ('\" + segmentName + \"').\");\n }\n function handleSlug(previousSlug, nextSlug) {\n if (previousSlug !== null) {\n // If the specific segment already has a slug but the slug is not `something`\n // This prevents collisions like:\n // pages/[post]/index.js\n // pages/[id]/index.js\n // Because currently multiple dynamic params on the same segment level are not supported\n if (previousSlug !== nextSlug) {\n // TODO: This error seems to be confusing for users, needs an error link, the description can be based on above comment.\n throw new Error(\"You cannot use different slug names for the same dynamic path ('\" + previousSlug + \"' !== '\" + nextSlug + \"').\");\n }\n }\n slugNames.forEach((slug)=>{\n if (slug === nextSlug) {\n throw new Error('You cannot have the same slug name \"' + nextSlug + '\" repeat within a single dynamic path');\n }\n if (slug.replace(/\\W/g, \"\") === nextSegment.replace(/\\W/g, \"\")) {\n throw new Error('You cannot have the slug names \"' + slug + '\" and \"' + nextSlug + '\" differ only by non-word symbols within a single dynamic path');\n }\n });\n slugNames.push(nextSlug);\n }\n if (isCatchAll) {\n if (isOptional) {\n if (this.restSlugName != null) {\n throw new Error('You cannot use both an required and optional catch-all route at the same level (\"[...' + this.restSlugName + ']\" and \"' + urlPaths[0] + '\" ).');\n }\n handleSlug(this.optionalRestSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.optionalRestSlugName = segmentName;\n // nextSegment is overwritten to [[...]] so that it can later be sorted specifically\n nextSegment = \"[[...]]\";\n } else {\n if (this.optionalRestSlugName != null) {\n throw new Error('You cannot use both an optional and required catch-all route at the same level (\"[[...' + this.optionalRestSlugName + ']]\" and \"' + urlPaths[0] + '\").');\n }\n handleSlug(this.restSlugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.restSlugName = segmentName;\n // nextSegment is overwritten to [...] so that it can later be sorted specifically\n nextSegment = \"[...]\";\n }\n } else {\n if (isOptional) {\n throw new Error('Optional route parameters are not yet supported (\"' + urlPaths[0] + '\").');\n }\n handleSlug(this.slugName, segmentName);\n // slugName is kept as it can only be one particular slugName\n this.slugName = segmentName;\n // nextSegment is overwritten to [] so that it can later be sorted specifically\n nextSegment = \"[]\";\n }\n }\n // If this UrlNode doesn't have the nextSegment yet we create a new child UrlNode\n if (!this.children.has(nextSegment)) {\n this.children.set(nextSegment, new UrlNode());\n }\n this.children.get(nextSegment)._insert(urlPaths.slice(1), slugNames, isCatchAll);\n }\n constructor(){\n this.placeholder = true;\n this.children = new Map();\n this.slugName = null;\n this.restSlugName = null;\n this.optionalRestSlugName = null;\n }\n}\nfunction getSortedRoutes(normalizedPages) {\n // First the UrlNode is created, and every UrlNode can have only 1 dynamic segment\n // Eg you can't have pages/[post]/abc.js and pages/[hello]/something-else.js\n // Only 1 dynamic segment per nesting level\n // So in the case that is test/integration/dynamic-routing it'll be this:\n // pages/[post]/comments.js\n // pages/blog/[post]/comment/[id].js\n // Both are fine because `pages/[post]` and `pages/blog` are on the same level\n // So in this case `UrlNode` created here has `this.slugName === 'post'`\n // And since your PR passed through `slugName` as an array basically it'd including it in too many possibilities\n // Instead what has to be passed through is the upwards path's dynamic names\n const root = new UrlNode();\n // Here the `root` gets injected multiple paths, and insert will break them up into sublevels\n normalizedPages.forEach((pagePath)=>root.insert(pagePath));\n // Smoosh will then sort those sublevels up to the point where you get the correct route definition priority\n return root.smoosh();\n} //# sourceMappingURL=sorted-routes.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvc29ydGVkLXJvdXRlcy5qcyIsIm1hcHBpbmdzIjoiOzs7O21EQXFNZ0JBOzs7ZUFBQUE7OztBQXJNaEIsTUFBTUM7SUFPSkMsT0FBT0MsT0FBZSxFQUFRO1FBQzVCLElBQUksQ0FBQ0MsT0FBTyxDQUFDRCxRQUFRRSxLQUFLLENBQUMsS0FBS0MsTUFBTSxDQUFDQyxVQUFVLEVBQUUsRUFBRTtJQUN2RDtJQUVBQyxTQUFtQjtRQUNqQixPQUFPLElBQUksQ0FBQ0MsT0FBTztJQUNyQjtJQUVRQSxRQUFRQyxNQUFvQixFQUFZO1FBQWhDQSxJQUFBQSxXQUFBQSxLQUFBQSxHQUFBQSxTQUFpQjtRQUMvQixNQUFNQyxnQkFBZ0I7ZUFBSSxJQUFJLENBQUNDLFFBQVEsQ0FBQ0MsSUFBSTtTQUFHLENBQUNDLElBQUk7UUFDcEQsSUFBSSxJQUFJLENBQUNDLFFBQVEsS0FBSyxNQUFNO1lBQzFCSixjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxPQUFPO1FBQ3BEO1FBQ0EsSUFBSSxJQUFJLENBQUNDLFlBQVksS0FBSyxNQUFNO1lBQzlCUCxjQUFjSyxNQUFNLENBQUNMLGNBQWNNLE9BQU8sQ0FBQyxVQUFVO1FBQ3ZEO1FBQ0EsSUFBSSxJQUFJLENBQUNFLG9CQUFvQixLQUFLLE1BQU07WUFDdENSLGNBQWNLLE1BQU0sQ0FBQ0wsY0FBY00sT0FBTyxDQUFDLFlBQVk7UUFDekQ7UUFFQSxNQUFNRyxTQUFTVCxjQUNaVSxHQUFHLENBQUMsQ0FBQ0MsSUFBTSxJQUFJLENBQUNWLFFBQVEsQ0FBQ1csR0FBRyxDQUFDRCxHQUFJYixPQUFPLENBQUMsS0FBR0MsU0FBU1ksSUFBRSxNQUN2REUsTUFBTSxDQUFDLENBQUNDLE1BQU1DLE9BQVM7bUJBQUlEO21CQUFTQzthQUFLLEVBQUUsRUFBRTtRQUVoRCxJQUFJLElBQUksQ0FBQ1gsUUFBUSxLQUFLLE1BQU07WUFDMUJLLE9BQU9PLElBQUksSUFDTixJQUFJLENBQUNmLFFBQVEsQ0FBQ1csR0FBRyxDQUFDLE1BQU9kLE9BQU8sQ0FBQ0MsU0FBVSxNQUFHLElBQUksQ0FBQ0ssUUFBUSxHQUFDO1FBRW5FO1FBRUEsSUFBSSxDQUFDLElBQUksQ0FBQ2EsV0FBVyxFQUFFO1lBQ3JCLE1BQU1DLElBQUluQixXQUFXLE1BQU0sTUFBTUEsT0FBT29CLEtBQUssQ0FBQyxHQUFHLENBQUM7WUFDbEQsSUFBSSxJQUFJLENBQUNYLG9CQUFvQixJQUFJLE1BQU07Z0JBQ3JDLE1BQU0sSUFBSVksTUFDUix5RkFBdUZGLElBQUUsWUFBU0EsSUFBRSxVQUFPLElBQUksQ0FBQ1Ysb0JBQW9CLEdBQUM7WUFFekk7WUFFQUMsT0FBT1ksT0FBTyxDQUFDSDtRQUNqQjtRQUVBLElBQUksSUFBSSxDQUFDWCxZQUFZLEtBQUssTUFBTTtZQUM5QkUsT0FBT08sSUFBSSxJQUNOLElBQUksQ0FBQ2YsUUFBUSxDQUNiVyxHQUFHLENBQUMsU0FDSmQsT0FBTyxDQUFDQyxTQUFVLFNBQU0sSUFBSSxDQUFDUSxZQUFZLEdBQUM7UUFFakQ7UUFFQSxJQUFJLElBQUksQ0FBQ0Msb0JBQW9CLEtBQUssTUFBTTtZQUN0Q0MsT0FBT08sSUFBSSxJQUNOLElBQUksQ0FBQ2YsUUFBUSxDQUNiVyxHQUFHLENBQUMsV0FDSmQsT0FBTyxDQUFDQyxTQUFVLFVBQU8sSUFBSSxDQUFDUyxvQkFBb0IsR0FBQztRQUUxRDtRQUVBLE9BQU9DO0lBQ1Q7SUFFUWhCLFFBQ042QixRQUFrQixFQUNsQkMsU0FBbUIsRUFDbkJDLFVBQW1CLEVBQ2I7UUFDTixJQUFJRixTQUFTRyxNQUFNLEtBQUssR0FBRztZQUN6QixJQUFJLENBQUNSLFdBQVcsR0FBRztZQUNuQjtRQUNGO1FBRUEsSUFBSU8sWUFBWTtZQUNkLE1BQU0sSUFBSUosTUFBTztRQUNuQjtRQUVBLHdDQUF3QztRQUN4QyxJQUFJTSxjQUFjSixRQUFRLENBQUMsRUFBRTtRQUU3Qiw2Q0FBNkM7UUFDN0MsSUFBSUksWUFBWUMsVUFBVSxDQUFDLFFBQVFELFlBQVlFLFFBQVEsQ0FBQyxNQUFNO1lBQzVELDhDQUE4QztZQUM5QyxJQUFJQyxjQUFjSCxZQUFZUCxLQUFLLENBQUMsR0FBRyxDQUFDO1lBRXhDLElBQUlXLGFBQWE7WUFDakIsSUFBSUQsWUFBWUYsVUFBVSxDQUFDLFFBQVFFLFlBQVlELFFBQVEsQ0FBQyxNQUFNO2dCQUM1RCx1REFBdUQ7Z0JBQ3ZEQyxjQUFjQSxZQUFZVixLQUFLLENBQUMsR0FBRyxDQUFDO2dCQUNwQ1csYUFBYTtZQUNmO1lBRUEsSUFBSUQsWUFBWUYsVUFBVSxDQUFDLFFBQVE7Z0JBQ2pDLHdDQUF3QztnQkFDeENFLGNBQWNBLFlBQVlFLFNBQVMsQ0FBQztnQkFDcENQLGFBQWE7WUFDZjtZQUVBLElBQUlLLFlBQVlGLFVBQVUsQ0FBQyxRQUFRRSxZQUFZRCxRQUFRLENBQUMsTUFBTTtnQkFDNUQsTUFBTSxJQUFJUixNQUNSLDhEQUE0RFMsY0FBWTtZQUU1RTtZQUVBLElBQUlBLFlBQVlGLFVBQVUsQ0FBQyxNQUFNO2dCQUMvQixNQUFNLElBQUlQLE1BQ1IsMERBQXdEUyxjQUFZO1lBRXhFO1lBRUEsU0FBU0csV0FBV0MsWUFBMkIsRUFBRUMsUUFBZ0I7Z0JBQy9ELElBQUlELGlCQUFpQixNQUFNO29CQUN6Qiw2RUFBNkU7b0JBQzdFLGlDQUFpQztvQkFDakMsd0JBQXdCO29CQUN4QixzQkFBc0I7b0JBQ3RCLHdGQUF3RjtvQkFDeEYsSUFBSUEsaUJBQWlCQyxVQUFVO3dCQUM3Qix3SEFBd0g7d0JBQ3hILE1BQU0sSUFBSWQsTUFDUixxRUFBbUVhLGVBQWEsWUFBU0MsV0FBUztvQkFFdEc7Z0JBQ0Y7Z0JBRUFYLFVBQVVZLE9BQU8sQ0FBQyxDQUFDQztvQkFDakIsSUFBSUEsU0FBU0YsVUFBVTt3QkFDckIsTUFBTSxJQUFJZCxNQUNSLHlDQUF1Q2MsV0FBUztvQkFFcEQ7b0JBRUEsSUFBSUUsS0FBS0MsT0FBTyxDQUFDLE9BQU8sUUFBUVgsWUFBWVcsT0FBTyxDQUFDLE9BQU8sS0FBSzt3QkFDOUQsTUFBTSxJQUFJakIsTUFDUixxQ0FBbUNnQixPQUFLLFlBQVNGLFdBQVM7b0JBRTlEO2dCQUNGO2dCQUVBWCxVQUFVUCxJQUFJLENBQUNrQjtZQUNqQjtZQUVBLElBQUlWLFlBQVk7Z0JBQ2QsSUFBSU0sWUFBWTtvQkFDZCxJQUFJLElBQUksQ0FBQ3ZCLFlBQVksSUFBSSxNQUFNO3dCQUM3QixNQUFNLElBQUlhLE1BQ1IsMEZBQXdGLElBQUksQ0FBQ2IsWUFBWSxHQUFDLGFBQVVlLFFBQVEsQ0FBQyxFQUFFLEdBQUM7b0JBRXBJO29CQUVBVSxXQUFXLElBQUksQ0FBQ3hCLG9CQUFvQixFQUFFcUI7b0JBQ3RDLDZEQUE2RDtvQkFDN0QsSUFBSSxDQUFDckIsb0JBQW9CLEdBQUdxQjtvQkFDNUIsb0ZBQW9GO29CQUNwRkgsY0FBYztnQkFDaEIsT0FBTztvQkFDTCxJQUFJLElBQUksQ0FBQ2xCLG9CQUFvQixJQUFJLE1BQU07d0JBQ3JDLE1BQU0sSUFBSVksTUFDUiwyRkFBeUYsSUFBSSxDQUFDWixvQkFBb0IsR0FBQyxjQUFXYyxRQUFRLENBQUMsRUFBRSxHQUFDO29CQUU5STtvQkFFQVUsV0FBVyxJQUFJLENBQUN6QixZQUFZLEVBQUVzQjtvQkFDOUIsNkRBQTZEO29CQUM3RCxJQUFJLENBQUN0QixZQUFZLEdBQUdzQjtvQkFDcEIsa0ZBQWtGO29CQUNsRkgsY0FBYztnQkFDaEI7WUFDRixPQUFPO2dCQUNMLElBQUlJLFlBQVk7b0JBQ2QsTUFBTSxJQUFJVixNQUNSLHVEQUFxREUsUUFBUSxDQUFDLEVBQUUsR0FBQztnQkFFckU7Z0JBQ0FVLFdBQVcsSUFBSSxDQUFDNUIsUUFBUSxFQUFFeUI7Z0JBQzFCLDZEQUE2RDtnQkFDN0QsSUFBSSxDQUFDekIsUUFBUSxHQUFHeUI7Z0JBQ2hCLCtFQUErRTtnQkFDL0VILGNBQWM7WUFDaEI7UUFDRjtRQUVBLGlGQUFpRjtRQUNqRixJQUFJLENBQUMsSUFBSSxDQUFDekIsUUFBUSxDQUFDcUMsR0FBRyxDQUFDWixjQUFjO1lBQ25DLElBQUksQ0FBQ3pCLFFBQVEsQ0FBQ3NDLEdBQUcsQ0FBQ2IsYUFBYSxJQUFJcEM7UUFDckM7UUFFQSxJQUFJLENBQUNXLFFBQVEsQ0FDVlcsR0FBRyxDQUFDYyxhQUNKakMsT0FBTyxDQUFDNkIsU0FBU0gsS0FBSyxDQUFDLElBQUlJLFdBQVdDO0lBQzNDOzthQWpNQVAsV0FBQUEsR0FBdUI7YUFDdkJoQixRQUFBQSxHQUFpQyxJQUFJdUM7YUFDckNwQyxRQUFBQSxHQUEwQjthQUMxQkcsWUFBQUEsR0FBOEI7YUFDOUJDLG9CQUFBQSxHQUFzQzs7QUE4THhDO0FBRU8sU0FBU25CLGdCQUNkb0QsZUFBc0M7SUFFdEMsa0ZBQWtGO0lBQ2xGLDRFQUE0RTtJQUM1RSwyQ0FBMkM7SUFFM0MseUVBQXlFO0lBQ3pFLDJCQUEyQjtJQUMzQixvQ0FBb0M7SUFDcEMsOEVBQThFO0lBQzlFLHdFQUF3RTtJQUN4RSxnSEFBZ0g7SUFDaEgsNEVBQTRFO0lBQzVFLE1BQU1DLE9BQU8sSUFBSXBEO0lBRWpCLDZGQUE2RjtJQUM3Rm1ELGdCQUFnQk4sT0FBTyxDQUFDLENBQUNRLFdBQWFELEtBQUtuRCxNQUFNLENBQUNvRDtJQUNsRCw0R0FBNEc7SUFDNUcsT0FBT0QsS0FBSzdDLE1BQU07QUFDcEIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4uLy4uLy4uLy4uL3NyYy9zaGFyZWQvbGliL3JvdXRlci91dGlscy9zb3J0ZWQtcm91dGVzLnRzP2IwYjAiXSwibmFtZXMiOlsiZ2V0U29ydGVkUm91dGVzIiwiVXJsTm9kZSIsImluc2VydCIsInVybFBhdGgiLCJfaW5zZXJ0Iiwic3BsaXQiLCJmaWx0ZXIiLCJCb29sZWFuIiwic21vb3NoIiwiX3Ntb29zaCIsInByZWZpeCIsImNoaWxkcmVuUGF0aHMiLCJjaGlsZHJlbiIsImtleXMiLCJzb3J0Iiwic2x1Z05hbWUiLCJzcGxpY2UiLCJpbmRleE9mIiwicmVzdFNsdWdOYW1lIiwib3B0aW9uYWxSZXN0U2x1Z05hbWUiLCJyb3V0ZXMiLCJtYXAiLCJjIiwiZ2V0IiwicmVkdWNlIiwicHJldiIsImN1cnIiLCJwdXNoIiwicGxhY2Vob2xkZXIiLCJyIiwic2xpY2UiLCJFcnJvciIsInVuc2hpZnQiLCJ1cmxQYXRocyIsInNsdWdOYW1lcyIsImlzQ2F0Y2hBbGwiLCJsZW5ndGgiLCJuZXh0U2VnbWVudCIsInN0YXJ0c1dpdGgiLCJlbmRzV2l0aCIsInNlZ21lbnROYW1lIiwiaXNPcHRpb25hbCIsInN1YnN0cmluZyIsImhhbmRsZVNsdWciLCJwcmV2aW91c1NsdWciLCJuZXh0U2x1ZyIsImZvckVhY2giLCJzbHVnIiwicmVwbGFjZSIsImhhcyIsInNldCIsIk1hcCIsIm5vcm1hbGl6ZWRQYWdlcyIsInJvb3QiLCJwYWdlUGF0aCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/sorted-routes.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js":
-/*!****************************************************!*\
- !*** ./node_modules/next/dist/shared/lib/utils.js ***!
- \****************************************************/
-/***/ (function(module, exports, __webpack_require__) {
-
-"use strict";
-eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\n0 && (0);\nfunction _export(target, all) {\n for(var name in all)Object.defineProperty(target, name, {\n enumerable: true,\n get: all[name]\n });\n}\n_export(exports, {\n DecodeError: function() {\n return DecodeError;\n },\n MiddlewareNotFoundError: function() {\n return MiddlewareNotFoundError;\n },\n MissingStaticPage: function() {\n return MissingStaticPage;\n },\n NormalizeError: function() {\n return NormalizeError;\n },\n PageNotFoundError: function() {\n return PageNotFoundError;\n },\n SP: function() {\n return SP;\n },\n ST: function() {\n return ST;\n },\n WEB_VITALS: function() {\n return WEB_VITALS;\n },\n execOnce: function() {\n return execOnce;\n },\n getDisplayName: function() {\n return getDisplayName;\n },\n getLocationOrigin: function() {\n return getLocationOrigin;\n },\n getURL: function() {\n return getURL;\n },\n isAbsoluteUrl: function() {\n return isAbsoluteUrl;\n },\n isResSent: function() {\n return isResSent;\n },\n loadGetInitialProps: function() {\n return loadGetInitialProps;\n },\n normalizeRepeatedSlashes: function() {\n return normalizeRepeatedSlashes;\n },\n stringifyError: function() {\n return stringifyError;\n }\n});\nconst WEB_VITALS = [\n \"CLS\",\n \"FCP\",\n \"FID\",\n \"INP\",\n \"LCP\",\n \"TTFB\"\n];\nfunction execOnce(fn) {\n let used = false;\n let result;\n return function() {\n for(var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++){\n args[_key] = arguments[_key];\n }\n if (!used) {\n used = true;\n result = fn(...args);\n }\n return result;\n };\n}\n// Scheme: https://tools.ietf.org/html/rfc3986#section-3.1\n// Absolute URL: https://tools.ietf.org/html/rfc3986#section-4.3\nconst ABSOLUTE_URL_REGEX = /^[a-zA-Z][a-zA-Z\\d+\\-.]*?:/;\nconst isAbsoluteUrl = (url)=>ABSOLUTE_URL_REGEX.test(url);\nfunction getLocationOrigin() {\n const { protocol, hostname, port } = window.location;\n return protocol + \"//\" + hostname + (port ? \":\" + port : \"\");\n}\nfunction getURL() {\n const { href } = window.location;\n const origin = getLocationOrigin();\n return href.substring(origin.length);\n}\nfunction getDisplayName(Component) {\n return typeof Component === \"string\" ? Component : Component.displayName || Component.name || \"Unknown\";\n}\nfunction isResSent(res) {\n return res.finished || res.headersSent;\n}\nfunction normalizeRepeatedSlashes(url) {\n const urlParts = url.split(\"?\");\n const urlNoQuery = urlParts[0];\n return urlNoQuery // first we replace any non-encoded backslashes with forward\n // then normalize repeated forward slashes\n .replace(/\\\\/g, \"/\").replace(/\\/\\/+/g, \"/\") + (urlParts[1] ? \"?\" + urlParts.slice(1).join(\"?\") : \"\");\n}\nasync function loadGetInitialProps(App, ctx) {\n if (true) {\n var _App_prototype;\n if ((_App_prototype = App.prototype) == null ? void 0 : _App_prototype.getInitialProps) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.';\n throw new Error(message);\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || ctx.ctx && ctx.ctx.res;\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx)\n };\n }\n return {};\n }\n const props = await App.getInitialProps(ctx);\n if (res && isResSent(res)) {\n return props;\n }\n if (!props) {\n const message = '\"' + getDisplayName(App) + '.getInitialProps()\" should resolve to an object. But found \"' + props + '\" instead.';\n throw new Error(message);\n }\n if (true) {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\"\" + getDisplayName(App) + \" returned an empty object from `getInitialProps`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps\");\n }\n }\n return props;\n}\nconst SP = typeof performance !== \"undefined\";\nconst ST = SP && [\n \"mark\",\n \"measure\",\n \"getEntriesByName\"\n].every((method)=>typeof performance[method] === \"function\");\nclass DecodeError extends Error {\n}\nclass NormalizeError extends Error {\n}\nclass PageNotFoundError extends Error {\n constructor(page){\n super();\n this.code = \"ENOENT\";\n this.name = \"PageNotFoundError\";\n this.message = \"Cannot find module for page: \" + page;\n }\n}\nclass MissingStaticPage extends Error {\n constructor(page, message){\n super();\n this.message = \"Failed to load static file for page: \" + page + \" \" + message;\n }\n}\nclass MiddlewareNotFoundError extends Error {\n constructor(){\n super();\n this.code = \"ENOENT\";\n this.message = \"Cannot find the middleware module\";\n }\n}\nfunction stringifyError(error) {\n return JSON.stringify({\n message: error.message,\n stack: error.stack\n });\n} //# sourceMappingURL=utils.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7SUFvYWFBLGFBQVc7ZUFBWEE7O0lBb0JBQyx5QkFBdUI7ZUFBdkJBOztJQVBBQyxtQkFBaUI7ZUFBakJBOztJQVpBQyxnQkFBYztlQUFkQTs7SUFDQUMsbUJBQWlCO2VBQWpCQTs7SUFUQUMsSUFBRTtlQUFGQTs7SUFDQUMsSUFBRTtlQUFGQTs7SUFsWEFDLFlBQVU7ZUFBVkE7O0lBc1FHQyxVQUFRO2VBQVJBOztJQStCQUMsZ0JBQWM7ZUFBZEE7O0lBWEFDLG1CQUFpQjtlQUFqQkE7O0lBS0FDLFFBQU07ZUFBTkE7O0lBUEhDLGVBQWE7ZUFBYkE7O0lBbUJHQyxXQUFTO2VBQVRBOztJQWtCTUMscUJBQW1CO2VBQW5CQTs7SUFkTkMsMEJBQXdCO2VBQXhCQTs7SUErR0FDLGdCQUFjO2VBQWRBOzs7QUE5WlQsTUFBTVQsYUFBYTtJQUFDO0lBQU87SUFBTztJQUFPO0lBQU87SUFBTztDQUFPO0FBc1E5RCxTQUFTQyxTQUNkUyxFQUFLO0lBRUwsSUFBSUMsT0FBTztJQUNYLElBQUlDO0lBRUosT0FBUTt5Q0FBSUMsT0FBQUEsSUFBQUEsTUFBQUEsT0FBQUEsT0FBQUEsR0FBQUEsT0FBQUEsTUFBQUEsT0FBQUE7WUFBQUEsSUFBQUEsQ0FBQUEsS0FBQUEsR0FBQUEsU0FBQUEsQ0FBQUEsS0FBQUE7O1FBQ1YsSUFBSSxDQUFDRixNQUFNO1lBQ1RBLE9BQU87WUFDUEMsU0FBU0YsTUFBTUc7UUFDakI7UUFDQSxPQUFPRDtJQUNUO0FBQ0Y7QUFFQSwwREFBMEQ7QUFDMUQsZ0VBQWdFO0FBQ2hFLE1BQU1FLHFCQUFxQjtBQUNwQixNQUFNVCxnQkFBZ0IsQ0FBQ1UsTUFBZ0JELG1CQUFtQkUsSUFBSSxDQUFDRDtBQUUvRCxTQUFTWjtJQUNkLE1BQU0sRUFBRWMsUUFBUSxFQUFFQyxRQUFRLEVBQUVDLElBQUksRUFBRSxHQUFHQyxPQUFPQyxRQUFRO0lBQ3BELE9BQU9KLFdBQVksT0FBSUMsV0FBV0MsQ0FBQUEsT0FBTyxNQUFNQSxPQUFPO0FBQ3hEO0FBRU8sU0FBU2Y7SUFDZCxNQUFNLEVBQUVrQixJQUFJLEVBQUUsR0FBR0YsT0FBT0MsUUFBUTtJQUNoQyxNQUFNRSxTQUFTcEI7SUFDZixPQUFPbUIsS0FBS0UsU0FBUyxDQUFDRCxPQUFPRSxNQUFNO0FBQ3JDO0FBRU8sU0FBU3ZCLGVBQWtCd0IsU0FBMkI7SUFDM0QsT0FBTyxPQUFPQSxjQUFjLFdBQ3hCQSxZQUNBQSxVQUFVQyxXQUFXLElBQUlELFVBQVVFLElBQUksSUFBSTtBQUNqRDtBQUVPLFNBQVN0QixVQUFVdUIsR0FBbUI7SUFDM0MsT0FBT0EsSUFBSUMsUUFBUSxJQUFJRCxJQUFJRSxXQUFXO0FBQ3hDO0FBRU8sU0FBU3ZCLHlCQUF5Qk8sR0FBVztJQUNsRCxNQUFNaUIsV0FBV2pCLElBQUlrQixLQUFLLENBQUM7SUFDM0IsTUFBTUMsYUFBYUYsUUFBUSxDQUFDLEVBQUU7SUFFOUIsT0FDRUUsV0FDRSw0REFBNEQ7SUFDNUQsMENBQTBDO0tBQ3pDQyxPQUFPLENBQUMsT0FBTyxLQUNmQSxPQUFPLENBQUMsVUFBVSxPQUNwQkgsQ0FBQUEsUUFBUSxDQUFDLEVBQUUsR0FBRyxNQUFJQSxTQUFTSSxLQUFLLENBQUMsR0FBR0MsSUFBSSxDQUFDLE9BQVM7QUFFdkQ7QUFFTyxlQUFlOUIsb0JBSXBCK0IsR0FBZ0MsRUFBRUMsR0FBTTtJQUN4QyxJQUFJQyxJQUF5QixFQUFjO1lBQ3JDRjtRQUFKLEtBQUlBLGlCQUFBQSxJQUFJRyxTQUFTLHFCQUFiSCxlQUFlSSxlQUFlLEVBQUU7WUFDbEMsTUFBTUMsVUFBVSxNQUFJekMsZUFDbEJvQyxPQUNBO1lBQ0YsTUFBTSxJQUFJTSxNQUFNRDtRQUNsQjtJQUNGO0lBQ0EsaURBQWlEO0lBQ2pELE1BQU1kLE1BQU1VLElBQUlWLEdBQUcsSUFBS1UsSUFBSUEsR0FBRyxJQUFJQSxJQUFJQSxHQUFHLENBQUNWLEdBQUc7SUFFOUMsSUFBSSxDQUFDUyxJQUFJSSxlQUFlLEVBQUU7UUFDeEIsSUFBSUgsSUFBSUEsR0FBRyxJQUFJQSxJQUFJYixTQUFTLEVBQUU7WUFDNUIsK0JBQStCO1lBQy9CLE9BQU87Z0JBQ0xtQixXQUFXLE1BQU10QyxvQkFBb0JnQyxJQUFJYixTQUFTLEVBQUVhLElBQUlBLEdBQUc7WUFDN0Q7UUFDRjtRQUNBLE9BQU8sQ0FBQztJQUNWO0lBRUEsTUFBTU8sUUFBUSxNQUFNUixJQUFJSSxlQUFlLENBQUNIO0lBRXhDLElBQUlWLE9BQU92QixVQUFVdUIsTUFBTTtRQUN6QixPQUFPaUI7SUFDVDtJQUVBLElBQUksQ0FBQ0EsT0FBTztRQUNWLE1BQU1ILFVBQVUsTUFBSXpDLGVBQ2xCb0MsT0FDQSxpRUFBOERRLFFBQU07UUFDdEUsTUFBTSxJQUFJRixNQUFNRDtJQUNsQjtJQUVBLElBQUlILElBQXlCLEVBQWM7UUFDekMsSUFBSU8sT0FBT0MsSUFBSSxDQUFDRixPQUFPckIsTUFBTSxLQUFLLEtBQUssQ0FBQ2MsSUFBSUEsR0FBRyxFQUFFO1lBQy9DVSxRQUFRQyxJQUFJLENBQ1YsS0FBR2hELGVBQ0RvQyxPQUNBO1FBRU47SUFDRjtJQUVBLE9BQU9RO0FBQ1Q7QUFFTyxNQUFNaEQsS0FBSyxPQUFPcUQsZ0JBQWdCO0FBQ2xDLE1BQU1wRCxLQUNYRCxNQUNBO0lBQUU7SUFBUTtJQUFXO0NBQW1CLENBQVdzRCxLQUFLLENBQ3RELENBQUNDLFNBQVcsT0FBT0YsV0FBVyxDQUFDRSxPQUFPLEtBQUs7QUFHeEMsTUFBTTVELG9CQUFvQm1EO0FBQU87QUFDakMsTUFBTWhELHVCQUF1QmdEO0FBQU87QUFDcEMsTUFBTS9DLDBCQUEwQitDO0lBR3JDVSxZQUFZQyxJQUFZLENBQUU7UUFDeEIsS0FBSztRQUNMLElBQUksQ0FBQ0MsSUFBSSxHQUFHO1FBQ1osSUFBSSxDQUFDNUIsSUFBSSxHQUFHO1FBQ1osSUFBSSxDQUFDZSxPQUFPLEdBQUcsa0NBQWdDWTtJQUNqRDtBQUNGO0FBRU8sTUFBTTVELDBCQUEwQmlEO0lBQ3JDVSxZQUFZQyxJQUFZLEVBQUVaLE9BQWUsQ0FBRTtRQUN6QyxLQUFLO1FBQ0wsSUFBSSxDQUFDQSxPQUFPLEdBQUcsMENBQXdDWSxPQUFLLE1BQUdaO0lBQ2pFO0FBQ0Y7QUFFTyxNQUFNakQsZ0NBQWdDa0Q7SUFFM0NVLGFBQWM7UUFDWixLQUFLO1FBQ0wsSUFBSSxDQUFDRSxJQUFJLEdBQUc7UUFDWixJQUFJLENBQUNiLE9BQU8sR0FBSTtJQUNsQjtBQUNGO0FBV08sU0FBU2xDLGVBQWVnRCxLQUFZO0lBQ3pDLE9BQU9DLEtBQUtDLFNBQVMsQ0FBQztRQUFFaEIsU0FBU2MsTUFBTWQsT0FBTztRQUFFaUIsT0FBT0gsTUFBTUcsS0FBSztJQUFDO0FBQ3JFIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uLi8uLi8uLi9zcmMvc2hhcmVkL2xpYi91dGlscy50cz8xYmQ1Il0sIm5hbWVzIjpbIkRlY29kZUVycm9yIiwiTWlkZGxld2FyZU5vdEZvdW5kRXJyb3IiLCJNaXNzaW5nU3RhdGljUGFnZSIsIk5vcm1hbGl6ZUVycm9yIiwiUGFnZU5vdEZvdW5kRXJyb3IiLCJTUCIsIlNUIiwiV0VCX1ZJVEFMUyIsImV4ZWNPbmNlIiwiZ2V0RGlzcGxheU5hbWUiLCJnZXRMb2NhdGlvbk9yaWdpbiIsImdldFVSTCIsImlzQWJzb2x1dGVVcmwiLCJpc1Jlc1NlbnQiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwibm9ybWFsaXplUmVwZWF0ZWRTbGFzaGVzIiwic3RyaW5naWZ5RXJyb3IiLCJmbiIsInVzZWQiLCJyZXN1bHQiLCJhcmdzIiwiQUJTT0xVVEVfVVJMX1JFR0VYIiwidXJsIiwidGVzdCIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJwb3J0Iiwid2luZG93IiwibG9jYXRpb24iLCJocmVmIiwib3JpZ2luIiwic3Vic3RyaW5nIiwibGVuZ3RoIiwiQ29tcG9uZW50IiwiZGlzcGxheU5hbWUiLCJuYW1lIiwicmVzIiwiZmluaXNoZWQiLCJoZWFkZXJzU2VudCIsInVybFBhcnRzIiwic3BsaXQiLCJ1cmxOb1F1ZXJ5IiwicmVwbGFjZSIsInNsaWNlIiwiam9pbiIsIkFwcCIsImN0eCIsInByb2Nlc3MiLCJwcm90b3R5cGUiLCJnZXRJbml0aWFsUHJvcHMiLCJtZXNzYWdlIiwiRXJyb3IiLCJwYWdlUHJvcHMiLCJwcm9wcyIsIk9iamVjdCIsImtleXMiLCJjb25zb2xlIiwid2FybiIsInBlcmZvcm1hbmNlIiwiZXZlcnkiLCJtZXRob2QiLCJjb25zdHJ1Y3RvciIsInBhZ2UiLCJjb2RlIiwiZXJyb3IiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RhY2siXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/utils.js\n"));
-
-/***/ })
-
-},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
-/******/ __webpack_require__.O(0, ["main-app"], function() { return __webpack_exec__("(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"); });
-/******/ var __webpack_exports__ = __webpack_require__.O();
-/******/ _N_E = __webpack_exports__;
-/******/ }
-]);
\ No newline at end of file
diff --git a/.next/static/chunks/webpack.js b/.next/static/chunks/webpack.js
index 969568b..aa62e35 100644
--- a/.next/static/chunks/webpack.js
+++ b/.next/static/chunks/webpack.js
@@ -192,7 +192,7 @@
/******/
/******/ /* webpack/runtime/getFullHash */
/******/ !function() {
-/******/ __webpack_require__.h = function() { return "7f83c2b3ede35a16"; }
+/******/ __webpack_require__.h = function() { return "95f881488f2e5382"; }
/******/ }();
/******/
/******/ /* webpack/runtime/global */
diff --git a/.next/static/webpack/02985b2227e92138.webpack.hot-update.json b/.next/static/webpack/02985b2227e92138.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/02985b2227e92138.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/0422c1777ea6729c.webpack.hot-update.json b/.next/static/webpack/0422c1777ea6729c.webpack.hot-update.json
deleted file mode 100644
index 31f1cde..0000000
--- a/.next/static/webpack/0422c1777ea6729c.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/046d14ac1f24d478.webpack.hot-update.json b/.next/static/webpack/046d14ac1f24d478.webpack.hot-update.json
deleted file mode 100644
index 31f1cde..0000000
--- a/.next/static/webpack/046d14ac1f24d478.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/123e6081feae4650.webpack.hot-update.json b/.next/static/webpack/123e6081feae4650.webpack.hot-update.json
deleted file mode 100644
index 31f1cde..0000000
--- a/.next/static/webpack/123e6081feae4650.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/128627853224a2d4.webpack.hot-update.json b/.next/static/webpack/128627853224a2d4.webpack.hot-update.json
deleted file mode 100644
index 949c8b3..0000000
--- a/.next/static/webpack/128627853224a2d4.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":["app/_not-found/page"],"m":["(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!","(app-pages-browser)/./node_modules/next/dist/client/components/not-found-error.js"]}
\ No newline at end of file
diff --git a/.next/static/webpack/223a54f5f9cb6c34.webpack.hot-update.json b/.next/static/webpack/223a54f5f9cb6c34.webpack.hot-update.json
deleted file mode 100644
index 31f1cde..0000000
--- a/.next/static/webpack/223a54f5f9cb6c34.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/3b6503389f6ac034.webpack.hot-update.json b/.next/static/webpack/3b6503389f6ac034.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/3b6503389f6ac034.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/3bebdd7477e09e2a.webpack.hot-update.json b/.next/static/webpack/3bebdd7477e09e2a.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/3bebdd7477e09e2a.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/44b2c6af73f059b8.webpack.hot-update.json b/.next/static/webpack/44b2c6af73f059b8.webpack.hot-update.json
deleted file mode 100644
index 5e3f6af..0000000
--- a/.next/static/webpack/44b2c6af73f059b8.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/[categoryId]/[partId]/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/469afc16cd5c06dc.webpack.hot-update.json b/.next/static/webpack/469afc16cd5c06dc.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/469afc16cd5c06dc.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/470106d2483fe157.webpack.hot-update.json b/.next/static/webpack/470106d2483fe157.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/470106d2483fe157.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/4aab4cece345bfd8.webpack.hot-update.json b/.next/static/webpack/4aab4cece345bfd8.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/4aab4cece345bfd8.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/51a0251b56f840c5.webpack.hot-update.json b/.next/static/webpack/51a0251b56f840c5.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/51a0251b56f840c5.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/52bc31ac991d7066.webpack.hot-update.json b/.next/static/webpack/52bc31ac991d7066.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/52bc31ac991d7066.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/580f64a4930cd520.webpack.hot-update.json b/.next/static/webpack/580f64a4930cd520.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/580f64a4930cd520.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/5aa0f4b5d703f9bd.webpack.hot-update.json b/.next/static/webpack/5aa0f4b5d703f9bd.webpack.hot-update.json
deleted file mode 100644
index 31f1cde..0000000
--- a/.next/static/webpack/5aa0f4b5d703f9bd.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/601796416dea5810.webpack.hot-update.json b/.next/static/webpack/601796416dea5810.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/601796416dea5810.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/62829ecc5a9f016d.webpack.hot-update.json b/.next/static/webpack/62829ecc5a9f016d.webpack.hot-update.json
deleted file mode 100644
index 6a4f8ba..0000000
--- a/.next/static/webpack/62829ecc5a9f016d.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/[categoryId]/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/73f26e6e39ca6219.webpack.hot-update.json b/.next/static/webpack/73f26e6e39ca6219.webpack.hot-update.json
deleted file mode 100644
index 6a4f8ba..0000000
--- a/.next/static/webpack/73f26e6e39ca6219.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/[categoryId]/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/7bb4a4e9a866cbdd.webpack.hot-update.json b/.next/static/webpack/7bb4a4e9a866cbdd.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/7bb4a4e9a866cbdd.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/7bcd31a758e98304.webpack.hot-update.json b/.next/static/webpack/7bcd31a758e98304.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/7bcd31a758e98304.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/7cec39c7e4aa49e7.webpack.hot-update.json b/.next/static/webpack/7cec39c7e4aa49e7.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/7cec39c7e4aa49e7.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/7fb14897109b9564.webpack.hot-update.json b/.next/static/webpack/7fb14897109b9564.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/7fb14897109b9564.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/86af3bcc66ce70ea.webpack.hot-update.json b/.next/static/webpack/86af3bcc66ce70ea.webpack.hot-update.json
deleted file mode 100644
index 6a4f8ba..0000000
--- a/.next/static/webpack/86af3bcc66ce70ea.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/[categoryId]/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/87786bf095dfd3fe.webpack.hot-update.json b/.next/static/webpack/87786bf095dfd3fe.webpack.hot-update.json
deleted file mode 100644
index 5e3f6af..0000000
--- a/.next/static/webpack/87786bf095dfd3fe.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/[categoryId]/[partId]/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/459ae513b6e23f16.webpack.hot-update.json b/.next/static/webpack/9d51351cbbe0e509.webpack.hot-update.json
similarity index 100%
rename from .next/static/webpack/459ae513b6e23f16.webpack.hot-update.json
rename to .next/static/webpack/9d51351cbbe0e509.webpack.hot-update.json
diff --git a/.next/static/webpack/a5a7cc0fc6697586.webpack.hot-update.json b/.next/static/webpack/a5a7cc0fc6697586.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/a5a7cc0fc6697586.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/ac57d1da09eaaba0.webpack.hot-update.json b/.next/static/webpack/ac57d1da09eaaba0.webpack.hot-update.json
deleted file mode 100644
index 31f1cde..0000000
--- a/.next/static/webpack/ac57d1da09eaaba0.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.44b2c6af73f059b8.hot-update.js b/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.44b2c6af73f059b8.hot-update.js
deleted file mode 100644
index e83566e..0000000
--- a/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.44b2c6af73f059b8.hot-update.js
+++ /dev/null
@@ -1,42 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/[categoryId]/[partId]/page",{
-
-/***/ "(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":
-/*!*******************************************************!*\
- !*** ./app/gunbuilder/[categoryId]/[partId]/page.tsx ***!
- \*******************************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ PartDetailPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./data */ \"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/data.ts\");\n/* harmony import */ var _components_PricingHistoryGraph__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/PricingHistoryGraph */ \"(app-pages-browser)/./components/PricingHistoryGraph.tsx\");\n/* harmony import */ var _components_RetailersList__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/RetailersList */ \"(app-pages-browser)/./components/RetailersList.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\nfunction PartDetailPage() {\n _s();\n const params = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams)();\n const categoryId = params.categoryId;\n const partId = params.partId;\n const category = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.find((c)=>c.id === categoryId), [\n categoryId\n ]);\n const part = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.find((p)=>p.id === partId && p.categoryId === categoryId), [\n partId,\n categoryId\n ]);\n // Get pricing history and retailer offers\n // TODO: Replace with API calls when endpoints are ready\n const pricingHistory = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>part ? (0,_data__WEBPACK_IMPORTED_MODULE_5__.getPricingHistory)(part.id, part.price) : [], [\n part\n ]);\n const retailerOffers = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>part ? (0,_data__WEBPACK_IMPORTED_MODULE_5__.getRetailerOffers)(part.id, part.price, part.affiliateUrl) : [], [\n part\n ]);\n if (!category || !part) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-2xl font-semibold text-zinc-50 mb-4\",\n children: \"Product Not Found\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 47,\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: \"/gunbuilder\",\n className: \"text-amber-300 hover:text-amber-200 underline\",\n children: \"Return to Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 50,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 45,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 44,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder/\".concat(categoryId),\n className: \"text-xs text-zinc-400 hover:text-zinc-300 mb-4 inline-block\",\n children: [\n \"← Back to \",\n category.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 67,\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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 74,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n part.brand,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 78,\n columnNumber: 28\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 77,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: [\n category.name,\n \" • Product Details\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 80,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 73,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 66,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 lg:grid-cols-[2fr,1fr]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-6 md:grid-cols-[1fr,1fr]\",\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)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400 mb-2\",\n children: \"Product Information\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 95,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Brand\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 100,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.brand\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 103,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 99,\n columnNumber: 21\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Model\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 108,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 111,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 107,\n columnNumber: 21\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Category\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 116,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: category.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 119,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 115,\n columnNumber: 21\n }, this),\n part.notes && /*#__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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Details\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 125,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-300 leading-relaxed\",\n children: part.notes\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 128,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 124,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 98,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 94,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full aspect-square max-w-md rounded-md border border-zinc-700 bg-zinc-900/50 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center p-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-16 h-16 mx-auto text-zinc-600 mb-2\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5,\n d: \"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 147,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 140,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide\",\n children: \"Product Image\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 154,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 139,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 138,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 137,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 92,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 91,\n columnNumber: 13\n }, this),\n pricingHistory.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_PricingHistoryGraph__WEBPACK_IMPORTED_MODULE_6__.PricingHistoryGraph, {\n data: pricingHistory,\n currentPrice: part.price\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 166,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 165,\n columnNumber: 15\n }, this),\n retailerOffers.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_RetailersList__WEBPACK_IMPORTED_MODULE_7__.RetailersList, {\n retailers: retailerOffers\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 176,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 175,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 89,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/80 p-4 md:p-6 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-400 mb-2\",\n children: \"Price\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 184,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-3xl font-semibold text-amber-300\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 185,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 183,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-auto space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder?select=\".concat(categoryId, \":\").concat(part.id),\n className: \"block w-full rounded-md border border-amber-400/60 bg-amber-400/10 px-4 py-3 text-sm font-medium text-amber-200 hover:bg-amber-400/15 text-center transition-colors\",\n children: \"Add to Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 191,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: part.affiliateUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"block w-full rounded-md border border-zinc-700 bg-zinc-900/50 px-4 py-3 text-sm font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 text-center transition-colors\",\n children: \"View Retailer\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 197,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 190,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 182,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 87,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 64,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 63,\n columnNumber: 5\n }, this);\n}\n_s(PartDetailPage, \"ZpwVUtr8mmMYWPNCCmGSoaSl2YI=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams\n ];\n});\n_c = PartDetailPage;\nvar _c;\n$RefreshReg$(_c, \"PartDetailPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9bcGFydElkXS9wYWdlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFFZ0M7QUFDSDtBQUNlO0FBQ2U7QUFFRztBQUNTO0FBQ1o7QUFFNUMsU0FBU1M7O0lBQ3RCLE1BQU1DLFNBQVNSLDBEQUFTQTtJQUN4QixNQUFNUyxhQUFhRCxPQUFPQyxVQUFVO0lBQ3BDLE1BQU1DLFNBQVNGLE9BQU9FLE1BQU07SUFFNUIsTUFBTUMsV0FBV2IsOENBQU9BLENBQ3RCLElBQU1HLDZEQUFVQSxDQUFDVyxJQUFJLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsRUFBRSxLQUFLTCxhQUN0QztRQUFDQTtLQUFXO0lBR2QsTUFBTU0sT0FBT2pCLDhDQUFPQSxDQUNsQixJQUFNSSx3REFBS0EsQ0FBQ1UsSUFBSSxDQUFDLENBQUNJLElBQU1BLEVBQUVGLEVBQUUsS0FBS0osVUFBVU0sRUFBRVAsVUFBVSxLQUFLQSxhQUM1RDtRQUFDQztRQUFRRDtLQUFXO0lBR3RCLDBDQUEwQztJQUMxQyx3REFBd0Q7SUFDeEQsTUFBTVEsaUJBQWlCbkIsOENBQU9BLENBQzVCLElBQU9pQixPQUFPWix3REFBaUJBLENBQUNZLEtBQUtELEVBQUUsRUFBRUMsS0FBS0csS0FBSyxJQUFJLEVBQUUsRUFDekQ7UUFBQ0g7S0FBSztJQUdSLE1BQU1JLGlCQUFpQnJCLDhDQUFPQSxDQUM1QixJQUNFaUIsT0FDSVgsd0RBQWlCQSxDQUFDVyxLQUFLRCxFQUFFLEVBQUVDLEtBQUtHLEtBQUssRUFBRUgsS0FBS0ssWUFBWSxJQUN4RCxFQUFFLEVBQ1I7UUFBQ0w7S0FBSztJQUdSLElBQUksQ0FBQ0osWUFBWSxDQUFDSSxNQUFNO1FBQ3RCLHFCQUNFLDhEQUFDTTtZQUFLQyxXQUFVO3NCQUNkLDRFQUFDQztnQkFBSUQsV0FBVTswQkFDYiw0RUFBQ0M7b0JBQUlELFdBQVU7O3NDQUNiLDhEQUFDRTs0QkFBR0YsV0FBVTtzQ0FBMkM7Ozs7OztzQ0FHekQsOERBQUN2QixpREFBSUE7NEJBQ0gwQixNQUFLOzRCQUNMSCxXQUFVO3NDQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBT1g7SUFFQSxxQkFDRSw4REFBQ0Q7UUFBS0MsV0FBVTtrQkFDZCw0RUFBQ0M7WUFBSUQsV0FBVTs7OEJBRWIsOERBQUNJO29CQUFPSixXQUFVOztzQ0FDaEIsOERBQUN2QixpREFBSUE7NEJBQ0gwQixNQUFNLGVBQTBCLE9BQVhoQjs0QkFDckJhLFdBQVU7O2dDQUNYO2dDQUNZWCxTQUFTZ0IsSUFBSTs7Ozs7OztzQ0FFMUIsOERBQUNKOzs4Q0FDQyw4REFBQ1A7b0NBQUVNLFdBQVU7OENBQWlFOzs7Ozs7OENBRzlFLDhEQUFDRTtvQ0FBR0YsV0FBVTs7d0NBQ1hQLEtBQUthLEtBQUs7d0NBQUM7c0RBQUMsOERBQUNDOzRDQUFLUCxXQUFVO3NEQUFrQlAsS0FBS1ksSUFBSTs7Ozs7Ozs7Ozs7OzhDQUUxRCw4REFBQ1g7b0NBQUVNLFdBQVU7O3dDQUNWWCxTQUFTZ0IsSUFBSTt3Q0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFNckIsOERBQUNKO29CQUFJRCxXQUFVOztzQ0FFYiw4REFBQ1E7NEJBQVFSLFdBQVU7OzhDQUVqQiw4REFBQ0M7b0NBQUlELFdBQVU7OENBQ2IsNEVBQUNDO3dDQUFJRCxXQUFVOzswREFFYiw4REFBQ0M7O2tFQUNDLDhEQUFDQTt3REFBSUQsV0FBVTtrRUFBdUU7Ozs7OztrRUFHdEYsOERBQUNDO3dEQUFJRCxXQUFVOzswRUFDYiw4REFBQ0M7O2tGQUNDLDhEQUFDQTt3RUFBSUQsV0FBVTtrRkFBcUQ7Ozs7OztrRkFHcEUsOERBQUNDO3dFQUFJRCxXQUFVO2tGQUNaUCxLQUFLYSxLQUFLOzs7Ozs7Ozs7Ozs7MEVBR2YsOERBQUNMOztrRkFDQyw4REFBQ0E7d0VBQUlELFdBQVU7a0ZBQXFEOzs7Ozs7a0ZBR3BFLDhEQUFDQzt3RUFBSUQsV0FBVTtrRkFDWlAsS0FBS1ksSUFBSTs7Ozs7Ozs7Ozs7OzBFQUdkLDhEQUFDSjs7a0ZBQ0MsOERBQUNBO3dFQUFJRCxXQUFVO2tGQUFxRDs7Ozs7O2tGQUdwRSw4REFBQ0M7d0VBQUlELFdBQVU7a0ZBQ1pYLFNBQVNnQixJQUFJOzs7Ozs7Ozs7Ozs7NERBR2pCWixLQUFLZ0IsS0FBSyxrQkFDVCw4REFBQ1I7O2tGQUNDLDhEQUFDQTt3RUFBSUQsV0FBVTtrRkFBcUQ7Ozs7OztrRkFHcEUsOERBQUNDO3dFQUFJRCxXQUFVO2tGQUNaUCxLQUFLZ0IsS0FBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBEQVFyQiw4REFBQ1I7Z0RBQUlELFdBQVU7MERBQ2IsNEVBQUNDO29EQUFJRCxXQUFVOzhEQUNiLDRFQUFDQzt3REFBSUQsV0FBVTs7MEVBQ2IsOERBQUNVO2dFQUNDVixXQUFVO2dFQUNWVyxNQUFLO2dFQUNMQyxRQUFPO2dFQUNQQyxTQUFRO2dFQUNSQyxPQUFNOzBFQUVOLDRFQUFDQztvRUFDQ0MsZUFBYztvRUFDZEMsZ0JBQWU7b0VBQ2ZDLGFBQWE7b0VBQ2JDLEdBQUU7Ozs7Ozs7Ozs7OzBFQUdOLDhEQUFDekI7Z0VBQUVNLFdBQVU7MEVBQWdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0NBVXRFTCxlQUFleUIsTUFBTSxHQUFHLG1CQUN2Qiw4REFBQ25CO29DQUFJRCxXQUFVOzhDQUNiLDRFQUFDakIsZ0ZBQW1CQTt3Q0FDbEJzQyxNQUFNMUI7d0NBQ04yQixjQUFjN0IsS0FBS0csS0FBSzs7Ozs7Ozs7Ozs7Z0NBTTdCQyxlQUFldUIsTUFBTSxHQUFHLG1CQUN2Qiw4REFBQ25CO29DQUFJRCxXQUFVOzhDQUNiLDRFQUFDaEIsb0VBQWFBO3dDQUFDdUMsV0FBVzFCOzs7Ozs7Ozs7Ozs7Ozs7OztzQ0FNaEMsOERBQUMyQjs0QkFBTXhCLFdBQVU7OzhDQUNmLDhEQUFDQztvQ0FBSUQsV0FBVTs7c0RBQ2IsOERBQUNDOzRDQUFJRCxXQUFVO3NEQUE2Qjs7Ozs7O3NEQUM1Qyw4REFBQ0M7NENBQUlELFdBQVU7O2dEQUF3QztnREFDbkRQLEtBQUtHLEtBQUssQ0FBQzZCLE9BQU8sQ0FBQzs7Ozs7Ozs7Ozs7Ozs4Q0FJekIsOERBQUN4QjtvQ0FBSUQsV0FBVTs7c0RBQ2IsOERBQUN2QixpREFBSUE7NENBQ0gwQixNQUFNLHNCQUFvQ1YsT0FBZE4sWUFBVyxLQUFXLE9BQVJNLEtBQUtELEVBQUU7NENBQ2pEUSxXQUFVO3NEQUNYOzs7Ozs7c0RBR0QsOERBQUMwQjs0Q0FDQ3ZCLE1BQU1WLEtBQUtLLFlBQVk7NENBQ3ZCNkIsUUFBTzs0Q0FDUEMsS0FBSTs0Q0FDSjVCLFdBQVU7c0RBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU2Y7R0F2TXdCZjs7UUFDUFAsc0RBQVNBOzs7S0FERk8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2d1bmJ1aWxkZXIvW2NhdGVnb3J5SWRdL1twYXJ0SWRdL3BhZ2UudHN4PzQyYzEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcbmltcG9ydCB7IHVzZVBhcmFtcyB9IGZyb20gXCJuZXh0L25hdmlnYXRpb25cIjtcbmltcG9ydCB7IENBVEVHT1JJRVMsIFBBUlRTIH0gZnJvbSBcIkAvZGF0YS9ndW5idWlsZGVyUGFydHNcIjtcbmltcG9ydCB0eXBlIHsgQ2F0ZWdvcnlJZCB9IGZyb20gXCJAL3R5cGVzL2d1bmJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFByaWNpbmdIaXN0b3J5LCBnZXRSZXRhaWxlck9mZmVycyB9IGZyb20gXCIuL2RhdGFcIjtcbmltcG9ydCB7IFByaWNpbmdIaXN0b3J5R3JhcGggfSBmcm9tIFwiQC9jb21wb25lbnRzL1ByaWNpbmdIaXN0b3J5R3JhcGhcIjtcbmltcG9ydCB7IFJldGFpbGVyc0xpc3QgfSBmcm9tIFwiQC9jb21wb25lbnRzL1JldGFpbGVyc0xpc3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFydERldGFpbFBhZ2UoKSB7XG4gIGNvbnN0IHBhcmFtcyA9IHVzZVBhcmFtcygpO1xuICBjb25zdCBjYXRlZ29yeUlkID0gcGFyYW1zLmNhdGVnb3J5SWQgYXMgQ2F0ZWdvcnlJZDtcbiAgY29uc3QgcGFydElkID0gcGFyYW1zLnBhcnRJZCBhcyBzdHJpbmc7XG5cbiAgY29uc3QgY2F0ZWdvcnkgPSB1c2VNZW1vKFxuICAgICgpID0+IENBVEVHT1JJRVMuZmluZCgoYykgPT4gYy5pZCA9PT0gY2F0ZWdvcnlJZCksXG4gICAgW2NhdGVnb3J5SWRdLFxuICApO1xuXG4gIGNvbnN0IHBhcnQgPSB1c2VNZW1vKFxuICAgICgpID0+IFBBUlRTLmZpbmQoKHApID0+IHAuaWQgPT09IHBhcnRJZCAmJiBwLmNhdGVnb3J5SWQgPT09IGNhdGVnb3J5SWQpLFxuICAgIFtwYXJ0SWQsIGNhdGVnb3J5SWRdLFxuICApO1xuXG4gIC8vIEdldCBwcmljaW5nIGhpc3RvcnkgYW5kIHJldGFpbGVyIG9mZmVyc1xuICAvLyBUT0RPOiBSZXBsYWNlIHdpdGggQVBJIGNhbGxzIHdoZW4gZW5kcG9pbnRzIGFyZSByZWFkeVxuICBjb25zdCBwcmljaW5nSGlzdG9yeSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHBhcnQgPyBnZXRQcmljaW5nSGlzdG9yeShwYXJ0LmlkLCBwYXJ0LnByaWNlKSA6IFtdKSxcbiAgICBbcGFydF0sXG4gICk7XG5cbiAgY29uc3QgcmV0YWlsZXJPZmZlcnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBwYXJ0XG4gICAgICAgID8gZ2V0UmV0YWlsZXJPZmZlcnMocGFydC5pZCwgcGFydC5wcmljZSwgcGFydC5hZmZpbGlhdGVVcmwpXG4gICAgICAgIDogW10sXG4gICAgW3BhcnRdLFxuICApO1xuXG4gIGlmICghY2F0ZWdvcnkgfHwgIXBhcnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPG1haW4gY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLWJsYWNrIHRleHQtemluYy01MFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14LWF1dG8gbWF4LXctNnhsIHB4LTQgcHktNiBsZzpweS0xMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LXNlbWlib2xkIHRleHQtemluYy01MCBtYi00XCI+XG4gICAgICAgICAgICAgIFByb2R1Y3QgTm90IEZvdW5kXG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgaHJlZj1cIi9ndW5idWlsZGVyXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDAgaG92ZXI6dGV4dC1hbWJlci0yMDAgdW5kZXJsaW5lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgUmV0dXJuIHRvIEd1bmJ1aWxkZXJcbiAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21haW4+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPG1haW4gY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLWJsYWNrIHRleHQtemluYy01MFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJteC1hdXRvIG1heC13LTZ4bCBweC00IHB5LTYgbGc6cHktMTBcIj5cbiAgICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJtYi02XCI+XG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIGhyZWY9e2AvZ3VuYnVpbGRlci8ke2NhdGVnb3J5SWR9YH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTQwMCBob3Zlcjp0ZXh0LXppbmMtMzAwIG1iLTQgaW5saW5lLWJsb2NrXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICDihpAgQmFjayB0byB7Y2F0ZWdvcnkubmFtZX1cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4yZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICAgIFNoYWRvdyBTdGFuZGFyZFxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm10LTEgdGV4dC0yeGwgbWQ6dGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0cmFja2luZy10aWdodFwiPlxuICAgICAgICAgICAgICB7cGFydC5icmFuZH0gPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDBcIj57cGFydC5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0yIHRleHQtc20gdGV4dC16aW5jLTQwMCBtYXgtdy14bFwiPlxuICAgICAgICAgICAgICB7Y2F0ZWdvcnkubmFtZX0g4oCiIFByb2R1Y3QgRGV0YWlsc1xuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICB7LyogUHJvZHVjdCBEZXRhaWxzICovfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ2FwLTQgbGc6Z3JpZC1jb2xzLVsyZnIsMWZyXVwiPlxuICAgICAgICAgIHsvKiBNYWluIENvbnRlbnQgKi99XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XG4gICAgICAgICAgICB7LyogUHJvZHVjdCBJbmZvcm1hdGlvbiAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzYwIHAtNCBtZDpwLTZcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC02IG1kOmdyaWQtY29scy1bMWZyLDFmcl1cIj5cbiAgICAgICAgICAgICAgICB7LyogUHJvZHVjdCBJbmZvICovfVxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMCBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIFByb2R1Y3QgSW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBCcmFuZFxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQuYnJhbmR9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIE1vZGVsXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cGFydC5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBDYXRlZ29yeVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NhdGVnb3J5Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB7cGFydC5ub3RlcyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC16aW5jLTMwMCBsZWFkaW5nLXJlbGF4ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubm90ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgey8qIFByb2R1Y3QgSW1hZ2UgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBhc3BlY3Qtc3F1YXJlIG1heC13LW1kIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTcwMCBiZy16aW5jLTkwMC81MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHAtOFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctMTYgaC0xNiBteC1hdXRvIHRleHQtemluYy02MDAgbWItMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezEuNX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00IDE2bDQuNTg2LTQuNTg2YTIgMiAwIDAxMi44MjggMEwxNiAxNm0tMi0ybDEuNTg2LTEuNTg2YTIgMiAwIDAxMi44MjggMEwyMCAxNG0tNi02aC4wMU02IDIwaDEyYTIgMiAwIDAwMi0yVjZhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyelwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvZHVjdCBJbWFnZVxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIFByaWNpbmcgSGlzdG9yeSAqL31cbiAgICAgICAgICAgIHtwcmljaW5nSGlzdG9yeS5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy04MDAgYmctemluYy05NTAvNjAgcC00IG1kOnAtNlwiPlxuICAgICAgICAgICAgICAgIDxQcmljaW5nSGlzdG9yeUdyYXBoXG4gICAgICAgICAgICAgICAgICBkYXRhPXtwcmljaW5nSGlzdG9yeX1cbiAgICAgICAgICAgICAgICAgIGN1cnJlbnRQcmljZT17cGFydC5wcmljZX1cbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHsvKiBSZXRhaWxlcnMgTGlzdCAqL31cbiAgICAgICAgICAgIHtyZXRhaWxlck9mZmVycy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy04MDAgYmctemluYy05NTAvNjAgcC00IG1kOnAtNlwiPlxuICAgICAgICAgICAgICAgIDxSZXRhaWxlcnNMaXN0IHJldGFpbGVycz17cmV0YWlsZXJPZmZlcnN9IC8+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgICB7LyogU2lkZWJhciAqL31cbiAgICAgICAgICA8YXNpZGUgY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzgwIHAtNCBtZDpwLTYgZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNDAwIG1iLTJcIj5QcmljZTwvZGl2PlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtM3hsIGZvbnQtc2VtaWJvbGQgdGV4dC1hbWJlci0zMDBcIj5cbiAgICAgICAgICAgICAgICAke3BhcnQucHJpY2UudG9GaXhlZCgyKX1cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC1hdXRvIHNwYWNlLXktM1wiPlxuICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgIGhyZWY9e2AvZ3VuYnVpbGRlcj9zZWxlY3Q9JHtjYXRlZ29yeUlkfToke3BhcnQuaWR9YH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJibG9jayB3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWFtYmVyLTQwMC82MCBiZy1hbWJlci00MDAvMTAgcHgtNCBweS0zIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1hbWJlci0yMDAgaG92ZXI6YmctYW1iZXItNDAwLzE1IHRleHQtY2VudGVyIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEFkZCB0byBCdWlsZFxuICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICAgIDxhXG4gICAgICAgICAgICAgICAgaHJlZj17cGFydC5hZmZpbGlhdGVVcmx9XG4gICAgICAgICAgICAgICAgdGFyZ2V0PVwiX2JsYW5rXCJcbiAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJibG9jayB3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXppbmMtNzAwIGJnLXppbmMtOTAwLzUwIHB4LTQgcHktMyB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtemluYy0zMDAgaG92ZXI6YmctemluYy04MDAgaG92ZXI6Ym9yZGVyLXppbmMtNjAwIHRleHQtY2VudGVyIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIFZpZXcgUmV0YWlsZXJcbiAgICAgICAgICAgICAgPC9hPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9hc2lkZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L21haW4+XG4gICk7XG59XG5cbiJdLCJuYW1lcyI6WyJ1c2VNZW1vIiwiTGluayIsInVzZVBhcmFtcyIsIkNBVEVHT1JJRVMiLCJQQVJUUyIsImdldFByaWNpbmdIaXN0b3J5IiwiZ2V0UmV0YWlsZXJPZmZlcnMiLCJQcmljaW5nSGlzdG9yeUdyYXBoIiwiUmV0YWlsZXJzTGlzdCIsIlBhcnREZXRhaWxQYWdlIiwicGFyYW1zIiwiY2F0ZWdvcnlJZCIsInBhcnRJZCIsImNhdGVnb3J5IiwiZmluZCIsImMiLCJpZCIsInBhcnQiLCJwIiwicHJpY2luZ0hpc3RvcnkiLCJwcmljZSIsInJldGFpbGVyT2ZmZXJzIiwiYWZmaWxpYXRlVXJsIiwibWFpbiIsImNsYXNzTmFtZSIsImRpdiIsImgxIiwiaHJlZiIsImhlYWRlciIsIm5hbWUiLCJicmFuZCIsInNwYW4iLCJzZWN0aW9uIiwibm90ZXMiLCJzdmciLCJmaWxsIiwic3Ryb2tlIiwidmlld0JveCIsInhtbG5zIiwicGF0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsInN0cm9rZVdpZHRoIiwiZCIsImxlbmd0aCIsImRhdGEiLCJjdXJyZW50UHJpY2UiLCJyZXRhaWxlcnMiLCJhc2lkZSIsInRvRml4ZWQiLCJhIiwidGFyZ2V0IiwicmVsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./components/PricingHistoryGraph.tsx":
-/*!********************************************!*\
- !*** ./components/PricingHistoryGraph.tsx ***!
- \********************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PricingHistoryGraph: function() { return /* binding */ PricingHistoryGraph; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ PricingHistoryGraph auto */ \nfunction PricingHistoryGraph(param) {\n let { data, currentPrice } = param;\n if (data.length === 0) return null;\n // Calculate chart dimensions\n const width = 100;\n const height = 60;\n const padding = 4;\n // Find min and max prices for scaling\n const prices = data.map((d)=>d.price);\n const minPrice = Math.min(...prices);\n const maxPrice = Math.max(...prices);\n const priceRange = maxPrice - minPrice || 1; // Avoid division by zero\n // Generate path points\n const points = data.map((point, index)=>{\n const x = padding + index / (data.length - 1) * (width - padding * 2);\n const normalizedPrice = (point.price - minPrice) / priceRange;\n const y = padding + (height - padding * 2) * (1 - normalizedPrice);\n return {\n x,\n y,\n price: point.price\n };\n });\n // Create SVG path\n const pathData = points.map((point, index)=>\"\".concat(index === 0 ? \"M\" : \"L\", \" \").concat(point.x, \" \").concat(point.y)).join(\" \");\n // Create area path (for gradient fill)\n const areaPath = \"\".concat(pathData, \" L \").concat(width - padding, \" \").concat(height - padding, \" L \").concat(padding, \" \").concat(height - padding, \" Z\");\n // Format date for display\n const formatDate = (dateStr)=>{\n const date = new Date(dateStr);\n return date.toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\"\n });\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4 flex items-center 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)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400\",\n children: \"Price History (30 Days)\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 53,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 text-xs text-zinc-500\",\n children: [\n \"Current: \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300 font-semibold\",\n children: [\n \"$\",\n currentPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 57,\n columnNumber: 22\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 56,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 52,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-500\",\n children: [\n formatDate(data[0].date),\n \" - \",\n formatDate(data[data.length - 1].date)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 60,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 51,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full h-32 rounded-md border border-zinc-800 bg-zinc-900/30 p-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n viewBox: \"0 0 \".concat(width, \" \").concat(height),\n className: \"w-full h-full\",\n preserveAspectRatio: \"none\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"linearGradient\", {\n id: \"priceGradient\",\n x1: \"0%\",\n y1: \"0%\",\n x2: \"0%\",\n y2: \"100%\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"0%\",\n stopColor: \"#fbbf24\",\n stopOpacity: \"0.3\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 73,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"100%\",\n stopColor: \"#fbbf24\",\n stopOpacity: \"0.05\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 74,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 72,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 71,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: areaPath,\n fill: \"url(#priceGradient)\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 78,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: pathData,\n fill: \"none\",\n stroke: \"#fbbf24\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 83,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: points[points.length - 1].x,\n cy: points[points.length - 1].y,\n r: \"2\",\n fill: \"#fbbf24\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 92,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 66,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 65,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-2 flex items-center justify-between text-xs text-zinc-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \"Low: $\",\n minPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 102,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \"High: $\",\n maxPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 103,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 101,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 50,\n columnNumber: 5\n }, this);\n}\n_c = PricingHistoryGraph;\nvar _c;\n$RefreshReg$(_c, \"PricingHistoryGraph\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvUHJpY2luZ0hpc3RvcnlHcmFwaC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBU08sU0FBU0Esb0JBQW9CLEtBR1Q7UUFIUyxFQUNsQ0MsSUFBSSxFQUNKQyxZQUFZLEVBQ2EsR0FIUztJQUlsQyxJQUFJRCxLQUFLRSxNQUFNLEtBQUssR0FBRyxPQUFPO0lBRTlCLDZCQUE2QjtJQUM3QixNQUFNQyxRQUFRO0lBQ2QsTUFBTUMsU0FBUztJQUNmLE1BQU1DLFVBQVU7SUFFaEIsc0NBQXNDO0lBQ3RDLE1BQU1DLFNBQVNOLEtBQUtPLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxLQUFLO0lBQ3RDLE1BQU1DLFdBQVdDLEtBQUtDLEdBQUcsSUFBSU47SUFDN0IsTUFBTU8sV0FBV0YsS0FBS0csR0FBRyxJQUFJUjtJQUM3QixNQUFNUyxhQUFhRixXQUFXSCxZQUFZLEdBQUcseUJBQXlCO0lBRXRFLHVCQUF1QjtJQUN2QixNQUFNTSxTQUFTaEIsS0FBS08sR0FBRyxDQUFDLENBQUNVLE9BQU9DO1FBQzlCLE1BQU1DLElBQUlkLFVBQVcsUUFBVUwsQ0FBQUEsS0FBS0UsTUFBTSxHQUFHLEtBQU9DLENBQUFBLFFBQVFFLFVBQVU7UUFDdEUsTUFBTWUsa0JBQWtCLENBQUNILE1BQU1SLEtBQUssR0FBR0MsUUFBTyxJQUFLSztRQUNuRCxNQUFNTSxJQUFJaEIsVUFBVSxDQUFDRCxTQUFTQyxVQUFVLEtBQU0sS0FBSWUsZUFBYztRQUNoRSxPQUFPO1lBQUVEO1lBQUdFO1lBQUdaLE9BQU9RLE1BQU1SLEtBQUs7UUFBQztJQUNwQztJQUVBLGtCQUFrQjtJQUNsQixNQUFNYSxXQUFXTixPQUNkVCxHQUFHLENBQUMsQ0FBQ1UsT0FBT0MsUUFBVSxHQUE4QkQsT0FBM0JDLFVBQVUsSUFBSSxNQUFNLEtBQUksS0FBY0QsT0FBWEEsTUFBTUUsQ0FBQyxFQUFDLEtBQVcsT0FBUkYsTUFBTUksQ0FBQyxHQUN0RUUsSUFBSSxDQUFDO0lBRVIsdUNBQXVDO0lBQ3ZDLE1BQU1DLFdBQVcsR0FBaUJyQixPQUFkbUIsVUFBUyxPQUF3QmxCLE9BQW5CRCxRQUFRRSxTQUFRLEtBQXlCQSxPQUF0QkQsU0FBU0MsU0FBUSxPQUFnQkQsT0FBWEMsU0FBUSxLQUFvQixPQUFqQkQsU0FBU0MsU0FBUTtJQUV2RywwQkFBMEI7SUFDMUIsTUFBTW9CLGFBQWEsQ0FBQ0M7UUFDbEIsTUFBTUMsT0FBTyxJQUFJQyxLQUFLRjtRQUN0QixPQUFPQyxLQUFLRSxrQkFBa0IsQ0FBQyxTQUFTO1lBQUVDLE9BQU87WUFBU0MsS0FBSztRQUFVO0lBQzNFO0lBRUEscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNEOzswQ0FDQyw4REFBQ0E7Z0NBQUlDLFdBQVU7MENBQWtFOzs7Ozs7MENBR2pGLDhEQUFDRDtnQ0FBSUMsV0FBVTs7b0NBQTZCO2tEQUNqQyw4REFBQ0M7d0NBQUtELFdBQVU7OzRDQUErQjs0Q0FBRWhDLGFBQWFrQyxPQUFPLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBR25GLDhEQUFDSDt3QkFBSUMsV0FBVTs7NEJBQ1pSLFdBQVd6QixJQUFJLENBQUMsRUFBRSxDQUFDMkIsSUFBSTs0QkFBRTs0QkFBSUYsV0FBV3pCLElBQUksQ0FBQ0EsS0FBS0UsTUFBTSxHQUFHLEVBQUUsQ0FBQ3lCLElBQUk7Ozs7Ozs7Ozs7Ozs7MEJBSXZFLDhEQUFDSztnQkFBSUMsV0FBVTswQkFDYiw0RUFBQ0c7b0JBQ0NDLFNBQVMsT0FBZ0JqQyxPQUFURCxPQUFNLEtBQVUsT0FBUEM7b0JBQ3pCNkIsV0FBVTtvQkFDVksscUJBQW9COztzQ0FFcEIsOERBQUNDO3NDQUNDLDRFQUFDQztnQ0FBZUMsSUFBRztnQ0FBZ0JDLElBQUc7Z0NBQUtDLElBQUc7Z0NBQUtDLElBQUc7Z0NBQUtDLElBQUc7O2tEQUM1RCw4REFBQ0M7d0NBQUtDLFFBQU87d0NBQUtDLFdBQVU7d0NBQVVDLGFBQVk7Ozs7OztrREFDbEQsOERBQUNIO3dDQUFLQyxRQUFPO3dDQUFPQyxXQUFVO3dDQUFVQyxhQUFZOzs7Ozs7Ozs7Ozs7Ozs7OztzQ0FJeEQsOERBQUNDOzRCQUNDMUMsR0FBR2dCOzRCQUNIMkIsTUFBSzs7Ozs7O3NDQUdQLDhEQUFDRDs0QkFDQzFDLEdBQUdjOzRCQUNINkIsTUFBSzs0QkFDTEMsUUFBTzs0QkFDUEMsYUFBWTs0QkFDWkMsZUFBYzs0QkFDZEMsZ0JBQWU7Ozs7OztzQ0FHakIsOERBQUNDOzRCQUNDQyxJQUFJekMsTUFBTSxDQUFDQSxPQUFPZCxNQUFNLEdBQUcsRUFBRSxDQUFDaUIsQ0FBQzs0QkFDL0J1QyxJQUFJMUMsTUFBTSxDQUFDQSxPQUFPZCxNQUFNLEdBQUcsRUFBRSxDQUFDbUIsQ0FBQzs0QkFDL0JzQyxHQUFFOzRCQUNGUixNQUFLOzs7Ozs7Ozs7Ozs7Ozs7OzswQkFLWCw4REFBQ25CO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0M7OzRCQUFLOzRCQUFPeEIsU0FBU3lCLE9BQU8sQ0FBQzs7Ozs7OztrQ0FDOUIsOERBQUNEOzs0QkFBSzs0QkFBUXJCLFNBQVNzQixPQUFPLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJdkM7S0FqR2dCcEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy9QcmljaW5nSGlzdG9yeUdyYXBoLnRzeD82YzVhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgdHlwZSB7IFByaWNlSGlzdG9yeVBvaW50IH0gZnJvbSBcIkAvYXBwL2d1bmJ1aWxkZXIvW2NhdGVnb3J5SWRdL1twYXJ0SWRdL2RhdGFcIjtcblxuaW50ZXJmYWNlIFByaWNpbmdIaXN0b3J5R3JhcGhQcm9wcyB7XG4gIGRhdGE6IFByaWNlSGlzdG9yeVBvaW50W107XG4gIGN1cnJlbnRQcmljZTogbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUHJpY2luZ0hpc3RvcnlHcmFwaCh7XG4gIGRhdGEsXG4gIGN1cnJlbnRQcmljZSxcbn06IFByaWNpbmdIaXN0b3J5R3JhcGhQcm9wcykge1xuICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuXG4gIC8vIENhbGN1bGF0ZSBjaGFydCBkaW1lbnNpb25zXG4gIGNvbnN0IHdpZHRoID0gMTAwO1xuICBjb25zdCBoZWlnaHQgPSA2MDtcbiAgY29uc3QgcGFkZGluZyA9IDQ7XG5cbiAgLy8gRmluZCBtaW4gYW5kIG1heCBwcmljZXMgZm9yIHNjYWxpbmdcbiAgY29uc3QgcHJpY2VzID0gZGF0YS5tYXAoKGQpID0+IGQucHJpY2UpO1xuICBjb25zdCBtaW5QcmljZSA9IE1hdGgubWluKC4uLnByaWNlcyk7XG4gIGNvbnN0IG1heFByaWNlID0gTWF0aC5tYXgoLi4ucHJpY2VzKTtcbiAgY29uc3QgcHJpY2VSYW5nZSA9IG1heFByaWNlIC0gbWluUHJpY2UgfHwgMTsgLy8gQXZvaWQgZGl2aXNpb24gYnkgemVyb1xuXG4gIC8vIEdlbmVyYXRlIHBhdGggcG9pbnRzXG4gIGNvbnN0IHBvaW50cyA9IGRhdGEubWFwKChwb2ludCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCB4ID0gcGFkZGluZyArICgoaW5kZXggLyAoZGF0YS5sZW5ndGggLSAxKSkgKiAod2lkdGggLSBwYWRkaW5nICogMikpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRQcmljZSA9IChwb2ludC5wcmljZSAtIG1pblByaWNlKSAvIHByaWNlUmFuZ2U7XG4gICAgY29uc3QgeSA9IHBhZGRpbmcgKyAoaGVpZ2h0IC0gcGFkZGluZyAqIDIpICogKDEgLSBub3JtYWxpemVkUHJpY2UpO1xuICAgIHJldHVybiB7IHgsIHksIHByaWNlOiBwb2ludC5wcmljZSB9O1xuICB9KTtcblxuICAvLyBDcmVhdGUgU1ZHIHBhdGhcbiAgY29uc3QgcGF0aERhdGEgPSBwb2ludHNcbiAgICAubWFwKChwb2ludCwgaW5kZXgpID0+IGAke2luZGV4ID09PSAwID8gXCJNXCIgOiBcIkxcIn0gJHtwb2ludC54fSAke3BvaW50Lnl9YClcbiAgICAuam9pbihcIiBcIik7XG5cbiAgLy8gQ3JlYXRlIGFyZWEgcGF0aCAoZm9yIGdyYWRpZW50IGZpbGwpXG4gIGNvbnN0IGFyZWFQYXRoID0gYCR7cGF0aERhdGF9IEwgJHt3aWR0aCAtIHBhZGRpbmd9ICR7aGVpZ2h0IC0gcGFkZGluZ30gTCAke3BhZGRpbmd9ICR7aGVpZ2h0IC0gcGFkZGluZ30gWmA7XG5cbiAgLy8gRm9ybWF0IGRhdGUgZm9yIGRpc3BsYXlcbiAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZVN0cik7XG4gICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKFwiZW4tVVNcIiwgeyBtb250aDogXCJzaG9ydFwiLCBkYXk6IFwibnVtZXJpY1wiIH0pO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGxcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMFwiPlxuICAgICAgICAgICAgUHJpY2UgSGlzdG9yeSAoMzAgRGF5cylcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTEgdGV4dC14cyB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICBDdXJyZW50OiA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWFtYmVyLTMwMCBmb250LXNlbWlib2xkXCI+JHtjdXJyZW50UHJpY2UudG9GaXhlZCgyKX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgIHtmb3JtYXREYXRlKGRhdGFbMF0uZGF0ZSl9IC0ge2Zvcm1hdERhdGUoZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGUpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHctZnVsbCBoLTMyIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTgwMCBiZy16aW5jLTkwMC8zMCBwLTNcIj5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgIHZpZXdCb3g9e2AwIDAgJHt3aWR0aH0gJHtoZWlnaHR9YH1cbiAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgaC1mdWxsXCJcbiAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwibm9uZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cInByaWNlR3JhZGllbnRcIiB4MT1cIjAlXCIgeTE9XCIwJVwiIHgyPVwiMCVcIiB5Mj1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMCVcIiBzdG9wQ29sb3I9XCIjZmJiZjI0XCIgc3RvcE9wYWNpdHk9XCIwLjNcIiAvPlxuICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxMDAlXCIgc3RvcENvbG9yPVwiI2ZiYmYyNFwiIHN0b3BPcGFjaXR5PVwiMC4wNVwiIC8+XG4gICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxuICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICB7LyogQXJlYSBmaWxsICovfVxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPXthcmVhUGF0aH1cbiAgICAgICAgICAgIGZpbGw9XCJ1cmwoI3ByaWNlR3JhZGllbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIHsvKiBMaW5lICovfVxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPXtwYXRoRGF0YX1cbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHN0cm9rZT1cIiNmYmJmMjRcIlxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgey8qIEN1cnJlbnQgcHJpY2UgaW5kaWNhdG9yICovfVxuICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgIGN4PXtwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdLnh9XG4gICAgICAgICAgICBjeT17cG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXS55fVxuICAgICAgICAgICAgcj1cIjJcIlxuICAgICAgICAgICAgZmlsbD1cIiNmYmJmMjRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gdGV4dC14cyB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgIDxzcGFuPkxvdzogJHttaW5QcmljZS50b0ZpeGVkKDIpfTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+SGlnaDogJHttYXhQcmljZS50b0ZpeGVkKDIpfTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG4iXSwibmFtZXMiOlsiUHJpY2luZ0hpc3RvcnlHcmFwaCIsImRhdGEiLCJjdXJyZW50UHJpY2UiLCJsZW5ndGgiLCJ3aWR0aCIsImhlaWdodCIsInBhZGRpbmciLCJwcmljZXMiLCJtYXAiLCJkIiwicHJpY2UiLCJtaW5QcmljZSIsIk1hdGgiLCJtaW4iLCJtYXhQcmljZSIsIm1heCIsInByaWNlUmFuZ2UiLCJwb2ludHMiLCJwb2ludCIsImluZGV4IiwieCIsIm5vcm1hbGl6ZWRQcmljZSIsInkiLCJwYXRoRGF0YSIsImpvaW4iLCJhcmVhUGF0aCIsImZvcm1hdERhdGUiLCJkYXRlU3RyIiwiZGF0ZSIsIkRhdGUiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJtb250aCIsImRheSIsImRpdiIsImNsYXNzTmFtZSIsInNwYW4iLCJ0b0ZpeGVkIiwic3ZnIiwidmlld0JveCIsInByZXNlcnZlQXNwZWN0UmF0aW8iLCJkZWZzIiwibGluZWFyR3JhZGllbnQiLCJpZCIsIngxIiwieTEiLCJ4MiIsInkyIiwic3RvcCIsIm9mZnNldCIsInN0b3BDb2xvciIsInN0b3BPcGFjaXR5IiwicGF0aCIsImZpbGwiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsImNpcmNsZSIsImN4IiwiY3kiLCJyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/PricingHistoryGraph.tsx\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./components/RetailersList.tsx":
-/*!**************************************!*\
- !*** ./components/RetailersList.tsx ***!
- \**************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ RetailersList: function() { return /* binding */ RetailersList; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ RetailersList auto */ \nfunction RetailersList(param) {\n let { retailers } = param;\n if (retailers.length === 0) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-500 text-center py-4\",\n children: \"No retailer offers available.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 12,\n columnNumber: 7\n }, this);\n }\n const lowestPrice = Math.min(...retailers.map((r)=>r.price));\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400\",\n children: \"Available Retailers\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 23,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 text-xs text-zinc-500\",\n children: [\n retailers.length,\n \" retailer\",\n retailers.length !== 1 ? \"s\" : \"\",\n \" found\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 26,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 22,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: retailers.map((retailer)=>{\n const isLowestPrice = retailer.price === lowestPrice;\n const isOnSale = retailer.originalPrice !== undefined;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border rounded-md p-3 transition-colors \".concat(retailer.inStock ? \"border-zinc-700 bg-zinc-900/30 hover:border-zinc-600\" : \"border-zinc-800 bg-zinc-900/20 opacity-60\"),\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex 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 min-w-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2 mb-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-sm font-semibold text-zinc-50\",\n children: retailer.retailerName\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 48,\n columnNumber: 21\n }, this),\n isLowestPrice && retailer.inStock && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[0.65rem] font-semibold uppercase tracking-wide px-1.5 py-0.5 rounded bg-amber-400/20 text-amber-300 border border-amber-400/30\",\n children: \"Best Price\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 52,\n columnNumber: 23\n }, this),\n !retailer.inStock && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-[0.65rem] font-semibold uppercase tracking-wide px-1.5 py-0.5 rounded bg-red-500/20 text-red-400 border border-red-500/30\",\n children: \"Out of Stock\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 57,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 47,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-lg font-semibold \".concat(isLowestPrice && retailer.inStock ? \"text-amber-300\" : \"text-zinc-300\"),\n children: [\n \"$\",\n retailer.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 63,\n columnNumber: 21\n }, this),\n isOnSale && retailer.originalPrice && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-xs text-zinc-500 line-through\",\n children: [\n \"$\",\n retailer.originalPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 73,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 62,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 46,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-center gap-2\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: retailer.affiliateUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"rounded-md border px-3 py-1.5 text-xs font-medium transition-colors whitespace-nowrap \".concat(retailer.inStock ? \"border-amber-400/60 bg-amber-400/10 text-amber-200 hover:bg-amber-400/15\" : \"border-zinc-700 bg-zinc-800/50 text-zinc-500 cursor-not-allowed pointer-events-none\"),\n children: retailer.inStock ? \"Buy Now\" : \"Unavailable\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 80,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 79,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 45,\n columnNumber: 15\n }, this)\n }, retailer.id, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 37,\n columnNumber: 13\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 31,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx\",\n lineNumber: 21,\n columnNumber: 5\n }, this);\n}\n_c = RetailersList;\nvar _c;\n$RefreshReg$(_c, \"RetailersList\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvUmV0YWlsZXJzTGlzdC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBUU8sU0FBU0EsY0FBYyxLQUFpQztRQUFqQyxFQUFFQyxTQUFTLEVBQXNCLEdBQWpDO0lBQzVCLElBQUlBLFVBQVVDLE1BQU0sS0FBSyxHQUFHO1FBQzFCLHFCQUNFLDhEQUFDQztZQUFJQyxXQUFVO3NCQUF5Qzs7Ozs7O0lBSTVEO0lBRUEsTUFBTUMsY0FBY0MsS0FBS0MsR0FBRyxJQUFJTixVQUFVTyxHQUFHLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsS0FBSztJQUU1RCxxQkFDRSw4REFBQ1A7UUFBSUMsV0FBVTs7MEJBQ2IsOERBQUNEO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0Q7d0JBQUlDLFdBQVU7a0NBQWtFOzs7Ozs7a0NBR2pGLDhEQUFDRDt3QkFBSUMsV0FBVTs7NEJBQ1pILFVBQVVDLE1BQU07NEJBQUM7NEJBQVVELFVBQVVDLE1BQU0sS0FBSyxJQUFJLE1BQU07NEJBQUc7Ozs7Ozs7Ozs7Ozs7MEJBSWxFLDhEQUFDQztnQkFBSUMsV0FBVTswQkFDWkgsVUFBVU8sR0FBRyxDQUFDLENBQUNHO29CQUNkLE1BQU1DLGdCQUFnQkQsU0FBU0QsS0FBSyxLQUFLTDtvQkFDekMsTUFBTVEsV0FBV0YsU0FBU0csYUFBYSxLQUFLQztvQkFFNUMscUJBQ0UsOERBQUNaO3dCQUVDQyxXQUFXLDJDQUlWLE9BSENPLFNBQVNLLE9BQU8sR0FDWix5REFDQTtrQ0FHTiw0RUFBQ2I7NEJBQUlDLFdBQVU7OzhDQUNiLDhEQUFDRDtvQ0FBSUMsV0FBVTs7c0RBQ2IsOERBQUNEOzRDQUFJQyxXQUFVOzs4REFDYiw4REFBQ2E7b0RBQUtiLFdBQVU7OERBQ2JPLFNBQVNPLFlBQVk7Ozs7OztnREFFdkJOLGlCQUFpQkQsU0FBU0ssT0FBTyxrQkFDaEMsOERBQUNDO29EQUFLYixXQUFVOzhEQUF1STs7Ozs7O2dEQUl4SixDQUFDTyxTQUFTSyxPQUFPLGtCQUNoQiw4REFBQ0M7b0RBQUtiLFdBQVU7OERBQWlJOzs7Ozs7Ozs7Ozs7c0RBS3JKLDhEQUFDRDs0Q0FBSUMsV0FBVTs7OERBQ2IsOERBQUNhO29EQUNDYixXQUFXLHlCQUlWLE9BSENRLGlCQUFpQkQsU0FBU0ssT0FBTyxHQUM3QixtQkFDQTs7d0RBRVA7d0RBQ0dMLFNBQVNELEtBQUssQ0FBQ1MsT0FBTyxDQUFDOzs7Ozs7O2dEQUUxQk4sWUFBWUYsU0FBU0csYUFBYSxrQkFDakMsOERBQUNHO29EQUFLYixXQUFVOzt3REFBcUM7d0RBQ2pETyxTQUFTRyxhQUFhLENBQUNLLE9BQU8sQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4Q0FLekMsOERBQUNoQjtvQ0FBSUMsV0FBVTs4Q0FDYiw0RUFBQ2dCO3dDQUNDQyxNQUFNVixTQUFTVyxZQUFZO3dDQUMzQkMsUUFBTzt3Q0FDUEMsS0FBSTt3Q0FDSnBCLFdBQVcseUZBSVYsT0FIQ08sU0FBU0ssT0FBTyxHQUNaLDZFQUNBO2tEQUdMTCxTQUFTSyxPQUFPLEdBQUcsWUFBWTs7Ozs7Ozs7Ozs7Ozs7Ozs7dUJBcERqQ0wsU0FBU2MsRUFBRTs7Ozs7Z0JBMER0Qjs7Ozs7Ozs7Ozs7O0FBSVI7S0EzRmdCekIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy9SZXRhaWxlcnNMaXN0LnRzeD8yYmViIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgdHlwZSB7IFJldGFpbGVyT2ZmZXIgfSBmcm9tIFwiQC9hcHAvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vW3BhcnRJZF0vZGF0YVwiO1xuXG5pbnRlcmZhY2UgUmV0YWlsZXJzTGlzdFByb3BzIHtcbiAgcmV0YWlsZXJzOiBSZXRhaWxlck9mZmVyW107XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBSZXRhaWxlcnNMaXN0KHsgcmV0YWlsZXJzIH06IFJldGFpbGVyc0xpc3RQcm9wcykge1xuICBpZiAocmV0YWlsZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgIHJldHVybiAoXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC16aW5jLTUwMCB0ZXh0LWNlbnRlciBweS00XCI+XG4gICAgICAgIE5vIHJldGFpbGVyIG9mZmVycyBhdmFpbGFibGUuXG4gICAgICA8L2Rpdj5cbiAgICApO1xuICB9XG5cbiAgY29uc3QgbG93ZXN0UHJpY2UgPSBNYXRoLm1pbiguLi5yZXRhaWxlcnMubWFwKChyKSA9PiByLnByaWNlKSk7XG5cbiAgcmV0dXJuIChcbiAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi00XCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRyYWNraW5nLVswLjE2ZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNDAwXCI+XG4gICAgICAgICAgQXZhaWxhYmxlIFJldGFpbGVyc1xuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0xIHRleHQteHMgdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgIHtyZXRhaWxlcnMubGVuZ3RofSByZXRhaWxlcntyZXRhaWxlcnMubGVuZ3RoICE9PSAxID8gXCJzXCIgOiBcIlwifSBmb3VuZFxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxuICAgICAgICB7cmV0YWlsZXJzLm1hcCgocmV0YWlsZXIpID0+IHtcbiAgICAgICAgICBjb25zdCBpc0xvd2VzdFByaWNlID0gcmV0YWlsZXIucHJpY2UgPT09IGxvd2VzdFByaWNlO1xuICAgICAgICAgIGNvbnN0IGlzT25TYWxlID0gcmV0YWlsZXIub3JpZ2luYWxQcmljZSAhPT0gdW5kZWZpbmVkO1xuXG4gICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAga2V5PXtyZXRhaWxlci5pZH1cbiAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgYm9yZGVyIHJvdW5kZWQtbWQgcC0zIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgICAgcmV0YWlsZXIuaW5TdG9ja1xuICAgICAgICAgICAgICAgICAgPyBcImJvcmRlci16aW5jLTcwMCBiZy16aW5jLTkwMC8zMCBob3Zlcjpib3JkZXItemluYy02MDBcIlxuICAgICAgICAgICAgICAgICAgOiBcImJvcmRlci16aW5jLTgwMCBiZy16aW5jLTkwMC8yMCBvcGFjaXR5LTYwXCJcbiAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgbWluLXctMFwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXppbmMtNTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7cmV0YWlsZXIucmV0YWlsZXJOYW1lfVxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIHtpc0xvd2VzdFByaWNlICYmIHJldGFpbGVyLmluU3RvY2sgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtWzAuNjVyZW1dIGZvbnQtc2VtaWJvbGQgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGUgcHgtMS41IHB5LTAuNSByb3VuZGVkIGJnLWFtYmVyLTQwMC8yMCB0ZXh0LWFtYmVyLTMwMCBib3JkZXIgYm9yZGVyLWFtYmVyLTQwMC8zMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgQmVzdCBQcmljZVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgeyFyZXRhaWxlci5pblN0b2NrICYmIChcbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LVswLjY1cmVtXSBmb250LXNlbWlib2xkIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIHB4LTEuNSBweS0wLjUgcm91bmRlZCBiZy1yZWQtNTAwLzIwIHRleHQtcmVkLTQwMCBib3JkZXIgYm9yZGVyLXJlZC01MDAvMzBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIE91dCBvZiBTdG9ja1xuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHRleHQtbGcgZm9udC1zZW1pYm9sZCAke1xuICAgICAgICAgICAgICAgICAgICAgICAgaXNMb3dlc3RQcmljZSAmJiByZXRhaWxlci5pblN0b2NrXG4gICAgICAgICAgICAgICAgICAgICAgICAgID8gXCJ0ZXh0LWFtYmVyLTMwMFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDogXCJ0ZXh0LXppbmMtMzAwXCJcbiAgICAgICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICR7cmV0YWlsZXIucHJpY2UudG9GaXhlZCgyKX1cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICB7aXNPblNhbGUgJiYgcmV0YWlsZXIub3JpZ2luYWxQcmljZSAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIGxpbmUtdGhyb3VnaFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtyZXRhaWxlci5vcmlnaW5hbFByaWNlLnRvRml4ZWQoMil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICAgaHJlZj17cmV0YWlsZXIuYWZmaWxpYXRlVXJsfVxuICAgICAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgICAgICByZWw9XCJub29wZW5lciBub3JlZmVycmVyXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcm91bmRlZC1tZCBib3JkZXIgcHgtMyBweS0xLjUgdGV4dC14cyBmb250LW1lZGl1bSB0cmFuc2l0aW9uLWNvbG9ycyB3aGl0ZXNwYWNlLW5vd3JhcCAke1xuICAgICAgICAgICAgICAgICAgICAgIHJldGFpbGVyLmluU3RvY2tcbiAgICAgICAgICAgICAgICAgICAgICAgID8gXCJib3JkZXItYW1iZXItNDAwLzYwIGJnLWFtYmVyLTQwMC8xMCB0ZXh0LWFtYmVyLTIwMCBob3ZlcjpiZy1hbWJlci00MDAvMTVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgOiBcImJvcmRlci16aW5jLTcwMCBiZy16aW5jLTgwMC81MCB0ZXh0LXppbmMtNTAwIGN1cnNvci1ub3QtYWxsb3dlZCBwb2ludGVyLWV2ZW50cy1ub25lXCJcbiAgICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHtyZXRhaWxlci5pblN0b2NrID8gXCJCdXkgTm93XCIgOiBcIlVuYXZhaWxhYmxlXCJ9XG4gICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKTtcbiAgICAgICAgfSl9XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgKTtcbn1cblxuIl0sIm5hbWVzIjpbIlJldGFpbGVyc0xpc3QiLCJyZXRhaWxlcnMiLCJsZW5ndGgiLCJkaXYiLCJjbGFzc05hbWUiLCJsb3dlc3RQcmljZSIsIk1hdGgiLCJtaW4iLCJtYXAiLCJyIiwicHJpY2UiLCJyZXRhaWxlciIsImlzTG93ZXN0UHJpY2UiLCJpc09uU2FsZSIsIm9yaWdpbmFsUHJpY2UiLCJ1bmRlZmluZWQiLCJpblN0b2NrIiwic3BhbiIsInJldGFpbGVyTmFtZSIsInRvRml4ZWQiLCJhIiwiaHJlZiIsImFmZmlsaWF0ZVVybCIsInRhcmdldCIsInJlbCIsImlkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/RetailersList.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.87786bf095dfd3fe.hot-update.js b/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.87786bf095dfd3fe.hot-update.js
deleted file mode 100644
index 0a21c4e..0000000
--- a/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.87786bf095dfd3fe.hot-update.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/[categoryId]/[partId]/page",{
-
-/***/ "(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":
-/*!*******************************************************!*\
- !*** ./app/gunbuilder/[categoryId]/[partId]/page.tsx ***!
- \*******************************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ PartDetailPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./data */ \"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/data.ts\");\n/* harmony import */ var _components_PricingHistoryGraph__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/PricingHistoryGraph */ \"(app-pages-browser)/./components/PricingHistoryGraph.tsx\");\n/* harmony import */ var _components_RetailersList__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! @/components/RetailersList */ \"(app-pages-browser)/./components/RetailersList.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\n\nfunction PartDetailPage() {\n _s();\n const params = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams)();\n const categoryId = params.categoryId;\n const partId = params.partId;\n const category = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.find((c)=>c.id === categoryId), [\n categoryId\n ]);\n const part = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.find((p)=>p.id === partId && p.categoryId === categoryId), [\n partId,\n categoryId\n ]);\n // Get pricing history and retailer offers\n // TODO: Replace with API calls when endpoints are ready\n const pricingHistory = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>part ? (0,_data__WEBPACK_IMPORTED_MODULE_5__.getPricingHistory)(part.id, part.price) : [], [\n part\n ]);\n const retailerOffers = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>part ? (0,_data__WEBPACK_IMPORTED_MODULE_5__.getRetailerOffers)(part.id, part.price, part.affiliateUrl) : [], [\n part\n ]);\n if (!category || !part) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-2xl font-semibold text-zinc-50 mb-4\",\n children: \"Product Not Found\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 47,\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: \"/gunbuilder\",\n className: \"text-amber-300 hover:text-amber-200 underline\",\n children: \"Return to Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 50,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 45,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 44,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder/\".concat(categoryId),\n className: \"text-xs text-zinc-400 hover:text-zinc-300 mb-4 inline-block\",\n children: [\n \"← Back to \",\n category.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 67,\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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 74,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n part.brand,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 78,\n columnNumber: 28\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 77,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: [\n category.name,\n \" • Product Details\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 80,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 73,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 66,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 lg:grid-cols-[2fr,1fr]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-6 md:grid-cols-[1fr,1fr]\",\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)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400 mb-2\",\n children: \"Product Information\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 95,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Brand\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 100,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.brand\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 103,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 99,\n columnNumber: 21\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Model\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 108,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 111,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 107,\n columnNumber: 21\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Category\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 116,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: category.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 119,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 115,\n columnNumber: 21\n }, this),\n part.notes && /*#__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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Details\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 125,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-300 leading-relaxed\",\n children: part.notes\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 128,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 124,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 98,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 94,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full aspect-square max-w-md rounded-md border border-zinc-700 bg-zinc-900/50 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center p-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-16 h-16 mx-auto text-zinc-600 mb-2\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5,\n d: \"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 147,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 140,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide\",\n children: \"Product Image\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 154,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 139,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 138,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 137,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 92,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 91,\n columnNumber: 13\n }, this),\n retailerOffers.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_RetailersList__WEBPACK_IMPORTED_MODULE_7__.RetailersList, {\n retailers: retailerOffers\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 166,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 165,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 89,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/80 p-4 md:p-6 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-400 mb-2\",\n children: \"Price\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 174,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-3xl font-semibold text-amber-300\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 175,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 173,\n columnNumber: 13\n }, this),\n pricingHistory.length > 0 && /*#__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)(_components_PricingHistoryGraph__WEBPACK_IMPORTED_MODULE_6__.PricingHistoryGraph, {\n data: pricingHistory,\n currentPrice: part.price\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 183,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 182,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-auto space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder?select=\".concat(categoryId, \":\").concat(part.id),\n className: \"block w-full rounded-md border border-amber-400/60 bg-amber-400/10 px-4 py-3 text-sm font-medium text-amber-200 hover:bg-amber-400/15 text-center transition-colors\",\n children: \"Add to Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 191,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: part.affiliateUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"block w-full rounded-md border border-zinc-700 bg-zinc-900/50 px-4 py-3 text-sm font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 text-center transition-colors\",\n children: \"View Retailer\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 197,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 190,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 172,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 87,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 64,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 63,\n columnNumber: 5\n }, this);\n}\n_s(PartDetailPage, \"ZpwVUtr8mmMYWPNCCmGSoaSl2YI=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams\n ];\n});\n_c = PartDetailPage;\nvar _c;\n$RefreshReg$(_c, \"PartDetailPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9bcGFydElkXS9wYWdlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7QUFFZ0M7QUFDSDtBQUNlO0FBQ2U7QUFFRztBQUNTO0FBQ1o7QUFFNUMsU0FBU1M7O0lBQ3RCLE1BQU1DLFNBQVNSLDBEQUFTQTtJQUN4QixNQUFNUyxhQUFhRCxPQUFPQyxVQUFVO0lBQ3BDLE1BQU1DLFNBQVNGLE9BQU9FLE1BQU07SUFFNUIsTUFBTUMsV0FBV2IsOENBQU9BLENBQ3RCLElBQU1HLDZEQUFVQSxDQUFDVyxJQUFJLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsRUFBRSxLQUFLTCxhQUN0QztRQUFDQTtLQUFXO0lBR2QsTUFBTU0sT0FBT2pCLDhDQUFPQSxDQUNsQixJQUFNSSx3REFBS0EsQ0FBQ1UsSUFBSSxDQUFDLENBQUNJLElBQU1BLEVBQUVGLEVBQUUsS0FBS0osVUFBVU0sRUFBRVAsVUFBVSxLQUFLQSxhQUM1RDtRQUFDQztRQUFRRDtLQUFXO0lBR3RCLDBDQUEwQztJQUMxQyx3REFBd0Q7SUFDeEQsTUFBTVEsaUJBQWlCbkIsOENBQU9BLENBQzVCLElBQU9pQixPQUFPWix3REFBaUJBLENBQUNZLEtBQUtELEVBQUUsRUFBRUMsS0FBS0csS0FBSyxJQUFJLEVBQUUsRUFDekQ7UUFBQ0g7S0FBSztJQUdSLE1BQU1JLGlCQUFpQnJCLDhDQUFPQSxDQUM1QixJQUNFaUIsT0FDSVgsd0RBQWlCQSxDQUFDVyxLQUFLRCxFQUFFLEVBQUVDLEtBQUtHLEtBQUssRUFBRUgsS0FBS0ssWUFBWSxJQUN4RCxFQUFFLEVBQ1I7UUFBQ0w7S0FBSztJQUdSLElBQUksQ0FBQ0osWUFBWSxDQUFDSSxNQUFNO1FBQ3RCLHFCQUNFLDhEQUFDTTtZQUFLQyxXQUFVO3NCQUNkLDRFQUFDQztnQkFBSUQsV0FBVTswQkFDYiw0RUFBQ0M7b0JBQUlELFdBQVU7O3NDQUNiLDhEQUFDRTs0QkFBR0YsV0FBVTtzQ0FBMkM7Ozs7OztzQ0FHekQsOERBQUN2QixpREFBSUE7NEJBQ0gwQixNQUFLOzRCQUNMSCxXQUFVO3NDQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBT1g7SUFFQSxxQkFDRSw4REFBQ0Q7UUFBS0MsV0FBVTtrQkFDZCw0RUFBQ0M7WUFBSUQsV0FBVTs7OEJBRWIsOERBQUNJO29CQUFPSixXQUFVOztzQ0FDaEIsOERBQUN2QixpREFBSUE7NEJBQ0gwQixNQUFNLGVBQTBCLE9BQVhoQjs0QkFDckJhLFdBQVU7O2dDQUNYO2dDQUNZWCxTQUFTZ0IsSUFBSTs7Ozs7OztzQ0FFMUIsOERBQUNKOzs4Q0FDQyw4REFBQ1A7b0NBQUVNLFdBQVU7OENBQWlFOzs7Ozs7OENBRzlFLDhEQUFDRTtvQ0FBR0YsV0FBVTs7d0NBQ1hQLEtBQUthLEtBQUs7d0NBQUM7c0RBQUMsOERBQUNDOzRDQUFLUCxXQUFVO3NEQUFrQlAsS0FBS1ksSUFBSTs7Ozs7Ozs7Ozs7OzhDQUUxRCw4REFBQ1g7b0NBQUVNLFdBQVU7O3dDQUNWWCxTQUFTZ0IsSUFBSTt3Q0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFNckIsOERBQUNKO29CQUFJRCxXQUFVOztzQ0FFYiw4REFBQ1E7NEJBQVFSLFdBQVU7OzhDQUVqQiw4REFBQ0M7b0NBQUlELFdBQVU7OENBQ2IsNEVBQUNDO3dDQUFJRCxXQUFVOzswREFFYiw4REFBQ0M7O2tFQUNDLDhEQUFDQTt3REFBSUQsV0FBVTtrRUFBdUU7Ozs7OztrRUFHdEYsOERBQUNDO3dEQUFJRCxXQUFVOzswRUFDYiw4REFBQ0M7O2tGQUNDLDhEQUFDQTt3RUFBSUQsV0FBVTtrRkFBcUQ7Ozs7OztrRkFHcEUsOERBQUNDO3dFQUFJRCxXQUFVO2tGQUNaUCxLQUFLYSxLQUFLOzs7Ozs7Ozs7Ozs7MEVBR2YsOERBQUNMOztrRkFDQyw4REFBQ0E7d0VBQUlELFdBQVU7a0ZBQXFEOzs7Ozs7a0ZBR3BFLDhEQUFDQzt3RUFBSUQsV0FBVTtrRkFDWlAsS0FBS1ksSUFBSTs7Ozs7Ozs7Ozs7OzBFQUdkLDhEQUFDSjs7a0ZBQ0MsOERBQUNBO3dFQUFJRCxXQUFVO2tGQUFxRDs7Ozs7O2tGQUdwRSw4REFBQ0M7d0VBQUlELFdBQVU7a0ZBQ1pYLFNBQVNnQixJQUFJOzs7Ozs7Ozs7Ozs7NERBR2pCWixLQUFLZ0IsS0FBSyxrQkFDVCw4REFBQ1I7O2tGQUNDLDhEQUFDQTt3RUFBSUQsV0FBVTtrRkFBcUQ7Ozs7OztrRkFHcEUsOERBQUNDO3dFQUFJRCxXQUFVO2tGQUNaUCxLQUFLZ0IsS0FBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBEQVFyQiw4REFBQ1I7Z0RBQUlELFdBQVU7MERBQ2IsNEVBQUNDO29EQUFJRCxXQUFVOzhEQUNiLDRFQUFDQzt3REFBSUQsV0FBVTs7MEVBQ2IsOERBQUNVO2dFQUNDVixXQUFVO2dFQUNWVyxNQUFLO2dFQUNMQyxRQUFPO2dFQUNQQyxTQUFRO2dFQUNSQyxPQUFNOzBFQUVOLDRFQUFDQztvRUFDQ0MsZUFBYztvRUFDZEMsZ0JBQWU7b0VBQ2ZDLGFBQWE7b0VBQ2JDLEdBQUU7Ozs7Ozs7Ozs7OzBFQUdOLDhEQUFDekI7Z0VBQUVNLFdBQVU7MEVBQWdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0NBVXRFSCxlQUFldUIsTUFBTSxHQUFHLG1CQUN2Qiw4REFBQ25CO29DQUFJRCxXQUFVOzhDQUNiLDRFQUFDaEIsb0VBQWFBO3dDQUFDcUMsV0FBV3hCOzs7Ozs7Ozs7Ozs7Ozs7OztzQ0FNaEMsOERBQUN5Qjs0QkFBTXRCLFdBQVU7OzhDQUNmLDhEQUFDQztvQ0FBSUQsV0FBVTs7c0RBQ2IsOERBQUNDOzRDQUFJRCxXQUFVO3NEQUE2Qjs7Ozs7O3NEQUM1Qyw4REFBQ0M7NENBQUlELFdBQVU7O2dEQUF3QztnREFDbkRQLEtBQUtHLEtBQUssQ0FBQzJCLE9BQU8sQ0FBQzs7Ozs7Ozs7Ozs7OztnQ0FLeEI1QixlQUFleUIsTUFBTSxHQUFHLG1CQUN2Qiw4REFBQ25CO29DQUFJRCxXQUFVOzhDQUNiLDRFQUFDakIsZ0ZBQW1CQTt3Q0FDbEJ5QyxNQUFNN0I7d0NBQ044QixjQUFjaEMsS0FBS0csS0FBSzs7Ozs7Ozs7Ozs7OENBSzlCLDhEQUFDSztvQ0FBSUQsV0FBVTs7c0RBQ2IsOERBQUN2QixpREFBSUE7NENBQ0gwQixNQUFNLHNCQUFvQ1YsT0FBZE4sWUFBVyxLQUFXLE9BQVJNLEtBQUtELEVBQUU7NENBQ2pEUSxXQUFVO3NEQUNYOzs7Ozs7c0RBR0QsOERBQUMwQjs0Q0FDQ3ZCLE1BQU1WLEtBQUtLLFlBQVk7NENBQ3ZCNkIsUUFBTzs0Q0FDUEMsS0FBSTs0Q0FDSjVCLFdBQVU7c0RBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU2Y7R0F2TXdCZjs7UUFDUFAsc0RBQVNBOzs7S0FERk8iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2d1bmJ1aWxkZXIvW2NhdGVnb3J5SWRdL1twYXJ0SWRdL3BhZ2UudHN4PzQyYzEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcbmltcG9ydCB7IHVzZVBhcmFtcyB9IGZyb20gXCJuZXh0L25hdmlnYXRpb25cIjtcbmltcG9ydCB7IENBVEVHT1JJRVMsIFBBUlRTIH0gZnJvbSBcIkAvZGF0YS9ndW5idWlsZGVyUGFydHNcIjtcbmltcG9ydCB0eXBlIHsgQ2F0ZWdvcnlJZCB9IGZyb20gXCJAL3R5cGVzL2d1bmJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFByaWNpbmdIaXN0b3J5LCBnZXRSZXRhaWxlck9mZmVycyB9IGZyb20gXCIuL2RhdGFcIjtcbmltcG9ydCB7IFByaWNpbmdIaXN0b3J5R3JhcGggfSBmcm9tIFwiQC9jb21wb25lbnRzL1ByaWNpbmdIaXN0b3J5R3JhcGhcIjtcbmltcG9ydCB7IFJldGFpbGVyc0xpc3QgfSBmcm9tIFwiQC9jb21wb25lbnRzL1JldGFpbGVyc0xpc3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFydERldGFpbFBhZ2UoKSB7XG4gIGNvbnN0IHBhcmFtcyA9IHVzZVBhcmFtcygpO1xuICBjb25zdCBjYXRlZ29yeUlkID0gcGFyYW1zLmNhdGVnb3J5SWQgYXMgQ2F0ZWdvcnlJZDtcbiAgY29uc3QgcGFydElkID0gcGFyYW1zLnBhcnRJZCBhcyBzdHJpbmc7XG5cbiAgY29uc3QgY2F0ZWdvcnkgPSB1c2VNZW1vKFxuICAgICgpID0+IENBVEVHT1JJRVMuZmluZCgoYykgPT4gYy5pZCA9PT0gY2F0ZWdvcnlJZCksXG4gICAgW2NhdGVnb3J5SWRdLFxuICApO1xuXG4gIGNvbnN0IHBhcnQgPSB1c2VNZW1vKFxuICAgICgpID0+IFBBUlRTLmZpbmQoKHApID0+IHAuaWQgPT09IHBhcnRJZCAmJiBwLmNhdGVnb3J5SWQgPT09IGNhdGVnb3J5SWQpLFxuICAgIFtwYXJ0SWQsIGNhdGVnb3J5SWRdLFxuICApO1xuXG4gIC8vIEdldCBwcmljaW5nIGhpc3RvcnkgYW5kIHJldGFpbGVyIG9mZmVyc1xuICAvLyBUT0RPOiBSZXBsYWNlIHdpdGggQVBJIGNhbGxzIHdoZW4gZW5kcG9pbnRzIGFyZSByZWFkeVxuICBjb25zdCBwcmljaW5nSGlzdG9yeSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHBhcnQgPyBnZXRQcmljaW5nSGlzdG9yeShwYXJ0LmlkLCBwYXJ0LnByaWNlKSA6IFtdKSxcbiAgICBbcGFydF0sXG4gICk7XG5cbiAgY29uc3QgcmV0YWlsZXJPZmZlcnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBwYXJ0XG4gICAgICAgID8gZ2V0UmV0YWlsZXJPZmZlcnMocGFydC5pZCwgcGFydC5wcmljZSwgcGFydC5hZmZpbGlhdGVVcmwpXG4gICAgICAgIDogW10sXG4gICAgW3BhcnRdLFxuICApO1xuXG4gIGlmICghY2F0ZWdvcnkgfHwgIXBhcnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPG1haW4gY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLWJsYWNrIHRleHQtemluYy01MFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14LWF1dG8gbWF4LXctNnhsIHB4LTQgcHktNiBsZzpweS0xMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LXNlbWlib2xkIHRleHQtemluYy01MCBtYi00XCI+XG4gICAgICAgICAgICAgIFByb2R1Y3QgTm90IEZvdW5kXG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgaHJlZj1cIi9ndW5idWlsZGVyXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDAgaG92ZXI6dGV4dC1hbWJlci0yMDAgdW5kZXJsaW5lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgUmV0dXJuIHRvIEd1bmJ1aWxkZXJcbiAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21haW4+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPG1haW4gY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLWJsYWNrIHRleHQtemluYy01MFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJteC1hdXRvIG1heC13LTZ4bCBweC00IHB5LTYgbGc6cHktMTBcIj5cbiAgICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJtYi02XCI+XG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIGhyZWY9e2AvZ3VuYnVpbGRlci8ke2NhdGVnb3J5SWR9YH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTQwMCBob3Zlcjp0ZXh0LXppbmMtMzAwIG1iLTQgaW5saW5lLWJsb2NrXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICDihpAgQmFjayB0byB7Y2F0ZWdvcnkubmFtZX1cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4yZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICAgIFNoYWRvdyBTdGFuZGFyZFxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm10LTEgdGV4dC0yeGwgbWQ6dGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0cmFja2luZy10aWdodFwiPlxuICAgICAgICAgICAgICB7cGFydC5icmFuZH0gPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDBcIj57cGFydC5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0yIHRleHQtc20gdGV4dC16aW5jLTQwMCBtYXgtdy14bFwiPlxuICAgICAgICAgICAgICB7Y2F0ZWdvcnkubmFtZX0g4oCiIFByb2R1Y3QgRGV0YWlsc1xuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICB7LyogUHJvZHVjdCBEZXRhaWxzICovfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ2FwLTQgbGc6Z3JpZC1jb2xzLVsyZnIsMWZyXVwiPlxuICAgICAgICAgIHsvKiBNYWluIENvbnRlbnQgKi99XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XG4gICAgICAgICAgICB7LyogUHJvZHVjdCBJbmZvcm1hdGlvbiAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzYwIHAtNCBtZDpwLTZcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC02IG1kOmdyaWQtY29scy1bMWZyLDFmcl1cIj5cbiAgICAgICAgICAgICAgICB7LyogUHJvZHVjdCBJbmZvICovfVxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMCBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIFByb2R1Y3QgSW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBCcmFuZFxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQuYnJhbmR9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIE1vZGVsXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cGFydC5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBDYXRlZ29yeVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NhdGVnb3J5Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB7cGFydC5ub3RlcyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC16aW5jLTMwMCBsZWFkaW5nLXJlbGF4ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubm90ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgey8qIFByb2R1Y3QgSW1hZ2UgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBhc3BlY3Qtc3F1YXJlIG1heC13LW1kIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTcwMCBiZy16aW5jLTkwMC81MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHAtOFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctMTYgaC0xNiBteC1hdXRvIHRleHQtemluYy02MDAgbWItMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezEuNX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00IDE2bDQuNTg2LTQuNTg2YTIgMiAwIDAxMi44MjggMEwxNiAxNm0tMi0ybDEuNTg2LTEuNTg2YTIgMiAwIDAxMi44MjggMEwyMCAxNG0tNi02aC4wMU02IDIwaDEyYTIgMiAwIDAwMi0yVjZhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyelwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvZHVjdCBJbWFnZVxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIFJldGFpbGVycyBMaXN0ICovfVxuICAgICAgICAgICAge3JldGFpbGVyT2ZmZXJzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci16aW5jLTgwMCBiZy16aW5jLTk1MC82MCBwLTQgbWQ6cC02XCI+XG4gICAgICAgICAgICAgICAgPFJldGFpbGVyc0xpc3QgcmV0YWlsZXJzPXtyZXRhaWxlck9mZmVyc30gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgIHsvKiBTaWRlYmFyICovfVxuICAgICAgICAgIDxhc2lkZSBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy04MDAgYmctemluYy05NTAvODAgcC00IG1kOnAtNiBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy00MDAgbWItMlwiPlByaWNlPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0ZXh0LWFtYmVyLTMwMFwiPlxuICAgICAgICAgICAgICAgICR7cGFydC5wcmljZS50b0ZpeGVkKDIpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogUHJpY2luZyBIaXN0b3J5ICovfVxuICAgICAgICAgICAge3ByaWNpbmdIaXN0b3J5Lmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTZcIj5cbiAgICAgICAgICAgICAgICA8UHJpY2luZ0hpc3RvcnlHcmFwaFxuICAgICAgICAgICAgICAgICAgZGF0YT17cHJpY2luZ0hpc3Rvcnl9XG4gICAgICAgICAgICAgICAgICBjdXJyZW50UHJpY2U9e3BhcnQucHJpY2V9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LWF1dG8gc3BhY2UteS0zXCI+XG4gICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgaHJlZj17YC9ndW5idWlsZGVyP3NlbGVjdD0ke2NhdGVnb3J5SWR9OiR7cGFydC5pZH1gfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2NrIHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYW1iZXItNDAwLzYwIGJnLWFtYmVyLTQwMC8xMCBweC00IHB5LTMgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWFtYmVyLTIwMCBob3ZlcjpiZy1hbWJlci00MDAvMTUgdGV4dC1jZW50ZXIgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQWRkIHRvIEJ1aWxkXG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBocmVmPXtwYXJ0LmFmZmlsaWF0ZVVybH1cbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2NrIHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItemluYy03MDAgYmctemluYy05MDAvNTAgcHgtNCBweS0zIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC16aW5jLTMwMCBob3ZlcjpiZy16aW5jLTgwMCBob3Zlcjpib3JkZXItemluYy02MDAgdGV4dC1jZW50ZXIgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBSZXRhaWxlclxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2FzaWRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgKTtcbn1cblxuIl0sIm5hbWVzIjpbInVzZU1lbW8iLCJMaW5rIiwidXNlUGFyYW1zIiwiQ0FURUdPUklFUyIsIlBBUlRTIiwiZ2V0UHJpY2luZ0hpc3RvcnkiLCJnZXRSZXRhaWxlck9mZmVycyIsIlByaWNpbmdIaXN0b3J5R3JhcGgiLCJSZXRhaWxlcnNMaXN0IiwiUGFydERldGFpbFBhZ2UiLCJwYXJhbXMiLCJjYXRlZ29yeUlkIiwicGFydElkIiwiY2F0ZWdvcnkiLCJmaW5kIiwiYyIsImlkIiwicGFydCIsInAiLCJwcmljaW5nSGlzdG9yeSIsInByaWNlIiwicmV0YWlsZXJPZmZlcnMiLCJhZmZpbGlhdGVVcmwiLCJtYWluIiwiY2xhc3NOYW1lIiwiZGl2IiwiaDEiLCJocmVmIiwiaGVhZGVyIiwibmFtZSIsImJyYW5kIiwic3BhbiIsInNlY3Rpb24iLCJub3RlcyIsInN2ZyIsImZpbGwiLCJzdHJva2UiLCJ2aWV3Qm94IiwieG1sbnMiLCJwYXRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwic3Ryb2tlV2lkdGgiLCJkIiwibGVuZ3RoIiwicmV0YWlsZXJzIiwiYXNpZGUiLCJ0b0ZpeGVkIiwiZGF0YSIsImN1cnJlbnRQcmljZSIsImEiLCJ0YXJnZXQiLCJyZWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./components/PricingHistoryGraph.tsx":
-/*!********************************************!*\
- !*** ./components/PricingHistoryGraph.tsx ***!
- \********************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ PricingHistoryGraph: function() { return /* binding */ PricingHistoryGraph; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* __next_internal_client_entry_do_not_use__ PricingHistoryGraph auto */ \nfunction PricingHistoryGraph(param) {\n let { data, currentPrice } = param;\n if (data.length === 0) return null;\n // Calculate chart dimensions\n const width = 100;\n const height = 60;\n const padding = 4;\n // Find min and max prices for scaling\n const prices = data.map((d)=>d.price);\n const minPrice = Math.min(...prices);\n const maxPrice = Math.max(...prices);\n const priceRange = maxPrice - minPrice || 1; // Avoid division by zero\n // Generate path points\n const points = data.map((point, index)=>{\n const x = padding + index / (data.length - 1) * (width - padding * 2);\n const normalizedPrice = (point.price - minPrice) / priceRange;\n const y = padding + (height - padding * 2) * (1 - normalizedPrice);\n return {\n x,\n y,\n price: point.price\n };\n });\n // Create SVG path\n const pathData = points.map((point, index)=>\"\".concat(index === 0 ? \"M\" : \"L\", \" \").concat(point.x, \" \").concat(point.y)).join(\" \");\n // Create area path (for gradient fill)\n const areaPath = \"\".concat(pathData, \" L \").concat(width - padding, \" \").concat(height - padding, \" L \").concat(padding, \" \").concat(height - padding, \" Z\");\n // Format date for display\n const formatDate = (dateStr)=>{\n const date = new Date(dateStr);\n return date.toLocaleDateString(\"en-US\", {\n month: \"short\",\n day: \"numeric\"\n });\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4 flex items-center 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)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400\",\n children: \"Price History (30 Days)\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 53,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 text-xs text-zinc-500\",\n children: [\n \"Current: \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300 font-semibold\",\n children: [\n \"$\",\n currentPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 57,\n columnNumber: 22\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 56,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 52,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-500\",\n children: [\n formatDate(data[0].date),\n \" - \",\n formatDate(data[data.length - 1].date)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 60,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 51,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"relative w-full h-32 rounded-md border border-zinc-800 bg-zinc-900/30 p-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n viewBox: \"0 0 \".concat(width, \" \").concat(height),\n className: \"w-full h-full\",\n preserveAspectRatio: \"none\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"defs\", {\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"linearGradient\", {\n id: \"priceGradient\",\n x1: \"0%\",\n y1: \"0%\",\n x2: \"0%\",\n y2: \"100%\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"0%\",\n stopColor: \"#fbbf24\",\n stopOpacity: \"0.3\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 73,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"stop\", {\n offset: \"100%\",\n stopColor: \"#fbbf24\",\n stopOpacity: \"0.05\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 74,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 72,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 71,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: areaPath,\n fill: \"url(#priceGradient)\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 78,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n d: pathData,\n fill: \"none\",\n stroke: \"#fbbf24\",\n strokeWidth: \"1.5\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 83,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"circle\", {\n cx: points[points.length - 1].x,\n cy: points[points.length - 1].y,\n r: \"2\",\n fill: \"#fbbf24\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 92,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 66,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 65,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-2 flex items-center justify-between text-xs text-zinc-500\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \"Low: $\",\n minPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 102,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n children: [\n \"High: $\",\n maxPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 103,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 101,\n columnNumber: 7\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx\",\n lineNumber: 50,\n columnNumber: 5\n }, this);\n}\n_c = PricingHistoryGraph;\nvar _c;\n$RefreshReg$(_c, \"PricingHistoryGraph\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvUHJpY2luZ0hpc3RvcnlHcmFwaC50c3giLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBU08sU0FBU0Esb0JBQW9CLEtBR1Q7UUFIUyxFQUNsQ0MsSUFBSSxFQUNKQyxZQUFZLEVBQ2EsR0FIUztJQUlsQyxJQUFJRCxLQUFLRSxNQUFNLEtBQUssR0FBRyxPQUFPO0lBRTlCLDZCQUE2QjtJQUM3QixNQUFNQyxRQUFRO0lBQ2QsTUFBTUMsU0FBUztJQUNmLE1BQU1DLFVBQVU7SUFFaEIsc0NBQXNDO0lBQ3RDLE1BQU1DLFNBQVNOLEtBQUtPLEdBQUcsQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxLQUFLO0lBQ3RDLE1BQU1DLFdBQVdDLEtBQUtDLEdBQUcsSUFBSU47SUFDN0IsTUFBTU8sV0FBV0YsS0FBS0csR0FBRyxJQUFJUjtJQUM3QixNQUFNUyxhQUFhRixXQUFXSCxZQUFZLEdBQUcseUJBQXlCO0lBRXRFLHVCQUF1QjtJQUN2QixNQUFNTSxTQUFTaEIsS0FBS08sR0FBRyxDQUFDLENBQUNVLE9BQU9DO1FBQzlCLE1BQU1DLElBQUlkLFVBQVcsUUFBVUwsQ0FBQUEsS0FBS0UsTUFBTSxHQUFHLEtBQU9DLENBQUFBLFFBQVFFLFVBQVU7UUFDdEUsTUFBTWUsa0JBQWtCLENBQUNILE1BQU1SLEtBQUssR0FBR0MsUUFBTyxJQUFLSztRQUNuRCxNQUFNTSxJQUFJaEIsVUFBVSxDQUFDRCxTQUFTQyxVQUFVLEtBQU0sS0FBSWUsZUFBYztRQUNoRSxPQUFPO1lBQUVEO1lBQUdFO1lBQUdaLE9BQU9RLE1BQU1SLEtBQUs7UUFBQztJQUNwQztJQUVBLGtCQUFrQjtJQUNsQixNQUFNYSxXQUFXTixPQUNkVCxHQUFHLENBQUMsQ0FBQ1UsT0FBT0MsUUFBVSxHQUE4QkQsT0FBM0JDLFVBQVUsSUFBSSxNQUFNLEtBQUksS0FBY0QsT0FBWEEsTUFBTUUsQ0FBQyxFQUFDLEtBQVcsT0FBUkYsTUFBTUksQ0FBQyxHQUN0RUUsSUFBSSxDQUFDO0lBRVIsdUNBQXVDO0lBQ3ZDLE1BQU1DLFdBQVcsR0FBaUJyQixPQUFkbUIsVUFBUyxPQUF3QmxCLE9BQW5CRCxRQUFRRSxTQUFRLEtBQXlCQSxPQUF0QkQsU0FBU0MsU0FBUSxPQUFnQkQsT0FBWEMsU0FBUSxLQUFvQixPQUFqQkQsU0FBU0MsU0FBUTtJQUV2RywwQkFBMEI7SUFDMUIsTUFBTW9CLGFBQWEsQ0FBQ0M7UUFDbEIsTUFBTUMsT0FBTyxJQUFJQyxLQUFLRjtRQUN0QixPQUFPQyxLQUFLRSxrQkFBa0IsQ0FBQyxTQUFTO1lBQUVDLE9BQU87WUFBU0MsS0FBSztRQUFVO0lBQzNFO0lBRUEscUJBQ0UsOERBQUNDO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDRDtnQkFBSUMsV0FBVTs7a0NBQ2IsOERBQUNEOzswQ0FDQyw4REFBQ0E7Z0NBQUlDLFdBQVU7MENBQWtFOzs7Ozs7MENBR2pGLDhEQUFDRDtnQ0FBSUMsV0FBVTs7b0NBQTZCO2tEQUNqQyw4REFBQ0M7d0NBQUtELFdBQVU7OzRDQUErQjs0Q0FBRWhDLGFBQWFrQyxPQUFPLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7a0NBR25GLDhEQUFDSDt3QkFBSUMsV0FBVTs7NEJBQ1pSLFdBQVd6QixJQUFJLENBQUMsRUFBRSxDQUFDMkIsSUFBSTs0QkFBRTs0QkFBSUYsV0FBV3pCLElBQUksQ0FBQ0EsS0FBS0UsTUFBTSxHQUFHLEVBQUUsQ0FBQ3lCLElBQUk7Ozs7Ozs7Ozs7Ozs7MEJBSXZFLDhEQUFDSztnQkFBSUMsV0FBVTswQkFDYiw0RUFBQ0c7b0JBQ0NDLFNBQVMsT0FBZ0JqQyxPQUFURCxPQUFNLEtBQVUsT0FBUEM7b0JBQ3pCNkIsV0FBVTtvQkFDVksscUJBQW9COztzQ0FFcEIsOERBQUNDO3NDQUNDLDRFQUFDQztnQ0FBZUMsSUFBRztnQ0FBZ0JDLElBQUc7Z0NBQUtDLElBQUc7Z0NBQUtDLElBQUc7Z0NBQUtDLElBQUc7O2tEQUM1RCw4REFBQ0M7d0NBQUtDLFFBQU87d0NBQUtDLFdBQVU7d0NBQVVDLGFBQVk7Ozs7OztrREFDbEQsOERBQUNIO3dDQUFLQyxRQUFPO3dDQUFPQyxXQUFVO3dDQUFVQyxhQUFZOzs7Ozs7Ozs7Ozs7Ozs7OztzQ0FJeEQsOERBQUNDOzRCQUNDMUMsR0FBR2dCOzRCQUNIMkIsTUFBSzs7Ozs7O3NDQUdQLDhEQUFDRDs0QkFDQzFDLEdBQUdjOzRCQUNINkIsTUFBSzs0QkFDTEMsUUFBTzs0QkFDUEMsYUFBWTs0QkFDWkMsZUFBYzs0QkFDZEMsZ0JBQWU7Ozs7OztzQ0FHakIsOERBQUNDOzRCQUNDQyxJQUFJekMsTUFBTSxDQUFDQSxPQUFPZCxNQUFNLEdBQUcsRUFBRSxDQUFDaUIsQ0FBQzs0QkFDL0J1QyxJQUFJMUMsTUFBTSxDQUFDQSxPQUFPZCxNQUFNLEdBQUcsRUFBRSxDQUFDbUIsQ0FBQzs0QkFDL0JzQyxHQUFFOzRCQUNGUixNQUFLOzs7Ozs7Ozs7Ozs7Ozs7OzswQkFLWCw4REFBQ25CO2dCQUFJQyxXQUFVOztrQ0FDYiw4REFBQ0M7OzRCQUFLOzRCQUFPeEIsU0FBU3lCLE9BQU8sQ0FBQzs7Ozs7OztrQ0FDOUIsOERBQUNEOzs0QkFBSzs0QkFBUXJCLFNBQVNzQixPQUFPLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFJdkM7S0FqR2dCcEMiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy9QcmljaW5nSGlzdG9yeUdyYXBoLnRzeD82YzVhIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgdHlwZSB7IFByaWNlSGlzdG9yeVBvaW50IH0gZnJvbSBcIkAvYXBwL2d1bmJ1aWxkZXIvW2NhdGVnb3J5SWRdL1twYXJ0SWRdL2RhdGFcIjtcblxuaW50ZXJmYWNlIFByaWNpbmdIaXN0b3J5R3JhcGhQcm9wcyB7XG4gIGRhdGE6IFByaWNlSGlzdG9yeVBvaW50W107XG4gIGN1cnJlbnRQcmljZTogbnVtYmVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gUHJpY2luZ0hpc3RvcnlHcmFwaCh7XG4gIGRhdGEsXG4gIGN1cnJlbnRQcmljZSxcbn06IFByaWNpbmdIaXN0b3J5R3JhcGhQcm9wcykge1xuICBpZiAoZGF0YS5sZW5ndGggPT09IDApIHJldHVybiBudWxsO1xuXG4gIC8vIENhbGN1bGF0ZSBjaGFydCBkaW1lbnNpb25zXG4gIGNvbnN0IHdpZHRoID0gMTAwO1xuICBjb25zdCBoZWlnaHQgPSA2MDtcbiAgY29uc3QgcGFkZGluZyA9IDQ7XG5cbiAgLy8gRmluZCBtaW4gYW5kIG1heCBwcmljZXMgZm9yIHNjYWxpbmdcbiAgY29uc3QgcHJpY2VzID0gZGF0YS5tYXAoKGQpID0+IGQucHJpY2UpO1xuICBjb25zdCBtaW5QcmljZSA9IE1hdGgubWluKC4uLnByaWNlcyk7XG4gIGNvbnN0IG1heFByaWNlID0gTWF0aC5tYXgoLi4ucHJpY2VzKTtcbiAgY29uc3QgcHJpY2VSYW5nZSA9IG1heFByaWNlIC0gbWluUHJpY2UgfHwgMTsgLy8gQXZvaWQgZGl2aXNpb24gYnkgemVyb1xuXG4gIC8vIEdlbmVyYXRlIHBhdGggcG9pbnRzXG4gIGNvbnN0IHBvaW50cyA9IGRhdGEubWFwKChwb2ludCwgaW5kZXgpID0+IHtcbiAgICBjb25zdCB4ID0gcGFkZGluZyArICgoaW5kZXggLyAoZGF0YS5sZW5ndGggLSAxKSkgKiAod2lkdGggLSBwYWRkaW5nICogMikpO1xuICAgIGNvbnN0IG5vcm1hbGl6ZWRQcmljZSA9IChwb2ludC5wcmljZSAtIG1pblByaWNlKSAvIHByaWNlUmFuZ2U7XG4gICAgY29uc3QgeSA9IHBhZGRpbmcgKyAoaGVpZ2h0IC0gcGFkZGluZyAqIDIpICogKDEgLSBub3JtYWxpemVkUHJpY2UpO1xuICAgIHJldHVybiB7IHgsIHksIHByaWNlOiBwb2ludC5wcmljZSB9O1xuICB9KTtcblxuICAvLyBDcmVhdGUgU1ZHIHBhdGhcbiAgY29uc3QgcGF0aERhdGEgPSBwb2ludHNcbiAgICAubWFwKChwb2ludCwgaW5kZXgpID0+IGAke2luZGV4ID09PSAwID8gXCJNXCIgOiBcIkxcIn0gJHtwb2ludC54fSAke3BvaW50Lnl9YClcbiAgICAuam9pbihcIiBcIik7XG5cbiAgLy8gQ3JlYXRlIGFyZWEgcGF0aCAoZm9yIGdyYWRpZW50IGZpbGwpXG4gIGNvbnN0IGFyZWFQYXRoID0gYCR7cGF0aERhdGF9IEwgJHt3aWR0aCAtIHBhZGRpbmd9ICR7aGVpZ2h0IC0gcGFkZGluZ30gTCAke3BhZGRpbmd9ICR7aGVpZ2h0IC0gcGFkZGluZ30gWmA7XG5cbiAgLy8gRm9ybWF0IGRhdGUgZm9yIGRpc3BsYXlcbiAgY29uc3QgZm9ybWF0RGF0ZSA9IChkYXRlU3RyOiBzdHJpbmcpID0+IHtcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUoZGF0ZVN0cik7XG4gICAgcmV0dXJuIGRhdGUudG9Mb2NhbGVEYXRlU3RyaW5nKFwiZW4tVVNcIiwgeyBtb250aDogXCJzaG9ydFwiLCBkYXk6IFwibnVtZXJpY1wiIH0pO1xuICB9O1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJ3LWZ1bGxcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgPGRpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMFwiPlxuICAgICAgICAgICAgUHJpY2UgSGlzdG9yeSAoMzAgRGF5cylcbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTEgdGV4dC14cyB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICBDdXJyZW50OiA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWFtYmVyLTMwMCBmb250LXNlbWlib2xkXCI+JHtjdXJyZW50UHJpY2UudG9GaXhlZCgyKX08L3NwYW4+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgIHtmb3JtYXREYXRlKGRhdGFbMF0uZGF0ZSl9IC0ge2Zvcm1hdERhdGUoZGF0YVtkYXRhLmxlbmd0aCAtIDFdLmRhdGUpfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cInJlbGF0aXZlIHctZnVsbCBoLTMyIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTgwMCBiZy16aW5jLTkwMC8zMCBwLTNcIj5cbiAgICAgICAgPHN2Z1xuICAgICAgICAgIHZpZXdCb3g9e2AwIDAgJHt3aWR0aH0gJHtoZWlnaHR9YH1cbiAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgaC1mdWxsXCJcbiAgICAgICAgICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPVwibm9uZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGVmcz5cbiAgICAgICAgICAgIDxsaW5lYXJHcmFkaWVudCBpZD1cInByaWNlR3JhZGllbnRcIiB4MT1cIjAlXCIgeTE9XCIwJVwiIHgyPVwiMCVcIiB5Mj1cIjEwMCVcIj5cbiAgICAgICAgICAgICAgPHN0b3Agb2Zmc2V0PVwiMCVcIiBzdG9wQ29sb3I9XCIjZmJiZjI0XCIgc3RvcE9wYWNpdHk9XCIwLjNcIiAvPlxuICAgICAgICAgICAgICA8c3RvcCBvZmZzZXQ9XCIxMDAlXCIgc3RvcENvbG9yPVwiI2ZiYmYyNFwiIHN0b3BPcGFjaXR5PVwiMC4wNVwiIC8+XG4gICAgICAgICAgICA8L2xpbmVhckdyYWRpZW50PlxuICAgICAgICAgIDwvZGVmcz5cbiAgICAgICAgICB7LyogQXJlYSBmaWxsICovfVxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPXthcmVhUGF0aH1cbiAgICAgICAgICAgIGZpbGw9XCJ1cmwoI3ByaWNlR3JhZGllbnQpXCJcbiAgICAgICAgICAvPlxuICAgICAgICAgIHsvKiBMaW5lICovfVxuICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICBkPXtwYXRoRGF0YX1cbiAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgIHN0cm9rZT1cIiNmYmJmMjRcIlxuICAgICAgICAgICAgc3Ryb2tlV2lkdGg9XCIxLjVcIlxuICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgIC8+XG4gICAgICAgICAgey8qIEN1cnJlbnQgcHJpY2UgaW5kaWNhdG9yICovfVxuICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgIGN4PXtwb2ludHNbcG9pbnRzLmxlbmd0aCAtIDFdLnh9XG4gICAgICAgICAgICBjeT17cG9pbnRzW3BvaW50cy5sZW5ndGggLSAxXS55fVxuICAgICAgICAgICAgcj1cIjJcIlxuICAgICAgICAgICAgZmlsbD1cIiNmYmJmMjRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvc3ZnPlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gdGV4dC14cyB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgIDxzcGFuPkxvdzogJHttaW5QcmljZS50b0ZpeGVkKDIpfTwvc3Bhbj5cbiAgICAgICAgPHNwYW4+SGlnaDogJHttYXhQcmljZS50b0ZpeGVkKDIpfTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICApO1xufVxuXG4iXSwibmFtZXMiOlsiUHJpY2luZ0hpc3RvcnlHcmFwaCIsImRhdGEiLCJjdXJyZW50UHJpY2UiLCJsZW5ndGgiLCJ3aWR0aCIsImhlaWdodCIsInBhZGRpbmciLCJwcmljZXMiLCJtYXAiLCJkIiwicHJpY2UiLCJtaW5QcmljZSIsIk1hdGgiLCJtaW4iLCJtYXhQcmljZSIsIm1heCIsInByaWNlUmFuZ2UiLCJwb2ludHMiLCJwb2ludCIsImluZGV4IiwieCIsIm5vcm1hbGl6ZWRQcmljZSIsInkiLCJwYXRoRGF0YSIsImpvaW4iLCJhcmVhUGF0aCIsImZvcm1hdERhdGUiLCJkYXRlU3RyIiwiZGF0ZSIsIkRhdGUiLCJ0b0xvY2FsZURhdGVTdHJpbmciLCJtb250aCIsImRheSIsImRpdiIsImNsYXNzTmFtZSIsInNwYW4iLCJ0b0ZpeGVkIiwic3ZnIiwidmlld0JveCIsInByZXNlcnZlQXNwZWN0UmF0aW8iLCJkZWZzIiwibGluZWFyR3JhZGllbnQiLCJpZCIsIngxIiwieTEiLCJ4MiIsInkyIiwic3RvcCIsIm9mZnNldCIsInN0b3BDb2xvciIsInN0b3BPcGFjaXR5IiwicGF0aCIsImZpbGwiLCJzdHJva2UiLCJzdHJva2VXaWR0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsImNpcmNsZSIsImN4IiwiY3kiLCJyIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/PricingHistoryGraph.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.c5fccd017612ecaa.hot-update.js b/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.c5fccd017612ecaa.hot-update.js
deleted file mode 100644
index 6e9971c..0000000
--- a/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.c5fccd017612ecaa.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/[categoryId]/[partId]/page",{
-
-/***/ "(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":
-/*!*******************************************************!*\
- !*** ./app/gunbuilder/[categoryId]/[partId]/page.tsx ***!
- \*******************************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ PartDetailPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\nfunction PartDetailPage() {\n _s();\n const params = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams)();\n const categoryId = params.categoryId;\n const partId = params.partId;\n const category = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.find((c)=>c.id === categoryId), [\n categoryId\n ]);\n const part = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.find((p)=>p.id === partId && p.categoryId === categoryId), [\n partId,\n categoryId\n ]);\n if (!category || !part) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-2xl font-semibold text-zinc-50 mb-4\",\n children: \"Product Not Found\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 32,\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: \"/gunbuilder\",\n className: \"text-amber-300 hover:text-amber-200 underline\",\n children: \"Return to Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 35,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 31,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 30,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 29,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder/\".concat(categoryId),\n className: \"text-xs text-zinc-400 hover:text-zinc-300 mb-4 inline-block\",\n children: [\n \"← Back to \",\n category.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 52,\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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 59,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n part.brand,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 63,\n columnNumber: 28\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 62,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: [\n category.name,\n \" • Product Details\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 65,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 58,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 51,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 lg:grid-cols-[2fr,1fr]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-6 md:grid-cols-[1fr,1fr]\",\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)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400 mb-2\",\n children: \"Product Information\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 78,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Brand\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 83,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.brand\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 86,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 82,\n columnNumber: 19\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Model\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 91,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 94,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 90,\n columnNumber: 19\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Category\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 99,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: category.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 102,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 98,\n columnNumber: 19\n }, this),\n part.notes && /*#__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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Details\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 108,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-300 leading-relaxed\",\n children: part.notes\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 111,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 107,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 81,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 77,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full aspect-square max-w-md rounded-md border border-zinc-700 bg-zinc-900/50 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center p-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-16 h-16 mx-auto text-zinc-600 mb-2\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5,\n d: \"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 130,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 123,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide\",\n children: \"Product Image\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 137,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 122,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 121,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 120,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 75,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 74,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/80 p-4 md:p-6 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-400 mb-2\",\n children: \"Price\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 149,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-3xl font-semibold text-amber-300\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 150,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 148,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-auto space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder?select=\".concat(categoryId, \":\").concat(part.id),\n className: \"block w-full rounded-md border border-amber-400/60 bg-amber-400/10 px-4 py-3 text-sm font-medium text-amber-200 hover:bg-amber-400/15 text-center transition-colors\",\n children: \"Add to Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 156,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: part.affiliateUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"block w-full rounded-md border border-zinc-700 bg-zinc-900/50 px-4 py-3 text-sm font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 text-center transition-colors\",\n children: \"View Retailer\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 162,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 155,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 147,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 72,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 49,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 48,\n columnNumber: 5\n }, this);\n}\n_s(PartDetailPage, \"x98W2lsgkrj67cp5WacZHnLLPfg=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams\n ];\n});\n_c = PartDetailPage;\nvar _c;\n$RefreshReg$(_c, \"PartDetailPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9bcGFydElkXS9wYWdlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFZ0M7QUFDSDtBQUNlO0FBQ2U7QUFNNUMsU0FBU0s7O0lBQ3RCLE1BQU1DLFNBQVNKLDBEQUFTQTtJQUN4QixNQUFNSyxhQUFhRCxPQUFPQyxVQUFVO0lBQ3BDLE1BQU1DLFNBQVNGLE9BQU9FLE1BQU07SUFFNUIsTUFBTUMsV0FBV1QsOENBQU9BLENBQ3RCLElBQU1HLDZEQUFVQSxDQUFDTyxJQUFJLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsRUFBRSxLQUFLTCxhQUN0QztRQUFDQTtLQUFXO0lBR2QsTUFBTU0sT0FBT2IsOENBQU9BLENBQ2xCLElBQU1JLHdEQUFLQSxDQUFDTSxJQUFJLENBQUMsQ0FBQ0ksSUFBTUEsRUFBRUYsRUFBRSxLQUFLSixVQUFVTSxFQUFFUCxVQUFVLEtBQUtBLGFBQzVEO1FBQUNDO1FBQVFEO0tBQVc7SUFHdEIsSUFBSSxDQUFDRSxZQUFZLENBQUNJLE1BQU07UUFDdEIscUJBQ0UsOERBQUNFO1lBQUtDLFdBQVU7c0JBQ2QsNEVBQUNDO2dCQUFJRCxXQUFVOzBCQUNiLDRFQUFDQztvQkFBSUQsV0FBVTs7c0NBQ2IsOERBQUNFOzRCQUFHRixXQUFVO3NDQUEyQzs7Ozs7O3NDQUd6RCw4REFBQ2YsaURBQUlBOzRCQUNIa0IsTUFBSzs0QkFDTEgsV0FBVTtzQ0FDWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQU9YO0lBRUEscUJBQ0UsOERBQUNEO1FBQUtDLFdBQVU7a0JBQ2QsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUViLDhEQUFDSTtvQkFBT0osV0FBVTs7c0NBQ2hCLDhEQUFDZixpREFBSUE7NEJBQ0hrQixNQUFNLGVBQTBCLE9BQVhaOzRCQUNyQlMsV0FBVTs7Z0NBQ1g7Z0NBQ1lQLFNBQVNZLElBQUk7Ozs7Ozs7c0NBRTFCLDhEQUFDSjs7OENBQ0MsOERBQUNIO29DQUFFRSxXQUFVOzhDQUFpRTs7Ozs7OzhDQUc5RSw4REFBQ0U7b0NBQUdGLFdBQVU7O3dDQUNYSCxLQUFLUyxLQUFLO3dDQUFDO3NEQUFDLDhEQUFDQzs0Q0FBS1AsV0FBVTtzREFBa0JILEtBQUtRLElBQUk7Ozs7Ozs7Ozs7Ozs4Q0FFMUQsOERBQUNQO29DQUFFRSxXQUFVOzt3Q0FDVlAsU0FBU1ksSUFBSTt3Q0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFNckIsOERBQUNKO29CQUFJRCxXQUFVOztzQ0FFYiw4REFBQ1E7NEJBQVFSLFdBQVU7c0NBQ2pCLDRFQUFDQztnQ0FBSUQsV0FBVTs7a0RBRWIsOERBQUNDOzswREFDQyw4REFBQ0E7Z0RBQUlELFdBQVU7MERBQXVFOzs7Ozs7MERBR3RGLDhEQUFDQztnREFBSUQsV0FBVTs7a0VBQ2IsOERBQUNDOzswRUFDQyw4REFBQ0E7Z0VBQUlELFdBQVU7MEVBQXFEOzs7Ozs7MEVBR3BFLDhEQUFDQztnRUFBSUQsV0FBVTswRUFDWkgsS0FBS1MsS0FBSzs7Ozs7Ozs7Ozs7O2tFQUdmLDhEQUFDTDs7MEVBQ0MsOERBQUNBO2dFQUFJRCxXQUFVOzBFQUFxRDs7Ozs7OzBFQUdwRSw4REFBQ0M7Z0VBQUlELFdBQVU7MEVBQ1pILEtBQUtRLElBQUk7Ozs7Ozs7Ozs7OztrRUFHZCw4REFBQ0o7OzBFQUNDLDhEQUFDQTtnRUFBSUQsV0FBVTswRUFBcUQ7Ozs7OzswRUFHcEUsOERBQUNDO2dFQUFJRCxXQUFVOzBFQUNaUCxTQUFTWSxJQUFJOzs7Ozs7Ozs7Ozs7b0RBR2pCUixLQUFLWSxLQUFLLGtCQUNULDhEQUFDUjs7MEVBQ0MsOERBQUNBO2dFQUFJRCxXQUFVOzBFQUFxRDs7Ozs7OzBFQUdwRSw4REFBQ0M7Z0VBQUlELFdBQVU7MEVBQ1pILEtBQUtZLEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrREFRckIsOERBQUNSO3dDQUFJRCxXQUFVO2tEQUNiLDRFQUFDQzs0Q0FBSUQsV0FBVTtzREFDYiw0RUFBQ0M7Z0RBQUlELFdBQVU7O2tFQUNiLDhEQUFDVTt3REFDQ1YsV0FBVTt3REFDVlcsTUFBSzt3REFDTEMsUUFBTzt3REFDUEMsU0FBUTt3REFDUkMsT0FBTTtrRUFFTiw0RUFBQ0M7NERBQ0NDLGVBQWM7NERBQ2RDLGdCQUFlOzREQUNmQyxhQUFhOzREQUNiQyxHQUFFOzs7Ozs7Ozs7OztrRUFHTiw4REFBQ3JCO3dEQUFFRSxXQUFVO2tFQUFnRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQVV2RSw4REFBQ29COzRCQUFNcEIsV0FBVTs7OENBQ2YsOERBQUNDO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ0M7NENBQUlELFdBQVU7c0RBQTZCOzs7Ozs7c0RBQzVDLDhEQUFDQzs0Q0FBSUQsV0FBVTs7Z0RBQXdDO2dEQUNuREgsS0FBS3dCLEtBQUssQ0FBQ0MsT0FBTyxDQUFDOzs7Ozs7Ozs7Ozs7OzhDQUl6Qiw4REFBQ3JCO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ2YsaURBQUlBOzRDQUNIa0IsTUFBTSxzQkFBb0NOLE9BQWROLFlBQVcsS0FBVyxPQUFSTSxLQUFLRCxFQUFFOzRDQUNqREksV0FBVTtzREFDWDs7Ozs7O3NEQUdELDhEQUFDdUI7NENBQ0NwQixNQUFNTixLQUFLMkIsWUFBWTs0Q0FDdkJDLFFBQU87NENBQ1BDLEtBQUk7NENBQ0oxQixXQUFVO3NEQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVNmO0dBcEt3Qlg7O1FBQ1BILHNEQUFTQTs7O0tBREZHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9bcGFydElkXS9wYWdlLnRzeD80MmMxIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgeyB1c2VNZW1vIH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XG5pbXBvcnQgeyB1c2VQYXJhbXMgfSBmcm9tIFwibmV4dC9uYXZpZ2F0aW9uXCI7XG5pbXBvcnQgeyBDQVRFR09SSUVTLCBQQVJUUyB9IGZyb20gXCJAL2RhdGEvZ3VuYnVpbGRlclBhcnRzXCI7XG5pbXBvcnQgdHlwZSB7IENhdGVnb3J5SWQgfSBmcm9tIFwiQC90eXBlcy9ndW5idWlsZGVyXCI7XG5pbXBvcnQgeyBnZXRQcmljaW5nSGlzdG9yeSwgZ2V0UmV0YWlsZXJPZmZlcnMgfSBmcm9tIFwiLi9kYXRhXCI7XG5pbXBvcnQgeyBQcmljaW5nSGlzdG9yeUdyYXBoIH0gZnJvbSBcIkAvY29tcG9uZW50cy9QcmljaW5nSGlzdG9yeUdyYXBoXCI7XG5pbXBvcnQgeyBSZXRhaWxlcnNMaXN0IH0gZnJvbSBcIkAvY29tcG9uZW50cy9SZXRhaWxlcnNMaXN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIFBhcnREZXRhaWxQYWdlKCkge1xuICBjb25zdCBwYXJhbXMgPSB1c2VQYXJhbXMoKTtcbiAgY29uc3QgY2F0ZWdvcnlJZCA9IHBhcmFtcy5jYXRlZ29yeUlkIGFzIENhdGVnb3J5SWQ7XG4gIGNvbnN0IHBhcnRJZCA9IHBhcmFtcy5wYXJ0SWQgYXMgc3RyaW5nO1xuXG4gIGNvbnN0IGNhdGVnb3J5ID0gdXNlTWVtbyhcbiAgICAoKSA9PiBDQVRFR09SSUVTLmZpbmQoKGMpID0+IGMuaWQgPT09IGNhdGVnb3J5SWQpLFxuICAgIFtjYXRlZ29yeUlkXSxcbiAgKTtcblxuICBjb25zdCBwYXJ0ID0gdXNlTWVtbyhcbiAgICAoKSA9PiBQQVJUUy5maW5kKChwKSA9PiBwLmlkID09PSBwYXJ0SWQgJiYgcC5jYXRlZ29yeUlkID09PSBjYXRlZ29yeUlkKSxcbiAgICBbcGFydElkLCBjYXRlZ29yeUlkXSxcbiAgKTtcblxuICBpZiAoIWNhdGVnb3J5IHx8ICFwYXJ0KSB7XG4gICAgcmV0dXJuIChcbiAgICAgIDxtYWluIGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1ibGFjayB0ZXh0LXppbmMtNTBcIj5cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteC1hdXRvIG1heC13LTZ4bCBweC00IHB5LTYgbGc6cHktMTBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyXCI+XG4gICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwidGV4dC0yeGwgZm9udC1zZW1pYm9sZCB0ZXh0LXppbmMtNTAgbWItNFwiPlxuICAgICAgICAgICAgICBQcm9kdWN0IE5vdCBGb3VuZFxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgIGhyZWY9XCIvZ3VuYnVpbGRlclwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtYW1iZXItMzAwIGhvdmVyOnRleHQtYW1iZXItMjAwIHVuZGVybGluZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIFJldHVybiB0byBHdW5idWlsZGVyXG4gICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYWluPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxtYWluIGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1ibGFjayB0ZXh0LXppbmMtNTBcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXgtYXV0byBtYXgtdy02eGwgcHgtNCBweS02IGxnOnB5LTEwXCI+XG4gICAgICAgIHsvKiBIZWFkZXIgKi99XG4gICAgICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwibWItNlwiPlxuICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICBocmVmPXtgL2d1bmJ1aWxkZXIvJHtjYXRlZ29yeUlkfWB9XG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy00MDAgaG92ZXI6dGV4dC16aW5jLTMwMCBtYi00IGlubGluZS1ibG9ja1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAg4oaQIEJhY2sgdG8ge2NhdGVnb3J5Lm5hbWV9XG4gICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdHJhY2tpbmctWzAuMmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgICAgICBTaGFkb3cgU3RhbmRhcmRcbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJtdC0xIHRleHQtMnhsIG1kOnRleHQtM3hsIGZvbnQtc2VtaWJvbGQgdHJhY2tpbmctdGlnaHRcIj5cbiAgICAgICAgICAgICAge3BhcnQuYnJhbmR9IDxzcGFuIGNsYXNzTmFtZT1cInRleHQtYW1iZXItMzAwXCI+e3BhcnQubmFtZX08L3NwYW4+XG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibXQtMiB0ZXh0LXNtIHRleHQtemluYy00MDAgbWF4LXcteGxcIj5cbiAgICAgICAgICAgICAge2NhdGVnb3J5Lm5hbWV9IOKAoiBQcm9kdWN0IERldGFpbHNcbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgey8qIFByb2R1Y3QgRGV0YWlscyAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC00IGxnOmdyaWQtY29scy1bMmZyLDFmcl1cIj5cbiAgICAgICAgICB7LyogTWFpbiBDb250ZW50ICovfVxuICAgICAgICAgIDxzZWN0aW9uIGNsYXNzTmFtZT1cInJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci16aW5jLTgwMCBiZy16aW5jLTk1MC82MCBwLTQgbWQ6cC02XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ2FwLTYgbWQ6Z3JpZC1jb2xzLVsxZnIsMWZyXVwiPlxuICAgICAgICAgICAgICB7LyogUHJvZHVjdCBJbmZvICovfVxuICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRyYWNraW5nLVswLjE2ZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNDAwIG1iLTJcIj5cbiAgICAgICAgICAgICAgICAgIFByb2R1Y3QgSW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktM1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy01MDAgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGUgbWItMVwiPlxuICAgICAgICAgICAgICAgICAgICAgIEJyYW5kXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtbGcgZm9udC1zZW1pYm9sZCB0ZXh0LXppbmMtNTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICB7cGFydC5icmFuZH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICBNb2RlbFxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3BhcnQubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICBDYXRlZ29yeVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAge2NhdGVnb3J5Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICB7cGFydC5ub3RlcyAmJiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy01MDAgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGUgbWItMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXppbmMtMzAwIGxlYWRpbmctcmVsYXhlZFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubm90ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgey8qIFByb2R1Y3QgSW1hZ2UgKi99XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1zdGFydCBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy1mdWxsIGFzcGVjdC1zcXVhcmUgbWF4LXctbWQgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXppbmMtNzAwIGJnLXppbmMtOTAwLzUwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHAtOFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy0xNiBoLTE2IG14LWF1dG8gdGV4dC16aW5jLTYwMCBtYi0yXCJcbiAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17MS41fVxuICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00IDE2bDQuNTg2LTQuNTg2YTIgMiAwIDAxMi44MjggMEwxNiAxNm0tMi0ybDEuNTg2LTEuNTg2YTIgMiAwIDAxMi44MjggMEwyMCAxNG0tNi02aC4wMU02IDIwaDEyYTIgMiAwIDAwMi0yVjZhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyelwiXG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIFByb2R1Y3QgSW1hZ2VcbiAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9zZWN0aW9uPlxuXG4gICAgICAgICAgey8qIFNpZGViYXIgKi99XG4gICAgICAgICAgPGFzaWRlIGNsYXNzTmFtZT1cInJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci16aW5jLTgwMCBiZy16aW5jLTk1MC84MCBwLTQgbWQ6cC02IGZsZXggZmxleC1jb2xcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItNFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTQwMCBtYi0yXCI+UHJpY2U8L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LTN4bCBmb250LXNlbWlib2xkIHRleHQtYW1iZXItMzAwXCI+XG4gICAgICAgICAgICAgICAgJHtwYXJ0LnByaWNlLnRvRml4ZWQoMil9XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtYXV0byBzcGFjZS15LTNcIj5cbiAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICBocmVmPXtgL2d1bmJ1aWxkZXI/c2VsZWN0PSR7Y2F0ZWdvcnlJZH06JHtwYXJ0LmlkfWB9XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmxvY2sgdy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci1hbWJlci00MDAvNjAgYmctYW1iZXItNDAwLzEwIHB4LTQgcHktMyB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtYW1iZXItMjAwIGhvdmVyOmJnLWFtYmVyLTQwMC8xNSB0ZXh0LWNlbnRlciB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBBZGQgdG8gQnVpbGRcbiAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGhyZWY9e3BhcnQuYWZmaWxpYXRlVXJsfVxuICAgICAgICAgICAgICAgIHRhcmdldD1cIl9ibGFua1wiXG4gICAgICAgICAgICAgICAgcmVsPVwibm9vcGVuZXIgbm9yZWZlcnJlclwiXG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmxvY2sgdy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTcwMCBiZy16aW5jLTkwMC81MCBweC00IHB5LTMgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LXppbmMtMzAwIGhvdmVyOmJnLXppbmMtODAwIGhvdmVyOmJvcmRlci16aW5jLTYwMCB0ZXh0LWNlbnRlciB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IFJldGFpbGVyXG4gICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYXNpZGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYWluPlxuICApO1xufVxuXG4iXSwibmFtZXMiOlsidXNlTWVtbyIsIkxpbmsiLCJ1c2VQYXJhbXMiLCJDQVRFR09SSUVTIiwiUEFSVFMiLCJQYXJ0RGV0YWlsUGFnZSIsInBhcmFtcyIsImNhdGVnb3J5SWQiLCJwYXJ0SWQiLCJjYXRlZ29yeSIsImZpbmQiLCJjIiwiaWQiLCJwYXJ0IiwicCIsIm1haW4iLCJjbGFzc05hbWUiLCJkaXYiLCJoMSIsImhyZWYiLCJoZWFkZXIiLCJuYW1lIiwiYnJhbmQiLCJzcGFuIiwic2VjdGlvbiIsIm5vdGVzIiwic3ZnIiwiZmlsbCIsInN0cm9rZSIsInZpZXdCb3giLCJ4bWxucyIsInBhdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJzdHJva2VXaWR0aCIsImQiLCJhc2lkZSIsInByaWNlIiwidG9GaXhlZCIsImEiLCJhZmZpbGlhdGVVcmwiLCJ0YXJnZXQiLCJyZWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.cbda6c3666c270dc.hot-update.js b/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.cbda6c3666c270dc.hot-update.js
deleted file mode 100644
index 211fccb..0000000
--- a/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.cbda6c3666c270dc.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/[categoryId]/[partId]/page",{
-
-/***/ "(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":
-/*!*******************************************************!*\
- !*** ./app/gunbuilder/[categoryId]/[partId]/page.tsx ***!
- \*******************************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ PartDetailPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./data */ \"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/data.ts\");\n/* harmony import */ var _components_RetailersList__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! @/components/RetailersList */ \"(app-pages-browser)/./components/RetailersList.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\n\nfunction PartDetailPage() {\n _s();\n const params = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams)();\n const categoryId = params.categoryId;\n const partId = params.partId;\n const category = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.find((c)=>c.id === categoryId), [\n categoryId\n ]);\n const part = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.find((p)=>p.id === partId && p.categoryId === categoryId), [\n partId,\n categoryId\n ]);\n // Get pricing history and retailer offers\n // TODO: Replace with API calls when endpoints are ready\n const pricingHistory = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>part ? (0,_data__WEBPACK_IMPORTED_MODULE_5__.getPricingHistory)(part.id, part.price) : [], [\n part\n ]);\n const retailerOffers = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>part ? (0,_data__WEBPACK_IMPORTED_MODULE_5__.getRetailerOffers)(part.id, part.price, part.affiliateUrl) : [], [\n part\n ]);\n if (!category || !part) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-2xl font-semibold text-zinc-50 mb-4\",\n children: \"Product Not Found\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 47,\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: \"/gunbuilder\",\n className: \"text-amber-300 hover:text-amber-200 underline\",\n children: \"Return to Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 50,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 45,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 44,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder/\".concat(categoryId),\n className: \"text-xs text-zinc-400 hover:text-zinc-300 mb-4 inline-block\",\n children: [\n \"← Back to \",\n category.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 67,\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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 74,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n part.brand,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 78,\n columnNumber: 28\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 77,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: [\n category.name,\n \" • Product Details\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 80,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 73,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 66,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 lg:grid-cols-[2fr,1fr]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"space-y-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-6 md:grid-cols-[1fr,1fr]\",\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)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400 mb-2\",\n children: \"Product Information\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 95,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Brand\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 100,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.brand\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 103,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 99,\n columnNumber: 21\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Model\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 108,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 111,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 107,\n columnNumber: 21\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Category\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 116,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: category.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 119,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 115,\n columnNumber: 21\n }, this),\n part.notes && /*#__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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Details\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 125,\n columnNumber: 25\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-300 leading-relaxed\",\n children: part.notes\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 128,\n columnNumber: 25\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 124,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 98,\n columnNumber: 19\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 94,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full aspect-square max-w-md rounded-md border border-zinc-700 bg-zinc-900/50 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center p-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-16 h-16 mx-auto text-zinc-600 mb-2\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5,\n d: \"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 147,\n columnNumber: 25\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 140,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide\",\n children: \"Product Image\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 154,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 139,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 138,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 137,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 92,\n columnNumber: 15\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 91,\n columnNumber: 13\n }, this),\n retailerOffers.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_RetailersList__WEBPACK_IMPORTED_MODULE_6__.RetailersList, {\n retailers: retailerOffers\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 166,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 165,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 89,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/80 p-4 md:p-6 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-400 mb-2\",\n children: \"Price\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 174,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-3xl font-semibold text-amber-300\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 175,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 173,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-auto space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder?select=\".concat(categoryId, \":\").concat(part.id),\n className: \"block w-full rounded-md border border-amber-400/60 bg-amber-400/10 px-4 py-3 text-sm font-medium text-amber-200 hover:bg-amber-400/15 text-center transition-colors\",\n children: \"Add to Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 181,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: part.affiliateUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"block w-full rounded-md border border-zinc-700 bg-zinc-900/50 px-4 py-3 text-sm font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 text-center transition-colors\",\n children: \"View Retailer\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 187,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 180,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 172,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 87,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 64,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 63,\n columnNumber: 5\n }, this);\n}\n_s(PartDetailPage, \"ZpwVUtr8mmMYWPNCCmGSoaSl2YI=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams\n ];\n});\n_c = PartDetailPage;\nvar _c;\n$RefreshReg$(_c, \"PartDetailPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9bcGFydElkXS9wYWdlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztBQUVnQztBQUNIO0FBQ2U7QUFDZTtBQUVHO0FBRUg7QUFFNUMsU0FBU1E7O0lBQ3RCLE1BQU1DLFNBQVNQLDBEQUFTQTtJQUN4QixNQUFNUSxhQUFhRCxPQUFPQyxVQUFVO0lBQ3BDLE1BQU1DLFNBQVNGLE9BQU9FLE1BQU07SUFFNUIsTUFBTUMsV0FBV1osOENBQU9BLENBQ3RCLElBQU1HLDZEQUFVQSxDQUFDVSxJQUFJLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsRUFBRSxLQUFLTCxhQUN0QztRQUFDQTtLQUFXO0lBR2QsTUFBTU0sT0FBT2hCLDhDQUFPQSxDQUNsQixJQUFNSSx3REFBS0EsQ0FBQ1MsSUFBSSxDQUFDLENBQUNJLElBQU1BLEVBQUVGLEVBQUUsS0FBS0osVUFBVU0sRUFBRVAsVUFBVSxLQUFLQSxhQUM1RDtRQUFDQztRQUFRRDtLQUFXO0lBR3RCLDBDQUEwQztJQUMxQyx3REFBd0Q7SUFDeEQsTUFBTVEsaUJBQWlCbEIsOENBQU9BLENBQzVCLElBQU9nQixPQUFPWCx3REFBaUJBLENBQUNXLEtBQUtELEVBQUUsRUFBRUMsS0FBS0csS0FBSyxJQUFJLEVBQUUsRUFDekQ7UUFBQ0g7S0FBSztJQUdSLE1BQU1JLGlCQUFpQnBCLDhDQUFPQSxDQUM1QixJQUNFZ0IsT0FDSVYsd0RBQWlCQSxDQUFDVSxLQUFLRCxFQUFFLEVBQUVDLEtBQUtHLEtBQUssRUFBRUgsS0FBS0ssWUFBWSxJQUN4RCxFQUFFLEVBQ1I7UUFBQ0w7S0FBSztJQUdSLElBQUksQ0FBQ0osWUFBWSxDQUFDSSxNQUFNO1FBQ3RCLHFCQUNFLDhEQUFDTTtZQUFLQyxXQUFVO3NCQUNkLDRFQUFDQztnQkFBSUQsV0FBVTswQkFDYiw0RUFBQ0M7b0JBQUlELFdBQVU7O3NDQUNiLDhEQUFDRTs0QkFBR0YsV0FBVTtzQ0FBMkM7Ozs7OztzQ0FHekQsOERBQUN0QixpREFBSUE7NEJBQ0h5QixNQUFLOzRCQUNMSCxXQUFVO3NDQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBT1g7SUFFQSxxQkFDRSw4REFBQ0Q7UUFBS0MsV0FBVTtrQkFDZCw0RUFBQ0M7WUFBSUQsV0FBVTs7OEJBRWIsOERBQUNJO29CQUFPSixXQUFVOztzQ0FDaEIsOERBQUN0QixpREFBSUE7NEJBQ0h5QixNQUFNLGVBQTBCLE9BQVhoQjs0QkFDckJhLFdBQVU7O2dDQUNYO2dDQUNZWCxTQUFTZ0IsSUFBSTs7Ozs7OztzQ0FFMUIsOERBQUNKOzs4Q0FDQyw4REFBQ1A7b0NBQUVNLFdBQVU7OENBQWlFOzs7Ozs7OENBRzlFLDhEQUFDRTtvQ0FBR0YsV0FBVTs7d0NBQ1hQLEtBQUthLEtBQUs7d0NBQUM7c0RBQUMsOERBQUNDOzRDQUFLUCxXQUFVO3NEQUFrQlAsS0FBS1ksSUFBSTs7Ozs7Ozs7Ozs7OzhDQUUxRCw4REFBQ1g7b0NBQUVNLFdBQVU7O3dDQUNWWCxTQUFTZ0IsSUFBSTt3Q0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFNckIsOERBQUNKO29CQUFJRCxXQUFVOztzQ0FFYiw4REFBQ1E7NEJBQVFSLFdBQVU7OzhDQUVqQiw4REFBQ0M7b0NBQUlELFdBQVU7OENBQ2IsNEVBQUNDO3dDQUFJRCxXQUFVOzswREFFYiw4REFBQ0M7O2tFQUNDLDhEQUFDQTt3REFBSUQsV0FBVTtrRUFBdUU7Ozs7OztrRUFHdEYsOERBQUNDO3dEQUFJRCxXQUFVOzswRUFDYiw4REFBQ0M7O2tGQUNDLDhEQUFDQTt3RUFBSUQsV0FBVTtrRkFBcUQ7Ozs7OztrRkFHcEUsOERBQUNDO3dFQUFJRCxXQUFVO2tGQUNaUCxLQUFLYSxLQUFLOzs7Ozs7Ozs7Ozs7MEVBR2YsOERBQUNMOztrRkFDQyw4REFBQ0E7d0VBQUlELFdBQVU7a0ZBQXFEOzs7Ozs7a0ZBR3BFLDhEQUFDQzt3RUFBSUQsV0FBVTtrRkFDWlAsS0FBS1ksSUFBSTs7Ozs7Ozs7Ozs7OzBFQUdkLDhEQUFDSjs7a0ZBQ0MsOERBQUNBO3dFQUFJRCxXQUFVO2tGQUFxRDs7Ozs7O2tGQUdwRSw4REFBQ0M7d0VBQUlELFdBQVU7a0ZBQ1pYLFNBQVNnQixJQUFJOzs7Ozs7Ozs7Ozs7NERBR2pCWixLQUFLZ0IsS0FBSyxrQkFDVCw4REFBQ1I7O2tGQUNDLDhEQUFDQTt3RUFBSUQsV0FBVTtrRkFBcUQ7Ozs7OztrRkFHcEUsOERBQUNDO3dFQUFJRCxXQUFVO2tGQUNaUCxLQUFLZ0IsS0FBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBEQVFyQiw4REFBQ1I7Z0RBQUlELFdBQVU7MERBQ2IsNEVBQUNDO29EQUFJRCxXQUFVOzhEQUNiLDRFQUFDQzt3REFBSUQsV0FBVTs7MEVBQ2IsOERBQUNVO2dFQUNDVixXQUFVO2dFQUNWVyxNQUFLO2dFQUNMQyxRQUFPO2dFQUNQQyxTQUFRO2dFQUNSQyxPQUFNOzBFQUVOLDRFQUFDQztvRUFDQ0MsZUFBYztvRUFDZEMsZ0JBQWU7b0VBQ2ZDLGFBQWE7b0VBQ2JDLEdBQUU7Ozs7Ozs7Ozs7OzBFQUdOLDhEQUFDekI7Z0VBQUVNLFdBQVU7MEVBQWdEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Z0NBVXRFSCxlQUFldUIsTUFBTSxHQUFHLG1CQUN2Qiw4REFBQ25CO29DQUFJRCxXQUFVOzhDQUNiLDRFQUFDaEIsb0VBQWFBO3dDQUFDcUMsV0FBV3hCOzs7Ozs7Ozs7Ozs7Ozs7OztzQ0FNaEMsOERBQUN5Qjs0QkFBTXRCLFdBQVU7OzhDQUNmLDhEQUFDQztvQ0FBSUQsV0FBVTs7c0RBQ2IsOERBQUNDOzRDQUFJRCxXQUFVO3NEQUE2Qjs7Ozs7O3NEQUM1Qyw4REFBQ0M7NENBQUlELFdBQVU7O2dEQUF3QztnREFDbkRQLEtBQUtHLEtBQUssQ0FBQzJCLE9BQU8sQ0FBQzs7Ozs7Ozs7Ozs7Ozs4Q0FJekIsOERBQUN0QjtvQ0FBSUQsV0FBVTs7c0RBQ2IsOERBQUN0QixpREFBSUE7NENBQ0h5QixNQUFNLHNCQUFvQ1YsT0FBZE4sWUFBVyxLQUFXLE9BQVJNLEtBQUtELEVBQUU7NENBQ2pEUSxXQUFVO3NEQUNYOzs7Ozs7c0RBR0QsOERBQUN3Qjs0Q0FDQ3JCLE1BQU1WLEtBQUtLLFlBQVk7NENBQ3ZCMkIsUUFBTzs0Q0FDUEMsS0FBSTs0Q0FDSjFCLFdBQVU7c0RBQ1g7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBU2Y7R0E3THdCZjs7UUFDUE4sc0RBQVNBOzs7S0FERk0iLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2d1bmJ1aWxkZXIvW2NhdGVnb3J5SWRdL1twYXJ0SWRdL3BhZ2UudHN4PzQyYzEiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCB7IHVzZU1lbW8gfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcbmltcG9ydCB7IHVzZVBhcmFtcyB9IGZyb20gXCJuZXh0L25hdmlnYXRpb25cIjtcbmltcG9ydCB7IENBVEVHT1JJRVMsIFBBUlRTIH0gZnJvbSBcIkAvZGF0YS9ndW5idWlsZGVyUGFydHNcIjtcbmltcG9ydCB0eXBlIHsgQ2F0ZWdvcnlJZCB9IGZyb20gXCJAL3R5cGVzL2d1bmJ1aWxkZXJcIjtcbmltcG9ydCB7IGdldFByaWNpbmdIaXN0b3J5LCBnZXRSZXRhaWxlck9mZmVycyB9IGZyb20gXCIuL2RhdGFcIjtcbmltcG9ydCB7IFByaWNpbmdIaXN0b3J5R3JhcGggfSBmcm9tIFwiQC9jb21wb25lbnRzL1ByaWNpbmdIaXN0b3J5R3JhcGhcIjtcbmltcG9ydCB7IFJldGFpbGVyc0xpc3QgfSBmcm9tIFwiQC9jb21wb25lbnRzL1JldGFpbGVyc0xpc3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gUGFydERldGFpbFBhZ2UoKSB7XG4gIGNvbnN0IHBhcmFtcyA9IHVzZVBhcmFtcygpO1xuICBjb25zdCBjYXRlZ29yeUlkID0gcGFyYW1zLmNhdGVnb3J5SWQgYXMgQ2F0ZWdvcnlJZDtcbiAgY29uc3QgcGFydElkID0gcGFyYW1zLnBhcnRJZCBhcyBzdHJpbmc7XG5cbiAgY29uc3QgY2F0ZWdvcnkgPSB1c2VNZW1vKFxuICAgICgpID0+IENBVEVHT1JJRVMuZmluZCgoYykgPT4gYy5pZCA9PT0gY2F0ZWdvcnlJZCksXG4gICAgW2NhdGVnb3J5SWRdLFxuICApO1xuXG4gIGNvbnN0IHBhcnQgPSB1c2VNZW1vKFxuICAgICgpID0+IFBBUlRTLmZpbmQoKHApID0+IHAuaWQgPT09IHBhcnRJZCAmJiBwLmNhdGVnb3J5SWQgPT09IGNhdGVnb3J5SWQpLFxuICAgIFtwYXJ0SWQsIGNhdGVnb3J5SWRdLFxuICApO1xuXG4gIC8vIEdldCBwcmljaW5nIGhpc3RvcnkgYW5kIHJldGFpbGVyIG9mZmVyc1xuICAvLyBUT0RPOiBSZXBsYWNlIHdpdGggQVBJIGNhbGxzIHdoZW4gZW5kcG9pbnRzIGFyZSByZWFkeVxuICBjb25zdCBwcmljaW5nSGlzdG9yeSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gKHBhcnQgPyBnZXRQcmljaW5nSGlzdG9yeShwYXJ0LmlkLCBwYXJ0LnByaWNlKSA6IFtdKSxcbiAgICBbcGFydF0sXG4gICk7XG5cbiAgY29uc3QgcmV0YWlsZXJPZmZlcnMgPSB1c2VNZW1vKFxuICAgICgpID0+XG4gICAgICBwYXJ0XG4gICAgICAgID8gZ2V0UmV0YWlsZXJPZmZlcnMocGFydC5pZCwgcGFydC5wcmljZSwgcGFydC5hZmZpbGlhdGVVcmwpXG4gICAgICAgIDogW10sXG4gICAgW3BhcnRdLFxuICApO1xuXG4gIGlmICghY2F0ZWdvcnkgfHwgIXBhcnQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPG1haW4gY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLWJsYWNrIHRleHQtemluYy01MFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14LWF1dG8gbWF4LXctNnhsIHB4LTQgcHktNiBsZzpweS0xMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LXNlbWlib2xkIHRleHQtemluYy01MCBtYi00XCI+XG4gICAgICAgICAgICAgIFByb2R1Y3QgTm90IEZvdW5kXG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgaHJlZj1cIi9ndW5idWlsZGVyXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDAgaG92ZXI6dGV4dC1hbWJlci0yMDAgdW5kZXJsaW5lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgUmV0dXJuIHRvIEd1bmJ1aWxkZXJcbiAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21haW4+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPG1haW4gY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLWJsYWNrIHRleHQtemluYy01MFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJteC1hdXRvIG1heC13LTZ4bCBweC00IHB5LTYgbGc6cHktMTBcIj5cbiAgICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJtYi02XCI+XG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIGhyZWY9e2AvZ3VuYnVpbGRlci8ke2NhdGVnb3J5SWR9YH1cbiAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTQwMCBob3Zlcjp0ZXh0LXppbmMtMzAwIG1iLTQgaW5saW5lLWJsb2NrXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICDihpAgQmFjayB0byB7Y2F0ZWdvcnkubmFtZX1cbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4yZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICAgIFNoYWRvdyBTdGFuZGFyZFxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm10LTEgdGV4dC0yeGwgbWQ6dGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0cmFja2luZy10aWdodFwiPlxuICAgICAgICAgICAgICB7cGFydC5icmFuZH0gPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDBcIj57cGFydC5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0yIHRleHQtc20gdGV4dC16aW5jLTQwMCBtYXgtdy14bFwiPlxuICAgICAgICAgICAgICB7Y2F0ZWdvcnkubmFtZX0g4oCiIFByb2R1Y3QgRGV0YWlsc1xuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICB7LyogUHJvZHVjdCBEZXRhaWxzICovfVxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ2FwLTQgbGc6Z3JpZC1jb2xzLVsyZnIsMWZyXVwiPlxuICAgICAgICAgIHsvKiBNYWluIENvbnRlbnQgKi99XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwic3BhY2UteS00XCI+XG4gICAgICAgICAgICB7LyogUHJvZHVjdCBJbmZvcm1hdGlvbiAqL31cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzYwIHAtNCBtZDpwLTZcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC02IG1kOmdyaWQtY29scy1bMWZyLDFmcl1cIj5cbiAgICAgICAgICAgICAgICB7LyogUHJvZHVjdCBJbmZvICovfVxuICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMCBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICAgIFByb2R1Y3QgSW5mb3JtYXRpb25cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTNcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBCcmFuZFxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQuYnJhbmR9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIE1vZGVsXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cGFydC5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBDYXRlZ29yeVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NhdGVnb3J5Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB7cGFydC5ub3RlcyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC16aW5jLTMwMCBsZWFkaW5nLXJlbGF4ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubm90ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgey8qIFByb2R1Y3QgSW1hZ2UgKi99XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBhc3BlY3Qtc3F1YXJlIG1heC13LW1kIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTcwMCBiZy16aW5jLTkwMC81MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtY2VudGVyIHAtOFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctMTYgaC0xNiBteC1hdXRvIHRleHQtemluYy02MDAgbWItMlwiXG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCJjdXJyZW50Q29sb3JcIlxuICAgICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VMaW5lam9pbj1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezEuNX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk00IDE2bDQuNTg2LTQuNTg2YTIgMiAwIDAxMi44MjggMEwxNiAxNm0tMi0ybDEuNTg2LTEuNTg2YTIgMiAwIDAxMi44MjggMEwyMCAxNG0tNi02aC4wMU02IDIwaDEyYTIgMiAwIDAwMi0yVjZhMiAyIDAgMDAtMi0ySDZhMiAyIDAgMDAtMiAydjEyYTIgMiAwIDAwMiAyelwiXG4gICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgUHJvZHVjdCBJbWFnZVxuICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgICAgey8qIFJldGFpbGVycyBMaXN0ICovfVxuICAgICAgICAgICAge3JldGFpbGVyT2ZmZXJzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInJvdW5kZWQtbGcgYm9yZGVyIGJvcmRlci16aW5jLTgwMCBiZy16aW5jLTk1MC82MCBwLTQgbWQ6cC02XCI+XG4gICAgICAgICAgICAgICAgPFJldGFpbGVyc0xpc3QgcmV0YWlsZXJzPXtyZXRhaWxlck9mZmVyc30gLz5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgIHsvKiBTaWRlYmFyICovfVxuICAgICAgICAgIDxhc2lkZSBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy04MDAgYmctemluYy05NTAvODAgcC00IG1kOnAtNiBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy00MDAgbWItMlwiPlByaWNlPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0ZXh0LWFtYmVyLTMwMFwiPlxuICAgICAgICAgICAgICAgICR7cGFydC5wcmljZS50b0ZpeGVkKDIpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LWF1dG8gc3BhY2UteS0zXCI+XG4gICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgaHJlZj17YC9ndW5idWlsZGVyP3NlbGVjdD0ke2NhdGVnb3J5SWR9OiR7cGFydC5pZH1gfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2NrIHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYW1iZXItNDAwLzYwIGJnLWFtYmVyLTQwMC8xMCBweC00IHB5LTMgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWFtYmVyLTIwMCBob3ZlcjpiZy1hbWJlci00MDAvMTUgdGV4dC1jZW50ZXIgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQWRkIHRvIEJ1aWxkXG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBocmVmPXtwYXJ0LmFmZmlsaWF0ZVVybH1cbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2NrIHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItemluYy03MDAgYmctemluYy05MDAvNTAgcHgtNCBweS0zIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC16aW5jLTMwMCBob3ZlcjpiZy16aW5jLTgwMCBob3Zlcjpib3JkZXItemluYy02MDAgdGV4dC1jZW50ZXIgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBSZXRhaWxlclxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2FzaWRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgKTtcbn1cblxuIl0sIm5hbWVzIjpbInVzZU1lbW8iLCJMaW5rIiwidXNlUGFyYW1zIiwiQ0FURUdPUklFUyIsIlBBUlRTIiwiZ2V0UHJpY2luZ0hpc3RvcnkiLCJnZXRSZXRhaWxlck9mZmVycyIsIlJldGFpbGVyc0xpc3QiLCJQYXJ0RGV0YWlsUGFnZSIsInBhcmFtcyIsImNhdGVnb3J5SWQiLCJwYXJ0SWQiLCJjYXRlZ29yeSIsImZpbmQiLCJjIiwiaWQiLCJwYXJ0IiwicCIsInByaWNpbmdIaXN0b3J5IiwicHJpY2UiLCJyZXRhaWxlck9mZmVycyIsImFmZmlsaWF0ZVVybCIsIm1haW4iLCJjbGFzc05hbWUiLCJkaXYiLCJoMSIsImhyZWYiLCJoZWFkZXIiLCJuYW1lIiwiYnJhbmQiLCJzcGFuIiwic2VjdGlvbiIsIm5vdGVzIiwic3ZnIiwiZmlsbCIsInN0cm9rZSIsInZpZXdCb3giLCJ4bWxucyIsInBhdGgiLCJzdHJva2VMaW5lY2FwIiwic3Ryb2tlTGluZWpvaW4iLCJzdHJva2VXaWR0aCIsImQiLCJsZW5ndGgiLCJyZXRhaWxlcnMiLCJhc2lkZSIsInRvRml4ZWQiLCJhIiwidGFyZ2V0IiwicmVsIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.fae79994cbbcace2.hot-update.js b/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.fae79994cbbcace2.hot-update.js
deleted file mode 100644
index ec44246..0000000
--- a/.next/static/webpack/app/gunbuilder/[categoryId]/[partId]/page.fae79994cbbcace2.hot-update.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/[categoryId]/[partId]/page",{
-
-/***/ "(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/data.ts":
-/*!******************************************************!*\
- !*** ./app/gunbuilder/[categoryId]/[partId]/data.ts ***!
- \******************************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ getPricingHistory: function() { return /* binding */ getPricingHistory; },\n/* harmony export */ getRetailerOffers: function() { return /* binding */ getRetailerOffers; }\n/* harmony export */ });\n// Simulated data functions - Replace these with API calls when ready\n// Example: export async function getPricingHistory(partId: string) { ... }\n/**\n * Get pricing history for a part\n * TODO: Replace with API call: GET /api/parts/{partId}/pricing-history\n */ function getPricingHistory(partId, basePrice) {\n // Generate 30 days of price history with some variation\n const days = 30;\n const history = [];\n const today = new Date();\n for(let i = days - 1; i >= 0; i--){\n const date = new Date(today);\n date.setDate(date.getDate() - i);\n // Simulate price fluctuations (±15% variation)\n const variation = (Math.random() - 0.5) * 0.3; // -15% to +15%\n const price = basePrice * (1 + variation);\n history.push({\n date: date.toISOString().split(\"T\")[0],\n price: Math.round(price * 100) / 100\n });\n }\n return history;\n}\n/**\n * Get retailer offers for a part\n * TODO: Replace with API call: GET /api/parts/{partId}/retailers\n */ function getRetailerOffers(partId, basePrice, baseAffiliateUrl) {\n const retailers = [\n \"Primary Arms\",\n \"Brownells\",\n \"Optics Planet\",\n \"MidwayUSA\",\n \"Palmetto State Armory\"\n ];\n return retailers.map((retailer, index)=>{\n // Simulate price variations between retailers\n const priceVariation = (Math.random() - 0.4) * 0.2; // -8% to +12%\n const price = basePrice * (1 + priceVariation);\n const hasSale = Math.random() > 0.6; // 40% chance of sale\n const originalPrice = hasSale ? price * 1.15 : undefined;\n const inStock = Math.random() > 0.2; // 80% chance in stock\n return {\n id: \"retailer-\".concat(index),\n retailerName: retailer,\n price: Math.round(price * 100) / 100,\n originalPrice: originalPrice ? Math.round(originalPrice * 100) / 100 : undefined,\n inStock,\n affiliateUrl: baseAffiliateUrl.replace(\"example.com\", \"\".concat(retailer.toLowerCase().replace(/\\s+/g, \"\"), \".com\")),\n lastUpdated: new Date().toISOString()\n };\n }).sort((a, b)=>a.price - b.price); // Sort by price ascending\n}\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9bcGFydElkXS9kYXRhLnRzIiwibWFwcGluZ3MiOiI7Ozs7O0FBQUEscUVBQXFFO0FBQ3JFLDJFQUEyRTtBQWlCM0U7OztDQUdDLEdBQ00sU0FBU0Esa0JBQ2RDLE1BQWMsRUFDZEMsU0FBaUI7SUFFakIsd0RBQXdEO0lBQ3hELE1BQU1DLE9BQU87SUFDYixNQUFNQyxVQUErQixFQUFFO0lBQ3ZDLE1BQU1DLFFBQVEsSUFBSUM7SUFFbEIsSUFBSyxJQUFJQyxJQUFJSixPQUFPLEdBQUdJLEtBQUssR0FBR0EsSUFBSztRQUNsQyxNQUFNQyxPQUFPLElBQUlGLEtBQUtEO1FBQ3RCRyxLQUFLQyxPQUFPLENBQUNELEtBQUtFLE9BQU8sS0FBS0g7UUFFOUIsK0NBQStDO1FBQy9DLE1BQU1JLFlBQVksQ0FBQ0MsS0FBS0MsTUFBTSxLQUFLLEdBQUUsSUFBSyxLQUFLLGVBQWU7UUFDOUQsTUFBTUMsUUFBUVosWUFBYSxLQUFJUyxTQUFRO1FBRXZDUCxRQUFRVyxJQUFJLENBQUM7WUFDWFAsTUFBTUEsS0FBS1EsV0FBVyxHQUFHQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUU7WUFDdENILE9BQU9GLEtBQUtNLEtBQUssQ0FBQ0osUUFBUSxPQUFPO1FBQ25DO0lBQ0Y7SUFFQSxPQUFPVjtBQUNUO0FBRUE7OztDQUdDLEdBQ00sU0FBU2Usa0JBQ2RsQixNQUFjLEVBQ2RDLFNBQWlCLEVBQ2pCa0IsZ0JBQXdCO0lBRXhCLE1BQU1DLFlBQVk7UUFDaEI7UUFDQTtRQUNBO1FBQ0E7UUFDQTtLQUNEO0lBRUQsT0FBT0EsVUFBVUMsR0FBRyxDQUFDLENBQUNDLFVBQVVDO1FBQzlCLDhDQUE4QztRQUM5QyxNQUFNQyxpQkFBaUIsQ0FBQ2IsS0FBS0MsTUFBTSxLQUFLLEdBQUUsSUFBSyxLQUFLLGNBQWM7UUFDbEUsTUFBTUMsUUFBUVosWUFBYSxLQUFJdUIsY0FBYTtRQUM1QyxNQUFNQyxVQUFVZCxLQUFLQyxNQUFNLEtBQUssS0FBSyxxQkFBcUI7UUFDMUQsTUFBTWMsZ0JBQWdCRCxVQUFVWixRQUFRLE9BQU9jO1FBQy9DLE1BQU1DLFVBQVVqQixLQUFLQyxNQUFNLEtBQUssS0FBSyxzQkFBc0I7UUFFM0QsT0FBTztZQUNMaUIsSUFBSSxZQUFrQixPQUFOTjtZQUNoQk8sY0FBY1I7WUFDZFQsT0FBT0YsS0FBS00sS0FBSyxDQUFDSixRQUFRLE9BQU87WUFDakNhLGVBQWVBLGdCQUNYZixLQUFLTSxLQUFLLENBQUNTLGdCQUFnQixPQUFPLE1BQ2xDQztZQUNKQztZQUNBRyxjQUFjWixpQkFBaUJhLE9BQU8sQ0FBQyxlQUFlLEdBQThDLE9BQTNDVixTQUFTVyxXQUFXLEdBQUdELE9BQU8sQ0FBQyxRQUFRLEtBQUk7WUFDcEdFLGFBQWEsSUFBSTdCLE9BQU9VLFdBQVc7UUFDckM7SUFDRixHQUFHb0IsSUFBSSxDQUFDLENBQUNDLEdBQUdDLElBQU1ELEVBQUV2QixLQUFLLEdBQUd3QixFQUFFeEIsS0FBSyxHQUFHLDBCQUEwQjtBQUNsRSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vW3BhcnRJZF0vZGF0YS50cz9kNzM1Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIFNpbXVsYXRlZCBkYXRhIGZ1bmN0aW9ucyAtIFJlcGxhY2UgdGhlc2Ugd2l0aCBBUEkgY2FsbHMgd2hlbiByZWFkeVxuLy8gRXhhbXBsZTogZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIGdldFByaWNpbmdIaXN0b3J5KHBhcnRJZDogc3RyaW5nKSB7IC4uLiB9XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJpY2VIaXN0b3J5UG9pbnQge1xuICBkYXRlOiBzdHJpbmc7IC8vIElTTyBkYXRlIHN0cmluZ1xuICBwcmljZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFJldGFpbGVyT2ZmZXIge1xuICBpZDogc3RyaW5nO1xuICByZXRhaWxlck5hbWU6IHN0cmluZztcbiAgcHJpY2U6IG51bWJlcjtcbiAgb3JpZ2luYWxQcmljZT86IG51bWJlcjtcbiAgaW5TdG9jazogYm9vbGVhbjtcbiAgYWZmaWxpYXRlVXJsOiBzdHJpbmc7XG4gIGxhc3RVcGRhdGVkOiBzdHJpbmc7IC8vIElTTyBkYXRlIHN0cmluZ1xufVxuXG4vKipcbiAqIEdldCBwcmljaW5nIGhpc3RvcnkgZm9yIGEgcGFydFxuICogVE9ETzogUmVwbGFjZSB3aXRoIEFQSSBjYWxsOiBHRVQgL2FwaS9wYXJ0cy97cGFydElkfS9wcmljaW5nLWhpc3RvcnlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFByaWNpbmdIaXN0b3J5KFxuICBwYXJ0SWQ6IHN0cmluZyxcbiAgYmFzZVByaWNlOiBudW1iZXIsXG4pOiBQcmljZUhpc3RvcnlQb2ludFtdIHtcbiAgLy8gR2VuZXJhdGUgMzAgZGF5cyBvZiBwcmljZSBoaXN0b3J5IHdpdGggc29tZSB2YXJpYXRpb25cbiAgY29uc3QgZGF5cyA9IDMwO1xuICBjb25zdCBoaXN0b3J5OiBQcmljZUhpc3RvcnlQb2ludFtdID0gW107XG4gIGNvbnN0IHRvZGF5ID0gbmV3IERhdGUoKTtcblxuICBmb3IgKGxldCBpID0gZGF5cyAtIDE7IGkgPj0gMDsgaS0tKSB7XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRvZGF5KTtcbiAgICBkYXRlLnNldERhdGUoZGF0ZS5nZXREYXRlKCkgLSBpKTtcblxuICAgIC8vIFNpbXVsYXRlIHByaWNlIGZsdWN0dWF0aW9ucyAowrExNSUgdmFyaWF0aW9uKVxuICAgIGNvbnN0IHZhcmlhdGlvbiA9IChNYXRoLnJhbmRvbSgpIC0gMC41KSAqIDAuMzsgLy8gLTE1JSB0byArMTUlXG4gICAgY29uc3QgcHJpY2UgPSBiYXNlUHJpY2UgKiAoMSArIHZhcmlhdGlvbik7XG5cbiAgICBoaXN0b3J5LnB1c2goe1xuICAgICAgZGF0ZTogZGF0ZS50b0lTT1N0cmluZygpLnNwbGl0KFwiVFwiKVswXSxcbiAgICAgIHByaWNlOiBNYXRoLnJvdW5kKHByaWNlICogMTAwKSAvIDEwMCxcbiAgICB9KTtcbiAgfVxuXG4gIHJldHVybiBoaXN0b3J5O1xufVxuXG4vKipcbiAqIEdldCByZXRhaWxlciBvZmZlcnMgZm9yIGEgcGFydFxuICogVE9ETzogUmVwbGFjZSB3aXRoIEFQSSBjYWxsOiBHRVQgL2FwaS9wYXJ0cy97cGFydElkfS9yZXRhaWxlcnNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFJldGFpbGVyT2ZmZXJzKFxuICBwYXJ0SWQ6IHN0cmluZyxcbiAgYmFzZVByaWNlOiBudW1iZXIsXG4gIGJhc2VBZmZpbGlhdGVVcmw6IHN0cmluZyxcbik6IFJldGFpbGVyT2ZmZXJbXSB7XG4gIGNvbnN0IHJldGFpbGVycyA9IFtcbiAgICBcIlByaW1hcnkgQXJtc1wiLFxuICAgIFwiQnJvd25lbGxzXCIsXG4gICAgXCJPcHRpY3MgUGxhbmV0XCIsXG4gICAgXCJNaWR3YXlVU0FcIixcbiAgICBcIlBhbG1ldHRvIFN0YXRlIEFybW9yeVwiLFxuICBdO1xuXG4gIHJldHVybiByZXRhaWxlcnMubWFwKChyZXRhaWxlciwgaW5kZXgpID0+IHtcbiAgICAvLyBTaW11bGF0ZSBwcmljZSB2YXJpYXRpb25zIGJldHdlZW4gcmV0YWlsZXJzXG4gICAgY29uc3QgcHJpY2VWYXJpYXRpb24gPSAoTWF0aC5yYW5kb20oKSAtIDAuNCkgKiAwLjI7IC8vIC04JSB0byArMTIlXG4gICAgY29uc3QgcHJpY2UgPSBiYXNlUHJpY2UgKiAoMSArIHByaWNlVmFyaWF0aW9uKTtcbiAgICBjb25zdCBoYXNTYWxlID0gTWF0aC5yYW5kb20oKSA+IDAuNjsgLy8gNDAlIGNoYW5jZSBvZiBzYWxlXG4gICAgY29uc3Qgb3JpZ2luYWxQcmljZSA9IGhhc1NhbGUgPyBwcmljZSAqIDEuMTUgOiB1bmRlZmluZWQ7XG4gICAgY29uc3QgaW5TdG9jayA9IE1hdGgucmFuZG9tKCkgPiAwLjI7IC8vIDgwJSBjaGFuY2UgaW4gc3RvY2tcblxuICAgIHJldHVybiB7XG4gICAgICBpZDogYHJldGFpbGVyLSR7aW5kZXh9YCxcbiAgICAgIHJldGFpbGVyTmFtZTogcmV0YWlsZXIsXG4gICAgICBwcmljZTogTWF0aC5yb3VuZChwcmljZSAqIDEwMCkgLyAxMDAsXG4gICAgICBvcmlnaW5hbFByaWNlOiBvcmlnaW5hbFByaWNlXG4gICAgICAgID8gTWF0aC5yb3VuZChvcmlnaW5hbFByaWNlICogMTAwKSAvIDEwMFxuICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgIGluU3RvY2ssXG4gICAgICBhZmZpbGlhdGVVcmw6IGJhc2VBZmZpbGlhdGVVcmwucmVwbGFjZShcImV4YW1wbGUuY29tXCIsIGAke3JldGFpbGVyLnRvTG93ZXJDYXNlKCkucmVwbGFjZSgvXFxzKy9nLCBcIlwiKX0uY29tYCksXG4gICAgICBsYXN0VXBkYXRlZDogbmV3IERhdGUoKS50b0lTT1N0cmluZygpLFxuICAgIH07XG4gIH0pLnNvcnQoKGEsIGIpID0+IGEucHJpY2UgLSBiLnByaWNlKTsgLy8gU29ydCBieSBwcmljZSBhc2NlbmRpbmdcbn1cblxuIl0sIm5hbWVzIjpbImdldFByaWNpbmdIaXN0b3J5IiwicGFydElkIiwiYmFzZVByaWNlIiwiZGF5cyIsImhpc3RvcnkiLCJ0b2RheSIsIkRhdGUiLCJpIiwiZGF0ZSIsInNldERhdGUiLCJnZXREYXRlIiwidmFyaWF0aW9uIiwiTWF0aCIsInJhbmRvbSIsInByaWNlIiwicHVzaCIsInRvSVNPU3RyaW5nIiwic3BsaXQiLCJyb3VuZCIsImdldFJldGFpbGVyT2ZmZXJzIiwiYmFzZUFmZmlsaWF0ZVVybCIsInJldGFpbGVycyIsIm1hcCIsInJldGFpbGVyIiwiaW5kZXgiLCJwcmljZVZhcmlhdGlvbiIsImhhc1NhbGUiLCJvcmlnaW5hbFByaWNlIiwidW5kZWZpbmVkIiwiaW5TdG9jayIsImlkIiwicmV0YWlsZXJOYW1lIiwiYWZmaWxpYXRlVXJsIiwicmVwbGFjZSIsInRvTG93ZXJDYXNlIiwibGFzdFVwZGF0ZWQiLCJzb3J0IiwiYSIsImIiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/data.ts\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx":
-/*!*******************************************************!*\
- !*** ./app/gunbuilder/[categoryId]/[partId]/page.tsx ***!
- \*******************************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ PartDetailPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* harmony import */ var _data__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ./data */ \"(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/data.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\nfunction PartDetailPage() {\n _s();\n const params = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams)();\n const categoryId = params.categoryId;\n const partId = params.partId;\n const category = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.find((c)=>c.id === categoryId), [\n categoryId\n ]);\n const part = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.find((p)=>p.id === partId && p.categoryId === categoryId), [\n partId,\n categoryId\n ]);\n // Get pricing history and retailer offers\n // TODO: Replace with API calls when endpoints are ready\n const pricingHistory = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>part ? (0,_data__WEBPACK_IMPORTED_MODULE_5__.getPricingHistory)(part.id, part.price) : [], [\n part\n ]);\n const retailerOffers = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>part ? (0,_data__WEBPACK_IMPORTED_MODULE_5__.getRetailerOffers)(part.id, part.price, part.affiliateUrl) : [], [\n part\n ]);\n if (!category || !part) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-2xl font-semibold text-zinc-50 mb-4\",\n children: \"Product Not Found\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 47,\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: \"/gunbuilder\",\n className: \"text-amber-300 hover:text-amber-200 underline\",\n children: \"Return to Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 50,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 46,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 45,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 44,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder/\".concat(categoryId),\n className: \"text-xs text-zinc-400 hover:text-zinc-300 mb-4 inline-block\",\n children: [\n \"← Back to \",\n category.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 67,\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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 74,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n part.brand,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 78,\n columnNumber: 28\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 77,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: [\n category.name,\n \" • Product Details\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 80,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 73,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 66,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 lg:grid-cols-[2fr,1fr]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-4 md:p-6\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-6 md:grid-cols-[1fr,1fr]\",\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)(\"div\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400 mb-2\",\n children: \"Product Information\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 93,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-3\",\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Brand\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 98,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.brand\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 101,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 97,\n columnNumber: 19\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Model\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 106,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: part.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 109,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 105,\n columnNumber: 19\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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Category\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 114,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-lg font-semibold text-zinc-50\",\n children: category.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 117,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 113,\n columnNumber: 19\n }, this),\n part.notes && /*#__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)(\"div\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide mb-1\",\n children: \"Details\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 123,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-300 leading-relaxed\",\n children: part.notes\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 126,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 122,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 96,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 92,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full aspect-square max-w-md rounded-md border border-zinc-700 bg-zinc-900/50 flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center p-8\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-16 h-16 mx-auto text-zinc-600 mb-2\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n xmlns: \"http://www.w3.org/2000/svg\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 1.5,\n d: \"M4 16l4.586-4.586a2 2 0 012.828 0L16 16m-2-2l1.586-1.586a2 2 0 012.828 0L20 14m-6-6h.01M6 20h12a2 2 0 002-2V6a2 2 0 00-2-2H6a2 2 0 00-2 2v12a2 2 0 002 2z\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 145,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 138,\n columnNumber: 21\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-zinc-500 uppercase tracking-wide\",\n children: \"Product Image\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 152,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 137,\n columnNumber: 19\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 136,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 135,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 90,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 89,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/80 p-4 md:p-6 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-4\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-400 mb-2\",\n children: \"Price\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 164,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-3xl font-semibold text-amber-300\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 165,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 163,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-auto space-y-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder?select=\".concat(categoryId, \":\").concat(part.id),\n className: \"block w-full rounded-md border border-amber-400/60 bg-amber-400/10 px-4 py-3 text-sm font-medium text-amber-200 hover:bg-amber-400/15 text-center transition-colors\",\n children: \"Add to Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 171,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"a\", {\n href: part.affiliateUrl,\n target: \"_blank\",\n rel: \"noopener noreferrer\",\n className: \"block w-full rounded-md border border-zinc-700 bg-zinc-900/50 px-4 py-3 text-sm font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 text-center transition-colors\",\n children: \"View Retailer\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 177,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 170,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 162,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 87,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 64,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx\",\n lineNumber: 63,\n columnNumber: 5\n }, this);\n}\n_s(PartDetailPage, \"ZpwVUtr8mmMYWPNCCmGSoaSl2YI=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams\n ];\n});\n_c = PartDetailPage;\nvar _c;\n$RefreshReg$(_c, \"PartDetailPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9bcGFydElkXS9wYWdlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7O0FBRWdDO0FBQ0g7QUFDZTtBQUNlO0FBRUc7QUFJL0MsU0FBU087O0lBQ3RCLE1BQU1DLFNBQVNOLDBEQUFTQTtJQUN4QixNQUFNTyxhQUFhRCxPQUFPQyxVQUFVO0lBQ3BDLE1BQU1DLFNBQVNGLE9BQU9FLE1BQU07SUFFNUIsTUFBTUMsV0FBV1gsOENBQU9BLENBQ3RCLElBQU1HLDZEQUFVQSxDQUFDUyxJQUFJLENBQUMsQ0FBQ0MsSUFBTUEsRUFBRUMsRUFBRSxLQUFLTCxhQUN0QztRQUFDQTtLQUFXO0lBR2QsTUFBTU0sT0FBT2YsOENBQU9BLENBQ2xCLElBQU1JLHdEQUFLQSxDQUFDUSxJQUFJLENBQUMsQ0FBQ0ksSUFBTUEsRUFBRUYsRUFBRSxLQUFLSixVQUFVTSxFQUFFUCxVQUFVLEtBQUtBLGFBQzVEO1FBQUNDO1FBQVFEO0tBQVc7SUFHdEIsMENBQTBDO0lBQzFDLHdEQUF3RDtJQUN4RCxNQUFNUSxpQkFBaUJqQiw4Q0FBT0EsQ0FDNUIsSUFBT2UsT0FBT1Ysd0RBQWlCQSxDQUFDVSxLQUFLRCxFQUFFLEVBQUVDLEtBQUtHLEtBQUssSUFBSSxFQUFFLEVBQ3pEO1FBQUNIO0tBQUs7SUFHUixNQUFNSSxpQkFBaUJuQiw4Q0FBT0EsQ0FDNUIsSUFDRWUsT0FDSVQsd0RBQWlCQSxDQUFDUyxLQUFLRCxFQUFFLEVBQUVDLEtBQUtHLEtBQUssRUFBRUgsS0FBS0ssWUFBWSxJQUN4RCxFQUFFLEVBQ1I7UUFBQ0w7S0FBSztJQUdSLElBQUksQ0FBQ0osWUFBWSxDQUFDSSxNQUFNO1FBQ3RCLHFCQUNFLDhEQUFDTTtZQUFLQyxXQUFVO3NCQUNkLDRFQUFDQztnQkFBSUQsV0FBVTswQkFDYiw0RUFBQ0M7b0JBQUlELFdBQVU7O3NDQUNiLDhEQUFDRTs0QkFBR0YsV0FBVTtzQ0FBMkM7Ozs7OztzQ0FHekQsOERBQUNyQixpREFBSUE7NEJBQ0h3QixNQUFLOzRCQUNMSCxXQUFVO3NDQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBT1g7SUFFQSxxQkFDRSw4REFBQ0Q7UUFBS0MsV0FBVTtrQkFDZCw0RUFBQ0M7WUFBSUQsV0FBVTs7OEJBRWIsOERBQUNJO29CQUFPSixXQUFVOztzQ0FDaEIsOERBQUNyQixpREFBSUE7NEJBQ0h3QixNQUFNLGVBQTBCLE9BQVhoQjs0QkFDckJhLFdBQVU7O2dDQUNYO2dDQUNZWCxTQUFTZ0IsSUFBSTs7Ozs7OztzQ0FFMUIsOERBQUNKOzs4Q0FDQyw4REFBQ1A7b0NBQUVNLFdBQVU7OENBQWlFOzs7Ozs7OENBRzlFLDhEQUFDRTtvQ0FBR0YsV0FBVTs7d0NBQ1hQLEtBQUthLEtBQUs7d0NBQUM7c0RBQUMsOERBQUNDOzRDQUFLUCxXQUFVO3NEQUFrQlAsS0FBS1ksSUFBSTs7Ozs7Ozs7Ozs7OzhDQUUxRCw4REFBQ1g7b0NBQUVNLFdBQVU7O3dDQUNWWCxTQUFTZ0IsSUFBSTt3Q0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFNckIsOERBQUNKO29CQUFJRCxXQUFVOztzQ0FFYiw4REFBQ1E7NEJBQVFSLFdBQVU7c0NBQ2pCLDRFQUFDQztnQ0FBSUQsV0FBVTs7a0RBRWIsOERBQUNDOzswREFDQyw4REFBQ0E7Z0RBQUlELFdBQVU7MERBQXVFOzs7Ozs7MERBR3RGLDhEQUFDQztnREFBSUQsV0FBVTs7a0VBQ2IsOERBQUNDOzswRUFDQyw4REFBQ0E7Z0VBQUlELFdBQVU7MEVBQXFEOzs7Ozs7MEVBR3BFLDhEQUFDQztnRUFBSUQsV0FBVTswRUFDWlAsS0FBS2EsS0FBSzs7Ozs7Ozs7Ozs7O2tFQUdmLDhEQUFDTDs7MEVBQ0MsOERBQUNBO2dFQUFJRCxXQUFVOzBFQUFxRDs7Ozs7OzBFQUdwRSw4REFBQ0M7Z0VBQUlELFdBQVU7MEVBQ1pQLEtBQUtZLElBQUk7Ozs7Ozs7Ozs7OztrRUFHZCw4REFBQ0o7OzBFQUNDLDhEQUFDQTtnRUFBSUQsV0FBVTswRUFBcUQ7Ozs7OzswRUFHcEUsOERBQUNDO2dFQUFJRCxXQUFVOzBFQUNaWCxTQUFTZ0IsSUFBSTs7Ozs7Ozs7Ozs7O29EQUdqQlosS0FBS2dCLEtBQUssa0JBQ1QsOERBQUNSOzswRUFDQyw4REFBQ0E7Z0VBQUlELFdBQVU7MEVBQXFEOzs7Ozs7MEVBR3BFLDhEQUFDQztnRUFBSUQsV0FBVTswRUFDWlAsS0FBS2dCLEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztrREFRckIsOERBQUNSO3dDQUFJRCxXQUFVO2tEQUNiLDRFQUFDQzs0Q0FBSUQsV0FBVTtzREFDYiw0RUFBQ0M7Z0RBQUlELFdBQVU7O2tFQUNiLDhEQUFDVTt3REFDQ1YsV0FBVTt3REFDVlcsTUFBSzt3REFDTEMsUUFBTzt3REFDUEMsU0FBUTt3REFDUkMsT0FBTTtrRUFFTiw0RUFBQ0M7NERBQ0NDLGVBQWM7NERBQ2RDLGdCQUFlOzREQUNmQyxhQUFhOzREQUNiQyxHQUFFOzs7Ozs7Ozs7OztrRUFHTiw4REFBQ3pCO3dEQUFFTSxXQUFVO2tFQUFnRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NDQVV2RSw4REFBQ29COzRCQUFNcEIsV0FBVTs7OENBQ2YsOERBQUNDO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ0M7NENBQUlELFdBQVU7c0RBQTZCOzs7Ozs7c0RBQzVDLDhEQUFDQzs0Q0FBSUQsV0FBVTs7Z0RBQXdDO2dEQUNuRFAsS0FBS0csS0FBSyxDQUFDeUIsT0FBTyxDQUFDOzs7Ozs7Ozs7Ozs7OzhDQUl6Qiw4REFBQ3BCO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ3JCLGlEQUFJQTs0Q0FDSHdCLE1BQU0sc0JBQW9DVixPQUFkTixZQUFXLEtBQVcsT0FBUk0sS0FBS0QsRUFBRTs0Q0FDakRRLFdBQVU7c0RBQ1g7Ozs7OztzREFHRCw4REFBQ3NCOzRDQUNDbkIsTUFBTVYsS0FBS0ssWUFBWTs0Q0FDdkJ5QixRQUFPOzRDQUNQQyxLQUFJOzRDQUNKeEIsV0FBVTtzREFDWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTZjtHQW5Md0JmOztRQUNQTCxzREFBU0E7OztLQURGSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vW3BhcnRJZF0vcGFnZS50c3g/NDJjMSJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgdXNlTWVtbyB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xuaW1wb3J0IHsgdXNlUGFyYW1zIH0gZnJvbSBcIm5leHQvbmF2aWdhdGlvblwiO1xuaW1wb3J0IHsgQ0FURUdPUklFUywgUEFSVFMgfSBmcm9tIFwiQC9kYXRhL2d1bmJ1aWxkZXJQYXJ0c1wiO1xuaW1wb3J0IHR5cGUgeyBDYXRlZ29yeUlkIH0gZnJvbSBcIkAvdHlwZXMvZ3VuYnVpbGRlclwiO1xuaW1wb3J0IHsgZ2V0UHJpY2luZ0hpc3RvcnksIGdldFJldGFpbGVyT2ZmZXJzIH0gZnJvbSBcIi4vZGF0YVwiO1xuaW1wb3J0IHsgUHJpY2luZ0hpc3RvcnlHcmFwaCB9IGZyb20gXCJAL2NvbXBvbmVudHMvUHJpY2luZ0hpc3RvcnlHcmFwaFwiO1xuaW1wb3J0IHsgUmV0YWlsZXJzTGlzdCB9IGZyb20gXCJAL2NvbXBvbmVudHMvUmV0YWlsZXJzTGlzdFwiO1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBQYXJ0RGV0YWlsUGFnZSgpIHtcbiAgY29uc3QgcGFyYW1zID0gdXNlUGFyYW1zKCk7XG4gIGNvbnN0IGNhdGVnb3J5SWQgPSBwYXJhbXMuY2F0ZWdvcnlJZCBhcyBDYXRlZ29yeUlkO1xuICBjb25zdCBwYXJ0SWQgPSBwYXJhbXMucGFydElkIGFzIHN0cmluZztcblxuICBjb25zdCBjYXRlZ29yeSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gQ0FURUdPUklFUy5maW5kKChjKSA9PiBjLmlkID09PSBjYXRlZ29yeUlkKSxcbiAgICBbY2F0ZWdvcnlJZF0sXG4gICk7XG5cbiAgY29uc3QgcGFydCA9IHVzZU1lbW8oXG4gICAgKCkgPT4gUEFSVFMuZmluZCgocCkgPT4gcC5pZCA9PT0gcGFydElkICYmIHAuY2F0ZWdvcnlJZCA9PT0gY2F0ZWdvcnlJZCksXG4gICAgW3BhcnRJZCwgY2F0ZWdvcnlJZF0sXG4gICk7XG5cbiAgLy8gR2V0IHByaWNpbmcgaGlzdG9yeSBhbmQgcmV0YWlsZXIgb2ZmZXJzXG4gIC8vIFRPRE86IFJlcGxhY2Ugd2l0aCBBUEkgY2FsbHMgd2hlbiBlbmRwb2ludHMgYXJlIHJlYWR5XG4gIGNvbnN0IHByaWNpbmdIaXN0b3J5ID0gdXNlTWVtbyhcbiAgICAoKSA9PiAocGFydCA/IGdldFByaWNpbmdIaXN0b3J5KHBhcnQuaWQsIHBhcnQucHJpY2UpIDogW10pLFxuICAgIFtwYXJ0XSxcbiAgKTtcblxuICBjb25zdCByZXRhaWxlck9mZmVycyA9IHVzZU1lbW8oXG4gICAgKCkgPT5cbiAgICAgIHBhcnRcbiAgICAgICAgPyBnZXRSZXRhaWxlck9mZmVycyhwYXJ0LmlkLCBwYXJ0LnByaWNlLCBwYXJ0LmFmZmlsaWF0ZVVybClcbiAgICAgICAgOiBbXSxcbiAgICBbcGFydF0sXG4gICk7XG5cbiAgaWYgKCFjYXRlZ29yeSB8fCAhcGFydCkge1xuICAgIHJldHVybiAoXG4gICAgICA8bWFpbiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gYmctYmxhY2sgdGV4dC16aW5jLTUwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXgtYXV0byBtYXgtdy02eGwgcHgtNCBweS02IGxnOnB5LTEwXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTUwIG1iLTRcIj5cbiAgICAgICAgICAgICAgUHJvZHVjdCBOb3QgRm91bmRcbiAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICBocmVmPVwiL2d1bmJ1aWxkZXJcIlxuICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LWFtYmVyLTMwMCBob3Zlcjp0ZXh0LWFtYmVyLTIwMCB1bmRlcmxpbmVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICBSZXR1cm4gdG8gR3VuYnVpbGRlclxuICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbWFpbj5cbiAgICApO1xuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8bWFpbiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gYmctYmxhY2sgdGV4dC16aW5jLTUwXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14LWF1dG8gbWF4LXctNnhsIHB4LTQgcHktNiBsZzpweS0xMFwiPlxuICAgICAgICB7LyogSGVhZGVyICovfVxuICAgICAgICA8aGVhZGVyIGNsYXNzTmFtZT1cIm1iLTZcIj5cbiAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgaHJlZj17YC9ndW5idWlsZGVyLyR7Y2F0ZWdvcnlJZH1gfVxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNDAwIGhvdmVyOnRleHQtemluYy0zMDAgbWItNCBpbmxpbmUtYmxvY2tcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIOKGkCBCYWNrIHRvIHtjYXRlZ29yeS5uYW1lfVxuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRyYWNraW5nLVswLjJlbV0gdXBwZXJjYXNlIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICAgICAgU2hhZG93IFN0YW5kYXJkXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwibXQtMSB0ZXh0LTJ4bCBtZDp0ZXh0LTN4bCBmb250LXNlbWlib2xkIHRyYWNraW5nLXRpZ2h0XCI+XG4gICAgICAgICAgICAgIHtwYXJ0LmJyYW5kfSA8c3BhbiBjbGFzc05hbWU9XCJ0ZXh0LWFtYmVyLTMwMFwiPntwYXJ0Lm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm10LTIgdGV4dC1zbSB0ZXh0LXppbmMtNDAwIG1heC13LXhsXCI+XG4gICAgICAgICAgICAgIHtjYXRlZ29yeS5uYW1lfSDigKIgUHJvZHVjdCBEZXRhaWxzXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgIHsvKiBQcm9kdWN0IERldGFpbHMgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBnYXAtNCBsZzpncmlkLWNvbHMtWzJmciwxZnJdXCI+XG4gICAgICAgICAgey8qIE1haW4gQ29udGVudCAqL31cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy04MDAgYmctemluYy05NTAvNjAgcC00IG1kOnAtNlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC02IG1kOmdyaWQtY29scy1bMWZyLDFmcl1cIj5cbiAgICAgICAgICAgICAgey8qIFByb2R1Y3QgSW5mbyAqL31cbiAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMCBtYi0yXCI+XG4gICAgICAgICAgICAgICAgICBQcm9kdWN0IEluZm9ybWF0aW9uXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJzcGFjZS15LTNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICBCcmFuZFxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWxnIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3BhcnQuYnJhbmR9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgTW9kZWxcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtwYXJ0Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMCB1cHBlcmNhc2UgdHJhY2tpbmctd2lkZSBtYi0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQ2F0ZWdvcnlcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1sZyBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgIHtjYXRlZ29yeS5uYW1lfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAge3BhcnQubm90ZXMgJiYgKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwIHVwcGVyY2FzZSB0cmFja2luZy13aWRlIG1iLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIERldGFpbHNcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC16aW5jLTMwMCBsZWFkaW5nLXJlbGF4ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtwYXJ0Lm5vdGVzfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgIHsvKiBQcm9kdWN0IEltYWdlICovfVxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBhc3BlY3Qtc3F1YXJlIG1heC13LW1kIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTcwMCBiZy16aW5jLTkwMC81MCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlciBwLThcIj5cbiAgICAgICAgICAgICAgICAgICAgPHN2Z1xuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctMTYgaC0xNiBteC1hdXRvIHRleHQtemluYy02MDAgbWItMlwiXG4gICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZT1cImN1cnJlbnRDb2xvclwiXG4gICAgICAgICAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCAyNCAyNFwiXG4gICAgICAgICAgICAgICAgICAgICAgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiXG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWNhcD1cInJvdW5kXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZUxpbmVqb2luPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlV2lkdGg9ezEuNX1cbiAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNNCAxNmw0LjU4Ni00LjU4NmEyIDIgMCAwMTIuODI4IDBMMTYgMTZtLTItMmwxLjU4Ni0xLjU4NmEyIDIgMCAwMTIuODI4IDBMMjAgMTRtLTYtNmguMDFNNiAyMGgxMmEyIDIgMCAwMDItMlY2YTIgMiAwIDAwLTItMkg2YTIgMiAwIDAwLTIgMnYxMmEyIDIgMCAwMDIgMnpcIlxuICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy01MDAgdXBwZXJjYXNlIHRyYWNraW5nLXdpZGVcIj5cbiAgICAgICAgICAgICAgICAgICAgICBQcm9kdWN0IEltYWdlXG4gICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgIHsvKiBTaWRlYmFyICovfVxuICAgICAgICAgIDxhc2lkZSBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy04MDAgYmctemluYy05NTAvODAgcC00IG1kOnAtNiBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm1iLTRcIj5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy00MDAgbWItMlwiPlByaWNlPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0ZXh0LWFtYmVyLTMwMFwiPlxuICAgICAgICAgICAgICAgICR7cGFydC5wcmljZS50b0ZpeGVkKDIpfVxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LWF1dG8gc3BhY2UteS0zXCI+XG4gICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgaHJlZj17YC9ndW5idWlsZGVyP3NlbGVjdD0ke2NhdGVnb3J5SWR9OiR7cGFydC5pZH1gfVxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2NrIHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYW1iZXItNDAwLzYwIGJnLWFtYmVyLTQwMC8xMCBweC00IHB5LTMgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWFtYmVyLTIwMCBob3ZlcjpiZy1hbWJlci00MDAvMTUgdGV4dC1jZW50ZXIgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQWRkIHRvIEJ1aWxkXG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICBocmVmPXtwYXJ0LmFmZmlsaWF0ZVVybH1cbiAgICAgICAgICAgICAgICB0YXJnZXQ9XCJfYmxhbmtcIlxuICAgICAgICAgICAgICAgIHJlbD1cIm5vb3BlbmVyIG5vcmVmZXJyZXJcIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJsb2NrIHctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItemluYy03MDAgYmctemluYy05MDAvNTAgcHgtNCBweS0zIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC16aW5jLTMwMCBob3ZlcjpiZy16aW5jLTgwMCBob3Zlcjpib3JkZXItemluYy02MDAgdGV4dC1jZW50ZXIgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgVmlldyBSZXRhaWxlclxuICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2FzaWRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgKTtcbn1cblxuIl0sIm5hbWVzIjpbInVzZU1lbW8iLCJMaW5rIiwidXNlUGFyYW1zIiwiQ0FURUdPUklFUyIsIlBBUlRTIiwiZ2V0UHJpY2luZ0hpc3RvcnkiLCJnZXRSZXRhaWxlck9mZmVycyIsIlBhcnREZXRhaWxQYWdlIiwicGFyYW1zIiwiY2F0ZWdvcnlJZCIsInBhcnRJZCIsImNhdGVnb3J5IiwiZmluZCIsImMiLCJpZCIsInBhcnQiLCJwIiwicHJpY2luZ0hpc3RvcnkiLCJwcmljZSIsInJldGFpbGVyT2ZmZXJzIiwiYWZmaWxpYXRlVXJsIiwibWFpbiIsImNsYXNzTmFtZSIsImRpdiIsImgxIiwiaHJlZiIsImhlYWRlciIsIm5hbWUiLCJicmFuZCIsInNwYW4iLCJzZWN0aW9uIiwibm90ZXMiLCJzdmciLCJmaWxsIiwic3Ryb2tlIiwidmlld0JveCIsInhtbG5zIiwicGF0aCIsInN0cm9rZUxpbmVjYXAiLCJzdHJva2VMaW5lam9pbiIsInN0cm9rZVdpZHRoIiwiZCIsImFzaWRlIiwidG9GaXhlZCIsImEiLCJ0YXJnZXQiLCJyZWwiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/[categoryId]/[partId]/page.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/[categoryId]/page.62829ecc5a9f016d.hot-update.js b/.next/static/webpack/app/gunbuilder/[categoryId]/page.62829ecc5a9f016d.hot-update.js
deleted file mode 100644
index 3bd1e61..0000000
--- a/.next/static/webpack/app/gunbuilder/[categoryId]/page.62829ecc5a9f016d.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/[categoryId]/page",{
-
-/***/ "(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx":
-/*!**********************************************!*\
- !*** ./app/gunbuilder/[categoryId]/page.tsx ***!
- \**********************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ CategoryPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\nfunction CategoryPage() {\n _s();\n const params = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams)();\n const categoryId = params.categoryId;\n const [viewMode, setViewMode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"card\");\n const category = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.find((c)=>c.id === categoryId), [\n categoryId\n ]);\n const parts = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.filter((p)=>p.categoryId === categoryId), [\n categoryId\n ]);\n if (!category) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-2xl font-semibold text-zinc-50 mb-4\",\n children: \"Category Not Found\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 31,\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: \"/gunbuilder\",\n className: \"text-amber-300 hover:text-amber-200 underline\",\n children: \"Return to Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 34,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 29,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 28,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder\",\n className: \"text-xs text-zinc-400 hover:text-zinc-300 mb-4 inline-block\",\n children: \"← Back to Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 51,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-between gap-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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 59,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n category.name,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: \"Parts\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 63,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 62,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: [\n \"Browse all available \",\n category.name.toLowerCase(),\n \" options for your build.\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 65,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 58,\n columnNumber: 13\n }, this),\n parts.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2 border border-zinc-800 rounded-md p-1 bg-zinc-950/60\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setViewMode(\"card\"),\n className: \"px-3 py-1.5 text-xs font-medium rounded transition-colors \".concat(viewMode === \"card\" ? \"bg-zinc-800 text-zinc-50\" : \"text-zinc-400 hover:text-zinc-300\"),\n \"aria-label\": \"Card view\",\n children: \"Card\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 72,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setViewMode(\"list\"),\n className: \"px-3 py-1.5 text-xs font-medium rounded transition-colors \".concat(viewMode === \"list\" ? \"bg-zinc-800 text-zinc-50\" : \"text-zinc-400 hover:text-zinc-300\"),\n \"aria-label\": \"List view\",\n children: \"List\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 84,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 71,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 57,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 50,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-3 md:p-4\",\n children: parts.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-zinc-500 text-center py-8\",\n children: \"No parts available for this category yet.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 104,\n columnNumber: 13\n }, this) : viewMode === \"card\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-3 md:grid-cols-2 lg:grid-cols-3\",\n children: parts.map((part)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"group relative border border-zinc-700 rounded-md p-3 bg-zinc-900/50 hover:border-amber-400/60 hover:bg-amber-400/10 transition-all duration-200 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder?select=\".concat(categoryId, \":\").concat(part.id),\n className: \"flex-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-center gap-2 mb-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-zinc-50\",\n children: [\n part.brand,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-normal\",\n children: [\n \"— \",\n part.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 121,\n columnNumber: 40\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 120,\n columnNumber: 25\n }, this),\n part.notes && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-1 text-xs text-zinc-400 line-clamp-2\",\n children: part.notes\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 124,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 119,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-amber-300 whitespace-nowrap\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 129,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 118,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 114,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder/\".concat(categoryId, \"/\").concat(part.id),\n className: \"w-full rounded-md border border-zinc-700 bg-zinc-800/50 px-3 py-2 text-xs font-medium text-zinc-300 hover:bg-zinc-700 hover:border-zinc-600 transition-colors text-center\",\n children: \"View Details\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 134,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 rounded-md bg-amber-400/10 opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-amber-200 tracking-wide\",\n children: \"Add to Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 142,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 141,\n columnNumber: 19\n }, this)\n ]\n }, part.id, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 110,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 108,\n columnNumber: 13\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: parts.map((part)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"group relative border border-zinc-700 rounded-md p-3 bg-zinc-900/50 hover:border-amber-400/60 hover:bg-amber-400/10 transition-all duration-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex 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 min-w-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder?select=\".concat(categoryId, \":\").concat(part.id),\n className: \"block\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-zinc-50\",\n children: [\n part.brand,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-normal\",\n children: [\n \"— \",\n part.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 163,\n columnNumber: 40\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 162,\n columnNumber: 25\n }, this),\n part.notes && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-1 text-xs text-zinc-400 line-clamp-1\",\n children: part.notes\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 166,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 158,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 157,\n columnNumber: 21\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)(\"div\", {\n className: \"text-sm font-semibold text-amber-300 whitespace-nowrap\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 173,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder/\".concat(categoryId, \"/\").concat(part.id),\n className: \"rounded-md border border-zinc-700 bg-zinc-800/50 px-3 py-1.5 text-xs font-medium text-zinc-300 hover:bg-zinc-700 hover:border-zinc-600 transition-colors whitespace-nowrap\",\n children: \"View Details\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 176,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 172,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 156,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 rounded-md bg-amber-400/10 opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-amber-200 tracking-wide\",\n children: \"Add to Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 186,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 185,\n columnNumber: 19\n }, this)\n ]\n }, part.id, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 152,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 150,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 102,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 48,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 47,\n columnNumber: 5\n }, this);\n}\n_s(CategoryPage, \"5PCsUt45I0oNlu6HHaoW7COL+Rc=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams\n ];\n});\n_c = CategoryPage;\nvar _c;\n$RefreshReg$(_c, \"CategoryPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9wYWdlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFMEM7QUFDYjtBQUNlO0FBQ2U7QUFLNUMsU0FBU007O0lBQ3RCLE1BQU1DLFNBQVNKLDBEQUFTQTtJQUN4QixNQUFNSyxhQUFhRCxPQUFPQyxVQUFVO0lBQ3BDLE1BQU0sQ0FBQ0MsVUFBVUMsWUFBWSxHQUFHVCwrQ0FBUUEsQ0FBVztJQUVuRCxNQUFNVSxXQUFXWCw4Q0FBT0EsQ0FDdEIsSUFBTUksNkRBQVVBLENBQUNRLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxFQUFFLEtBQUtOLGFBQ3RDO1FBQUNBO0tBQVc7SUFHZCxNQUFNTyxRQUFRZiw4Q0FBT0EsQ0FDbkIsSUFBTUssd0RBQUtBLENBQUNXLE1BQU0sQ0FBQyxDQUFDQyxJQUFNQSxFQUFFVCxVQUFVLEtBQUtBLGFBQzNDO1FBQUNBO0tBQVc7SUFHZCxJQUFJLENBQUNHLFVBQVU7UUFDYixxQkFDRSw4REFBQ087WUFBS0MsV0FBVTtzQkFDZCw0RUFBQ0M7Z0JBQUlELFdBQVU7MEJBQ2IsNEVBQUNDO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ0U7NEJBQUdGLFdBQVU7c0NBQTJDOzs7Ozs7c0NBR3pELDhEQUFDakIsaURBQUlBOzRCQUNIb0IsTUFBSzs0QkFDTEgsV0FBVTtzQ0FDWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQU9YO0lBRUEscUJBQ0UsOERBQUNEO1FBQUtDLFdBQVU7a0JBQ2QsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUViLDhEQUFDSTtvQkFBT0osV0FBVTs7c0NBQ2hCLDhEQUFDakIsaURBQUlBOzRCQUNIb0IsTUFBSzs0QkFDTEgsV0FBVTtzQ0FDWDs7Ozs7O3NDQUdELDhEQUFDQzs0QkFBSUQsV0FBVTs7OENBQ2IsOERBQUNDOztzREFDQyw4REFBQ0g7NENBQUVFLFdBQVU7c0RBQWlFOzs7Ozs7c0RBRzlFLDhEQUFDRTs0Q0FBR0YsV0FBVTs7Z0RBQ1hSLFNBQVNhLElBQUk7Z0RBQUM7OERBQUMsOERBQUNDO29EQUFLTixXQUFVOzhEQUFpQjs7Ozs7Ozs7Ozs7O3NEQUVuRCw4REFBQ0Y7NENBQUVFLFdBQVU7O2dEQUFzQztnREFDM0JSLFNBQVNhLElBQUksQ0FBQ0UsV0FBVztnREFBRzs7Ozs7Ozs7Ozs7OztnQ0FJckRYLE1BQU1ZLE1BQU0sR0FBRyxtQkFDZCw4REFBQ1A7b0NBQUlELFdBQVU7O3NEQUNiLDhEQUFDUzs0Q0FDQ0MsTUFBSzs0Q0FDTEMsU0FBUyxJQUFNcEIsWUFBWTs0Q0FDM0JTLFdBQVcsNkRBSVYsT0FIQ1YsYUFBYSxTQUNULDZCQUNBOzRDQUVOc0IsY0FBVztzREFDWjs7Ozs7O3NEQUdELDhEQUFDSDs0Q0FDQ0MsTUFBSzs0Q0FDTEMsU0FBUyxJQUFNcEIsWUFBWTs0Q0FDM0JTLFdBQVcsNkRBSVYsT0FIQ1YsYUFBYSxTQUNULDZCQUNBOzRDQUVOc0IsY0FBVztzREFDWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQVNULDhEQUFDQztvQkFBUWIsV0FBVTs4QkFDaEJKLE1BQU1ZLE1BQU0sS0FBSyxrQkFDaEIsOERBQUNWO3dCQUFFRSxXQUFVO2tDQUF5Qzs7Ozs7K0JBR3BEVixhQUFhLHVCQUNmLDhEQUFDVzt3QkFBSUQsV0FBVTtrQ0FDWkosTUFBTWtCLEdBQUcsQ0FBQyxDQUFDQyxxQkFDViw4REFBQ2Q7Z0NBRUNELFdBQVU7O2tEQUVWLDhEQUFDakIsaURBQUlBO3dDQUNIb0IsTUFBTSxzQkFBb0NZLE9BQWQxQixZQUFXLEtBQVcsT0FBUjBCLEtBQUtwQixFQUFFO3dDQUNqREssV0FBVTtrREFFViw0RUFBQ0M7NENBQUlELFdBQVU7OzhEQUNiLDhEQUFDQztvREFBSUQsV0FBVTs7c0VBQ2IsOERBQUNDOzREQUFJRCxXQUFVOztnRUFDWmUsS0FBS0MsS0FBSztnRUFBQzs4RUFBQyw4REFBQ1Y7b0VBQUtOLFdBQVU7O3dFQUFjO3dFQUFHZSxLQUFLVixJQUFJOzs7Ozs7Ozs7Ozs7O3dEQUV4RFUsS0FBS0UsS0FBSyxrQkFDVCw4REFBQ25COzREQUFFRSxXQUFVO3NFQUNWZSxLQUFLRSxLQUFLOzs7Ozs7Ozs7Ozs7OERBSWpCLDhEQUFDaEI7b0RBQUlELFdBQVU7O3dEQUF5RDt3REFDcEVlLEtBQUtHLEtBQUssQ0FBQ0MsT0FBTyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7a0RBSTNCLDhEQUFDcEMsaURBQUlBO3dDQUNIb0IsTUFBTSxlQUE2QlksT0FBZDFCLFlBQVcsS0FBVyxPQUFSMEIsS0FBS3BCLEVBQUU7d0NBQzFDSyxXQUFVO2tEQUNYOzs7Ozs7a0RBSUQsOERBQUNDO3dDQUFJRCxXQUFVO2tEQUNiLDRFQUFDQzs0Q0FBSUQsV0FBVTtzREFBcUQ7Ozs7Ozs7Ozs7OzsrQkEvQmpFZSxLQUFLcEIsRUFBRTs7Ozs7Ozs7OzZDQXVDbEIsOERBQUNNO3dCQUFJRCxXQUFVO2tDQUNaSixNQUFNa0IsR0FBRyxDQUFDLENBQUNDLHFCQUNWLDhEQUFDZDtnQ0FFQ0QsV0FBVTs7a0RBRVYsOERBQUNDO3dDQUFJRCxXQUFVOzswREFDYiw4REFBQ0M7Z0RBQUlELFdBQVU7MERBQ2IsNEVBQUNqQixpREFBSUE7b0RBQ0hvQixNQUFNLHNCQUFvQ1ksT0FBZDFCLFlBQVcsS0FBVyxPQUFSMEIsS0FBS3BCLEVBQUU7b0RBQ2pESyxXQUFVOztzRUFFViw4REFBQ0M7NERBQUlELFdBQVU7O2dFQUNaZSxLQUFLQyxLQUFLO2dFQUFDOzhFQUFDLDhEQUFDVjtvRUFBS04sV0FBVTs7d0VBQWM7d0VBQUdlLEtBQUtWLElBQUk7Ozs7Ozs7Ozs7Ozs7d0RBRXhEVSxLQUFLRSxLQUFLLGtCQUNULDhEQUFDbkI7NERBQUVFLFdBQVU7c0VBQ1ZlLEtBQUtFLEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBEQUtuQiw4REFBQ2hCO2dEQUFJRCxXQUFVOztrRUFDYiw4REFBQ0M7d0RBQUlELFdBQVU7OzREQUF5RDs0REFDcEVlLEtBQUtHLEtBQUssQ0FBQ0MsT0FBTyxDQUFDOzs7Ozs7O2tFQUV2Qiw4REFBQ3BDLGlEQUFJQTt3REFDSG9CLE1BQU0sZUFBNkJZLE9BQWQxQixZQUFXLEtBQVcsT0FBUjBCLEtBQUtwQixFQUFFO3dEQUMxQ0ssV0FBVTtrRUFDWDs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tEQU1MLDhEQUFDQzt3Q0FBSUQsV0FBVTtrREFDYiw0RUFBQ0M7NENBQUlELFdBQVU7c0RBQXFEOzs7Ozs7Ozs7Ozs7K0JBakNqRWUsS0FBS3BCLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkM5QjtHQTNMd0JSOztRQUNQSCxzREFBU0E7OztLQURGRyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vcGFnZS50c3g/OGI1ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcbmltcG9ydCB7IHVzZVBhcmFtcyB9IGZyb20gXCJuZXh0L25hdmlnYXRpb25cIjtcbmltcG9ydCB7IENBVEVHT1JJRVMsIFBBUlRTIH0gZnJvbSBcIkAvZGF0YS9ndW5idWlsZGVyUGFydHNcIjtcbmltcG9ydCB0eXBlIHsgQ2F0ZWdvcnlJZCB9IGZyb20gXCJAL3R5cGVzL2d1bmJ1aWxkZXJcIjtcblxudHlwZSBWaWV3TW9kZSA9IFwiY2FyZFwiIHwgXCJsaXN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENhdGVnb3J5UGFnZSgpIHtcbiAgY29uc3QgcGFyYW1zID0gdXNlUGFyYW1zKCk7XG4gIGNvbnN0IGNhdGVnb3J5SWQgPSBwYXJhbXMuY2F0ZWdvcnlJZCBhcyBDYXRlZ29yeUlkO1xuICBjb25zdCBbdmlld01vZGUsIHNldFZpZXdNb2RlXSA9IHVzZVN0YXRlPFZpZXdNb2RlPihcImNhcmRcIik7XG5cbiAgY29uc3QgY2F0ZWdvcnkgPSB1c2VNZW1vKFxuICAgICgpID0+IENBVEVHT1JJRVMuZmluZCgoYykgPT4gYy5pZCA9PT0gY2F0ZWdvcnlJZCksXG4gICAgW2NhdGVnb3J5SWRdLFxuICApO1xuXG4gIGNvbnN0IHBhcnRzID0gdXNlTWVtbyhcbiAgICAoKSA9PiBQQVJUUy5maWx0ZXIoKHApID0+IHAuY2F0ZWdvcnlJZCA9PT0gY2F0ZWdvcnlJZCksXG4gICAgW2NhdGVnb3J5SWRdLFxuICApO1xuXG4gIGlmICghY2F0ZWdvcnkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPG1haW4gY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLWJsYWNrIHRleHQtemluYy01MFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14LWF1dG8gbWF4LXctNnhsIHB4LTQgcHktNiBsZzpweS0xMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LXNlbWlib2xkIHRleHQtemluYy01MCBtYi00XCI+XG4gICAgICAgICAgICAgIENhdGVnb3J5IE5vdCBGb3VuZFxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgIGhyZWY9XCIvZ3VuYnVpbGRlclwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtYW1iZXItMzAwIGhvdmVyOnRleHQtYW1iZXItMjAwIHVuZGVybGluZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIFJldHVybiB0byBHdW5idWlsZGVyXG4gICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYWluPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxtYWluIGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1ibGFjayB0ZXh0LXppbmMtNTBcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXgtYXV0byBtYXgtdy02eGwgcHgtNCBweS02IGxnOnB5LTEwXCI+XG4gICAgICAgIHsvKiBIZWFkZXIgKi99XG4gICAgICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwibWItNlwiPlxuICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICBocmVmPVwiL2d1bmJ1aWxkZXJcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNDAwIGhvdmVyOnRleHQtemluYy0zMDAgbWItNCBpbmxpbmUtYmxvY2tcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIOKGkCBCYWNrIHRvIEd1bmJ1aWxkZXJcbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktYmV0d2VlbiBnYXAtNFwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRyYWNraW5nLVswLjJlbV0gdXBwZXJjYXNlIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICAgICAgICBTaGFkb3cgU3RhbmRhcmRcbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwibXQtMSB0ZXh0LTJ4bCBtZDp0ZXh0LTN4bCBmb250LXNlbWlib2xkIHRyYWNraW5nLXRpZ2h0XCI+XG4gICAgICAgICAgICAgICAge2NhdGVnb3J5Lm5hbWV9IDxzcGFuIGNsYXNzTmFtZT1cInRleHQtYW1iZXItMzAwXCI+UGFydHM8L3NwYW4+XG4gICAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm10LTIgdGV4dC1zbSB0ZXh0LXppbmMtNDAwIG1heC13LXhsXCI+XG4gICAgICAgICAgICAgICAgQnJvd3NlIGFsbCBhdmFpbGFibGUge2NhdGVnb3J5Lm5hbWUudG9Mb3dlckNhc2UoKX0gb3B0aW9ucyBmb3IgeW91clxuICAgICAgICAgICAgICAgIGJ1aWxkLlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHtwYXJ0cy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC0yIGJvcmRlciBib3JkZXItemluYy04MDAgcm91bmRlZC1tZCBwLTEgYmctemluYy05NTAvNjBcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFZpZXdNb2RlKFwiY2FyZFwiKX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHB4LTMgcHktMS41IHRleHQteHMgZm9udC1tZWRpdW0gcm91bmRlZCB0cmFuc2l0aW9uLWNvbG9ycyAke1xuICAgICAgICAgICAgICAgICAgICB2aWV3TW9kZSA9PT0gXCJjYXJkXCJcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiYmctemluYy04MDAgdGV4dC16aW5jLTUwXCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwidGV4dC16aW5jLTQwMCBob3Zlcjp0ZXh0LXppbmMtMzAwXCJcbiAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNhcmQgdmlld1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQ2FyZFxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0Vmlld01vZGUoXCJsaXN0XCIpfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcHgtMyBweS0xLjUgdGV4dC14cyBmb250LW1lZGl1bSByb3VuZGVkIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgICAgICAgIHZpZXdNb2RlID09PSBcImxpc3RcIlxuICAgICAgICAgICAgICAgICAgICAgID8gXCJiZy16aW5jLTgwMCB0ZXh0LXppbmMtNTBcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJ0ZXh0LXppbmMtNDAwIGhvdmVyOnRleHQtemluYy0zMDBcIlxuICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTGlzdCB2aWV3XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBMaXN0XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgey8qIFBhcnRzIEdyaWQvTGlzdCAqL31cbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzYwIHAtMyBtZDpwLTRcIj5cbiAgICAgICAgICB7cGFydHMubGVuZ3RoID09PSAwID8gKFxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXppbmMtNTAwIHRleHQtY2VudGVyIHB5LThcIj5cbiAgICAgICAgICAgICAgTm8gcGFydHMgYXZhaWxhYmxlIGZvciB0aGlzIGNhdGVnb3J5IHlldC5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICApIDogdmlld01vZGUgPT09IFwiY2FyZFwiID8gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC0zIG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy0zXCI+XG4gICAgICAgICAgICAgIHtwYXJ0cy5tYXAoKHBhcnQpID0+IChcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBrZXk9e3BhcnQuaWR9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJncm91cCByZWxhdGl2ZSBib3JkZXIgYm9yZGVyLXppbmMtNzAwIHJvdW5kZWQtbWQgcC0zIGJnLXppbmMtOTAwLzUwIGhvdmVyOmJvcmRlci1hbWJlci00MDAvNjAgaG92ZXI6YmctYW1iZXItNDAwLzEwIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTIwMCBmbGV4IGZsZXgtY29sXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgICAgICBocmVmPXtgL2d1bmJ1aWxkZXI/c2VsZWN0PSR7Y2F0ZWdvcnlJZH06JHtwYXJ0LmlkfWB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGdhcC0yIG1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtwYXJ0LmJyYW5kfSA8c3BhbiBjbGFzc05hbWU9XCJmb250LW5vcm1hbFwiPuKAlCB7cGFydC5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubm90ZXMgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0xIHRleHQteHMgdGV4dC16aW5jLTQwMCBsaW5lLWNsYW1wLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGFydC5ub3Rlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWFtYmVyLTMwMCB3aGl0ZXNwYWNlLW5vd3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtwYXJ0LnByaWNlLnRvRml4ZWQoMil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9ndW5idWlsZGVyLyR7Y2F0ZWdvcnlJZH0vJHtwYXJ0LmlkfWB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItemluYy03MDAgYmctemluYy04MDAvNTAgcHgtMyBweS0yIHRleHQteHMgZm9udC1tZWRpdW0gdGV4dC16aW5jLTMwMCBob3ZlcjpiZy16aW5jLTcwMCBob3Zlcjpib3JkZXItemluYy02MDAgdHJhbnNpdGlvbi1jb2xvcnMgdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBWaWV3IERldGFpbHNcbiAgICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgICAgIHsvKiBIb3ZlciBPdmVybGF5ICovfVxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIHJvdW5kZWQtbWQgYmctYW1iZXItNDAwLzEwIG9wYWNpdHktMCBncm91cC1ob3ZlcjpvcGFjaXR5LTEwMCB0cmFuc2l0aW9uLW9wYWNpdHkgZHVyYXRpb24tMjAwIHBvaW50ZXItZXZlbnRzLW5vbmUgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1hbWJlci0yMDAgdHJhY2tpbmctd2lkZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIEFkZCB0byBCdWlsZFxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxuICAgICAgICAgICAgICB7cGFydHMubWFwKChwYXJ0KSA9PiAoXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAga2V5PXtwYXJ0LmlkfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZ3JvdXAgcmVsYXRpdmUgYm9yZGVyIGJvcmRlci16aW5jLTcwMCByb3VuZGVkLW1kIHAtMyBiZy16aW5jLTkwMC81MCBob3Zlcjpib3JkZXItYW1iZXItNDAwLzYwIGhvdmVyOmJnLWFtYmVyLTQwMC8xMCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0yMDBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG1pbi13LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9ndW5idWlsZGVyP3NlbGVjdD0ke2NhdGVnb3J5SWR9OiR7cGFydC5pZH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7cGFydC5icmFuZH0gPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1ub3JtYWxcIj7igJQge3BhcnQubmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtwYXJ0Lm5vdGVzICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibXQtMSB0ZXh0LXhzIHRleHQtemluYy00MDAgbGluZS1jbGFtcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubm90ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtYW1iZXItMzAwIHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAke3BhcnQucHJpY2UudG9GaXhlZCgyKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9ndW5idWlsZGVyLyR7Y2F0ZWdvcnlJZH0vJHtwYXJ0LmlkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyb3VuZGVkLW1kIGJvcmRlciBib3JkZXItemluYy03MDAgYmctemluYy04MDAvNTAgcHgtMyBweS0xLjUgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LXppbmMtMzAwIGhvdmVyOmJnLXppbmMtNzAwIGhvdmVyOmJvcmRlci16aW5jLTYwMCB0cmFuc2l0aW9uLWNvbG9ycyB3aGl0ZXNwYWNlLW5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgVmlldyBEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgey8qIEhvdmVyIE92ZXJsYXkgKi99XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgcm91bmRlZC1tZCBiZy1hbWJlci00MDAvMTAgb3BhY2l0eS0wIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0yMDAgcG9pbnRlci1ldmVudHMtbm9uZSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWFtYmVyLTIwMCB0cmFja2luZy13aWRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQWRkIHRvIEJ1aWxkXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYWluPlxuICApO1xufVxuXG4iXSwibmFtZXMiOlsidXNlTWVtbyIsInVzZVN0YXRlIiwiTGluayIsInVzZVBhcmFtcyIsIkNBVEVHT1JJRVMiLCJQQVJUUyIsIkNhdGVnb3J5UGFnZSIsInBhcmFtcyIsImNhdGVnb3J5SWQiLCJ2aWV3TW9kZSIsInNldFZpZXdNb2RlIiwiY2F0ZWdvcnkiLCJmaW5kIiwiYyIsImlkIiwicGFydHMiLCJmaWx0ZXIiLCJwIiwibWFpbiIsImNsYXNzTmFtZSIsImRpdiIsImgxIiwiaHJlZiIsImhlYWRlciIsIm5hbWUiLCJzcGFuIiwidG9Mb3dlckNhc2UiLCJsZW5ndGgiLCJidXR0b24iLCJ0eXBlIiwib25DbGljayIsImFyaWEtbGFiZWwiLCJzZWN0aW9uIiwibWFwIiwicGFydCIsImJyYW5kIiwibm90ZXMiLCJwcmljZSIsInRvRml4ZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/[categoryId]/page.73f26e6e39ca6219.hot-update.js b/.next/static/webpack/app/gunbuilder/[categoryId]/page.73f26e6e39ca6219.hot-update.js
deleted file mode 100644
index 20b8059..0000000
--- a/.next/static/webpack/app/gunbuilder/[categoryId]/page.73f26e6e39ca6219.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/[categoryId]/page",{
-
-/***/ "(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx":
-/*!**********************************************!*\
- !*** ./app/gunbuilder/[categoryId]/page.tsx ***!
- \**********************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ CategoryPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\nfunction CategoryPage() {\n _s();\n const params = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams)();\n const categoryId = params.categoryId;\n const [viewMode, setViewMode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"card\");\n const category = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.find((c)=>c.id === categoryId), [\n categoryId\n ]);\n const parts = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.filter((p)=>p.categoryId === categoryId), [\n categoryId\n ]);\n if (!category) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-2xl font-semibold text-zinc-50 mb-4\",\n children: \"Category Not Found\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 31,\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: \"/gunbuilder\",\n className: \"text-amber-300 hover:text-amber-200 underline\",\n children: \"Return to Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 34,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 29,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 28,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder\",\n className: \"text-xs text-zinc-400 hover:text-zinc-300 mb-4 inline-block\",\n children: \"← Back to Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 51,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-between gap-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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 59,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n category.name,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: \"Parts\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 63,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 62,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: [\n \"Browse all available \",\n category.name.toLowerCase(),\n \" options for your build.\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 65,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 58,\n columnNumber: 13\n }, this),\n parts.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2 border border-zinc-800 rounded-md p-1 bg-zinc-950/60\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setViewMode(\"card\"),\n className: \"px-3 py-1.5 text-xs font-medium rounded transition-colors \".concat(viewMode === \"card\" ? \"bg-zinc-800 text-zinc-50\" : \"text-zinc-400 hover:text-zinc-300\"),\n \"aria-label\": \"Card view\",\n children: \"Card\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 72,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setViewMode(\"list\"),\n className: \"px-3 py-1.5 text-xs font-medium rounded transition-colors \".concat(viewMode === \"list\" ? \"bg-zinc-800 text-zinc-50\" : \"text-zinc-400 hover:text-zinc-300\"),\n \"aria-label\": \"List view\",\n children: \"List\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 84,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 71,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 57,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 50,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-3 md:p-4\",\n children: parts.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-zinc-500 text-center py-8\",\n children: \"No parts available for this category yet.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 104,\n columnNumber: 13\n }, this) : viewMode === \"card\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-3 md:grid-cols-2 lg:grid-cols-3\",\n children: parts.map((part)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"group relative border border-zinc-700 rounded-md p-3 bg-zinc-900/50 hover:border-amber-400/60 hover:bg-amber-400/10 transition-all duration-200 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder?select=\".concat(categoryId, \":\").concat(part.id),\n className: \"flex-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-center gap-2 mb-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-zinc-50\",\n children: [\n part.brand,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-normal\",\n children: [\n \"— \",\n part.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 121,\n columnNumber: 40\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 120,\n columnNumber: 25\n }, this),\n part.notes && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-1 text-xs text-zinc-400 line-clamp-2\",\n children: part.notes\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 124,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 119,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-amber-300 whitespace-nowrap\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 129,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 118,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 114,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder/\".concat(categoryId, \"/\").concat(part.id),\n className: \"w-full rounded-md border border-zinc-700 bg-zinc-800/50 px-3 py-2 text-xs font-medium text-zinc-300 hover:bg-zinc-700 hover:border-zinc-600 transition-colors text-center\",\n children: \"View Details\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 134,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 rounded-md bg-amber-400/10 opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-amber-200 tracking-wide\",\n children: \"Add to Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 142,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 141,\n columnNumber: 19\n }, this)\n ]\n }, part.id, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 110,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 108,\n columnNumber: 13\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: parts.map((part)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border border-zinc-700 rounded-md p-3 bg-zinc-900/50 hover:border-zinc-600 transition-colors\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex 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 min-w-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder?select=\".concat(categoryId, \":\").concat(part.id),\n className: \"block\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-zinc-50\",\n children: [\n part.brand,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-normal\",\n children: [\n \"— \",\n part.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 163,\n columnNumber: 40\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 162,\n columnNumber: 25\n }, this),\n part.notes && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-1 text-xs text-zinc-400 line-clamp-1\",\n children: part.notes\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 166,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 158,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 157,\n columnNumber: 21\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)(\"div\", {\n className: \"text-sm font-semibold text-amber-300 whitespace-nowrap\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 173,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder/\".concat(categoryId, \"/\").concat(part.id),\n className: \"rounded-md border border-zinc-700 bg-zinc-800/50 px-3 py-1.5 text-xs font-medium text-zinc-300 hover:bg-zinc-700 hover:border-zinc-600 transition-colors whitespace-nowrap\",\n children: \"View Details\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 176,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 172,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 156,\n columnNumber: 19\n }, this)\n }, part.id, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 152,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 150,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 102,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 48,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 47,\n columnNumber: 5\n }, this);\n}\n_s(CategoryPage, \"5PCsUt45I0oNlu6HHaoW7COL+Rc=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams\n ];\n});\n_c = CategoryPage;\nvar _c;\n$RefreshReg$(_c, \"CategoryPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9wYWdlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFMEM7QUFDYjtBQUNlO0FBQ2U7QUFLNUMsU0FBU007O0lBQ3RCLE1BQU1DLFNBQVNKLDBEQUFTQTtJQUN4QixNQUFNSyxhQUFhRCxPQUFPQyxVQUFVO0lBQ3BDLE1BQU0sQ0FBQ0MsVUFBVUMsWUFBWSxHQUFHVCwrQ0FBUUEsQ0FBVztJQUVuRCxNQUFNVSxXQUFXWCw4Q0FBT0EsQ0FDdEIsSUFBTUksNkRBQVVBLENBQUNRLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxFQUFFLEtBQUtOLGFBQ3RDO1FBQUNBO0tBQVc7SUFHZCxNQUFNTyxRQUFRZiw4Q0FBT0EsQ0FDbkIsSUFBTUssd0RBQUtBLENBQUNXLE1BQU0sQ0FBQyxDQUFDQyxJQUFNQSxFQUFFVCxVQUFVLEtBQUtBLGFBQzNDO1FBQUNBO0tBQVc7SUFHZCxJQUFJLENBQUNHLFVBQVU7UUFDYixxQkFDRSw4REFBQ087WUFBS0MsV0FBVTtzQkFDZCw0RUFBQ0M7Z0JBQUlELFdBQVU7MEJBQ2IsNEVBQUNDO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ0U7NEJBQUdGLFdBQVU7c0NBQTJDOzs7Ozs7c0NBR3pELDhEQUFDakIsaURBQUlBOzRCQUNIb0IsTUFBSzs0QkFDTEgsV0FBVTtzQ0FDWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQU9YO0lBRUEscUJBQ0UsOERBQUNEO1FBQUtDLFdBQVU7a0JBQ2QsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUViLDhEQUFDSTtvQkFBT0osV0FBVTs7c0NBQ2hCLDhEQUFDakIsaURBQUlBOzRCQUNIb0IsTUFBSzs0QkFDTEgsV0FBVTtzQ0FDWDs7Ozs7O3NDQUdELDhEQUFDQzs0QkFBSUQsV0FBVTs7OENBQ2IsOERBQUNDOztzREFDQyw4REFBQ0g7NENBQUVFLFdBQVU7c0RBQWlFOzs7Ozs7c0RBRzlFLDhEQUFDRTs0Q0FBR0YsV0FBVTs7Z0RBQ1hSLFNBQVNhLElBQUk7Z0RBQUM7OERBQUMsOERBQUNDO29EQUFLTixXQUFVOzhEQUFpQjs7Ozs7Ozs7Ozs7O3NEQUVuRCw4REFBQ0Y7NENBQUVFLFdBQVU7O2dEQUFzQztnREFDM0JSLFNBQVNhLElBQUksQ0FBQ0UsV0FBVztnREFBRzs7Ozs7Ozs7Ozs7OztnQ0FJckRYLE1BQU1ZLE1BQU0sR0FBRyxtQkFDZCw4REFBQ1A7b0NBQUlELFdBQVU7O3NEQUNiLDhEQUFDUzs0Q0FDQ0MsTUFBSzs0Q0FDTEMsU0FBUyxJQUFNcEIsWUFBWTs0Q0FDM0JTLFdBQVcsNkRBSVYsT0FIQ1YsYUFBYSxTQUNULDZCQUNBOzRDQUVOc0IsY0FBVztzREFDWjs7Ozs7O3NEQUdELDhEQUFDSDs0Q0FDQ0MsTUFBSzs0Q0FDTEMsU0FBUyxJQUFNcEIsWUFBWTs0Q0FDM0JTLFdBQVcsNkRBSVYsT0FIQ1YsYUFBYSxTQUNULDZCQUNBOzRDQUVOc0IsY0FBVztzREFDWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQVNULDhEQUFDQztvQkFBUWIsV0FBVTs4QkFDaEJKLE1BQU1ZLE1BQU0sS0FBSyxrQkFDaEIsOERBQUNWO3dCQUFFRSxXQUFVO2tDQUF5Qzs7Ozs7K0JBR3BEVixhQUFhLHVCQUNmLDhEQUFDVzt3QkFBSUQsV0FBVTtrQ0FDWkosTUFBTWtCLEdBQUcsQ0FBQyxDQUFDQyxxQkFDViw4REFBQ2Q7Z0NBRUNELFdBQVU7O2tEQUVWLDhEQUFDakIsaURBQUlBO3dDQUNIb0IsTUFBTSxzQkFBb0NZLE9BQWQxQixZQUFXLEtBQVcsT0FBUjBCLEtBQUtwQixFQUFFO3dDQUNqREssV0FBVTtrREFFViw0RUFBQ0M7NENBQUlELFdBQVU7OzhEQUNiLDhEQUFDQztvREFBSUQsV0FBVTs7c0VBQ2IsOERBQUNDOzREQUFJRCxXQUFVOztnRUFDWmUsS0FBS0MsS0FBSztnRUFBQzs4RUFBQyw4REFBQ1Y7b0VBQUtOLFdBQVU7O3dFQUFjO3dFQUFHZSxLQUFLVixJQUFJOzs7Ozs7Ozs7Ozs7O3dEQUV4RFUsS0FBS0UsS0FBSyxrQkFDVCw4REFBQ25COzREQUFFRSxXQUFVO3NFQUNWZSxLQUFLRSxLQUFLOzs7Ozs7Ozs7Ozs7OERBSWpCLDhEQUFDaEI7b0RBQUlELFdBQVU7O3dEQUF5RDt3REFDcEVlLEtBQUtHLEtBQUssQ0FBQ0MsT0FBTyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7a0RBSTNCLDhEQUFDcEMsaURBQUlBO3dDQUNIb0IsTUFBTSxlQUE2QlksT0FBZDFCLFlBQVcsS0FBVyxPQUFSMEIsS0FBS3BCLEVBQUU7d0NBQzFDSyxXQUFVO2tEQUNYOzs7Ozs7a0RBSUQsOERBQUNDO3dDQUFJRCxXQUFVO2tEQUNiLDRFQUFDQzs0Q0FBSUQsV0FBVTtzREFBcUQ7Ozs7Ozs7Ozs7OzsrQkEvQmpFZSxLQUFLcEIsRUFBRTs7Ozs7Ozs7OzZDQXVDbEIsOERBQUNNO3dCQUFJRCxXQUFVO2tDQUNaSixNQUFNa0IsR0FBRyxDQUFDLENBQUNDLHFCQUNWLDhEQUFDZDtnQ0FFQ0QsV0FBVTswQ0FFViw0RUFBQ0M7b0NBQUlELFdBQVU7O3NEQUNiLDhEQUFDQzs0Q0FBSUQsV0FBVTtzREFDYiw0RUFBQ2pCLGlEQUFJQTtnREFDSG9CLE1BQU0sc0JBQW9DWSxPQUFkMUIsWUFBVyxLQUFXLE9BQVIwQixLQUFLcEIsRUFBRTtnREFDakRLLFdBQVU7O2tFQUVWLDhEQUFDQzt3REFBSUQsV0FBVTs7NERBQ1plLEtBQUtDLEtBQUs7NERBQUM7MEVBQUMsOERBQUNWO2dFQUFLTixXQUFVOztvRUFBYztvRUFBR2UsS0FBS1YsSUFBSTs7Ozs7Ozs7Ozs7OztvREFFeERVLEtBQUtFLEtBQUssa0JBQ1QsOERBQUNuQjt3REFBRUUsV0FBVTtrRUFDVmUsS0FBS0UsS0FBSzs7Ozs7Ozs7Ozs7Ozs7Ozs7c0RBS25CLDhEQUFDaEI7NENBQUlELFdBQVU7OzhEQUNiLDhEQUFDQztvREFBSUQsV0FBVTs7d0RBQXlEO3dEQUNwRWUsS0FBS0csS0FBSyxDQUFDQyxPQUFPLENBQUM7Ozs7Ozs7OERBRXZCLDhEQUFDcEMsaURBQUlBO29EQUNIb0IsTUFBTSxlQUE2QlksT0FBZDFCLFlBQVcsS0FBVyxPQUFSMEIsS0FBS3BCLEVBQUU7b0RBQzFDSyxXQUFVOzhEQUNYOzs7Ozs7Ozs7Ozs7Ozs7Ozs7K0JBMUJBZSxLQUFLcEIsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUF1QzlCO0dBckx3QlI7O1FBQ1BILHNEQUFTQTs7O0tBREZHIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9wYWdlLnRzeD84YjVkIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgeyB1c2VNZW1vLCB1c2VTdGF0ZSB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xuaW1wb3J0IHsgdXNlUGFyYW1zIH0gZnJvbSBcIm5leHQvbmF2aWdhdGlvblwiO1xuaW1wb3J0IHsgQ0FURUdPUklFUywgUEFSVFMgfSBmcm9tIFwiQC9kYXRhL2d1bmJ1aWxkZXJQYXJ0c1wiO1xuaW1wb3J0IHR5cGUgeyBDYXRlZ29yeUlkIH0gZnJvbSBcIkAvdHlwZXMvZ3VuYnVpbGRlclwiO1xuXG50eXBlIFZpZXdNb2RlID0gXCJjYXJkXCIgfCBcImxpc3RcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gQ2F0ZWdvcnlQYWdlKCkge1xuICBjb25zdCBwYXJhbXMgPSB1c2VQYXJhbXMoKTtcbiAgY29uc3QgY2F0ZWdvcnlJZCA9IHBhcmFtcy5jYXRlZ29yeUlkIGFzIENhdGVnb3J5SWQ7XG4gIGNvbnN0IFt2aWV3TW9kZSwgc2V0Vmlld01vZGVdID0gdXNlU3RhdGU8Vmlld01vZGU+KFwiY2FyZFwiKTtcblxuICBjb25zdCBjYXRlZ29yeSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gQ0FURUdPUklFUy5maW5kKChjKSA9PiBjLmlkID09PSBjYXRlZ29yeUlkKSxcbiAgICBbY2F0ZWdvcnlJZF0sXG4gICk7XG5cbiAgY29uc3QgcGFydHMgPSB1c2VNZW1vKFxuICAgICgpID0+IFBBUlRTLmZpbHRlcigocCkgPT4gcC5jYXRlZ29yeUlkID09PSBjYXRlZ29yeUlkKSxcbiAgICBbY2F0ZWdvcnlJZF0sXG4gICk7XG5cbiAgaWYgKCFjYXRlZ29yeSkge1xuICAgIHJldHVybiAoXG4gICAgICA8bWFpbiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gYmctYmxhY2sgdGV4dC16aW5jLTUwXCI+XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXgtYXV0byBtYXgtdy02eGwgcHgtNCBweS02IGxnOnB5LTEwXCI+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTUwIG1iLTRcIj5cbiAgICAgICAgICAgICAgQ2F0ZWdvcnkgTm90IEZvdW5kXG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgaHJlZj1cIi9ndW5idWlsZGVyXCJcbiAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDAgaG92ZXI6dGV4dC1hbWJlci0yMDAgdW5kZXJsaW5lXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgUmV0dXJuIHRvIEd1bmJ1aWxkZXJcbiAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L21haW4+XG4gICAgKTtcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPG1haW4gY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLWJsYWNrIHRleHQtemluYy01MFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJteC1hdXRvIG1heC13LTZ4bCBweC00IHB5LTYgbGc6cHktMTBcIj5cbiAgICAgICAgey8qIEhlYWRlciAqL31cbiAgICAgICAgPGhlYWRlciBjbGFzc05hbWU9XCJtYi02XCI+XG4gICAgICAgICAgPExpbmtcbiAgICAgICAgICAgIGhyZWY9XCIvZ3VuYnVpbGRlclwiXG4gICAgICAgICAgICBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy00MDAgaG92ZXI6dGV4dC16aW5jLTMwMCBtYi00IGlubGluZS1ibG9ja1wiXG4gICAgICAgICAgPlxuICAgICAgICAgICAg4oaQIEJhY2sgdG8gR3VuYnVpbGRlclxuICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtc3RhcnQganVzdGlmeS1iZXR3ZWVuIGdhcC00XCI+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdHJhY2tpbmctWzAuMmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgICAgICAgIFNoYWRvdyBTdGFuZGFyZFxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJtdC0xIHRleHQtMnhsIG1kOnRleHQtM3hsIGZvbnQtc2VtaWJvbGQgdHJhY2tpbmctdGlnaHRcIj5cbiAgICAgICAgICAgICAgICB7Y2F0ZWdvcnkubmFtZX0gPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDBcIj5QYXJ0czwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibXQtMiB0ZXh0LXNtIHRleHQtemluYy00MDAgbWF4LXcteGxcIj5cbiAgICAgICAgICAgICAgICBCcm93c2UgYWxsIGF2YWlsYWJsZSB7Y2F0ZWdvcnkubmFtZS50b0xvd2VyQ2FzZSgpfSBvcHRpb25zIGZvciB5b3VyXG4gICAgICAgICAgICAgICAgYnVpbGQuXG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge3BhcnRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggZ2FwLTIgYm9yZGVyIGJvcmRlci16aW5jLTgwMCByb3VuZGVkLW1kIHAtMSBiZy16aW5jLTk1MC82MFwiPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0Vmlld01vZGUoXCJjYXJkXCIpfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcHgtMyBweS0xLjUgdGV4dC14cyBmb250LW1lZGl1bSByb3VuZGVkIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgICAgICAgIHZpZXdNb2RlID09PSBcImNhcmRcIlxuICAgICAgICAgICAgICAgICAgICAgID8gXCJiZy16aW5jLTgwMCB0ZXh0LXppbmMtNTBcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJ0ZXh0LXppbmMtNDAwIGhvdmVyOnRleHQtemluYy0zMDBcIlxuICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2FyZCB2aWV3XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBDYXJkXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiBzZXRWaWV3TW9kZShcImxpc3RcIil9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BweC0zIHB5LTEuNSB0ZXh0LXhzIGZvbnQtbWVkaXVtIHJvdW5kZWQgdHJhbnNpdGlvbi1jb2xvcnMgJHtcbiAgICAgICAgICAgICAgICAgICAgdmlld01vZGUgPT09IFwibGlzdFwiXG4gICAgICAgICAgICAgICAgICAgICAgPyBcImJnLXppbmMtODAwIHRleHQtemluYy01MFwiXG4gICAgICAgICAgICAgICAgICAgICAgOiBcInRleHQtemluYy00MDAgaG92ZXI6dGV4dC16aW5jLTMwMFwiXG4gICAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJMaXN0IHZpZXdcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIExpc3RcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2hlYWRlcj5cblxuICAgICAgICB7LyogUGFydHMgR3JpZC9MaXN0ICovfVxuICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy04MDAgYmctemluYy05NTAvNjAgcC0zIG1kOnAtNFwiPlxuICAgICAgICAgIHtwYXJ0cy5sZW5ndGggPT09IDAgPyAoXG4gICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtemluYy01MDAgdGV4dC1jZW50ZXIgcHktOFwiPlxuICAgICAgICAgICAgICBObyBwYXJ0cyBhdmFpbGFibGUgZm9yIHRoaXMgY2F0ZWdvcnkgeWV0LlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICkgOiB2aWV3TW9kZSA9PT0gXCJjYXJkXCIgPyAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImdyaWQgZ2FwLTMgbWQ6Z3JpZC1jb2xzLTIgbGc6Z3JpZC1jb2xzLTNcIj5cbiAgICAgICAgICAgICAge3BhcnRzLm1hcCgocGFydCkgPT4gKFxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgIGtleT17cGFydC5pZH1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImdyb3VwIHJlbGF0aXZlIGJvcmRlciBib3JkZXItemluYy03MDAgcm91bmRlZC1tZCBwLTMgYmctemluYy05MDAvNTAgaG92ZXI6Ym9yZGVyLWFtYmVyLTQwMC82MCBob3ZlcjpiZy1hbWJlci00MDAvMTAgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMjAwIGZsZXggZmxleC1jb2xcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgICAgIGhyZWY9e2AvZ3VuYnVpbGRlcj9zZWxlY3Q9JHtjYXRlZ29yeUlkfToke3BhcnQuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZmxleC0xXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZ2FwLTIgbWItM1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LXppbmMtNTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQuYnJhbmR9IDxzcGFuIGNsYXNzTmFtZT1cImZvbnQtbm9ybWFsXCI+4oCUIHtwYXJ0Lm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7cGFydC5ub3RlcyAmJiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm10LTEgdGV4dC14cyB0ZXh0LXppbmMtNDAwIGxpbmUtY2xhbXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwYXJ0Lm5vdGVzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtYW1iZXItMzAwIHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAke3BhcnQucHJpY2UudG9GaXhlZCgyKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgICAgICBocmVmPXtgL2d1bmJ1aWxkZXIvJHtjYXRlZ29yeUlkfS8ke3BhcnQuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwidy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTcwMCBiZy16aW5jLTgwMC81MCBweC0zIHB5LTIgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LXppbmMtMzAwIGhvdmVyOmJnLXppbmMtNzAwIGhvdmVyOmJvcmRlci16aW5jLTYwMCB0cmFuc2l0aW9uLWNvbG9ycyB0ZXh0LWNlbnRlclwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIFZpZXcgRGV0YWlsc1xuICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgICAgey8qIEhvdmVyIE92ZXJsYXkgKi99XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgcm91bmRlZC1tZCBiZy1hbWJlci00MDAvMTAgb3BhY2l0eS0wIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0yMDAgcG9pbnRlci1ldmVudHMtbm9uZSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWFtYmVyLTIwMCB0cmFja2luZy13aWRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQWRkIHRvIEJ1aWxkXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKSA6IChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XG4gICAgICAgICAgICAgIHtwYXJ0cy5tYXAoKHBhcnQpID0+IChcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBrZXk9e3BhcnQuaWR9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJib3JkZXIgYm9yZGVyLXppbmMtNzAwIHJvdW5kZWQtbWQgcC0zIGJnLXppbmMtOTAwLzUwIGhvdmVyOmJvcmRlci16aW5jLTYwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgbWluLXctMFwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtgL2d1bmJ1aWxkZXI/c2VsZWN0PSR7Y2F0ZWdvcnlJZH06JHtwYXJ0LmlkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJibG9ja1wiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtwYXJ0LmJyYW5kfSA8c3BhbiBjbGFzc05hbWU9XCJmb250LW5vcm1hbFwiPuKAlCB7cGFydC5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubm90ZXMgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0xIHRleHQteHMgdGV4dC16aW5jLTQwMCBsaW5lLWNsYW1wLTFcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGFydC5ub3Rlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1hbWJlci0zMDAgd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICR7cGFydC5wcmljZS50b0ZpeGVkKDIpfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgICAgICAgICBocmVmPXtgL2d1bmJ1aWxkZXIvJHtjYXRlZ29yeUlkfS8ke3BhcnQuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTcwMCBiZy16aW5jLTgwMC81MCBweC0zIHB5LTEuNSB0ZXh0LXhzIGZvbnQtbWVkaXVtIHRleHQtemluYy0zMDAgaG92ZXI6YmctemluYy03MDAgaG92ZXI6Ym9yZGVyLXppbmMtNjAwIHRyYW5zaXRpb24tY29sb3JzIHdoaXRlc3BhY2Utbm93cmFwXCJcbiAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICBWaWV3IERldGFpbHNcbiAgICAgICAgICAgICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYWluPlxuICApO1xufVxuXG4iXSwibmFtZXMiOlsidXNlTWVtbyIsInVzZVN0YXRlIiwiTGluayIsInVzZVBhcmFtcyIsIkNBVEVHT1JJRVMiLCJQQVJUUyIsIkNhdGVnb3J5UGFnZSIsInBhcmFtcyIsImNhdGVnb3J5SWQiLCJ2aWV3TW9kZSIsInNldFZpZXdNb2RlIiwiY2F0ZWdvcnkiLCJmaW5kIiwiYyIsImlkIiwicGFydHMiLCJmaWx0ZXIiLCJwIiwibWFpbiIsImNsYXNzTmFtZSIsImRpdiIsImgxIiwiaHJlZiIsImhlYWRlciIsIm5hbWUiLCJzcGFuIiwidG9Mb3dlckNhc2UiLCJsZW5ndGgiLCJidXR0b24iLCJ0eXBlIiwib25DbGljayIsImFyaWEtbGFiZWwiLCJzZWN0aW9uIiwibWFwIiwicGFydCIsImJyYW5kIiwibm90ZXMiLCJwcmljZSIsInRvRml4ZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/[categoryId]/page.86af3bcc66ce70ea.hot-update.js b/.next/static/webpack/app/gunbuilder/[categoryId]/page.86af3bcc66ce70ea.hot-update.js
deleted file mode 100644
index 8a0747c..0000000
--- a/.next/static/webpack/app/gunbuilder/[categoryId]/page.86af3bcc66ce70ea.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/[categoryId]/page",{
-
-/***/ "(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx":
-/*!**********************************************!*\
- !*** ./app/gunbuilder/[categoryId]/page.tsx ***!
- \**********************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ CategoryPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\nfunction CategoryPage() {\n _s();\n const params = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams)();\n const categoryId = params.categoryId;\n const [viewMode, setViewMode] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(\"list\");\n const category = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.find((c)=>c.id === categoryId), [\n categoryId\n ]);\n const parts = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>_data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.filter((p)=>p.categoryId === categoryId), [\n categoryId\n ]);\n if (!category) {\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-center\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"text-2xl font-semibold text-zinc-50 mb-4\",\n children: \"Category Not Found\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 31,\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: \"/gunbuilder\",\n className: \"text-amber-300 hover:text-amber-200 underline\",\n children: \"Return to Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 34,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 30,\n columnNumber: 11\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 29,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 28,\n columnNumber: 7\n }, this);\n }\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder\",\n className: \"text-xs text-zinc-400 hover:text-zinc-300 mb-4 inline-block\",\n children: \"← Back to Gunbuilder\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 51,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex items-start justify-between gap-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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 59,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n category.name,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: \"Parts\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 63,\n columnNumber: 33\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 62,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: [\n \"Browse all available \",\n category.name.toLowerCase(),\n \" options for your build.\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 65,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 58,\n columnNumber: 13\n }, this),\n parts.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex gap-2 border border-zinc-800 rounded-md p-1 bg-zinc-950/60\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setViewMode(\"card\"),\n className: \"px-3 py-1.5 text-xs font-medium rounded transition-colors \".concat(viewMode === \"card\" ? \"bg-zinc-800 text-zinc-50\" : \"text-zinc-400 hover:text-zinc-300\"),\n \"aria-label\": \"Card view\",\n children: \"Card\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 72,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>setViewMode(\"list\"),\n className: \"px-3 py-1.5 text-xs font-medium rounded transition-colors \".concat(viewMode === \"list\" ? \"bg-zinc-800 text-zinc-50\" : \"text-zinc-400 hover:text-zinc-300\"),\n \"aria-label\": \"List view\",\n children: \"List\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 84,\n columnNumber: 17\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 71,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 57,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 50,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-3 md:p-4\",\n children: parts.length === 0 ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-zinc-500 text-center py-8\",\n children: \"No parts available for this category yet.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 104,\n columnNumber: 13\n }, this) : viewMode === \"card\" ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-3 md:grid-cols-2 lg:grid-cols-3\",\n children: parts.map((part)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"group relative border border-zinc-700 rounded-md p-3 bg-zinc-900/50 hover:border-amber-400/60 hover:bg-amber-400/10 transition-all duration-200 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder?select=\".concat(categoryId, \":\").concat(part.id),\n className: \"flex-1\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex justify-between items-center gap-2 mb-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-zinc-50\",\n children: [\n part.brand,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-normal\",\n children: [\n \"— \",\n part.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 121,\n columnNumber: 40\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 120,\n columnNumber: 25\n }, this),\n part.notes && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-1 text-xs text-zinc-400 line-clamp-2\",\n children: part.notes\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 124,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 119,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-amber-300 whitespace-nowrap\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 129,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 118,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 114,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder/\".concat(categoryId, \"/\").concat(part.id),\n className: \"w-full rounded-md border border-zinc-700 bg-zinc-800/50 px-3 py-2 text-xs font-medium text-zinc-300 hover:bg-zinc-700 hover:border-zinc-600 transition-colors text-center\",\n children: \"View Details\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 134,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 rounded-md bg-amber-400/10 opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-amber-200 tracking-wide\",\n children: \"Add to Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 142,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 141,\n columnNumber: 19\n }, this)\n ]\n }, part.id, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 110,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 108,\n columnNumber: 13\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"space-y-2\",\n children: parts.map((part)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"group relative border border-zinc-700 rounded-md p-3 bg-zinc-900/50 hover:border-amber-400/60 hover:bg-amber-400/10 transition-all duration-200\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex 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 min-w-0\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder?select=\".concat(categoryId, \":\").concat(part.id),\n className: \"block\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-zinc-50\",\n children: [\n part.brand,\n \" \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"font-normal\",\n children: [\n \"— \",\n part.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 163,\n columnNumber: 40\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 162,\n columnNumber: 25\n }, this),\n part.notes && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-1 text-xs text-zinc-400 line-clamp-1\",\n children: part.notes\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 166,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 158,\n columnNumber: 23\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 157,\n columnNumber: 21\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)(\"div\", {\n className: \"text-sm font-semibold text-amber-300 whitespace-nowrap\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 173,\n columnNumber: 23\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder/\".concat(categoryId, \"/\").concat(part.id),\n className: \"rounded-md border border-zinc-700 bg-zinc-800/50 px-3 py-1.5 text-xs font-medium text-zinc-300 hover:bg-zinc-700 hover:border-zinc-600 transition-colors whitespace-nowrap\",\n children: \"View Details\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 176,\n columnNumber: 23\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 172,\n columnNumber: 21\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 156,\n columnNumber: 19\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"absolute inset-0 rounded-md bg-amber-400/10 opacity-0 group-hover:opacity-100 transition-opacity duration-200 pointer-events-none flex items-center justify-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm font-semibold text-amber-200 tracking-wide\",\n children: \"Add to Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 186,\n columnNumber: 21\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 185,\n columnNumber: 19\n }, this)\n ]\n }, part.id, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 152,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 150,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 102,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 48,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx\",\n lineNumber: 47,\n columnNumber: 5\n }, this);\n}\n_s(CategoryPage, \"irR2OusL714JECF9AGrZhP5ZXaI=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useParams\n ];\n});\n_c = CategoryPage;\nvar _c;\n$RefreshReg$(_c, \"CategoryPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL1tjYXRlZ29yeUlkXS9wYWdlLnRzeCIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUFFMEM7QUFDYjtBQUNlO0FBQ2U7QUFLNUMsU0FBU007O0lBQ3RCLE1BQU1DLFNBQVNKLDBEQUFTQTtJQUN4QixNQUFNSyxhQUFhRCxPQUFPQyxVQUFVO0lBQ3BDLE1BQU0sQ0FBQ0MsVUFBVUMsWUFBWSxHQUFHVCwrQ0FBUUEsQ0FBVztJQUVuRCxNQUFNVSxXQUFXWCw4Q0FBT0EsQ0FDdEIsSUFBTUksNkRBQVVBLENBQUNRLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxFQUFFLEtBQUtOLGFBQ3RDO1FBQUNBO0tBQVc7SUFHZCxNQUFNTyxRQUFRZiw4Q0FBT0EsQ0FDbkIsSUFBTUssd0RBQUtBLENBQUNXLE1BQU0sQ0FBQyxDQUFDQyxJQUFNQSxFQUFFVCxVQUFVLEtBQUtBLGFBQzNDO1FBQUNBO0tBQVc7SUFHZCxJQUFJLENBQUNHLFVBQVU7UUFDYixxQkFDRSw4REFBQ087WUFBS0MsV0FBVTtzQkFDZCw0RUFBQ0M7Z0JBQUlELFdBQVU7MEJBQ2IsNEVBQUNDO29CQUFJRCxXQUFVOztzQ0FDYiw4REFBQ0U7NEJBQUdGLFdBQVU7c0NBQTJDOzs7Ozs7c0NBR3pELDhEQUFDakIsaURBQUlBOzRCQUNIb0IsTUFBSzs0QkFDTEgsV0FBVTtzQ0FDWDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztJQU9YO0lBRUEscUJBQ0UsOERBQUNEO1FBQUtDLFdBQVU7a0JBQ2QsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUViLDhEQUFDSTtvQkFBT0osV0FBVTs7c0NBQ2hCLDhEQUFDakIsaURBQUlBOzRCQUNIb0IsTUFBSzs0QkFDTEgsV0FBVTtzQ0FDWDs7Ozs7O3NDQUdELDhEQUFDQzs0QkFBSUQsV0FBVTs7OENBQ2IsOERBQUNDOztzREFDQyw4REFBQ0g7NENBQUVFLFdBQVU7c0RBQWlFOzs7Ozs7c0RBRzlFLDhEQUFDRTs0Q0FBR0YsV0FBVTs7Z0RBQ1hSLFNBQVNhLElBQUk7Z0RBQUM7OERBQUMsOERBQUNDO29EQUFLTixXQUFVOzhEQUFpQjs7Ozs7Ozs7Ozs7O3NEQUVuRCw4REFBQ0Y7NENBQUVFLFdBQVU7O2dEQUFzQztnREFDM0JSLFNBQVNhLElBQUksQ0FBQ0UsV0FBVztnREFBRzs7Ozs7Ozs7Ozs7OztnQ0FJckRYLE1BQU1ZLE1BQU0sR0FBRyxtQkFDZCw4REFBQ1A7b0NBQUlELFdBQVU7O3NEQUNiLDhEQUFDUzs0Q0FDQ0MsTUFBSzs0Q0FDTEMsU0FBUyxJQUFNcEIsWUFBWTs0Q0FDM0JTLFdBQVcsNkRBSVYsT0FIQ1YsYUFBYSxTQUNULDZCQUNBOzRDQUVOc0IsY0FBVztzREFDWjs7Ozs7O3NEQUdELDhEQUFDSDs0Q0FDQ0MsTUFBSzs0Q0FDTEMsU0FBUyxJQUFNcEIsWUFBWTs0Q0FDM0JTLFdBQVcsNkRBSVYsT0FIQ1YsYUFBYSxTQUNULDZCQUNBOzRDQUVOc0IsY0FBVztzREFDWjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQVNULDhEQUFDQztvQkFBUWIsV0FBVTs4QkFDaEJKLE1BQU1ZLE1BQU0sS0FBSyxrQkFDaEIsOERBQUNWO3dCQUFFRSxXQUFVO2tDQUF5Qzs7Ozs7K0JBR3BEVixhQUFhLHVCQUNmLDhEQUFDVzt3QkFBSUQsV0FBVTtrQ0FDWkosTUFBTWtCLEdBQUcsQ0FBQyxDQUFDQyxxQkFDViw4REFBQ2Q7Z0NBRUNELFdBQVU7O2tEQUVWLDhEQUFDakIsaURBQUlBO3dDQUNIb0IsTUFBTSxzQkFBb0NZLE9BQWQxQixZQUFXLEtBQVcsT0FBUjBCLEtBQUtwQixFQUFFO3dDQUNqREssV0FBVTtrREFFViw0RUFBQ0M7NENBQUlELFdBQVU7OzhEQUNiLDhEQUFDQztvREFBSUQsV0FBVTs7c0VBQ2IsOERBQUNDOzREQUFJRCxXQUFVOztnRUFDWmUsS0FBS0MsS0FBSztnRUFBQzs4RUFBQyw4REFBQ1Y7b0VBQUtOLFdBQVU7O3dFQUFjO3dFQUFHZSxLQUFLVixJQUFJOzs7Ozs7Ozs7Ozs7O3dEQUV4RFUsS0FBS0UsS0FBSyxrQkFDVCw4REFBQ25COzREQUFFRSxXQUFVO3NFQUNWZSxLQUFLRSxLQUFLOzs7Ozs7Ozs7Ozs7OERBSWpCLDhEQUFDaEI7b0RBQUlELFdBQVU7O3dEQUF5RDt3REFDcEVlLEtBQUtHLEtBQUssQ0FBQ0MsT0FBTyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7a0RBSTNCLDhEQUFDcEMsaURBQUlBO3dDQUNIb0IsTUFBTSxlQUE2QlksT0FBZDFCLFlBQVcsS0FBVyxPQUFSMEIsS0FBS3BCLEVBQUU7d0NBQzFDSyxXQUFVO2tEQUNYOzs7Ozs7a0RBSUQsOERBQUNDO3dDQUFJRCxXQUFVO2tEQUNiLDRFQUFDQzs0Q0FBSUQsV0FBVTtzREFBcUQ7Ozs7Ozs7Ozs7OzsrQkEvQmpFZSxLQUFLcEIsRUFBRTs7Ozs7Ozs7OzZDQXVDbEIsOERBQUNNO3dCQUFJRCxXQUFVO2tDQUNaSixNQUFNa0IsR0FBRyxDQUFDLENBQUNDLHFCQUNWLDhEQUFDZDtnQ0FFQ0QsV0FBVTs7a0RBRVYsOERBQUNDO3dDQUFJRCxXQUFVOzswREFDYiw4REFBQ0M7Z0RBQUlELFdBQVU7MERBQ2IsNEVBQUNqQixpREFBSUE7b0RBQ0hvQixNQUFNLHNCQUFvQ1ksT0FBZDFCLFlBQVcsS0FBVyxPQUFSMEIsS0FBS3BCLEVBQUU7b0RBQ2pESyxXQUFVOztzRUFFViw4REFBQ0M7NERBQUlELFdBQVU7O2dFQUNaZSxLQUFLQyxLQUFLO2dFQUFDOzhFQUFDLDhEQUFDVjtvRUFBS04sV0FBVTs7d0VBQWM7d0VBQUdlLEtBQUtWLElBQUk7Ozs7Ozs7Ozs7Ozs7d0RBRXhEVSxLQUFLRSxLQUFLLGtCQUNULDhEQUFDbkI7NERBQUVFLFdBQVU7c0VBQ1ZlLEtBQUtFLEtBQUs7Ozs7Ozs7Ozs7Ozs7Ozs7OzBEQUtuQiw4REFBQ2hCO2dEQUFJRCxXQUFVOztrRUFDYiw4REFBQ0M7d0RBQUlELFdBQVU7OzREQUF5RDs0REFDcEVlLEtBQUtHLEtBQUssQ0FBQ0MsT0FBTyxDQUFDOzs7Ozs7O2tFQUV2Qiw4REFBQ3BDLGlEQUFJQTt3REFDSG9CLE1BQU0sZUFBNkJZLE9BQWQxQixZQUFXLEtBQVcsT0FBUjBCLEtBQUtwQixFQUFFO3dEQUMxQ0ssV0FBVTtrRUFDWDs7Ozs7Ozs7Ozs7Ozs7Ozs7O2tEQU1MLDhEQUFDQzt3Q0FBSUQsV0FBVTtrREFDYiw0RUFBQ0M7NENBQUlELFdBQVU7c0RBQXFEOzs7Ozs7Ozs7Ozs7K0JBakNqRWUsS0FBS3BCLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBNkM5QjtHQTNMd0JSOztRQUNQSCxzREFBU0E7OztLQURGRyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvZ3VuYnVpbGRlci9bY2F0ZWdvcnlJZF0vcGFnZS50c3g/OGI1ZCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcbmltcG9ydCB7IHVzZVBhcmFtcyB9IGZyb20gXCJuZXh0L25hdmlnYXRpb25cIjtcbmltcG9ydCB7IENBVEVHT1JJRVMsIFBBUlRTIH0gZnJvbSBcIkAvZGF0YS9ndW5idWlsZGVyUGFydHNcIjtcbmltcG9ydCB0eXBlIHsgQ2F0ZWdvcnlJZCB9IGZyb20gXCJAL3R5cGVzL2d1bmJ1aWxkZXJcIjtcblxudHlwZSBWaWV3TW9kZSA9IFwiY2FyZFwiIHwgXCJsaXN0XCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIENhdGVnb3J5UGFnZSgpIHtcbiAgY29uc3QgcGFyYW1zID0gdXNlUGFyYW1zKCk7XG4gIGNvbnN0IGNhdGVnb3J5SWQgPSBwYXJhbXMuY2F0ZWdvcnlJZCBhcyBDYXRlZ29yeUlkO1xuICBjb25zdCBbdmlld01vZGUsIHNldFZpZXdNb2RlXSA9IHVzZVN0YXRlPFZpZXdNb2RlPihcImxpc3RcIik7XG5cbiAgY29uc3QgY2F0ZWdvcnkgPSB1c2VNZW1vKFxuICAgICgpID0+IENBVEVHT1JJRVMuZmluZCgoYykgPT4gYy5pZCA9PT0gY2F0ZWdvcnlJZCksXG4gICAgW2NhdGVnb3J5SWRdLFxuICApO1xuXG4gIGNvbnN0IHBhcnRzID0gdXNlTWVtbyhcbiAgICAoKSA9PiBQQVJUUy5maWx0ZXIoKHApID0+IHAuY2F0ZWdvcnlJZCA9PT0gY2F0ZWdvcnlJZCksXG4gICAgW2NhdGVnb3J5SWRdLFxuICApO1xuXG4gIGlmICghY2F0ZWdvcnkpIHtcbiAgICByZXR1cm4gKFxuICAgICAgPG1haW4gY2xhc3NOYW1lPVwibWluLWgtc2NyZWVuIGJnLWJsYWNrIHRleHQtemluYy01MFwiPlxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14LWF1dG8gbWF4LXctNnhsIHB4LTQgcHktNiBsZzpweS0xMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxoMSBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LXNlbWlib2xkIHRleHQtemluYy01MCBtYi00XCI+XG4gICAgICAgICAgICAgIENhdGVnb3J5IE5vdCBGb3VuZFxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgIGhyZWY9XCIvZ3VuYnVpbGRlclwiXG4gICAgICAgICAgICAgIGNsYXNzTmFtZT1cInRleHQtYW1iZXItMzAwIGhvdmVyOnRleHQtYW1iZXItMjAwIHVuZGVybGluZVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIFJldHVybiB0byBHdW5idWlsZGVyXG4gICAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9tYWluPlxuICAgICk7XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDxtYWluIGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1ibGFjayB0ZXh0LXppbmMtNTBcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXgtYXV0byBtYXgtdy02eGwgcHgtNCBweS02IGxnOnB5LTEwXCI+XG4gICAgICAgIHsvKiBIZWFkZXIgKi99XG4gICAgICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwibWItNlwiPlxuICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICBocmVmPVwiL2d1bmJ1aWxkZXJcIlxuICAgICAgICAgICAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNDAwIGhvdmVyOnRleHQtemluYy0zMDAgbWItNCBpbmxpbmUtYmxvY2tcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIOKGkCBCYWNrIHRvIEd1bmJ1aWxkZXJcbiAgICAgICAgICA8L0xpbms+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLXN0YXJ0IGp1c3RpZnktYmV0d2VlbiBnYXAtNFwiPlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRyYWNraW5nLVswLjJlbV0gdXBwZXJjYXNlIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICAgICAgICBTaGFkb3cgU3RhbmRhcmRcbiAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwibXQtMSB0ZXh0LTJ4bCBtZDp0ZXh0LTN4bCBmb250LXNlbWlib2xkIHRyYWNraW5nLXRpZ2h0XCI+XG4gICAgICAgICAgICAgICAge2NhdGVnb3J5Lm5hbWV9IDxzcGFuIGNsYXNzTmFtZT1cInRleHQtYW1iZXItMzAwXCI+UGFydHM8L3NwYW4+XG4gICAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm10LTIgdGV4dC1zbSB0ZXh0LXppbmMtNDAwIG1heC13LXhsXCI+XG4gICAgICAgICAgICAgICAgQnJvd3NlIGFsbCBhdmFpbGFibGUge2NhdGVnb3J5Lm5hbWUudG9Mb3dlckNhc2UoKX0gb3B0aW9ucyBmb3IgeW91clxuICAgICAgICAgICAgICAgIGJ1aWxkLlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHtwYXJ0cy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGdhcC0yIGJvcmRlciBib3JkZXItemluYy04MDAgcm91bmRlZC1tZCBwLTEgYmctemluYy05NTAvNjBcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHNldFZpZXdNb2RlKFwiY2FyZFwiKX1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17YHB4LTMgcHktMS41IHRleHQteHMgZm9udC1tZWRpdW0gcm91bmRlZCB0cmFuc2l0aW9uLWNvbG9ycyAke1xuICAgICAgICAgICAgICAgICAgICB2aWV3TW9kZSA9PT0gXCJjYXJkXCJcbiAgICAgICAgICAgICAgICAgICAgICA/IFwiYmctemluYy04MDAgdGV4dC16aW5jLTUwXCJcbiAgICAgICAgICAgICAgICAgICAgICA6IFwidGV4dC16aW5jLTQwMCBob3Zlcjp0ZXh0LXppbmMtMzAwXCJcbiAgICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD1cIkNhcmQgdmlld1wiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgQ2FyZFxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gc2V0Vmlld01vZGUoXCJsaXN0XCIpfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtgcHgtMyBweS0xLjUgdGV4dC14cyBmb250LW1lZGl1bSByb3VuZGVkIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgICAgICAgIHZpZXdNb2RlID09PSBcImxpc3RcIlxuICAgICAgICAgICAgICAgICAgICAgID8gXCJiZy16aW5jLTgwMCB0ZXh0LXppbmMtNTBcIlxuICAgICAgICAgICAgICAgICAgICAgIDogXCJ0ZXh0LXppbmMtNDAwIGhvdmVyOnRleHQtemluYy0zMDBcIlxuICAgICAgICAgICAgICAgICAgfWB9XG4gICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPVwiTGlzdCB2aWV3XCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICBMaXN0XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgey8qIFBhcnRzIEdyaWQvTGlzdCAqL31cbiAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzYwIHAtMyBtZDpwLTRcIj5cbiAgICAgICAgICB7cGFydHMubGVuZ3RoID09PSAwID8gKFxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXppbmMtNTAwIHRleHQtY2VudGVyIHB5LThcIj5cbiAgICAgICAgICAgICAgTm8gcGFydHMgYXZhaWxhYmxlIGZvciB0aGlzIGNhdGVnb3J5IHlldC5cbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICApIDogdmlld01vZGUgPT09IFwiY2FyZFwiID8gKFxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC0zIG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy0zXCI+XG4gICAgICAgICAgICAgIHtwYXJ0cy5tYXAoKHBhcnQpID0+IChcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBrZXk9e3BhcnQuaWR9XG4gICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJncm91cCByZWxhdGl2ZSBib3JkZXIgYm9yZGVyLXppbmMtNzAwIHJvdW5kZWQtbWQgcC0zIGJnLXppbmMtOTAwLzUwIGhvdmVyOmJvcmRlci1hbWJlci00MDAvNjAgaG92ZXI6YmctYW1iZXItNDAwLzEwIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTIwMCBmbGV4IGZsZXgtY29sXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgICAgICBocmVmPXtgL2d1bmJ1aWxkZXI/c2VsZWN0PSR7Y2F0ZWdvcnlJZH06JHtwYXJ0LmlkfWB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImZsZXgtMVwiXG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBqdXN0aWZ5LWJldHdlZW4gaXRlbXMtY2VudGVyIGdhcC0yIG1iLTNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImZsZXgtMVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC16aW5jLTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtwYXJ0LmJyYW5kfSA8c3BhbiBjbGFzc05hbWU9XCJmb250LW5vcm1hbFwiPuKAlCB7cGFydC5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubm90ZXMgJiYgKFxuICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0xIHRleHQteHMgdGV4dC16aW5jLTQwMCBsaW5lLWNsYW1wLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGFydC5ub3Rlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWFtYmVyLTMwMCB3aGl0ZXNwYWNlLW5vd3JhcFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgJHtwYXJ0LnByaWNlLnRvRml4ZWQoMil9XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgICAgPExpbmtcbiAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9ndW5idWlsZGVyLyR7Y2F0ZWdvcnlJZH0vJHtwYXJ0LmlkfWB9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItemluYy03MDAgYmctemluYy04MDAvNTAgcHgtMyBweS0yIHRleHQteHMgZm9udC1tZWRpdW0gdGV4dC16aW5jLTMwMCBob3ZlcjpiZy16aW5jLTcwMCBob3Zlcjpib3JkZXItemluYy02MDAgdHJhbnNpdGlvbi1jb2xvcnMgdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICBWaWV3IERldGFpbHNcbiAgICAgICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgICAgIHsvKiBIb3ZlciBPdmVybGF5ICovfVxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJhYnNvbHV0ZSBpbnNldC0wIHJvdW5kZWQtbWQgYmctYW1iZXItNDAwLzEwIG9wYWNpdHktMCBncm91cC1ob3ZlcjpvcGFjaXR5LTEwMCB0cmFuc2l0aW9uLW9wYWNpdHkgZHVyYXRpb24tMjAwIHBvaW50ZXItZXZlbnRzLW5vbmUgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIGZvbnQtc2VtaWJvbGQgdGV4dC1hbWJlci0yMDAgdHJhY2tpbmctd2lkZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIEFkZCB0byBCdWlsZFxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInNwYWNlLXktMlwiPlxuICAgICAgICAgICAgICB7cGFydHMubWFwKChwYXJ0KSA9PiAoXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAga2V5PXtwYXJ0LmlkfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiZ3JvdXAgcmVsYXRpdmUgYm9yZGVyIGJvcmRlci16aW5jLTcwMCByb3VuZGVkLW1kIHAtMyBiZy16aW5jLTkwMC81MCBob3Zlcjpib3JkZXItYW1iZXItNDAwLzYwIGhvdmVyOmJnLWFtYmVyLTQwMC8xMCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0yMDBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC00XCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG1pbi13LTBcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9ndW5idWlsZGVyP3NlbGVjdD0ke2NhdGVnb3J5SWR9OiR7cGFydC5pZH1gfVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYmxvY2tcIlxuICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7cGFydC5icmFuZH0gPHNwYW4gY2xhc3NOYW1lPVwiZm9udC1ub3JtYWxcIj7igJQge3BhcnQubmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtwYXJ0Lm5vdGVzICYmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibXQtMSB0ZXh0LXhzIHRleHQtemluYy00MDAgbGluZS1jbGFtcC0xXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubm90ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1zbSBmb250LXNlbWlib2xkIHRleHQtYW1iZXItMzAwIHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAke3BhcnQucHJpY2UudG9GaXhlZCgyKX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICA8TGlua1xuICAgICAgICAgICAgICAgICAgICAgICAgaHJlZj17YC9ndW5idWlsZGVyLyR7Y2F0ZWdvcnlJZH0vJHtwYXJ0LmlkfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJyb3VuZGVkLW1kIGJvcmRlciBib3JkZXItemluYy03MDAgYmctemluYy04MDAvNTAgcHgtMyBweS0xLjUgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LXppbmMtMzAwIGhvdmVyOmJnLXppbmMtNzAwIGhvdmVyOmJvcmRlci16aW5jLTYwMCB0cmFuc2l0aW9uLWNvbG9ycyB3aGl0ZXNwYWNlLW5vd3JhcFwiXG4gICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgVmlldyBEZXRhaWxzXG4gICAgICAgICAgICAgICAgICAgICAgPC9MaW5rPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgey8qIEhvdmVyIE92ZXJsYXkgKi99XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImFic29sdXRlIGluc2V0LTAgcm91bmRlZC1tZCBiZy1hbWJlci00MDAvMTAgb3BhY2l0eS0wIGdyb3VwLWhvdmVyOm9wYWNpdHktMTAwIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi0yMDAgcG9pbnRlci1ldmVudHMtbm9uZSBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gZm9udC1zZW1pYm9sZCB0ZXh0LWFtYmVyLTIwMCB0cmFja2luZy13aWRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgQWRkIHRvIEJ1aWxkXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgKX1cbiAgICAgICAgPC9zZWN0aW9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9tYWluPlxuICApO1xufVxuXG4iXSwibmFtZXMiOlsidXNlTWVtbyIsInVzZVN0YXRlIiwiTGluayIsInVzZVBhcmFtcyIsIkNBVEVHT1JJRVMiLCJQQVJUUyIsIkNhdGVnb3J5UGFnZSIsInBhcmFtcyIsImNhdGVnb3J5SWQiLCJ2aWV3TW9kZSIsInNldFZpZXdNb2RlIiwiY2F0ZWdvcnkiLCJmaW5kIiwiYyIsImlkIiwicGFydHMiLCJmaWx0ZXIiLCJwIiwibWFpbiIsImNsYXNzTmFtZSIsImRpdiIsImgxIiwiaHJlZiIsImhlYWRlciIsIm5hbWUiLCJzcGFuIiwidG9Mb3dlckNhc2UiLCJsZW5ndGgiLCJidXR0b24iLCJ0eXBlIiwib25DbGljayIsImFyaWEtbGFiZWwiLCJzZWN0aW9uIiwibWFwIiwicGFydCIsImJyYW5kIiwibm90ZXMiLCJwcmljZSIsInRvRml4ZWQiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/[categoryId]/page.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/page.0422c1777ea6729c.hot-update.js b/.next/static/webpack/app/gunbuilder/page.0422c1777ea6729c.hot-update.js
deleted file mode 100644
index 822d714..0000000
--- a/.next/static/webpack/app/gunbuilder/page.0422c1777ea6729c.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/page",{
-
-/***/ "(app-pages-browser)/./app/gunbuilder/page.tsx":
-/*!*********************************!*\
- !*** ./app/gunbuilder/page.tsx ***!
- \*********************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ GunbuilderPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_1__);\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* harmony import */ var _components_CategoryColumn__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/components/CategoryColumn */ \"(app-pages-browser)/./components/CategoryColumn.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\nfunction GunbuilderPage() {\n _s();\n const [build, setBuild] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)({});\n const partsByCategory = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const grouped = {};\n for (const category of _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_2__.CATEGORIES){\n grouped[category.id] = _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_2__.PARTS.filter((p)=>p.categoryId === category.id);\n }\n return grouped;\n }, []);\n const selectedParts = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return Object.entries(build).map((param)=>{\n let [categoryId, partId] = param;\n return _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_2__.PARTS.find((p)=>p.id === partId && p.categoryId === categoryId);\n }).filter(Boolean);\n }, [\n build\n ]);\n const totalPrice = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>selectedParts.reduce((sum, p)=>sum + p.price, 0), [\n selectedParts\n ]);\n const handleSelectPart = (categoryId, partId)=>{\n setBuild((prev)=>({\n ...prev,\n [categoryId]: partId\n }));\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6 flex flex-col gap-2 md:flex-row md:items-end md: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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 49,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n \"Gunbuilder \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: \"Prototype\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 53,\n columnNumber: 26\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 52,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: \"Choose one part per category to assemble an AR-15 build. Prices and links are mock data for now—but the flow is close to what the real tool will be.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 55,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 48,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-3 md:mt-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-400\",\n children: \"Current build total\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 63,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-semibold text-amber-300\",\n children: [\n \"$\",\n totalPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 64,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-500\",\n children: [\n selectedParts.length,\n \" / \",\n _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_2__.CATEGORIES.length,\n \" categories filled\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 67,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 62,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 47,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 lg:grid-cols-[3fr,1.25fr]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-3 md:p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 md:grid-cols-2 lg:grid-cols-3\",\n children: _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_2__.CATEGORIES.map((category)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border border-zinc-800 rounded-md p-2 md:p-3 bg-zinc-950/60\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_CategoryColumn__WEBPACK_IMPORTED_MODULE_3__.CategoryColumn, {\n category: category,\n parts: partsByCategory[category.id],\n selectedPartId: build[category.id],\n onSelectPart: (partId)=>handleSelectPart(category.id, partId)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 83,\n columnNumber: 19\n }, this)\n }, category.id, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 79,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 77,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 76,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/80 p-3 md:p-4 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400 mb-3\",\n children: \"Current Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 98,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto pr-1\",\n children: [\n selectedParts.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-zinc-500\",\n children: \"Select a part from each category to start your build.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 104,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2\",\n children: _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_2__.CATEGORIES.map((cat)=>{\n const selectedPartId = build[cat.id];\n const part = _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_2__.PARTS.find((p)=>p.id === selectedPartId && p.categoryId === cat.id);\n return /*#__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)(\"div\", {\n className: \"text-[0.7rem] uppercase tracking-[0.16em] text-zinc-500\",\n children: cat.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 117,\n columnNumber: 23\n }, this),\n part ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 flex justify-between items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-400\",\n children: [\n part.brand,\n \" \"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 123,\n columnNumber: 29\n }, this),\n part.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 122,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs font-semibold text-amber-300 whitespace-nowrap\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 128,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 121,\n columnNumber: 25\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 text-xs text-zinc-600\",\n children: \"Not selected\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 133,\n columnNumber: 25\n }, this)\n ]\n }, cat.id, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 116,\n columnNumber: 21\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 109,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 102,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 border-t border-zinc-800 pt-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n className: \"w-full rounded-md border border-amber-400/60 bg-amber-400/10 px-3 py-2 text-sm font-medium text-amber-200 hover:bg-amber-400/15 disabled:opacity-40 disabled:cursor-not-allowed\",\n disabled: selectedParts.length === 0,\n onClick: ()=>{\n console.log(\"Build:\", build);\n alert(\"Prototype only: in the real app this would go to a sharable build summary with affiliate links.\");\n },\n children: \"Continue to Buy (Prototype)\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 145,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-[0.7rem] text-zinc-500\",\n children: \"In the production version, this will take you to a build page with retailer links and sharing options.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 158,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 144,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 97,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 74,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 45,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 44,\n columnNumber: 5\n }, this);\n}\n_s(GunbuilderPage, \"svOkcQtDxbXWPTNUUMXQODeiitQ=\");\n_c = GunbuilderPage;\nvar _c;\n$RefreshReg$(_c, \"GunbuilderPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL3BhZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0FBRTBDO0FBQ2lCO0FBRUU7QUFJOUMsU0FBU0s7O0lBQ3RCLE1BQU0sQ0FBQ0MsT0FBT0MsU0FBUyxHQUFHTiwrQ0FBUUEsQ0FBYSxDQUFDO0lBRWhELE1BQU1PLGtCQUE4Q1IsOENBQU9BLENBQUM7UUFDMUQsTUFBTVMsVUFBVSxDQUFDO1FBQ2pCLEtBQUssTUFBTUMsWUFBWVIsNkRBQVVBLENBQUU7WUFDakNPLE9BQU8sQ0FBQ0MsU0FBU0MsRUFBRSxDQUFDLEdBQUdSLHdEQUFLQSxDQUFDUyxNQUFNLENBQ2pDLENBQUNDLElBQU1BLEVBQUVDLFVBQVUsS0FBS0osU0FBU0MsRUFBRTtRQUV2QztRQUNBLE9BQU9GO0lBQ1QsR0FBRyxFQUFFO0lBRUwsTUFBTU0sZ0JBQXdCZiw4Q0FBT0EsQ0FBQztRQUNwQyxPQUFPZ0IsT0FBT0MsT0FBTyxDQUFDWCxPQUNuQlksR0FBRyxDQUFDO2dCQUFDLENBQUNKLFlBQVlLLE9BQU87bUJBQ3hCaEIsd0RBQUtBLENBQUNpQixJQUFJLENBQUMsQ0FBQ1AsSUFBTUEsRUFBRUYsRUFBRSxLQUFLUSxVQUFVTixFQUFFQyxVQUFVLEtBQUtBO1dBRXZERixNQUFNLENBQUNTO0lBQ1osR0FBRztRQUFDZjtLQUFNO0lBRVYsTUFBTWdCLGFBQWF0Qiw4Q0FBT0EsQ0FDeEIsSUFBTWUsY0FBY1EsTUFBTSxDQUFDLENBQUNDLEtBQUtYLElBQU1XLE1BQU1YLEVBQUVZLEtBQUssRUFBRSxJQUN0RDtRQUFDVjtLQUFjO0lBR2pCLE1BQU1XLG1CQUFtQixDQUFDWixZQUF3Qks7UUFDaERaLFNBQVMsQ0FBQ29CLE9BQVU7Z0JBQ2xCLEdBQUdBLElBQUk7Z0JBQ1AsQ0FBQ2IsV0FBVyxFQUFFSztZQUNoQjtJQUNGO0lBRUEscUJBQ0UsOERBQUNTO1FBQUtDLFdBQVU7a0JBQ2QsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUViLDhEQUFDRTtvQkFBT0YsV0FBVTs7c0NBQ2hCLDhEQUFDQzs7OENBQ0MsOERBQUNqQjtvQ0FBRWdCLFdBQVU7OENBQWlFOzs7Ozs7OENBRzlFLDhEQUFDRztvQ0FBR0gsV0FBVTs7d0NBQXlEO3NEQUMxRCw4REFBQ0k7NENBQUtKLFdBQVU7c0RBQWlCOzs7Ozs7Ozs7Ozs7OENBRTlDLDhEQUFDaEI7b0NBQUVnQixXQUFVOzhDQUFzQzs7Ozs7Ozs7Ozs7O3NDQU9yRCw4REFBQ0M7NEJBQUlELFdBQVU7OzhDQUNiLDhEQUFDQztvQ0FBSUQsV0FBVTs4Q0FBd0I7Ozs7Ozs4Q0FDdkMsOERBQUNDO29DQUFJRCxXQUFVOzt3Q0FBd0M7d0NBQ25EUCxXQUFXWSxPQUFPLENBQUM7Ozs7Ozs7OENBRXZCLDhEQUFDSjtvQ0FBSUQsV0FBVTs7d0NBQ1pkLGNBQWNvQixNQUFNO3dDQUFDO3dDQUFJakMsNkRBQVVBLENBQUNpQyxNQUFNO3dDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7OzhCQU1sRCw4REFBQ0w7b0JBQUlELFdBQVU7O3NDQUViLDhEQUFDTzs0QkFBUVAsV0FBVTtzQ0FDakIsNEVBQUNDO2dDQUFJRCxXQUFVOzBDQUNaM0IsNkRBQVVBLENBQUNnQixHQUFHLENBQUMsQ0FBQ1IseUJBQ2YsOERBQUNvQjt3Q0FFQ0QsV0FBVTtrREFFViw0RUFBQ3pCLHNFQUFjQTs0Q0FDYk0sVUFBVUE7NENBQ1YyQixPQUFPN0IsZUFBZSxDQUFDRSxTQUFTQyxFQUFFLENBQUM7NENBQ25DMkIsZ0JBQWdCaEMsS0FBSyxDQUFDSSxTQUFTQyxFQUFFLENBQUM7NENBQ2xDNEIsY0FBYyxDQUFDcEIsU0FDYk8saUJBQWlCaEIsU0FBU0MsRUFBRSxFQUFFUTs7Ozs7O3VDQVI3QlQsU0FBU0MsRUFBRTs7Ozs7Ozs7Ozs7Ozs7O3NDQWlCeEIsOERBQUM2Qjs0QkFBTVgsV0FBVTs7OENBQ2YsOERBQUNZO29DQUFHWixXQUFVOzhDQUF1RTs7Ozs7OzhDQUlyRiw4REFBQ0M7b0NBQUlELFdBQVU7O3dDQUNaZCxjQUFjb0IsTUFBTSxLQUFLLG1CQUN4Qiw4REFBQ3RCOzRDQUFFZ0IsV0FBVTtzREFBd0I7Ozs7OztzREFLdkMsOERBQUNhOzRDQUFHYixXQUFVO3NEQUNYM0IsNkRBQVVBLENBQUNnQixHQUFHLENBQUMsQ0FBQ3lCO2dEQUNmLE1BQU1MLGlCQUFpQmhDLEtBQUssQ0FBQ3FDLElBQUloQyxFQUFFLENBQUM7Z0RBQ3BDLE1BQU1pQyxPQUFPekMsd0RBQUtBLENBQUNpQixJQUFJLENBQ3JCLENBQUNQLElBQU1BLEVBQUVGLEVBQUUsS0FBSzJCLGtCQUFrQnpCLEVBQUVDLFVBQVUsS0FBSzZCLElBQUloQyxFQUFFO2dEQUUzRCxxQkFDRSw4REFBQ2tDOztzRUFDQyw4REFBQ2Y7NERBQUlELFdBQVU7c0VBQ1pjLElBQUlHLElBQUk7Ozs7Ozt3REFFVkYscUJBQ0MsOERBQUNkOzREQUFJRCxXQUFVOzs4RUFDYiw4REFBQ0M7b0VBQUlELFdBQVU7O3NGQUNiLDhEQUFDSTs0RUFBS0osV0FBVTs7Z0ZBQ2JlLEtBQUtHLEtBQUs7Z0ZBQUU7Ozs7Ozs7d0VBRWRILEtBQUtFLElBQUk7Ozs7Ozs7OEVBRVosOERBQUNoQjtvRUFBSUQsV0FBVTs7d0VBQXlEO3dFQUNwRWUsS0FBS25CLEtBQUssQ0FBQ1MsT0FBTyxDQUFDOzs7Ozs7Ozs7Ozs7aUZBSXpCLDhEQUFDSjs0REFBSUQsV0FBVTtzRUFBNkI7Ozs7Ozs7bURBakJ2Q2MsSUFBSWhDLEVBQUU7Ozs7OzRDQXVCbkI7Ozs7Ozs7Ozs7Ozs4Q0FLSiw4REFBQ21CO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ21COzRDQUNDQyxNQUFLOzRDQUNMcEIsV0FBVTs0Q0FDVnFCLFVBQVVuQyxjQUFjb0IsTUFBTSxLQUFLOzRDQUNuQ2dCLFNBQVM7Z0RBQ1BDLFFBQVFDLEdBQUcsQ0FBQyxVQUFVL0M7Z0RBQ3RCZ0QsTUFDRTs0Q0FFSjtzREFDRDs7Ozs7O3NEQUdELDhEQUFDekM7NENBQUVnQixXQUFVO3NEQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVOUQ7R0E5SndCeEI7S0FBQUEiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2d1bmJ1aWxkZXIvcGFnZS50c3g/MDU0MCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgdXNlTWVtbywgdXNlU3RhdGUgfSBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7IENBVEVHT1JJRVMsIFBBUlRTIH0gZnJvbSBcIkAvZGF0YS9ndW5idWlsZGVyUGFydHNcIjtcbmltcG9ydCB0eXBlIHsgQ2F0ZWdvcnlJZCwgUGFydCB9IGZyb20gXCJAL3R5cGVzL2d1bmJ1aWxkZXJcIjtcbmltcG9ydCB7IENhdGVnb3J5Q29sdW1uIH0gZnJvbSBcIkAvY29tcG9uZW50cy9DYXRlZ29yeUNvbHVtblwiO1xuXG50eXBlIEJ1aWxkU3RhdGUgPSBQYXJ0aWFsPFJlY29yZDxDYXRlZ29yeUlkLCBzdHJpbmc+PjsgLy8gY2F0ZWdvcnlJZCAtPiBwYXJ0SWRcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gR3VuYnVpbGRlclBhZ2UoKSB7XG4gIGNvbnN0IFtidWlsZCwgc2V0QnVpbGRdID0gdXNlU3RhdGU8QnVpbGRTdGF0ZT4oe30pO1xuXG4gIGNvbnN0IHBhcnRzQnlDYXRlZ29yeTogUmVjb3JkPENhdGVnb3J5SWQsIFBhcnRbXT4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBncm91cGVkID0ge30gYXMgUmVjb3JkPENhdGVnb3J5SWQsIFBhcnRbXT47XG4gICAgZm9yIChjb25zdCBjYXRlZ29yeSBvZiBDQVRFR09SSUVTKSB7XG4gICAgICBncm91cGVkW2NhdGVnb3J5LmlkXSA9IFBBUlRTLmZpbHRlcihcbiAgICAgICAgKHApID0+IHAuY2F0ZWdvcnlJZCA9PT0gY2F0ZWdvcnkuaWQsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZ3JvdXBlZDtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHNlbGVjdGVkUGFydHM6IFBhcnRbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhidWlsZClcbiAgICAgIC5tYXAoKFtjYXRlZ29yeUlkLCBwYXJ0SWRdKSA9PlxuICAgICAgICBQQVJUUy5maW5kKChwKSA9PiBwLmlkID09PSBwYXJ0SWQgJiYgcC5jYXRlZ29yeUlkID09PSBjYXRlZ29yeUlkKSxcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgUGFydFtdO1xuICB9LCBbYnVpbGRdKTtcblxuICBjb25zdCB0b3RhbFByaWNlID0gdXNlTWVtbyhcbiAgICAoKSA9PiBzZWxlY3RlZFBhcnRzLnJlZHVjZSgoc3VtLCBwKSA9PiBzdW0gKyBwLnByaWNlLCAwKSxcbiAgICBbc2VsZWN0ZWRQYXJ0c10sXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0UGFydCA9IChjYXRlZ29yeUlkOiBDYXRlZ29yeUlkLCBwYXJ0SWQ6IHN0cmluZykgPT4ge1xuICAgIHNldEJ1aWxkKChwcmV2KSA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIFtjYXRlZ29yeUlkXTogcGFydElkLFxuICAgIH0pKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxtYWluIGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1ibGFjayB0ZXh0LXppbmMtNTBcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXgtYXV0byBtYXgtdy02eGwgcHgtNCBweS02IGxnOnB5LTEwXCI+XG4gICAgICAgIHsvKiBIZWFkZXIgKi99XG4gICAgICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwibWItNiBmbGV4IGZsZXgtY29sIGdhcC0yIG1kOmZsZXgtcm93IG1kOml0ZW1zLWVuZCBtZDpqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRyYWNraW5nLVswLjJlbV0gdXBwZXJjYXNlIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICAgICAgU2hhZG93IFN0YW5kYXJkXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwibXQtMSB0ZXh0LTJ4bCBtZDp0ZXh0LTN4bCBmb250LXNlbWlib2xkIHRyYWNraW5nLXRpZ2h0XCI+XG4gICAgICAgICAgICAgIEd1bmJ1aWxkZXIgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDBcIj5Qcm90b3R5cGU8L3NwYW4+XG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibXQtMiB0ZXh0LXNtIHRleHQtemluYy00MDAgbWF4LXcteGxcIj5cbiAgICAgICAgICAgICAgQ2hvb3NlIG9uZSBwYXJ0IHBlciBjYXRlZ29yeSB0byBhc3NlbWJsZSBhbiBBUi0xNSBidWlsZC4gUHJpY2VzXG4gICAgICAgICAgICAgIGFuZCBsaW5rcyBhcmUgbW9jayBkYXRhIGZvciBub3figJRidXQgdGhlIGZsb3cgaXMgY2xvc2UgdG8gd2hhdFxuICAgICAgICAgICAgICB0aGUgcmVhbCB0b29sIHdpbGwgYmUuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTMgbWQ6bXQtMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy00MDBcIj5DdXJyZW50IGJ1aWxkIHRvdGFsPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtc2VtaWJvbGQgdGV4dC1hbWJlci0zMDBcIj5cbiAgICAgICAgICAgICAgJHt0b3RhbFByaWNlLnRvRml4ZWQoMil9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICAgIHtzZWxlY3RlZFBhcnRzLmxlbmd0aH0gLyB7Q0FURUdPUklFUy5sZW5ndGh9IGNhdGVnb3JpZXMgZmlsbGVkXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgey8qIExheW91dCAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC00IGxnOmdyaWQtY29scy1bM2ZyLDEuMjVmcl1cIj5cbiAgICAgICAgICB7LyogQ2F0ZWdvcmllcy9wYXJ0cyAqL31cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy04MDAgYmctemluYy05NTAvNjAgcC0zIG1kOnAtNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC00IG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy0zXCI+XG4gICAgICAgICAgICAgIHtDQVRFR09SSUVTLm1hcCgoY2F0ZWdvcnkpID0+IChcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBrZXk9e2NhdGVnb3J5LmlkfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYm9yZGVyIGJvcmRlci16aW5jLTgwMCByb3VuZGVkLW1kIHAtMiBtZDpwLTMgYmctemluYy05NTAvNjBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUNvbHVtblxuICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeT17Y2F0ZWdvcnl9XG4gICAgICAgICAgICAgICAgICAgIHBhcnRzPXtwYXJ0c0J5Q2F0ZWdvcnlbY2F0ZWdvcnkuaWRdfVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFBhcnRJZD17YnVpbGRbY2F0ZWdvcnkuaWRdfVxuICAgICAgICAgICAgICAgICAgICBvblNlbGVjdFBhcnQ9eyhwYXJ0SWQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0UGFydChjYXRlZ29yeS5pZCwgcGFydElkKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgIHsvKiBCdWlsZCBTdW1tYXJ5ICovfVxuICAgICAgICAgIDxhc2lkZSBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy04MDAgYmctemluYy05NTAvODAgcC0zIG1kOnAtNCBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRyYWNraW5nLVswLjE2ZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNDAwIG1iLTNcIj5cbiAgICAgICAgICAgICAgQ3VycmVudCBCdWlsZFxuICAgICAgICAgICAgPC9oMj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgb3ZlcmZsb3cteS1hdXRvIHByLTFcIj5cbiAgICAgICAgICAgICAge3NlbGVjdGVkUGFydHMubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICAgICAgICAgIFNlbGVjdCBhIHBhcnQgZnJvbSBlYWNoIGNhdGVnb3J5IHRvIHN0YXJ0IHlvdXIgYnVpbGQuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJzcGFjZS15LTJcIj5cbiAgICAgICAgICAgICAgICB7Q0FURUdPUklFUy5tYXAoKGNhdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRQYXJ0SWQgPSBidWlsZFtjYXQuaWRdO1xuICAgICAgICAgICAgICAgICAgY29uc3QgcGFydCA9IFBBUlRTLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChwKSA9PiBwLmlkID09PSBzZWxlY3RlZFBhcnRJZCAmJiBwLmNhdGVnb3J5SWQgPT09IGNhdC5pZCxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8bGkga2V5PXtjYXQuaWR9PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1bMC43cmVtXSB1cHBlcmNhc2UgdHJhY2tpbmctWzAuMTZlbV0gdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NhdC5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIHtwYXJ0ID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0xIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC16aW5jLTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC16aW5jLTQwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQuYnJhbmR9e1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGFydC5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1hbWJlci0zMDAgd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3BhcnQucHJpY2UudG9GaXhlZCgyKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0xIHRleHQteHMgdGV4dC16aW5jLTYwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBOb3Qgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHsvKiBDVEEgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTQgYm9yZGVyLXQgYm9yZGVyLXppbmMtODAwIHB0LTNcIj5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cInctZnVsbCByb3VuZGVkLW1kIGJvcmRlciBib3JkZXItYW1iZXItNDAwLzYwIGJnLWFtYmVyLTQwMC8xMCBweC0zIHB5LTIgdGV4dC1zbSBmb250LW1lZGl1bSB0ZXh0LWFtYmVyLTIwMCBob3ZlcjpiZy1hbWJlci00MDAvMTUgZGlzYWJsZWQ6b3BhY2l0eS00MCBkaXNhYmxlZDpjdXJzb3Itbm90LWFsbG93ZWRcIlxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtzZWxlY3RlZFBhcnRzLmxlbmd0aCA9PT0gMH1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkJ1aWxkOlwiLCBidWlsZCk7XG4gICAgICAgICAgICAgICAgICBhbGVydChcbiAgICAgICAgICAgICAgICAgICAgXCJQcm90b3R5cGUgb25seTogaW4gdGhlIHJlYWwgYXBwIHRoaXMgd291bGQgZ28gdG8gYSBzaGFyYWJsZSBidWlsZCBzdW1tYXJ5IHdpdGggYWZmaWxpYXRlIGxpbmtzLlwiLFxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQ29udGludWUgdG8gQnV5IChQcm90b3R5cGUpXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0yIHRleHQtWzAuN3JlbV0gdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgICAgICAgIEluIHRoZSBwcm9kdWN0aW9uIHZlcnNpb24sIHRoaXMgd2lsbCB0YWtlIHlvdSB0byBhIGJ1aWxkIHBhZ2Ugd2l0aFxuICAgICAgICAgICAgICAgIHJldGFpbGVyIGxpbmtzIGFuZCBzaGFyaW5nIG9wdGlvbnMuXG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYXNpZGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYWluPlxuICApO1xufVxuIl0sIm5hbWVzIjpbInVzZU1lbW8iLCJ1c2VTdGF0ZSIsIkNBVEVHT1JJRVMiLCJQQVJUUyIsIkNhdGVnb3J5Q29sdW1uIiwiR3VuYnVpbGRlclBhZ2UiLCJidWlsZCIsInNldEJ1aWxkIiwicGFydHNCeUNhdGVnb3J5IiwiZ3JvdXBlZCIsImNhdGVnb3J5IiwiaWQiLCJmaWx0ZXIiLCJwIiwiY2F0ZWdvcnlJZCIsInNlbGVjdGVkUGFydHMiLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwicGFydElkIiwiZmluZCIsIkJvb2xlYW4iLCJ0b3RhbFByaWNlIiwicmVkdWNlIiwic3VtIiwicHJpY2UiLCJoYW5kbGVTZWxlY3RQYXJ0IiwicHJldiIsIm1haW4iLCJjbGFzc05hbWUiLCJkaXYiLCJoZWFkZXIiLCJoMSIsInNwYW4iLCJ0b0ZpeGVkIiwibGVuZ3RoIiwic2VjdGlvbiIsInBhcnRzIiwic2VsZWN0ZWRQYXJ0SWQiLCJvblNlbGVjdFBhcnQiLCJhc2lkZSIsImgyIiwidWwiLCJjYXQiLCJwYXJ0IiwibGkiLCJuYW1lIiwiYnJhbmQiLCJidXR0b24iLCJ0eXBlIiwiZGlzYWJsZWQiLCJvbkNsaWNrIiwiY29uc29sZSIsImxvZyIsImFsZXJ0Il0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/page.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/page.046d14ac1f24d478.hot-update.js b/.next/static/webpack/app/gunbuilder/page.046d14ac1f24d478.hot-update.js
deleted file mode 100644
index baa9868..0000000
--- a/.next/static/webpack/app/gunbuilder/page.046d14ac1f24d478.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/page",{
-
-/***/ "(app-pages-browser)/./components/CategoryColumn.tsx":
-/*!***************************************!*\
- !*** ./components/CategoryColumn.tsx ***!
- \***************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CategoryColumn: function() { return /* binding */ CategoryColumn; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var _components_PartCard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/PartCard */ \"(app-pages-browser)/./components/PartCard.tsx\");\n/* __next_internal_client_entry_do_not_use__ CategoryColumn auto */ \n\n\nfunction CategoryColumn(param) {\n let { category, parts, selectedPartId, onSelectPart } = param;\n // Show selected part if available, otherwise show placeholder\n const displayedPart = selectedPartId ? parts.find((p)=>p.id === selectedPartId) : null;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col h-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xs font-semibold tracking-[0.15em] text-zinc-400 uppercase\",\n children: category.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 28,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 27,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto pr-1\",\n children: [\n parts.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-zinc-500\",\n children: \"No parts yet for this category.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 34,\n columnNumber: 11\n }, this),\n !displayedPart && parts.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full border border-zinc-700 rounded-md p-3 mb-2 text-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-zinc-500 flex items-center justify-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"svg\", {\n className: \"w-4 h-4\",\n fill: \"none\",\n stroke: \"currentColor\",\n viewBox: \"0 0 24 24\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"path\", {\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 2,\n d: \"M12 4v16m8-8H4\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 45,\n columnNumber: 17\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 39,\n columnNumber: 15\n }, this),\n \"Choose a Part\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 38,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 37,\n columnNumber: 11\n }, this),\n displayedPart && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_PartCard__WEBPACK_IMPORTED_MODULE_2__.PartCard, {\n part: displayedPart,\n selected: displayedPart.id === selectedPartId,\n onSelect: ()=>onSelectPart(displayedPart.id)\n }, displayedPart.id, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 57,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 32,\n columnNumber: 7\n }, this),\n parts.length > 1 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n href: \"/gunbuilder/\".concat(category.id),\n className: \"mt-2 w-full rounded-md border border-zinc-700 bg-zinc-900/50 px-3 py-2 text-xs font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 transition-colors text-center\",\n children: [\n \"View All (\",\n parts.length,\n \")\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 66,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n_c = CategoryColumn;\nvar _c;\n$RefreshReg$(_c, \"CategoryColumn\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvQ2F0ZWdvcnlDb2x1bW4udHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBRTZCO0FBRW9CO0FBUzFDLFNBQVNFLGVBQWUsS0FLVDtRQUxTLEVBQzdCQyxRQUFRLEVBQ1JDLEtBQUssRUFDTEMsY0FBYyxFQUNkQyxZQUFZLEVBQ1EsR0FMUztJQU03Qiw4REFBOEQ7SUFDOUQsTUFBTUMsZ0JBQWdCRixpQkFDbEJELE1BQU1JLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxFQUFFLEtBQUtMLGtCQUMzQjtJQUVKLHFCQUNFLDhEQUFDTTtRQUFJQyxXQUFVOzswQkFDYiw4REFBQ0Q7Z0JBQUlDLFdBQVU7MEJBQ2IsNEVBQUNDO29CQUFHRCxXQUFVOzhCQUNYVCxTQUFTVyxJQUFJOzs7Ozs7Ozs7OzswQkFHbEIsOERBQUNIO2dCQUFJQyxXQUFVOztvQkFDWlIsTUFBTVcsTUFBTSxLQUFLLG1CQUNoQiw4REFBQ047d0JBQUVHLFdBQVU7a0NBQXdCOzs7Ozs7b0JBRXRDLENBQUNMLGlCQUFpQkgsTUFBTVcsTUFBTSxHQUFHLG1CQUNoQyw4REFBQ0o7d0JBQUlDLFdBQVU7a0NBQ2IsNEVBQUNIOzRCQUFFRyxXQUFVOzs4Q0FDWCw4REFBQ0k7b0NBQ0NKLFdBQVU7b0NBQ1ZLLE1BQUs7b0NBQ0xDLFFBQU87b0NBQ1BDLFNBQVE7OENBRVIsNEVBQUNDO3dDQUNDQyxlQUFjO3dDQUNkQyxnQkFBZTt3Q0FDZkMsYUFBYTt3Q0FDYkMsR0FBRTs7Ozs7Ozs7Ozs7Z0NBRUE7Ozs7Ozs7Ozs7OztvQkFLWGpCLCtCQUNDLDhEQUFDTiwwREFBUUE7d0JBRVB3QixNQUFNbEI7d0JBQ05tQixVQUFVbkIsY0FBY0csRUFBRSxLQUFLTDt3QkFDL0JzQixVQUFVLElBQU1yQixhQUFhQyxjQUFjRyxFQUFFO3VCQUh4Q0gsY0FBY0csRUFBRTs7Ozs7Ozs7Ozs7WUFPMUJOLE1BQU1XLE1BQU0sR0FBRyxtQkFDZCw4REFBQ2YsaURBQUlBO2dCQUNINEIsTUFBTSxlQUEyQixPQUFaekIsU0FBU08sRUFBRTtnQkFDaENFLFdBQVU7O29CQUNYO29CQUNZUixNQUFNVyxNQUFNO29CQUFDOzs7Ozs7Ozs7Ozs7O0FBS2xDO0tBN0RnQmIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy9DYXRlZ29yeUNvbHVtbi50c3g/OWMxOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xuaW1wb3J0IHR5cGUgeyBDYXRlZ29yeSwgUGFydCB9IGZyb20gXCJAL3R5cGVzL2d1bmJ1aWxkZXJcIjtcbmltcG9ydCB7IFBhcnRDYXJkIH0gZnJvbSBcIkAvY29tcG9uZW50cy9QYXJ0Q2FyZFwiO1xuXG5pbnRlcmZhY2UgQ2F0ZWdvcnlDb2x1bW5Qcm9wcyB7XG4gIGNhdGVnb3J5OiBDYXRlZ29yeTtcbiAgcGFydHM6IFBhcnRbXTtcbiAgc2VsZWN0ZWRQYXJ0SWQ/OiBzdHJpbmc7XG4gIG9uU2VsZWN0UGFydDogKHBhcnRJZDogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2F0ZWdvcnlDb2x1bW4oe1xuICBjYXRlZ29yeSxcbiAgcGFydHMsXG4gIHNlbGVjdGVkUGFydElkLFxuICBvblNlbGVjdFBhcnQsXG59OiBDYXRlZ29yeUNvbHVtblByb3BzKSB7XG4gIC8vIFNob3cgc2VsZWN0ZWQgcGFydCBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSBzaG93IHBsYWNlaG9sZGVyXG4gIGNvbnN0IGRpc3BsYXllZFBhcnQgPSBzZWxlY3RlZFBhcnRJZFxuICAgID8gcGFydHMuZmluZCgocCkgPT4gcC5pZCA9PT0gc2VsZWN0ZWRQYXJ0SWQpXG4gICAgOiBudWxsO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGgtZnVsbFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi0zXCI+XG4gICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdHJhY2tpbmctWzAuMTVlbV0gdGV4dC16aW5jLTQwMCB1cHBlcmNhc2VcIj5cbiAgICAgICAgICB7Y2F0ZWdvcnkubmFtZX1cbiAgICAgICAgPC9oMj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgb3ZlcmZsb3cteS1hdXRvIHByLTFcIj5cbiAgICAgICAge3BhcnRzLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwXCI+Tm8gcGFydHMgeWV0IGZvciB0aGlzIGNhdGVnb3J5LjwvcD5cbiAgICAgICAgKX1cbiAgICAgICAgeyFkaXNwbGF5ZWRQYXJ0ICYmIHBhcnRzLmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidy1mdWxsIGJvcmRlciBib3JkZXItemluYy03MDAgcm91bmRlZC1tZCBwLTMgbWItMiB0ZXh0LWNlbnRlclwiPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXppbmMtNTAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0yXCI+XG4gICAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LTQgaC00XCJcbiAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiXG4gICAgICAgICAgICAgICAgc3Ryb2tlPVwiY3VycmVudENvbG9yXCJcbiAgICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDI0IDI0XCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxwYXRoXG4gICAgICAgICAgICAgICAgICBzdHJva2VMaW5lY2FwPVwicm91bmRcIlxuICAgICAgICAgICAgICAgICAgc3Ryb2tlTGluZWpvaW49XCJyb3VuZFwiXG4gICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17Mn1cbiAgICAgICAgICAgICAgICAgIGQ9XCJNMTIgNHYxNm04LThINFwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9zdmc+XG4gICAgICAgICAgICAgIENob29zZSBhIFBhcnRcbiAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKX1cbiAgICAgICAge2Rpc3BsYXllZFBhcnQgJiYgKFxuICAgICAgICAgIDxQYXJ0Q2FyZFxuICAgICAgICAgICAga2V5PXtkaXNwbGF5ZWRQYXJ0LmlkfVxuICAgICAgICAgICAgcGFydD17ZGlzcGxheWVkUGFydH1cbiAgICAgICAgICAgIHNlbGVjdGVkPXtkaXNwbGF5ZWRQYXJ0LmlkID09PSBzZWxlY3RlZFBhcnRJZH1cbiAgICAgICAgICAgIG9uU2VsZWN0PXsoKSA9PiBvblNlbGVjdFBhcnQoZGlzcGxheWVkUGFydC5pZCl9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAge3BhcnRzLmxlbmd0aCA+IDEgJiYgKFxuICAgICAgICA8TGlua1xuICAgICAgICAgIGhyZWY9e2AvZ3VuYnVpbGRlci8ke2NhdGVnb3J5LmlkfWB9XG4gICAgICAgICAgY2xhc3NOYW1lPVwibXQtMiB3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXppbmMtNzAwIGJnLXppbmMtOTAwLzUwIHB4LTMgcHktMiB0ZXh0LXhzIGZvbnQtbWVkaXVtIHRleHQtemluYy0zMDAgaG92ZXI6YmctemluYy04MDAgaG92ZXI6Ym9yZGVyLXppbmMtNjAwIHRyYW5zaXRpb24tY29sb3JzIHRleHQtY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIFZpZXcgQWxsICh7cGFydHMubGVuZ3RofSlcbiAgICAgICAgPC9MaW5rPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJMaW5rIiwiUGFydENhcmQiLCJDYXRlZ29yeUNvbHVtbiIsImNhdGVnb3J5IiwicGFydHMiLCJzZWxlY3RlZFBhcnRJZCIsIm9uU2VsZWN0UGFydCIsImRpc3BsYXllZFBhcnQiLCJmaW5kIiwicCIsImlkIiwiZGl2IiwiY2xhc3NOYW1lIiwiaDIiLCJuYW1lIiwibGVuZ3RoIiwic3ZnIiwiZmlsbCIsInN0cm9rZSIsInZpZXdCb3giLCJwYXRoIiwic3Ryb2tlTGluZWNhcCIsInN0cm9rZUxpbmVqb2luIiwic3Ryb2tlV2lkdGgiLCJkIiwicGFydCIsInNlbGVjdGVkIiwib25TZWxlY3QiLCJocmVmIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/CategoryColumn.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/page.123e6081feae4650.hot-update.js b/.next/static/webpack/app/gunbuilder/page.123e6081feae4650.hot-update.js
deleted file mode 100644
index 81a0721..0000000
--- a/.next/static/webpack/app/gunbuilder/page.123e6081feae4650.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/page",{
-
-/***/ "(app-pages-browser)/./components/CategoryColumn.tsx":
-/*!***************************************!*\
- !*** ./components/CategoryColumn.tsx ***!
- \***************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CategoryColumn: function() { return /* binding */ CategoryColumn; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var _components_PartCard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/PartCard */ \"(app-pages-browser)/./components/PartCard.tsx\");\n/* __next_internal_client_entry_do_not_use__ CategoryColumn auto */ \n\n\nfunction CategoryColumn(param) {\n let { category, parts, selectedPartId, onSelectPart } = param;\n // Show selected part if available, otherwise show first part\n const displayedPart = selectedPartId ? parts.find((p)=>p.id === selectedPartId) || parts[0] : parts[0];\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col h-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xs font-semibold tracking-[0.15em] text-zinc-400 uppercase\",\n children: category.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 28,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 27,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto pr-1\",\n children: [\n parts.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-zinc-500\",\n children: \"No parts yet for this category.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 34,\n columnNumber: 11\n }, this),\n displayedPart && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_PartCard__WEBPACK_IMPORTED_MODULE_2__.PartCard, {\n part: displayedPart,\n selected: displayedPart.id === selectedPartId,\n onSelect: ()=>onSelectPart(displayedPart.id)\n }, displayedPart.id, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 37,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 32,\n columnNumber: 7\n }, this),\n parts.length > 1 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n href: \"/gunbuilder/\".concat(category.id),\n className: \"mt-2 w-full rounded-md border border-zinc-700 bg-zinc-900/50 px-3 py-2 text-xs font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 transition-colors text-center\",\n children: [\n \"View All (\",\n parts.length,\n \")\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 46,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n_c = CategoryColumn;\nvar _c;\n$RefreshReg$(_c, \"CategoryColumn\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvQ2F0ZWdvcnlDb2x1bW4udHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBRTZCO0FBRW9CO0FBUzFDLFNBQVNFLGVBQWUsS0FLVDtRQUxTLEVBQzdCQyxRQUFRLEVBQ1JDLEtBQUssRUFDTEMsY0FBYyxFQUNkQyxZQUFZLEVBQ1EsR0FMUztJQU03Qiw2REFBNkQ7SUFDN0QsTUFBTUMsZ0JBQWdCRixpQkFDbEJELE1BQU1JLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxFQUFFLEtBQUtMLG1CQUFtQkQsS0FBSyxDQUFDLEVBQUUsR0FDdERBLEtBQUssQ0FBQyxFQUFFO0lBRVoscUJBQ0UsOERBQUNPO1FBQUlDLFdBQVU7OzBCQUNiLDhEQUFDRDtnQkFBSUMsV0FBVTswQkFDYiw0RUFBQ0M7b0JBQUdELFdBQVU7OEJBQ1hULFNBQVNXLElBQUk7Ozs7Ozs7Ozs7OzBCQUdsQiw4REFBQ0g7Z0JBQUlDLFdBQVU7O29CQUNaUixNQUFNVyxNQUFNLEtBQUssbUJBQ2hCLDhEQUFDTjt3QkFBRUcsV0FBVTtrQ0FBd0I7Ozs7OztvQkFFdENMLCtCQUNDLDhEQUFDTiwwREFBUUE7d0JBRVBlLE1BQU1UO3dCQUNOVSxVQUFVVixjQUFjRyxFQUFFLEtBQUtMO3dCQUMvQmEsVUFBVSxJQUFNWixhQUFhQyxjQUFjRyxFQUFFO3VCQUh4Q0gsY0FBY0csRUFBRTs7Ozs7Ozs7Ozs7WUFPMUJOLE1BQU1XLE1BQU0sR0FBRyxtQkFDZCw4REFBQ2YsaURBQUlBO2dCQUNIbUIsTUFBTSxlQUEyQixPQUFaaEIsU0FBU08sRUFBRTtnQkFDaENFLFdBQVU7O29CQUNYO29CQUNZUixNQUFNVyxNQUFNO29CQUFDOzs7Ozs7Ozs7Ozs7O0FBS2xDO0tBekNnQmIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vY29tcG9uZW50cy9DYXRlZ29yeUNvbHVtbi50c3g/OWMxOCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xuaW1wb3J0IHR5cGUgeyBDYXRlZ29yeSwgUGFydCB9IGZyb20gXCJAL3R5cGVzL2d1bmJ1aWxkZXJcIjtcbmltcG9ydCB7IFBhcnRDYXJkIH0gZnJvbSBcIkAvY29tcG9uZW50cy9QYXJ0Q2FyZFwiO1xuXG5pbnRlcmZhY2UgQ2F0ZWdvcnlDb2x1bW5Qcm9wcyB7XG4gIGNhdGVnb3J5OiBDYXRlZ29yeTtcbiAgcGFydHM6IFBhcnRbXTtcbiAgc2VsZWN0ZWRQYXJ0SWQ/OiBzdHJpbmc7XG4gIG9uU2VsZWN0UGFydDogKHBhcnRJZDogc3RyaW5nKSA9PiB2b2lkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2F0ZWdvcnlDb2x1bW4oe1xuICBjYXRlZ29yeSxcbiAgcGFydHMsXG4gIHNlbGVjdGVkUGFydElkLFxuICBvblNlbGVjdFBhcnQsXG59OiBDYXRlZ29yeUNvbHVtblByb3BzKSB7XG4gIC8vIFNob3cgc2VsZWN0ZWQgcGFydCBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSBzaG93IGZpcnN0IHBhcnRcbiAgY29uc3QgZGlzcGxheWVkUGFydCA9IHNlbGVjdGVkUGFydElkXG4gICAgPyBwYXJ0cy5maW5kKChwKSA9PiBwLmlkID09PSBzZWxlY3RlZFBhcnRJZCkgfHwgcGFydHNbMF1cbiAgICA6IHBhcnRzWzBdO1xuXG4gIHJldHVybiAoXG4gICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4IGZsZXgtY29sIGgtZnVsbFwiPlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJtYi0zXCI+XG4gICAgICAgIDxoMiBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdHJhY2tpbmctWzAuMTVlbV0gdGV4dC16aW5jLTQwMCB1cHBlcmNhc2VcIj5cbiAgICAgICAgICB7Y2F0ZWdvcnkubmFtZX1cbiAgICAgICAgPC9oMj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgb3ZlcmZsb3cteS1hdXRvIHByLTFcIj5cbiAgICAgICAge3BhcnRzLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwXCI+Tm8gcGFydHMgeWV0IGZvciB0aGlzIGNhdGVnb3J5LjwvcD5cbiAgICAgICAgKX1cbiAgICAgICAge2Rpc3BsYXllZFBhcnQgJiYgKFxuICAgICAgICAgIDxQYXJ0Q2FyZFxuICAgICAgICAgICAga2V5PXtkaXNwbGF5ZWRQYXJ0LmlkfVxuICAgICAgICAgICAgcGFydD17ZGlzcGxheWVkUGFydH1cbiAgICAgICAgICAgIHNlbGVjdGVkPXtkaXNwbGF5ZWRQYXJ0LmlkID09PSBzZWxlY3RlZFBhcnRJZH1cbiAgICAgICAgICAgIG9uU2VsZWN0PXsoKSA9PiBvblNlbGVjdFBhcnQoZGlzcGxheWVkUGFydC5pZCl9XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgIDwvZGl2PlxuICAgICAge3BhcnRzLmxlbmd0aCA+IDEgJiYgKFxuICAgICAgICA8TGlua1xuICAgICAgICAgIGhyZWY9e2AvZ3VuYnVpbGRlci8ke2NhdGVnb3J5LmlkfWB9XG4gICAgICAgICAgY2xhc3NOYW1lPVwibXQtMiB3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXppbmMtNzAwIGJnLXppbmMtOTAwLzUwIHB4LTMgcHktMiB0ZXh0LXhzIGZvbnQtbWVkaXVtIHRleHQtemluYy0zMDAgaG92ZXI6YmctemluYy04MDAgaG92ZXI6Ym9yZGVyLXppbmMtNjAwIHRyYW5zaXRpb24tY29sb3JzIHRleHQtY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIFZpZXcgQWxsICh7cGFydHMubGVuZ3RofSlcbiAgICAgICAgPC9MaW5rPlxuICAgICAgKX1cbiAgICA8L2Rpdj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJMaW5rIiwiUGFydENhcmQiLCJDYXRlZ29yeUNvbHVtbiIsImNhdGVnb3J5IiwicGFydHMiLCJzZWxlY3RlZFBhcnRJZCIsIm9uU2VsZWN0UGFydCIsImRpc3BsYXllZFBhcnQiLCJmaW5kIiwicCIsImlkIiwiZGl2IiwiY2xhc3NOYW1lIiwiaDIiLCJuYW1lIiwibGVuZ3RoIiwicGFydCIsInNlbGVjdGVkIiwib25TZWxlY3QiLCJocmVmIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/CategoryColumn.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/page.223a54f5f9cb6c34.hot-update.js b/.next/static/webpack/app/gunbuilder/page.223a54f5f9cb6c34.hot-update.js
deleted file mode 100644
index df70c9e..0000000
--- a/.next/static/webpack/app/gunbuilder/page.223a54f5f9cb6c34.hot-update.js
+++ /dev/null
@@ -1,32 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/page",{
-
-/***/ "(app-pages-browser)/./node_modules/next/dist/api/navigation.js":
-/*!**************************************************!*\
- !*** ./node_modules/next/dist/api/navigation.js ***!
- \**************************************************/
-/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../client/components/navigation */ \"(app-pages-browser)/./node_modules/next/dist/client/components/navigation.js\");\n/* harmony import */ var _client_components_navigation__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_client_components_navigation__WEBPACK_IMPORTED_MODULE_0__);\n/* harmony reexport (unknown) */ var __WEBPACK_REEXPORT_OBJECT__ = {};\n/* harmony reexport (unknown) */ for(var __WEBPACK_IMPORT_KEY__ in _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__) if(__WEBPACK_IMPORT_KEY__ !== \"default\") __WEBPACK_REEXPORT_OBJECT__[__WEBPACK_IMPORT_KEY__] = function(key) { return _client_components_navigation__WEBPACK_IMPORTED_MODULE_0__[key]; }.bind(0, __WEBPACK_IMPORT_KEY__)\n/* harmony reexport (unknown) */ __webpack_require__.d(__webpack_exports__, __WEBPACK_REEXPORT_OBJECT__);\n\n\n//# sourceMappingURL=navigation.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYXBpL25hdmlnYXRpb24uanMiLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQWdEOztBQUVoRCIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2FwaS9uYXZpZ2F0aW9uLmpzPzdkMGYiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSBcIi4uL2NsaWVudC9jb21wb25lbnRzL25hdmlnYXRpb25cIjtcblxuLy8jIHNvdXJjZU1hcHBpbmdVUkw9bmF2aWdhdGlvbi5qcy5tYXAiXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/api/navigation.js\n"));
-
-/***/ }),
-
-/***/ "(app-pages-browser)/./app/gunbuilder/page.tsx":
-/*!*********************************!*\
- !*** ./app/gunbuilder/page.tsx ***!
- \*********************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ GunbuilderPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* harmony import */ var _components_CategoryColumn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/CategoryColumn */ \"(app-pages-browser)/./components/CategoryColumn.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\nconst STORAGE_KEY = \"gunbuilder-build-state\";\nfunction GunbuilderPage() {\n _s();\n const searchParams = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.useSearchParams)();\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n const [build, setBuild] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(()=>{\n // Initialize from localStorage if available\n if (true) {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) {\n try {\n return JSON.parse(stored);\n } catch (e) {\n return {};\n }\n }\n }\n return {};\n });\n // Handle URL query parameter for part selection\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const selectParam = searchParams.get(\"select\");\n if (selectParam) {\n const [categoryId, partId] = selectParam.split(\":\");\n if (categoryId && partId && _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.CATEGORIES.some((c)=>c.id === categoryId)) {\n setBuild((prev)=>{\n const updated = {\n ...prev,\n [categoryId]: partId\n };\n // Persist to localStorage\n localStorage.setItem(STORAGE_KEY, JSON.stringify(updated));\n return updated;\n });\n // Remove query param from URL\n router.replace(\"/gunbuilder\", {\n scroll: false\n });\n }\n }\n }, [\n searchParams,\n router\n ]);\n // Persist build state to localStorage whenever it changes\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (true) {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(build));\n }\n }, [\n build\n ]);\n const partsByCategory = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const grouped = {};\n for (const category of _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.CATEGORIES){\n grouped[category.id] = _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.PARTS.filter((p)=>p.categoryId === category.id);\n }\n return grouped;\n }, []);\n const selectedParts = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return Object.entries(build).map((param)=>{\n let [categoryId, partId] = param;\n return _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.PARTS.find((p)=>p.id === partId && p.categoryId === categoryId);\n }).filter(Boolean);\n }, [\n build\n ]);\n const totalPrice = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>selectedParts.reduce((sum, p)=>sum + p.price, 0), [\n selectedParts\n ]);\n const handleSelectPart = (categoryId, partId)=>{\n setBuild((prev)=>({\n ...prev,\n [categoryId]: partId\n }));\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6 flex flex-col gap-2 md:flex-row md:items-end md: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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 95,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n \"Gunbuilder \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: \"Prototype\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 99,\n columnNumber: 26\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 98,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: \"Choose one part per category to assemble an AR-15 build. Prices and links are mock data for now—but the flow is close to what the real tool will be.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 101,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 94,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-3 md:mt-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-400\",\n children: \"Current build total\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 109,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-semibold text-amber-300\",\n children: [\n \"$\",\n totalPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 110,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-500\",\n children: [\n selectedParts.length,\n \" / \",\n _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.CATEGORIES.length,\n \" categories filled\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 113,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 108,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 93,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 lg:grid-cols-[3fr,1.25fr]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-3 md:p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 md:grid-cols-2 lg:grid-cols-3\",\n children: _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.CATEGORIES.map((category)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border border-zinc-800 rounded-md p-2 md:p-3 bg-zinc-950/60\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_CategoryColumn__WEBPACK_IMPORTED_MODULE_4__.CategoryColumn, {\n category: category,\n parts: partsByCategory[category.id],\n selectedPartId: build[category.id],\n onSelectPart: (partId)=>handleSelectPart(category.id, partId)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 129,\n columnNumber: 19\n }, this)\n }, category.id, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 125,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 123,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 122,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/80 p-3 md:p-4 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400 mb-3\",\n children: \"Current Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 144,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto pr-1\",\n children: [\n selectedParts.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-zinc-500\",\n children: \"Select a part from each category to start your build.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 150,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2\",\n children: _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.CATEGORIES.map((cat)=>{\n const selectedPartId = build[cat.id];\n const part = _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.PARTS.find((p)=>p.id === selectedPartId && p.categoryId === cat.id);\n return /*#__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)(\"div\", {\n className: \"text-[0.7rem] uppercase tracking-[0.16em] text-zinc-500\",\n children: cat.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 163,\n columnNumber: 23\n }, this),\n part ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 flex justify-between items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-400\",\n children: [\n part.brand,\n \" \"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 169,\n columnNumber: 29\n }, this),\n part.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 168,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs font-semibold text-amber-300 whitespace-nowrap\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 174,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 167,\n columnNumber: 25\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 text-xs text-zinc-600\",\n children: \"Not selected\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 179,\n columnNumber: 25\n }, this)\n ]\n }, cat.id, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 162,\n columnNumber: 21\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 155,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 148,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 border-t border-zinc-800 pt-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n className: \"w-full rounded-md border border-amber-400/60 bg-amber-400/10 px-3 py-2 text-sm font-medium text-amber-200 hover:bg-amber-400/15 disabled:opacity-40 disabled:cursor-not-allowed\",\n disabled: selectedParts.length === 0,\n onClick: ()=>{\n console.log(\"Build:\", build);\n alert(\"Prototype only: in the real app this would go to a sharable build summary with affiliate links.\");\n },\n children: \"Continue to Buy (Prototype)\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 191,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-[0.7rem] text-zinc-500\",\n children: \"In the production version, this will take you to a build page with retailer links and sharing options.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 204,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 190,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 143,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 120,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 91,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 90,\n columnNumber: 5\n }, this);\n}\n_s(GunbuilderPage, \"UcwNfiAgvkVgT2sjmQl74nmTISI=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_2__.useSearchParams,\n next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter\n ];\n});\n_c = GunbuilderPage;\nvar _c;\n$RefreshReg$(_c, \"GunbuilderPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL3BhZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUVxRDtBQUNRO0FBQ0Y7QUFFRTtBQUk3RCxNQUFNUSxjQUFjO0FBRUwsU0FBU0M7O0lBQ3RCLE1BQU1DLGVBQWVQLGdFQUFlQTtJQUNwQyxNQUFNUSxTQUFTUCwwREFBU0E7SUFDeEIsTUFBTSxDQUFDUSxPQUFPQyxTQUFTLEdBQUdaLCtDQUFRQSxDQUFhO1FBQzdDLDRDQUE0QztRQUM1QyxJQUFJLElBQTZCLEVBQUU7WUFDakMsTUFBTWEsU0FBU0MsYUFBYUMsT0FBTyxDQUFDUjtZQUNwQyxJQUFJTSxRQUFRO2dCQUNWLElBQUk7b0JBQ0YsT0FBT0csS0FBS0MsS0FBSyxDQUFDSjtnQkFDcEIsRUFBRSxVQUFNO29CQUNOLE9BQU8sQ0FBQztnQkFDVjtZQUNGO1FBQ0Y7UUFDQSxPQUFPLENBQUM7SUFDVjtJQUVBLGdEQUFnRDtJQUNoRFosZ0RBQVNBLENBQUM7UUFDUixNQUFNaUIsY0FBY1QsYUFBYVUsR0FBRyxDQUFDO1FBQ3JDLElBQUlELGFBQWE7WUFDZixNQUFNLENBQUNFLFlBQVlDLE9BQU8sR0FBR0gsWUFBWUksS0FBSyxDQUFDO1lBQy9DLElBQUlGLGNBQWNDLFVBQVVqQiw2REFBVUEsQ0FBQ21CLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxFQUFFLEtBQUtMLGFBQWE7Z0JBQ3ZFUixTQUFTLENBQUNjO29CQUNSLE1BQU1DLFVBQVU7d0JBQ2QsR0FBR0QsSUFBSTt3QkFDUCxDQUFDTixXQUFXLEVBQUVDO29CQUNoQjtvQkFDQSwwQkFBMEI7b0JBQzFCUCxhQUFhYyxPQUFPLENBQUNyQixhQUFhUyxLQUFLYSxTQUFTLENBQUNGO29CQUNqRCxPQUFPQTtnQkFDVDtnQkFDQSw4QkFBOEI7Z0JBQzlCakIsT0FBT29CLE9BQU8sQ0FBQyxlQUFlO29CQUFFQyxRQUFRO2dCQUFNO1lBQ2hEO1FBQ0Y7SUFDRixHQUFHO1FBQUN0QjtRQUFjQztLQUFPO0lBRXpCLDBEQUEwRDtJQUMxRFQsZ0RBQVNBLENBQUM7UUFDUixJQUFJLElBQTZCLEVBQUU7WUFDakNhLGFBQWFjLE9BQU8sQ0FBQ3JCLGFBQWFTLEtBQUthLFNBQVMsQ0FBQ2xCO1FBQ25EO0lBQ0YsR0FBRztRQUFDQTtLQUFNO0lBRVYsTUFBTXFCLGtCQUE4Q2pDLDhDQUFPQSxDQUFDO1FBQzFELE1BQU1rQyxVQUFVLENBQUM7UUFDakIsS0FBSyxNQUFNQyxZQUFZOUIsNkRBQVVBLENBQUU7WUFDakM2QixPQUFPLENBQUNDLFNBQVNULEVBQUUsQ0FBQyxHQUFHcEIsd0RBQUtBLENBQUM4QixNQUFNLENBQ2pDLENBQUNDLElBQU1BLEVBQUVoQixVQUFVLEtBQUtjLFNBQVNULEVBQUU7UUFFdkM7UUFDQSxPQUFPUTtJQUNULEdBQUcsRUFBRTtJQUVMLE1BQU1JLGdCQUF3QnRDLDhDQUFPQSxDQUFDO1FBQ3BDLE9BQU91QyxPQUFPQyxPQUFPLENBQUM1QixPQUNuQjZCLEdBQUcsQ0FBQztnQkFBQyxDQUFDcEIsWUFBWUMsT0FBTzttQkFDeEJoQix3REFBS0EsQ0FBQ29DLElBQUksQ0FBQyxDQUFDTCxJQUFNQSxFQUFFWCxFQUFFLEtBQUtKLFVBQVVlLEVBQUVoQixVQUFVLEtBQUtBO1dBRXZEZSxNQUFNLENBQUNPO0lBQ1osR0FBRztRQUFDL0I7S0FBTTtJQUVWLE1BQU1nQyxhQUFhNUMsOENBQU9BLENBQ3hCLElBQU1zQyxjQUFjTyxNQUFNLENBQUMsQ0FBQ0MsS0FBS1QsSUFBTVMsTUFBTVQsRUFBRVUsS0FBSyxFQUFFLElBQ3REO1FBQUNUO0tBQWM7SUFHakIsTUFBTVUsbUJBQW1CLENBQUMzQixZQUF3QkM7UUFDaERULFNBQVMsQ0FBQ2MsT0FBVTtnQkFDbEIsR0FBR0EsSUFBSTtnQkFDUCxDQUFDTixXQUFXLEVBQUVDO1lBQ2hCO0lBQ0Y7SUFFQSxxQkFDRSw4REFBQzJCO1FBQUtDLFdBQVU7a0JBQ2QsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUViLDhEQUFDRTtvQkFBT0YsV0FBVTs7c0NBQ2hCLDhEQUFDQzs7OENBQ0MsOERBQUNkO29DQUFFYSxXQUFVOzhDQUFpRTs7Ozs7OzhDQUc5RSw4REFBQ0c7b0NBQUdILFdBQVU7O3dDQUF5RDtzREFDMUQsOERBQUNJOzRDQUFLSixXQUFVO3NEQUFpQjs7Ozs7Ozs7Ozs7OzhDQUU5Qyw4REFBQ2I7b0NBQUVhLFdBQVU7OENBQXNDOzs7Ozs7Ozs7Ozs7c0NBT3JELDhEQUFDQzs0QkFBSUQsV0FBVTs7OENBQ2IsOERBQUNDO29DQUFJRCxXQUFVOzhDQUF3Qjs7Ozs7OzhDQUN2Qyw4REFBQ0M7b0NBQUlELFdBQVU7O3dDQUF3Qzt3Q0FDbkROLFdBQVdXLE9BQU8sQ0FBQzs7Ozs7Ozs4Q0FFdkIsOERBQUNKO29DQUFJRCxXQUFVOzt3Q0FDWlosY0FBY2tCLE1BQU07d0NBQUM7d0NBQUluRCw2REFBVUEsQ0FBQ21ELE1BQU07d0NBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OEJBTWxELDhEQUFDTDtvQkFBSUQsV0FBVTs7c0NBRWIsOERBQUNPOzRCQUFRUCxXQUFVO3NDQUNqQiw0RUFBQ0M7Z0NBQUlELFdBQVU7MENBQ1o3Qyw2REFBVUEsQ0FBQ29DLEdBQUcsQ0FBQyxDQUFDTix5QkFDZiw4REFBQ2dCO3dDQUVDRCxXQUFVO2tEQUVWLDRFQUFDM0Msc0VBQWNBOzRDQUNiNEIsVUFBVUE7NENBQ1Z1QixPQUFPekIsZUFBZSxDQUFDRSxTQUFTVCxFQUFFLENBQUM7NENBQ25DaUMsZ0JBQWdCL0MsS0FBSyxDQUFDdUIsU0FBU1QsRUFBRSxDQUFDOzRDQUNsQ2tDLGNBQWMsQ0FBQ3RDLFNBQ2IwQixpQkFBaUJiLFNBQVNULEVBQUUsRUFBRUo7Ozs7Ozt1Q0FSN0JhLFNBQVNULEVBQUU7Ozs7Ozs7Ozs7Ozs7OztzQ0FpQnhCLDhEQUFDbUM7NEJBQU1YLFdBQVU7OzhDQUNmLDhEQUFDWTtvQ0FBR1osV0FBVTs4Q0FBdUU7Ozs7Ozs4Q0FJckYsOERBQUNDO29DQUFJRCxXQUFVOzt3Q0FDWlosY0FBY2tCLE1BQU0sS0FBSyxtQkFDeEIsOERBQUNuQjs0Q0FBRWEsV0FBVTtzREFBd0I7Ozs7OztzREFLdkMsOERBQUNhOzRDQUFHYixXQUFVO3NEQUNYN0MsNkRBQVVBLENBQUNvQyxHQUFHLENBQUMsQ0FBQ3VCO2dEQUNmLE1BQU1MLGlCQUFpQi9DLEtBQUssQ0FBQ29ELElBQUl0QyxFQUFFLENBQUM7Z0RBQ3BDLE1BQU11QyxPQUFPM0Qsd0RBQUtBLENBQUNvQyxJQUFJLENBQ3JCLENBQUNMLElBQU1BLEVBQUVYLEVBQUUsS0FBS2lDLGtCQUFrQnRCLEVBQUVoQixVQUFVLEtBQUsyQyxJQUFJdEMsRUFBRTtnREFFM0QscUJBQ0UsOERBQUN3Qzs7c0VBQ0MsOERBQUNmOzREQUFJRCxXQUFVO3NFQUNaYyxJQUFJRyxJQUFJOzs7Ozs7d0RBRVZGLHFCQUNDLDhEQUFDZDs0REFBSUQsV0FBVTs7OEVBQ2IsOERBQUNDO29FQUFJRCxXQUFVOztzRkFDYiw4REFBQ0k7NEVBQUtKLFdBQVU7O2dGQUNiZSxLQUFLRyxLQUFLO2dGQUFFOzs7Ozs7O3dFQUVkSCxLQUFLRSxJQUFJOzs7Ozs7OzhFQUVaLDhEQUFDaEI7b0VBQUlELFdBQVU7O3dFQUF5RDt3RUFDcEVlLEtBQUtsQixLQUFLLENBQUNRLE9BQU8sQ0FBQzs7Ozs7Ozs7Ozs7O2lGQUl6Qiw4REFBQ0o7NERBQUlELFdBQVU7c0VBQTZCOzs7Ozs7O21EQWpCdkNjLElBQUl0QyxFQUFFOzs7Ozs0Q0F1Qm5COzs7Ozs7Ozs7Ozs7OENBS0osOERBQUN5QjtvQ0FBSUQsV0FBVTs7c0RBQ2IsOERBQUNtQjs0Q0FDQ0MsTUFBSzs0Q0FDTHBCLFdBQVU7NENBQ1ZxQixVQUFVakMsY0FBY2tCLE1BQU0sS0FBSzs0Q0FDbkNnQixTQUFTO2dEQUNQQyxRQUFRQyxHQUFHLENBQUMsVUFBVTlEO2dEQUN0QitELE1BQ0U7NENBRUo7c0RBQ0Q7Ozs7OztzREFHRCw4REFBQ3RDOzRDQUFFYSxXQUFVO3NEQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVOUQ7R0F6TXdCekM7O1FBQ0ROLDREQUFlQTtRQUNyQkMsc0RBQVNBOzs7S0FGRksiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2d1bmJ1aWxkZXIvcGFnZS50c3g/MDU0MCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgdXNlTWVtbywgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IHsgdXNlU2VhcmNoUGFyYW1zLCB1c2VSb3V0ZXIgfSBmcm9tIFwibmV4dC9uYXZpZ2F0aW9uXCI7XG5pbXBvcnQgeyBDQVRFR09SSUVTLCBQQVJUUyB9IGZyb20gXCJAL2RhdGEvZ3VuYnVpbGRlclBhcnRzXCI7XG5pbXBvcnQgdHlwZSB7IENhdGVnb3J5SWQsIFBhcnQgfSBmcm9tIFwiQC90eXBlcy9ndW5idWlsZGVyXCI7XG5pbXBvcnQgeyBDYXRlZ29yeUNvbHVtbiB9IGZyb20gXCJAL2NvbXBvbmVudHMvQ2F0ZWdvcnlDb2x1bW5cIjtcblxudHlwZSBCdWlsZFN0YXRlID0gUGFydGlhbDxSZWNvcmQ8Q2F0ZWdvcnlJZCwgc3RyaW5nPj47IC8vIGNhdGVnb3J5SWQgLT4gcGFydElkXG5cbmNvbnN0IFNUT1JBR0VfS0VZID0gXCJndW5idWlsZGVyLWJ1aWxkLXN0YXRlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEd1bmJ1aWxkZXJQYWdlKCkge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSB1c2VTZWFyY2hQYXJhbXMoKTtcbiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKCk7XG4gIGNvbnN0IFtidWlsZCwgc2V0QnVpbGRdID0gdXNlU3RhdGU8QnVpbGRTdGF0ZT4oKCkgPT4ge1xuICAgIC8vIEluaXRpYWxpemUgZnJvbSBsb2NhbFN0b3JhZ2UgaWYgYXZhaWxhYmxlXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGNvbnN0IHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKTtcbiAgICAgIGlmIChzdG9yZWQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzdG9yZWQpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9KTtcblxuICAvLyBIYW5kbGUgVVJMIHF1ZXJ5IHBhcmFtZXRlciBmb3IgcGFydCBzZWxlY3Rpb25cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RQYXJhbSA9IHNlYXJjaFBhcmFtcy5nZXQoXCJzZWxlY3RcIik7XG4gICAgaWYgKHNlbGVjdFBhcmFtKSB7XG4gICAgICBjb25zdCBbY2F0ZWdvcnlJZCwgcGFydElkXSA9IHNlbGVjdFBhcmFtLnNwbGl0KFwiOlwiKTtcbiAgICAgIGlmIChjYXRlZ29yeUlkICYmIHBhcnRJZCAmJiBDQVRFR09SSUVTLnNvbWUoKGMpID0+IGMuaWQgPT09IGNhdGVnb3J5SWQpKSB7XG4gICAgICAgIHNldEJ1aWxkKChwcmV2KSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZCA9IHtcbiAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICBbY2F0ZWdvcnlJZF06IHBhcnRJZCxcbiAgICAgICAgICB9O1xuICAgICAgICAgIC8vIFBlcnNpc3QgdG8gbG9jYWxTdG9yYWdlXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KHVwZGF0ZWQpKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZDtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFJlbW92ZSBxdWVyeSBwYXJhbSBmcm9tIFVSTFxuICAgICAgICByb3V0ZXIucmVwbGFjZShcIi9ndW5idWlsZGVyXCIsIHsgc2Nyb2xsOiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzZWFyY2hQYXJhbXMsIHJvdXRlcl0pO1xuXG4gIC8vIFBlcnNpc3QgYnVpbGQgc3RhdGUgdG8gbG9jYWxTdG9yYWdlIHdoZW5ldmVyIGl0IGNoYW5nZXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KGJ1aWxkKSk7XG4gICAgfVxuICB9LCBbYnVpbGRdKTtcblxuICBjb25zdCBwYXJ0c0J5Q2F0ZWdvcnk6IFJlY29yZDxDYXRlZ29yeUlkLCBQYXJ0W10+ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgZ3JvdXBlZCA9IHt9IGFzIFJlY29yZDxDYXRlZ29yeUlkLCBQYXJ0W10+O1xuICAgIGZvciAoY29uc3QgY2F0ZWdvcnkgb2YgQ0FURUdPUklFUykge1xuICAgICAgZ3JvdXBlZFtjYXRlZ29yeS5pZF0gPSBQQVJUUy5maWx0ZXIoXG4gICAgICAgIChwKSA9PiBwLmNhdGVnb3J5SWQgPT09IGNhdGVnb3J5LmlkLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGdyb3VwZWQ7XG4gIH0sIFtdKTtcblxuICBjb25zdCBzZWxlY3RlZFBhcnRzOiBQYXJ0W10gPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoYnVpbGQpXG4gICAgICAubWFwKChbY2F0ZWdvcnlJZCwgcGFydElkXSkgPT5cbiAgICAgICAgUEFSVFMuZmluZCgocCkgPT4gcC5pZCA9PT0gcGFydElkICYmIHAuY2F0ZWdvcnlJZCA9PT0gY2F0ZWdvcnlJZCksXG4gICAgICApXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIFBhcnRbXTtcbiAgfSwgW2J1aWxkXSk7XG5cbiAgY29uc3QgdG90YWxQcmljZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gc2VsZWN0ZWRQYXJ0cy5yZWR1Y2UoKHN1bSwgcCkgPT4gc3VtICsgcC5wcmljZSwgMCksXG4gICAgW3NlbGVjdGVkUGFydHNdLFxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdFBhcnQgPSAoY2F0ZWdvcnlJZDogQ2F0ZWdvcnlJZCwgcGFydElkOiBzdHJpbmcpID0+IHtcbiAgICBzZXRCdWlsZCgocHJldikgPT4gKHtcbiAgICAgIC4uLnByZXYsXG4gICAgICBbY2F0ZWdvcnlJZF06IHBhcnRJZCxcbiAgICB9KSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8bWFpbiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gYmctYmxhY2sgdGV4dC16aW5jLTUwXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14LWF1dG8gbWF4LXctNnhsIHB4LTQgcHktNiBsZzpweS0xMFwiPlxuICAgICAgICB7LyogSGVhZGVyICovfVxuICAgICAgICA8aGVhZGVyIGNsYXNzTmFtZT1cIm1iLTYgZmxleCBmbGV4LWNvbCBnYXAtMiBtZDpmbGV4LXJvdyBtZDppdGVtcy1lbmQgbWQ6anVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4yZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICAgIFNoYWRvdyBTdGFuZGFyZFxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm10LTEgdGV4dC0yeGwgbWQ6dGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0cmFja2luZy10aWdodFwiPlxuICAgICAgICAgICAgICBHdW5idWlsZGVyIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtYW1iZXItMzAwXCI+UHJvdG90eXBlPC9zcGFuPlxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm10LTIgdGV4dC1zbSB0ZXh0LXppbmMtNDAwIG1heC13LXhsXCI+XG4gICAgICAgICAgICAgIENob29zZSBvbmUgcGFydCBwZXIgY2F0ZWdvcnkgdG8gYXNzZW1ibGUgYW4gQVItMTUgYnVpbGQuIFByaWNlc1xuICAgICAgICAgICAgICBhbmQgbGlua3MgYXJlIG1vY2sgZGF0YSBmb3Igbm934oCUYnV0IHRoZSBmbG93IGlzIGNsb3NlIHRvIHdoYXRcbiAgICAgICAgICAgICAgdGhlIHJlYWwgdG9vbCB3aWxsIGJlLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0zIG1kOm10LTBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNDAwXCI+Q3VycmVudCBidWlsZCB0b3RhbDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LXNlbWlib2xkIHRleHQtYW1iZXItMzAwXCI+XG4gICAgICAgICAgICAgICR7dG90YWxQcmljZS50b0ZpeGVkKDIpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgICAgICB7c2VsZWN0ZWRQYXJ0cy5sZW5ndGh9IC8ge0NBVEVHT1JJRVMubGVuZ3RofSBjYXRlZ29yaWVzIGZpbGxlZFxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgIHsvKiBMYXlvdXQgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBnYXAtNCBsZzpncmlkLWNvbHMtWzNmciwxLjI1ZnJdXCI+XG4gICAgICAgICAgey8qIENhdGVnb3JpZXMvcGFydHMgKi99XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzYwIHAtMyBtZDpwLTRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBnYXAtNCBtZDpncmlkLWNvbHMtMiBsZzpncmlkLWNvbHMtM1wiPlxuICAgICAgICAgICAgICB7Q0FURUdPUklFUy5tYXAoKGNhdGVnb3J5KSA9PiAoXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAga2V5PXtjYXRlZ29yeS5pZH1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJvcmRlciBib3JkZXItemluYy04MDAgcm91bmRlZC1tZCBwLTIgbWQ6cC0zIGJnLXppbmMtOTUwLzYwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlDb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9e2NhdGVnb3J5fVxuICAgICAgICAgICAgICAgICAgICBwYXJ0cz17cGFydHNCeUNhdGVnb3J5W2NhdGVnb3J5LmlkXX1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRQYXJ0SWQ9e2J1aWxkW2NhdGVnb3J5LmlkXX1cbiAgICAgICAgICAgICAgICAgICAgb25TZWxlY3RQYXJ0PXsocGFydElkKSA9PlxuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdFBhcnQoY2F0ZWdvcnkuaWQsIHBhcnRJZClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgICB7LyogQnVpbGQgU3VtbWFyeSAqL31cbiAgICAgICAgICA8YXNpZGUgY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzgwIHAtMyBtZDpwLTQgZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMCBtYi0zXCI+XG4gICAgICAgICAgICAgIEN1cnJlbnQgQnVpbGRcbiAgICAgICAgICAgIDwvaDI+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LXktYXV0byBwci0xXCI+XG4gICAgICAgICAgICAgIHtzZWxlY3RlZFBhcnRzLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICAgICAgICBTZWxlY3QgYSBwYXJ0IGZyb20gZWFjaCBjYXRlZ29yeSB0byBzdGFydCB5b3VyIGJ1aWxkLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XG4gICAgICAgICAgICAgICAge0NBVEVHT1JJRVMubWFwKChjYXQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUGFydElkID0gYnVpbGRbY2F0LmlkXTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnQgPSBQQVJUUy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAocCkgPT4gcC5pZCA9PT0gc2VsZWN0ZWRQYXJ0SWQgJiYgcC5jYXRlZ29yeUlkID09PSBjYXQuaWQsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17Y2F0LmlkfT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtWzAuN3JlbV0gdXBwZXJjYXNlIHRyYWNraW5nLVswLjE2ZW1dIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjYXQubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB7cGFydCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMSBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtemluYy00MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwYXJ0LmJyYW5kfXtcIiBcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtYW1iZXItMzAwIHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtwYXJ0LnByaWNlLnRvRml4ZWQoMil9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMSB0ZXh0LXhzIHRleHQtemluYy02MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgTm90IHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogQ1RBICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC00IGJvcmRlci10IGJvcmRlci16aW5jLTgwMCBwdC0zXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWFtYmVyLTQwMC82MCBiZy1hbWJlci00MDAvMTAgcHgtMyBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1hbWJlci0yMDAgaG92ZXI6YmctYW1iZXItNDAwLzE1IGRpc2FibGVkOm9wYWNpdHktNDAgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17c2VsZWN0ZWRQYXJ0cy5sZW5ndGggPT09IDB9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJCdWlsZDpcIiwgYnVpbGQpO1xuICAgICAgICAgICAgICAgICAgYWxlcnQoXG4gICAgICAgICAgICAgICAgICAgIFwiUHJvdG90eXBlIG9ubHk6IGluIHRoZSByZWFsIGFwcCB0aGlzIHdvdWxkIGdvIHRvIGEgc2hhcmFibGUgYnVpbGQgc3VtbWFyeSB3aXRoIGFmZmlsaWF0ZSBsaW5rcy5cIixcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIENvbnRpbnVlIHRvIEJ1eSAoUHJvdG90eXBlKVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibXQtMiB0ZXh0LVswLjdyZW1dIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICAgICAgICBJbiB0aGUgcHJvZHVjdGlvbiB2ZXJzaW9uLCB0aGlzIHdpbGwgdGFrZSB5b3UgdG8gYSBidWlsZCBwYWdlIHdpdGhcbiAgICAgICAgICAgICAgICByZXRhaWxlciBsaW5rcyBhbmQgc2hhcmluZyBvcHRpb25zLlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2FzaWRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VTZWFyY2hQYXJhbXMiLCJ1c2VSb3V0ZXIiLCJDQVRFR09SSUVTIiwiUEFSVFMiLCJDYXRlZ29yeUNvbHVtbiIsIlNUT1JBR0VfS0VZIiwiR3VuYnVpbGRlclBhZ2UiLCJzZWFyY2hQYXJhbXMiLCJyb3V0ZXIiLCJidWlsZCIsInNldEJ1aWxkIiwic3RvcmVkIiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsIkpTT04iLCJwYXJzZSIsInNlbGVjdFBhcmFtIiwiZ2V0IiwiY2F0ZWdvcnlJZCIsInBhcnRJZCIsInNwbGl0Iiwic29tZSIsImMiLCJpZCIsInByZXYiLCJ1cGRhdGVkIiwic2V0SXRlbSIsInN0cmluZ2lmeSIsInJlcGxhY2UiLCJzY3JvbGwiLCJwYXJ0c0J5Q2F0ZWdvcnkiLCJncm91cGVkIiwiY2F0ZWdvcnkiLCJmaWx0ZXIiLCJwIiwic2VsZWN0ZWRQYXJ0cyIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJmaW5kIiwiQm9vbGVhbiIsInRvdGFsUHJpY2UiLCJyZWR1Y2UiLCJzdW0iLCJwcmljZSIsImhhbmRsZVNlbGVjdFBhcnQiLCJtYWluIiwiY2xhc3NOYW1lIiwiZGl2IiwiaGVhZGVyIiwiaDEiLCJzcGFuIiwidG9GaXhlZCIsImxlbmd0aCIsInNlY3Rpb24iLCJwYXJ0cyIsInNlbGVjdGVkUGFydElkIiwib25TZWxlY3RQYXJ0IiwiYXNpZGUiLCJoMiIsInVsIiwiY2F0IiwicGFydCIsImxpIiwibmFtZSIsImJyYW5kIiwiYnV0dG9uIiwidHlwZSIsImRpc2FibGVkIiwib25DbGljayIsImNvbnNvbGUiLCJsb2ciLCJhbGVydCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/page.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/page.5aa0f4b5d703f9bd.hot-update.js b/.next/static/webpack/app/gunbuilder/page.5aa0f4b5d703f9bd.hot-update.js
deleted file mode 100644
index a6d495f..0000000
--- a/.next/static/webpack/app/gunbuilder/page.5aa0f4b5d703f9bd.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/page",{
-
-/***/ "(app-pages-browser)/./components/CategoryColumn.tsx":
-/*!***************************************!*\
- !*** ./components/CategoryColumn.tsx ***!
- \***************************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ CategoryColumn: function() { return /* binding */ CategoryColumn; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var next_link__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! next/link */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var _components_PartCard__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! @/components/PartCard */ \"(app-pages-browser)/./components/PartCard.tsx\");\n/* __next_internal_client_entry_do_not_use__ CategoryColumn auto */ \n\n\nfunction CategoryColumn(param) {\n let { category, parts, selectedPartId, onSelectPart } = param;\n // Show selected part if available, otherwise show placeholder\n const displayedPart = selectedPartId ? parts.find((p)=>p.id === selectedPartId) : null;\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex flex-col h-full\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mb-3\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xs font-semibold tracking-[0.15em] text-zinc-400 uppercase\",\n children: category.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 28,\n columnNumber: 9\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 27,\n columnNumber: 7\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto pr-1\",\n children: [\n parts.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-xs text-zinc-500\",\n children: \"No parts yet for this category.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 34,\n columnNumber: 11\n }, this),\n !displayedPart && parts.length > 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"w-full border border-zinc-700 rounded-md p-3 mb-2 text-center\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-zinc-500\",\n children: \"Choose a Part\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 38,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 37,\n columnNumber: 11\n }, this),\n displayedPart && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_PartCard__WEBPACK_IMPORTED_MODULE_2__.PartCard, {\n part: displayedPart,\n selected: displayedPart.id === selectedPartId,\n onSelect: ()=>onSelectPart(displayedPart.id)\n }, displayedPart.id, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 42,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 32,\n columnNumber: 7\n }, this),\n parts.length > 1 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n href: \"/gunbuilder/\".concat(category.id),\n className: \"mt-2 w-full rounded-md border border-zinc-700 bg-zinc-900/50 px-3 py-2 text-xs font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 transition-colors text-center\",\n children: [\n \"View All (\",\n parts.length,\n \")\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 51,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx\",\n lineNumber: 26,\n columnNumber: 5\n }, this);\n}\n_c = CategoryColumn;\nvar _c;\n$RefreshReg$(_c, \"CategoryColumn\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2NvbXBvbmVudHMvQ2F0ZWdvcnlDb2x1bW4udHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7O0FBRTZCO0FBRW9CO0FBUzFDLFNBQVNFLGVBQWUsS0FLVDtRQUxTLEVBQzdCQyxRQUFRLEVBQ1JDLEtBQUssRUFDTEMsY0FBYyxFQUNkQyxZQUFZLEVBQ1EsR0FMUztJQU03Qiw4REFBOEQ7SUFDOUQsTUFBTUMsZ0JBQWdCRixpQkFDbEJELE1BQU1JLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxFQUFFLEtBQUtMLGtCQUMzQjtJQUVKLHFCQUNFLDhEQUFDTTtRQUFJQyxXQUFVOzswQkFDYiw4REFBQ0Q7Z0JBQUlDLFdBQVU7MEJBQ2IsNEVBQUNDO29CQUFHRCxXQUFVOzhCQUNYVCxTQUFTVyxJQUFJOzs7Ozs7Ozs7OzswQkFHbEIsOERBQUNIO2dCQUFJQyxXQUFVOztvQkFDWlIsTUFBTVcsTUFBTSxLQUFLLG1CQUNoQiw4REFBQ047d0JBQUVHLFdBQVU7a0NBQXdCOzs7Ozs7b0JBRXRDLENBQUNMLGlCQUFpQkgsTUFBTVcsTUFBTSxHQUFHLG1CQUNoQyw4REFBQ0o7d0JBQUlDLFdBQVU7a0NBQ2IsNEVBQUNIOzRCQUFFRyxXQUFVO3NDQUF3Qjs7Ozs7Ozs7Ozs7b0JBR3hDTCwrQkFDQyw4REFBQ04sMERBQVFBO3dCQUVQZSxNQUFNVDt3QkFDTlUsVUFBVVYsY0FBY0csRUFBRSxLQUFLTDt3QkFDL0JhLFVBQVUsSUFBTVosYUFBYUMsY0FBY0csRUFBRTt1QkFIeENILGNBQWNHLEVBQUU7Ozs7Ozs7Ozs7O1lBTzFCTixNQUFNVyxNQUFNLEdBQUcsbUJBQ2QsOERBQUNmLGlEQUFJQTtnQkFDSG1CLE1BQU0sZUFBMkIsT0FBWmhCLFNBQVNPLEVBQUU7Z0JBQ2hDRSxXQUFVOztvQkFDWDtvQkFDWVIsTUFBTVcsTUFBTTtvQkFBQzs7Ozs7Ozs7Ozs7OztBQUtsQztLQTlDZ0JiIiwic291cmNlcyI6WyJ3ZWJwYWNrOi8vX05fRS8uL2NvbXBvbmVudHMvQ2F0ZWdvcnlDb2x1bW4udHN4PzljMTgiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2UgY2xpZW50XCI7XG5cbmltcG9ydCBMaW5rIGZyb20gXCJuZXh0L2xpbmtcIjtcbmltcG9ydCB0eXBlIHsgQ2F0ZWdvcnksIFBhcnQgfSBmcm9tIFwiQC90eXBlcy9ndW5idWlsZGVyXCI7XG5pbXBvcnQgeyBQYXJ0Q2FyZCB9IGZyb20gXCJAL2NvbXBvbmVudHMvUGFydENhcmRcIjtcblxuaW50ZXJmYWNlIENhdGVnb3J5Q29sdW1uUHJvcHMge1xuICBjYXRlZ29yeTogQ2F0ZWdvcnk7XG4gIHBhcnRzOiBQYXJ0W107XG4gIHNlbGVjdGVkUGFydElkPzogc3RyaW5nO1xuICBvblNlbGVjdFBhcnQ6IChwYXJ0SWQ6IHN0cmluZykgPT4gdm9pZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENhdGVnb3J5Q29sdW1uKHtcbiAgY2F0ZWdvcnksXG4gIHBhcnRzLFxuICBzZWxlY3RlZFBhcnRJZCxcbiAgb25TZWxlY3RQYXJ0LFxufTogQ2F0ZWdvcnlDb2x1bW5Qcm9wcykge1xuICAvLyBTaG93IHNlbGVjdGVkIHBhcnQgaWYgYXZhaWxhYmxlLCBvdGhlcndpc2Ugc2hvdyBwbGFjZWhvbGRlclxuICBjb25zdCBkaXNwbGF5ZWRQYXJ0ID0gc2VsZWN0ZWRQYXJ0SWRcbiAgICA/IHBhcnRzLmZpbmQoKHApID0+IHAuaWQgPT09IHNlbGVjdGVkUGFydElkKVxuICAgIDogbnVsbDtcblxuICByZXR1cm4gKFxuICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleCBmbGV4LWNvbCBoLWZ1bGxcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibWItM1wiPlxuICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRyYWNraW5nLVswLjE1ZW1dIHRleHQtemluYy00MDAgdXBwZXJjYXNlXCI+XG4gICAgICAgICAge2NhdGVnb3J5Lm5hbWV9XG4gICAgICAgIDwvaDI+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LXktYXV0byBwci0xXCI+XG4gICAgICAgIHtwYXJ0cy5sZW5ndGggPT09IDAgJiYgKFxuICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMFwiPk5vIHBhcnRzIHlldCBmb3IgdGhpcyBjYXRlZ29yeS48L3A+XG4gICAgICAgICl9XG4gICAgICAgIHshZGlzcGxheWVkUGFydCAmJiBwYXJ0cy5sZW5ndGggPiAwICYmIChcbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInctZnVsbCBib3JkZXIgYm9yZGVyLXppbmMtNzAwIHJvdW5kZWQtbWQgcC0zIG1iLTIgdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC16aW5jLTUwMFwiPkNob29zZSBhIFBhcnQ8L3A+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIHtkaXNwbGF5ZWRQYXJ0ICYmIChcbiAgICAgICAgICA8UGFydENhcmRcbiAgICAgICAgICAgIGtleT17ZGlzcGxheWVkUGFydC5pZH1cbiAgICAgICAgICAgIHBhcnQ9e2Rpc3BsYXllZFBhcnR9XG4gICAgICAgICAgICBzZWxlY3RlZD17ZGlzcGxheWVkUGFydC5pZCA9PT0gc2VsZWN0ZWRQYXJ0SWR9XG4gICAgICAgICAgICBvblNlbGVjdD17KCkgPT4gb25TZWxlY3RQYXJ0KGRpc3BsYXllZFBhcnQuaWQpfVxuICAgICAgICAgIC8+XG4gICAgICAgICl9XG4gICAgICA8L2Rpdj5cbiAgICAgIHtwYXJ0cy5sZW5ndGggPiAxICYmIChcbiAgICAgICAgPExpbmtcbiAgICAgICAgICBocmVmPXtgL2d1bmJ1aWxkZXIvJHtjYXRlZ29yeS5pZH1gfVxuICAgICAgICAgIGNsYXNzTmFtZT1cIm10LTIgdy1mdWxsIHJvdW5kZWQtbWQgYm9yZGVyIGJvcmRlci16aW5jLTcwMCBiZy16aW5jLTkwMC81MCBweC0zIHB5LTIgdGV4dC14cyBmb250LW1lZGl1bSB0ZXh0LXppbmMtMzAwIGhvdmVyOmJnLXppbmMtODAwIGhvdmVyOmJvcmRlci16aW5jLTYwMCB0cmFuc2l0aW9uLWNvbG9ycyB0ZXh0LWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICBWaWV3IEFsbCAoe3BhcnRzLmxlbmd0aH0pXG4gICAgICAgIDwvTGluaz5cbiAgICAgICl9XG4gICAgPC9kaXY+XG4gICk7XG59XG4iXSwibmFtZXMiOlsiTGluayIsIlBhcnRDYXJkIiwiQ2F0ZWdvcnlDb2x1bW4iLCJjYXRlZ29yeSIsInBhcnRzIiwic2VsZWN0ZWRQYXJ0SWQiLCJvblNlbGVjdFBhcnQiLCJkaXNwbGF5ZWRQYXJ0IiwiZmluZCIsInAiLCJpZCIsImRpdiIsImNsYXNzTmFtZSIsImgyIiwibmFtZSIsImxlbmd0aCIsInBhcnQiLCJzZWxlY3RlZCIsIm9uU2VsZWN0IiwiaHJlZiJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./components/CategoryColumn.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/page.ac57d1da09eaaba0.hot-update.js b/.next/static/webpack/app/gunbuilder/page.ac57d1da09eaaba0.hot-update.js
deleted file mode 100644
index 9bc177f..0000000
--- a/.next/static/webpack/app/gunbuilder/page.ac57d1da09eaaba0.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/page",{
-
-/***/ "(app-pages-browser)/./app/gunbuilder/page.tsx":
-/*!*********************************!*\
- !*** ./app/gunbuilder/page.tsx ***!
- \*********************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ GunbuilderPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* harmony import */ var _components_CategoryColumn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/components/CategoryColumn */ \"(app-pages-browser)/./components/CategoryColumn.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\nconst STORAGE_KEY = \"gunbuilder-build-state\";\nfunction GunbuilderPage() {\n _s();\n const searchParams = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.useSearchParams)();\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter)();\n const [build, setBuild] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(()=>{\n // Initialize from localStorage if available\n if (true) {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) {\n try {\n return JSON.parse(stored);\n } catch (e) {\n return {};\n }\n }\n }\n return {};\n });\n // Handle URL query parameter for part selection\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const selectParam = searchParams.get(\"select\");\n if (selectParam) {\n const [categoryId, partId] = selectParam.split(\":\");\n if (categoryId && partId && _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.CATEGORIES.some((c)=>c.id === categoryId)) {\n setBuild((prev)=>{\n const updated = {\n ...prev,\n [categoryId]: partId\n };\n // Persist to localStorage\n localStorage.setItem(STORAGE_KEY, JSON.stringify(updated));\n return updated;\n });\n // Remove query param from URL\n router.replace(\"/gunbuilder\", {\n scroll: false\n });\n }\n }\n }, [\n searchParams,\n router\n ]);\n // Persist build state to localStorage whenever it changes\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (true) {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(build));\n }\n }, [\n build\n ]);\n const partsByCategory = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const grouped = {};\n for (const category of _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.CATEGORIES){\n grouped[category.id] = _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.PARTS.filter((p)=>p.categoryId === category.id);\n }\n return grouped;\n }, []);\n const selectedParts = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return Object.entries(build).map((param)=>{\n let [categoryId, partId] = param;\n return _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.PARTS.find((p)=>p.id === partId && p.categoryId === categoryId);\n }).filter(Boolean);\n }, [\n build\n ]);\n const totalPrice = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>selectedParts.reduce((sum, p)=>sum + p.price, 0), [\n selectedParts\n ]);\n const handleSelectPart = (categoryId, partId)=>{\n setBuild((prev)=>({\n ...prev,\n [categoryId]: partId\n }));\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6 flex flex-col gap-2 md:flex-row md:items-end md: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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 96,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n \"Gunbuilder \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: \"Prototype\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 100,\n columnNumber: 26\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 99,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: \"Choose one part per category to assemble an AR-15 build. Prices and links are mock data for now—but the flow is close to what the real tool will be.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 102,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 95,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-3 md:mt-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-400\",\n children: \"Current build total\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 110,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-semibold text-amber-300\",\n children: [\n \"$\",\n totalPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 111,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-500\",\n children: [\n selectedParts.length,\n \" / \",\n _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.CATEGORIES.length,\n \" categories filled\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 114,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 109,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 94,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 lg:grid-cols-[3fr,1.25fr]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-3 md:p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 md:grid-cols-2 lg:grid-cols-3\",\n children: _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.CATEGORIES.map((category)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border border-zinc-800 rounded-md p-2 md:p-3 bg-zinc-950/60\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_CategoryColumn__WEBPACK_IMPORTED_MODULE_4__.CategoryColumn, {\n category: category,\n parts: partsByCategory[category.id],\n selectedPartId: build[category.id],\n onSelectPart: (partId)=>handleSelectPart(category.id, partId)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 130,\n columnNumber: 19\n }, this)\n }, category.id, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 126,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 124,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 123,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/80 p-3 md:p-4 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400 mb-3\",\n children: \"Current Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 145,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto pr-1\",\n children: [\n selectedParts.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-zinc-500\",\n children: \"Select a part from each category to start your build.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 151,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2\",\n children: _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.CATEGORIES.map((cat)=>{\n const selectedPartId = build[cat.id];\n const part = _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_3__.PARTS.find((p)=>p.id === selectedPartId && p.categoryId === cat.id);\n return /*#__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)(\"div\", {\n className: \"text-[0.7rem] uppercase tracking-[0.16em] text-zinc-500\",\n children: cat.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 164,\n columnNumber: 23\n }, this),\n part ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 flex justify-between items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-400\",\n children: [\n part.brand,\n \" \"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 170,\n columnNumber: 29\n }, this),\n part.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 169,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs font-semibold text-amber-300 whitespace-nowrap\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 175,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 168,\n columnNumber: 25\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 text-xs text-zinc-600\",\n children: \"Not selected\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 180,\n columnNumber: 25\n }, this)\n ]\n }, cat.id, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 163,\n columnNumber: 21\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 156,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 149,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 border-t border-zinc-800 pt-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n className: \"w-full rounded-md border border-amber-400/60 bg-amber-400/10 px-3 py-2 text-sm font-medium text-amber-200 hover:bg-amber-400/15 disabled:opacity-40 disabled:cursor-not-allowed\",\n disabled: selectedParts.length === 0,\n onClick: ()=>{\n console.log(\"Build:\", build);\n alert(\"Prototype only: in the real app this would go to a sharable build summary with affiliate links.\");\n },\n children: \"Continue to Buy (Prototype)\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 192,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-[0.7rem] text-zinc-500\",\n children: \"In the production version, this will take you to a build page with retailer links and sharing options.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 205,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 191,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 144,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 121,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 92,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 91,\n columnNumber: 5\n }, this);\n}\n_s(GunbuilderPage, \"UcwNfiAgvkVgT2sjmQl74nmTISI=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_2__.useSearchParams,\n next_navigation__WEBPACK_IMPORTED_MODULE_2__.useRouter\n ];\n});\n_c = GunbuilderPage;\nvar _c;\n$RefreshReg$(_c, \"GunbuilderPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL3BhZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7OztBQUVxRDtBQUVRO0FBQ0Y7QUFFRTtBQUk3RCxNQUFNUSxjQUFjO0FBRUwsU0FBU0M7O0lBQ3RCLE1BQU1DLGVBQWVQLGdFQUFlQTtJQUNwQyxNQUFNUSxTQUFTUCwwREFBU0E7SUFDeEIsTUFBTSxDQUFDUSxPQUFPQyxTQUFTLEdBQUdaLCtDQUFRQSxDQUFhO1FBQzdDLDRDQUE0QztRQUM1QyxJQUFJLElBQTZCLEVBQUU7WUFDakMsTUFBTWEsU0FBU0MsYUFBYUMsT0FBTyxDQUFDUjtZQUNwQyxJQUFJTSxRQUFRO2dCQUNWLElBQUk7b0JBQ0YsT0FBT0csS0FBS0MsS0FBSyxDQUFDSjtnQkFDcEIsRUFBRSxVQUFNO29CQUNOLE9BQU8sQ0FBQztnQkFDVjtZQUNGO1FBQ0Y7UUFDQSxPQUFPLENBQUM7SUFDVjtJQUVBLGdEQUFnRDtJQUNoRFosZ0RBQVNBLENBQUM7UUFDUixNQUFNaUIsY0FBY1QsYUFBYVUsR0FBRyxDQUFDO1FBQ3JDLElBQUlELGFBQWE7WUFDZixNQUFNLENBQUNFLFlBQVlDLE9BQU8sR0FBR0gsWUFBWUksS0FBSyxDQUFDO1lBQy9DLElBQUlGLGNBQWNDLFVBQVVqQiw2REFBVUEsQ0FBQ21CLElBQUksQ0FBQyxDQUFDQyxJQUFNQSxFQUFFQyxFQUFFLEtBQUtMLGFBQWE7Z0JBQ3ZFUixTQUFTLENBQUNjO29CQUNSLE1BQU1DLFVBQVU7d0JBQ2QsR0FBR0QsSUFBSTt3QkFDUCxDQUFDTixXQUFXLEVBQUVDO29CQUNoQjtvQkFDQSwwQkFBMEI7b0JBQzFCUCxhQUFhYyxPQUFPLENBQUNyQixhQUFhUyxLQUFLYSxTQUFTLENBQUNGO29CQUNqRCxPQUFPQTtnQkFDVDtnQkFDQSw4QkFBOEI7Z0JBQzlCakIsT0FBT29CLE9BQU8sQ0FBQyxlQUFlO29CQUFFQyxRQUFRO2dCQUFNO1lBQ2hEO1FBQ0Y7SUFDRixHQUFHO1FBQUN0QjtRQUFjQztLQUFPO0lBRXpCLDBEQUEwRDtJQUMxRFQsZ0RBQVNBLENBQUM7UUFDUixJQUFJLElBQTZCLEVBQUU7WUFDakNhLGFBQWFjLE9BQU8sQ0FBQ3JCLGFBQWFTLEtBQUthLFNBQVMsQ0FBQ2xCO1FBQ25EO0lBQ0YsR0FBRztRQUFDQTtLQUFNO0lBRVYsTUFBTXFCLGtCQUE4Q2pDLDhDQUFPQSxDQUFDO1FBQzFELE1BQU1rQyxVQUFVLENBQUM7UUFDakIsS0FBSyxNQUFNQyxZQUFZOUIsNkRBQVVBLENBQUU7WUFDakM2QixPQUFPLENBQUNDLFNBQVNULEVBQUUsQ0FBQyxHQUFHcEIsd0RBQUtBLENBQUM4QixNQUFNLENBQ2pDLENBQUNDLElBQU1BLEVBQUVoQixVQUFVLEtBQUtjLFNBQVNULEVBQUU7UUFFdkM7UUFDQSxPQUFPUTtJQUNULEdBQUcsRUFBRTtJQUVMLE1BQU1JLGdCQUF3QnRDLDhDQUFPQSxDQUFDO1FBQ3BDLE9BQU91QyxPQUFPQyxPQUFPLENBQUM1QixPQUNuQjZCLEdBQUcsQ0FBQztnQkFBQyxDQUFDcEIsWUFBWUMsT0FBTzttQkFDeEJoQix3REFBS0EsQ0FBQ29DLElBQUksQ0FBQyxDQUFDTCxJQUFNQSxFQUFFWCxFQUFFLEtBQUtKLFVBQVVlLEVBQUVoQixVQUFVLEtBQUtBO1dBRXZEZSxNQUFNLENBQUNPO0lBQ1osR0FBRztRQUFDL0I7S0FBTTtJQUVWLE1BQU1nQyxhQUFhNUMsOENBQU9BLENBQ3hCLElBQU1zQyxjQUFjTyxNQUFNLENBQUMsQ0FBQ0MsS0FBS1QsSUFBTVMsTUFBTVQsRUFBRVUsS0FBSyxFQUFFLElBQ3REO1FBQUNUO0tBQWM7SUFHakIsTUFBTVUsbUJBQW1CLENBQUMzQixZQUF3QkM7UUFDaERULFNBQVMsQ0FBQ2MsT0FBVTtnQkFDbEIsR0FBR0EsSUFBSTtnQkFDUCxDQUFDTixXQUFXLEVBQUVDO1lBQ2hCO0lBQ0Y7SUFFQSxxQkFDRSw4REFBQzJCO1FBQUtDLFdBQVU7a0JBQ2QsNEVBQUNDO1lBQUlELFdBQVU7OzhCQUViLDhEQUFDRTtvQkFBT0YsV0FBVTs7c0NBQ2hCLDhEQUFDQzs7OENBQ0MsOERBQUNkO29DQUFFYSxXQUFVOzhDQUFpRTs7Ozs7OzhDQUc5RSw4REFBQ0c7b0NBQUdILFdBQVU7O3dDQUF5RDtzREFDMUQsOERBQUNJOzRDQUFLSixXQUFVO3NEQUFpQjs7Ozs7Ozs7Ozs7OzhDQUU5Qyw4REFBQ2I7b0NBQUVhLFdBQVU7OENBQXNDOzs7Ozs7Ozs7Ozs7c0NBT3JELDhEQUFDQzs0QkFBSUQsV0FBVTs7OENBQ2IsOERBQUNDO29DQUFJRCxXQUFVOzhDQUF3Qjs7Ozs7OzhDQUN2Qyw4REFBQ0M7b0NBQUlELFdBQVU7O3dDQUF3Qzt3Q0FDbkROLFdBQVdXLE9BQU8sQ0FBQzs7Ozs7Ozs4Q0FFdkIsOERBQUNKO29DQUFJRCxXQUFVOzt3Q0FDWlosY0FBY2tCLE1BQU07d0NBQUM7d0NBQUluRCw2REFBVUEsQ0FBQ21ELE1BQU07d0NBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OEJBTWxELDhEQUFDTDtvQkFBSUQsV0FBVTs7c0NBRWIsOERBQUNPOzRCQUFRUCxXQUFVO3NDQUNqQiw0RUFBQ0M7Z0NBQUlELFdBQVU7MENBQ1o3Qyw2REFBVUEsQ0FBQ29DLEdBQUcsQ0FBQyxDQUFDTix5QkFDZiw4REFBQ2dCO3dDQUVDRCxXQUFVO2tEQUVWLDRFQUFDM0Msc0VBQWNBOzRDQUNiNEIsVUFBVUE7NENBQ1Z1QixPQUFPekIsZUFBZSxDQUFDRSxTQUFTVCxFQUFFLENBQUM7NENBQ25DaUMsZ0JBQWdCL0MsS0FBSyxDQUFDdUIsU0FBU1QsRUFBRSxDQUFDOzRDQUNsQ2tDLGNBQWMsQ0FBQ3RDLFNBQ2IwQixpQkFBaUJiLFNBQVNULEVBQUUsRUFBRUo7Ozs7Ozt1Q0FSN0JhLFNBQVNULEVBQUU7Ozs7Ozs7Ozs7Ozs7OztzQ0FpQnhCLDhEQUFDbUM7NEJBQU1YLFdBQVU7OzhDQUNmLDhEQUFDWTtvQ0FBR1osV0FBVTs4Q0FBdUU7Ozs7Ozs4Q0FJckYsOERBQUNDO29DQUFJRCxXQUFVOzt3Q0FDWlosY0FBY2tCLE1BQU0sS0FBSyxtQkFDeEIsOERBQUNuQjs0Q0FBRWEsV0FBVTtzREFBd0I7Ozs7OztzREFLdkMsOERBQUNhOzRDQUFHYixXQUFVO3NEQUNYN0MsNkRBQVVBLENBQUNvQyxHQUFHLENBQUMsQ0FBQ3VCO2dEQUNmLE1BQU1MLGlCQUFpQi9DLEtBQUssQ0FBQ29ELElBQUl0QyxFQUFFLENBQUM7Z0RBQ3BDLE1BQU11QyxPQUFPM0Qsd0RBQUtBLENBQUNvQyxJQUFJLENBQ3JCLENBQUNMLElBQU1BLEVBQUVYLEVBQUUsS0FBS2lDLGtCQUFrQnRCLEVBQUVoQixVQUFVLEtBQUsyQyxJQUFJdEMsRUFBRTtnREFFM0QscUJBQ0UsOERBQUN3Qzs7c0VBQ0MsOERBQUNmOzREQUFJRCxXQUFVO3NFQUNaYyxJQUFJRyxJQUFJOzs7Ozs7d0RBRVZGLHFCQUNDLDhEQUFDZDs0REFBSUQsV0FBVTs7OEVBQ2IsOERBQUNDO29FQUFJRCxXQUFVOztzRkFDYiw4REFBQ0k7NEVBQUtKLFdBQVU7O2dGQUNiZSxLQUFLRyxLQUFLO2dGQUFFOzs7Ozs7O3dFQUVkSCxLQUFLRSxJQUFJOzs7Ozs7OzhFQUVaLDhEQUFDaEI7b0VBQUlELFdBQVU7O3dFQUF5RDt3RUFDcEVlLEtBQUtsQixLQUFLLENBQUNRLE9BQU8sQ0FBQzs7Ozs7Ozs7Ozs7O2lGQUl6Qiw4REFBQ0o7NERBQUlELFdBQVU7c0VBQTZCOzs7Ozs7O21EQWpCdkNjLElBQUl0QyxFQUFFOzs7Ozs0Q0F1Qm5COzs7Ozs7Ozs7Ozs7OENBS0osOERBQUN5QjtvQ0FBSUQsV0FBVTs7c0RBQ2IsOERBQUNtQjs0Q0FDQ0MsTUFBSzs0Q0FDTHBCLFdBQVU7NENBQ1ZxQixVQUFVakMsY0FBY2tCLE1BQU0sS0FBSzs0Q0FDbkNnQixTQUFTO2dEQUNQQyxRQUFRQyxHQUFHLENBQUMsVUFBVTlEO2dEQUN0QitELE1BQ0U7NENBRUo7c0RBQ0Q7Ozs7OztzREFHRCw4REFBQ3RDOzRDQUFFYSxXQUFVO3NEQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFVOUQ7R0F6TXdCekM7O1FBQ0ROLDREQUFlQTtRQUNyQkMsc0RBQVNBOzs7S0FGRksiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2d1bmJ1aWxkZXIvcGFnZS50c3g/MDU0MCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgdXNlTWVtbywgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xuaW1wb3J0IHsgdXNlU2VhcmNoUGFyYW1zLCB1c2VSb3V0ZXIgfSBmcm9tIFwibmV4dC9uYXZpZ2F0aW9uXCI7XG5pbXBvcnQgeyBDQVRFR09SSUVTLCBQQVJUUyB9IGZyb20gXCJAL2RhdGEvZ3VuYnVpbGRlclBhcnRzXCI7XG5pbXBvcnQgdHlwZSB7IENhdGVnb3J5SWQsIFBhcnQgfSBmcm9tIFwiQC90eXBlcy9ndW5idWlsZGVyXCI7XG5pbXBvcnQgeyBDYXRlZ29yeUNvbHVtbiB9IGZyb20gXCJAL2NvbXBvbmVudHMvQ2F0ZWdvcnlDb2x1bW5cIjtcblxudHlwZSBCdWlsZFN0YXRlID0gUGFydGlhbDxSZWNvcmQ8Q2F0ZWdvcnlJZCwgc3RyaW5nPj47IC8vIGNhdGVnb3J5SWQgLT4gcGFydElkXG5cbmNvbnN0IFNUT1JBR0VfS0VZID0gXCJndW5idWlsZGVyLWJ1aWxkLXN0YXRlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEd1bmJ1aWxkZXJQYWdlKCkge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSB1c2VTZWFyY2hQYXJhbXMoKTtcbiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKCk7XG4gIGNvbnN0IFtidWlsZCwgc2V0QnVpbGRdID0gdXNlU3RhdGU8QnVpbGRTdGF0ZT4oKCkgPT4ge1xuICAgIC8vIEluaXRpYWxpemUgZnJvbSBsb2NhbFN0b3JhZ2UgaWYgYXZhaWxhYmxlXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGNvbnN0IHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKTtcbiAgICAgIGlmIChzdG9yZWQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzdG9yZWQpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9KTtcblxuICAvLyBIYW5kbGUgVVJMIHF1ZXJ5IHBhcmFtZXRlciBmb3IgcGFydCBzZWxlY3Rpb25cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RQYXJhbSA9IHNlYXJjaFBhcmFtcy5nZXQoXCJzZWxlY3RcIik7XG4gICAgaWYgKHNlbGVjdFBhcmFtKSB7XG4gICAgICBjb25zdCBbY2F0ZWdvcnlJZCwgcGFydElkXSA9IHNlbGVjdFBhcmFtLnNwbGl0KFwiOlwiKTtcbiAgICAgIGlmIChjYXRlZ29yeUlkICYmIHBhcnRJZCAmJiBDQVRFR09SSUVTLnNvbWUoKGMpID0+IGMuaWQgPT09IGNhdGVnb3J5SWQpKSB7XG4gICAgICAgIHNldEJ1aWxkKChwcmV2KSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZCA9IHtcbiAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICBbY2F0ZWdvcnlJZF06IHBhcnRJZCxcbiAgICAgICAgICB9O1xuICAgICAgICAgIC8vIFBlcnNpc3QgdG8gbG9jYWxTdG9yYWdlXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KHVwZGF0ZWQpKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZDtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFJlbW92ZSBxdWVyeSBwYXJhbSBmcm9tIFVSTFxuICAgICAgICByb3V0ZXIucmVwbGFjZShcIi9ndW5idWlsZGVyXCIsIHsgc2Nyb2xsOiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzZWFyY2hQYXJhbXMsIHJvdXRlcl0pO1xuXG4gIC8vIFBlcnNpc3QgYnVpbGQgc3RhdGUgdG8gbG9jYWxTdG9yYWdlIHdoZW5ldmVyIGl0IGNoYW5nZXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KGJ1aWxkKSk7XG4gICAgfVxuICB9LCBbYnVpbGRdKTtcblxuICBjb25zdCBwYXJ0c0J5Q2F0ZWdvcnk6IFJlY29yZDxDYXRlZ29yeUlkLCBQYXJ0W10+ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgZ3JvdXBlZCA9IHt9IGFzIFJlY29yZDxDYXRlZ29yeUlkLCBQYXJ0W10+O1xuICAgIGZvciAoY29uc3QgY2F0ZWdvcnkgb2YgQ0FURUdPUklFUykge1xuICAgICAgZ3JvdXBlZFtjYXRlZ29yeS5pZF0gPSBQQVJUUy5maWx0ZXIoXG4gICAgICAgIChwKSA9PiBwLmNhdGVnb3J5SWQgPT09IGNhdGVnb3J5LmlkLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGdyb3VwZWQ7XG4gIH0sIFtdKTtcblxuICBjb25zdCBzZWxlY3RlZFBhcnRzOiBQYXJ0W10gPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoYnVpbGQpXG4gICAgICAubWFwKChbY2F0ZWdvcnlJZCwgcGFydElkXSkgPT5cbiAgICAgICAgUEFSVFMuZmluZCgocCkgPT4gcC5pZCA9PT0gcGFydElkICYmIHAuY2F0ZWdvcnlJZCA9PT0gY2F0ZWdvcnlJZCksXG4gICAgICApXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIFBhcnRbXTtcbiAgfSwgW2J1aWxkXSk7XG5cbiAgY29uc3QgdG90YWxQcmljZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gc2VsZWN0ZWRQYXJ0cy5yZWR1Y2UoKHN1bSwgcCkgPT4gc3VtICsgcC5wcmljZSwgMCksXG4gICAgW3NlbGVjdGVkUGFydHNdLFxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdFBhcnQgPSAoY2F0ZWdvcnlJZDogQ2F0ZWdvcnlJZCwgcGFydElkOiBzdHJpbmcpID0+IHtcbiAgICBzZXRCdWlsZCgocHJldikgPT4gKHtcbiAgICAgIC4uLnByZXYsXG4gICAgICBbY2F0ZWdvcnlJZF06IHBhcnRJZCxcbiAgICB9KSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8bWFpbiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gYmctYmxhY2sgdGV4dC16aW5jLTUwXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14LWF1dG8gbWF4LXctNnhsIHB4LTQgcHktNiBsZzpweS0xMFwiPlxuICAgICAgICB7LyogSGVhZGVyICovfVxuICAgICAgICA8aGVhZGVyIGNsYXNzTmFtZT1cIm1iLTYgZmxleCBmbGV4LWNvbCBnYXAtMiBtZDpmbGV4LXJvdyBtZDppdGVtcy1lbmQgbWQ6anVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4yZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICAgIFNoYWRvdyBTdGFuZGFyZFxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm10LTEgdGV4dC0yeGwgbWQ6dGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0cmFja2luZy10aWdodFwiPlxuICAgICAgICAgICAgICBHdW5idWlsZGVyIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtYW1iZXItMzAwXCI+UHJvdG90eXBlPC9zcGFuPlxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm10LTIgdGV4dC1zbSB0ZXh0LXppbmMtNDAwIG1heC13LXhsXCI+XG4gICAgICAgICAgICAgIENob29zZSBvbmUgcGFydCBwZXIgY2F0ZWdvcnkgdG8gYXNzZW1ibGUgYW4gQVItMTUgYnVpbGQuIFByaWNlc1xuICAgICAgICAgICAgICBhbmQgbGlua3MgYXJlIG1vY2sgZGF0YSBmb3Igbm934oCUYnV0IHRoZSBmbG93IGlzIGNsb3NlIHRvIHdoYXRcbiAgICAgICAgICAgICAgdGhlIHJlYWwgdG9vbCB3aWxsIGJlLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0zIG1kOm10LTBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNDAwXCI+Q3VycmVudCBidWlsZCB0b3RhbDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LXNlbWlib2xkIHRleHQtYW1iZXItMzAwXCI+XG4gICAgICAgICAgICAgICR7dG90YWxQcmljZS50b0ZpeGVkKDIpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgICAgICB7c2VsZWN0ZWRQYXJ0cy5sZW5ndGh9IC8ge0NBVEVHT1JJRVMubGVuZ3RofSBjYXRlZ29yaWVzIGZpbGxlZFxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgIHsvKiBMYXlvdXQgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBnYXAtNCBsZzpncmlkLWNvbHMtWzNmciwxLjI1ZnJdXCI+XG4gICAgICAgICAgey8qIENhdGVnb3JpZXMvcGFydHMgKi99XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzYwIHAtMyBtZDpwLTRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBnYXAtNCBtZDpncmlkLWNvbHMtMiBsZzpncmlkLWNvbHMtM1wiPlxuICAgICAgICAgICAgICB7Q0FURUdPUklFUy5tYXAoKGNhdGVnb3J5KSA9PiAoXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAga2V5PXtjYXRlZ29yeS5pZH1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJvcmRlciBib3JkZXItemluYy04MDAgcm91bmRlZC1tZCBwLTIgbWQ6cC0zIGJnLXppbmMtOTUwLzYwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlDb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9e2NhdGVnb3J5fVxuICAgICAgICAgICAgICAgICAgICBwYXJ0cz17cGFydHNCeUNhdGVnb3J5W2NhdGVnb3J5LmlkXX1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRQYXJ0SWQ9e2J1aWxkW2NhdGVnb3J5LmlkXX1cbiAgICAgICAgICAgICAgICAgICAgb25TZWxlY3RQYXJ0PXsocGFydElkKSA9PlxuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdFBhcnQoY2F0ZWdvcnkuaWQsIHBhcnRJZClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgICB7LyogQnVpbGQgU3VtbWFyeSAqL31cbiAgICAgICAgICA8YXNpZGUgY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzgwIHAtMyBtZDpwLTQgZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMCBtYi0zXCI+XG4gICAgICAgICAgICAgIEN1cnJlbnQgQnVpbGRcbiAgICAgICAgICAgIDwvaDI+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LXktYXV0byBwci0xXCI+XG4gICAgICAgICAgICAgIHtzZWxlY3RlZFBhcnRzLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICAgICAgICBTZWxlY3QgYSBwYXJ0IGZyb20gZWFjaCBjYXRlZ29yeSB0byBzdGFydCB5b3VyIGJ1aWxkLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XG4gICAgICAgICAgICAgICAge0NBVEVHT1JJRVMubWFwKChjYXQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUGFydElkID0gYnVpbGRbY2F0LmlkXTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnQgPSBQQVJUUy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAocCkgPT4gcC5pZCA9PT0gc2VsZWN0ZWRQYXJ0SWQgJiYgcC5jYXRlZ29yeUlkID09PSBjYXQuaWQsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17Y2F0LmlkfT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtWzAuN3JlbV0gdXBwZXJjYXNlIHRyYWNraW5nLVswLjE2ZW1dIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjYXQubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB7cGFydCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMSBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtemluYy00MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwYXJ0LmJyYW5kfXtcIiBcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtYW1iZXItMzAwIHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtwYXJ0LnByaWNlLnRvRml4ZWQoMil9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMSB0ZXh0LXhzIHRleHQtemluYy02MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgTm90IHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogQ1RBICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC00IGJvcmRlci10IGJvcmRlci16aW5jLTgwMCBwdC0zXCI+XG4gICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9XCJ3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWFtYmVyLTQwMC82MCBiZy1hbWJlci00MDAvMTAgcHgtMyBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1hbWJlci0yMDAgaG92ZXI6YmctYW1iZXItNDAwLzE1IGRpc2FibGVkOm9wYWNpdHktNDAgZGlzYWJsZWQ6Y3Vyc29yLW5vdC1hbGxvd2VkXCJcbiAgICAgICAgICAgICAgICBkaXNhYmxlZD17c2VsZWN0ZWRQYXJ0cy5sZW5ndGggPT09IDB9XG4gICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJCdWlsZDpcIiwgYnVpbGQpO1xuICAgICAgICAgICAgICAgICAgYWxlcnQoXG4gICAgICAgICAgICAgICAgICAgIFwiUHJvdG90eXBlIG9ubHk6IGluIHRoZSByZWFsIGFwcCB0aGlzIHdvdWxkIGdvIHRvIGEgc2hhcmFibGUgYnVpbGQgc3VtbWFyeSB3aXRoIGFmZmlsaWF0ZSBsaW5rcy5cIixcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIENvbnRpbnVlIHRvIEJ1eSAoUHJvdG90eXBlKVxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibXQtMiB0ZXh0LVswLjdyZW1dIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICAgICAgICBJbiB0aGUgcHJvZHVjdGlvbiB2ZXJzaW9uLCB0aGlzIHdpbGwgdGFrZSB5b3UgdG8gYSBidWlsZCBwYWdlIHdpdGhcbiAgICAgICAgICAgICAgICByZXRhaWxlciBsaW5rcyBhbmQgc2hhcmluZyBvcHRpb25zLlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2FzaWRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJ1c2VTZWFyY2hQYXJhbXMiLCJ1c2VSb3V0ZXIiLCJDQVRFR09SSUVTIiwiUEFSVFMiLCJDYXRlZ29yeUNvbHVtbiIsIlNUT1JBR0VfS0VZIiwiR3VuYnVpbGRlclBhZ2UiLCJzZWFyY2hQYXJhbXMiLCJyb3V0ZXIiLCJidWlsZCIsInNldEJ1aWxkIiwic3RvcmVkIiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsIkpTT04iLCJwYXJzZSIsInNlbGVjdFBhcmFtIiwiZ2V0IiwiY2F0ZWdvcnlJZCIsInBhcnRJZCIsInNwbGl0Iiwic29tZSIsImMiLCJpZCIsInByZXYiLCJ1cGRhdGVkIiwic2V0SXRlbSIsInN0cmluZ2lmeSIsInJlcGxhY2UiLCJzY3JvbGwiLCJwYXJ0c0J5Q2F0ZWdvcnkiLCJncm91cGVkIiwiY2F0ZWdvcnkiLCJmaWx0ZXIiLCJwIiwic2VsZWN0ZWRQYXJ0cyIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJmaW5kIiwiQm9vbGVhbiIsInRvdGFsUHJpY2UiLCJyZWR1Y2UiLCJzdW0iLCJwcmljZSIsImhhbmRsZVNlbGVjdFBhcnQiLCJtYWluIiwiY2xhc3NOYW1lIiwiZGl2IiwiaGVhZGVyIiwiaDEiLCJzcGFuIiwidG9GaXhlZCIsImxlbmd0aCIsInNlY3Rpb24iLCJwYXJ0cyIsInNlbGVjdGVkUGFydElkIiwib25TZWxlY3RQYXJ0IiwiYXNpZGUiLCJoMiIsInVsIiwiY2F0IiwicGFydCIsImxpIiwibmFtZSIsImJyYW5kIiwiYnV0dG9uIiwidHlwZSIsImRpc2FibGVkIiwib25DbGljayIsImNvbnNvbGUiLCJsb2ciLCJhbGVydCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/page.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/page.c81c5ba568e3f3ba.hot-update.js b/.next/static/webpack/app/gunbuilder/page.c81c5ba568e3f3ba.hot-update.js
deleted file mode 100644
index 36bcb54..0000000
--- a/.next/static/webpack/app/gunbuilder/page.c81c5ba568e3f3ba.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/page",{
-
-/***/ "(app-pages-browser)/./app/gunbuilder/page.tsx":
-/*!*********************************!*\
- !*** ./app/gunbuilder/page.tsx ***!
- \*********************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ GunbuilderPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* harmony import */ var _components_CategoryColumn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/CategoryColumn */ \"(app-pages-browser)/./components/CategoryColumn.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\nconst STORAGE_KEY = \"gunbuilder-build-state\";\nfunction GunbuilderPage() {\n _s();\n const searchParams = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useSearchParams)();\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useRouter)();\n const [build, setBuild] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(()=>{\n // Initialize from localStorage if available\n if (true) {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) {\n try {\n return JSON.parse(stored);\n } catch (e) {\n return {};\n }\n }\n }\n return {};\n });\n // Handle URL query parameter for part selection\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const selectParam = searchParams.get(\"select\");\n if (selectParam) {\n const [categoryId, partId] = selectParam.split(\":\");\n if (categoryId && partId && _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.some((c)=>c.id === categoryId)) {\n setBuild((prev)=>{\n const updated = {\n ...prev,\n [categoryId]: partId\n };\n // Persist to localStorage\n localStorage.setItem(STORAGE_KEY, JSON.stringify(updated));\n return updated;\n });\n // Remove query param from URL\n router.replace(\"/gunbuilder\", {\n scroll: false\n });\n }\n }\n }, [\n searchParams,\n router\n ]);\n // Persist build state to localStorage whenever it changes\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (true) {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(build));\n }\n }, [\n build\n ]);\n const partsByCategory = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const grouped = {};\n for (const category of _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES){\n grouped[category.id] = _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.filter((p)=>p.categoryId === category.id);\n }\n return grouped;\n }, []);\n const selectedParts = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return Object.entries(build).map((param)=>{\n let [categoryId, partId] = param;\n return _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.find((p)=>p.id === partId && p.categoryId === categoryId);\n }).filter(Boolean);\n }, [\n build\n ]);\n const totalPrice = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>selectedParts.reduce((sum, p)=>sum + p.price, 0), [\n selectedParts\n ]);\n const handleSelectPart = (categoryId, partId)=>{\n setBuild((prev)=>({\n ...prev,\n [categoryId]: partId\n }));\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6 flex flex-col gap-2 md:flex-row md:items-end md: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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 96,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n \"Gunbuilder \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: \"Prototype\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 100,\n columnNumber: 26\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 99,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: \"Choose one part per category to assemble an AR-15 build. Prices and links are mock data for now—but the flow is close to what the real tool will be.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 102,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 95,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-3 md:mt-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-400\",\n children: \"Current build total\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 110,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-semibold text-amber-300\",\n children: [\n \"$\",\n totalPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 111,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-500\",\n children: [\n selectedParts.length,\n \" / \",\n _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.length,\n \" categories filled\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 114,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 109,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 94,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 lg:grid-cols-[3fr,1.25fr]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-3 md:p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 md:grid-cols-2 lg:grid-cols-3\",\n children: _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.map((category)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border border-zinc-800 rounded-md p-2 md:p-3 bg-zinc-950/60\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_CategoryColumn__WEBPACK_IMPORTED_MODULE_5__.CategoryColumn, {\n category: category,\n parts: partsByCategory[category.id],\n selectedPartId: build[category.id],\n onSelectPart: (partId)=>handleSelectPart(category.id, partId)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 130,\n columnNumber: 19\n }, this)\n }, category.id, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 126,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 124,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 123,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/80 p-3 md:p-4 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400 mb-3\",\n children: \"Current Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 145,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto pr-1\",\n children: [\n selectedParts.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-zinc-500\",\n children: \"Select a part from each category to start your build.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 151,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2\",\n children: _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.map((cat)=>{\n const selectedPartId = build[cat.id];\n const part = _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.find((p)=>p.id === selectedPartId && p.categoryId === cat.id);\n return /*#__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)(\"div\", {\n className: \"text-[0.7rem] uppercase tracking-[0.16em] text-zinc-500\",\n children: cat.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 164,\n columnNumber: 23\n }, this),\n part ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 flex justify-between items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-400\",\n children: [\n part.brand,\n \" \"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 170,\n columnNumber: 29\n }, this),\n part.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 169,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs font-semibold text-amber-300 whitespace-nowrap\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 175,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 168,\n columnNumber: 25\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 text-xs text-zinc-600\",\n children: \"Not selected\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 180,\n columnNumber: 25\n }, this)\n ]\n }, cat.id, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 163,\n columnNumber: 21\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 156,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 149,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 border-t border-zinc-800 pt-3\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(next_link__WEBPACK_IMPORTED_MODULE_2__[\"default\"], {\n href: \"/gunbuilder/build\",\n className: \"block w-full rounded-md border border-amber-400/60 bg-amber-400/10 px-3 py-2 text-sm font-medium text-amber-200 hover:bg-amber-400/15 text-center transition-colors \".concat(selectedParts.length === 0 ? \"opacity-40 cursor-not-allowed pointer-events-none\" : \"\"),\n children: \"Continue to Buy\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 192,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-[0.7rem] text-zinc-500\",\n children: \"View your build summary with affiliate links and sharing options.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 202,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 191,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 144,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 121,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 92,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 91,\n columnNumber: 5\n }, this);\n}\n_s(GunbuilderPage, \"UcwNfiAgvkVgT2sjmQl74nmTISI=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useSearchParams,\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useRouter\n ];\n});\n_c = GunbuilderPage;\nvar _c;\n$RefreshReg$(_c, \"GunbuilderPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL3BhZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFFcUQ7QUFDeEI7QUFDZ0M7QUFDRjtBQUVFO0FBSTdELE1BQU1TLGNBQWM7QUFFTCxTQUFTQzs7SUFDdEIsTUFBTUMsZUFBZVAsZ0VBQWVBO0lBQ3BDLE1BQU1RLFNBQVNQLDBEQUFTQTtJQUN4QixNQUFNLENBQUNRLE9BQU9DLFNBQVMsR0FBR2IsK0NBQVFBLENBQWE7UUFDN0MsNENBQTRDO1FBQzVDLElBQUksSUFBNkIsRUFBRTtZQUNqQyxNQUFNYyxTQUFTQyxhQUFhQyxPQUFPLENBQUNSO1lBQ3BDLElBQUlNLFFBQVE7Z0JBQ1YsSUFBSTtvQkFDRixPQUFPRyxLQUFLQyxLQUFLLENBQUNKO2dCQUNwQixFQUFFLFVBQU07b0JBQ04sT0FBTyxDQUFDO2dCQUNWO1lBQ0Y7UUFDRjtRQUNBLE9BQU8sQ0FBQztJQUNWO0lBRUEsZ0RBQWdEO0lBQ2hEYixnREFBU0EsQ0FBQztRQUNSLE1BQU1rQixjQUFjVCxhQUFhVSxHQUFHLENBQUM7UUFDckMsSUFBSUQsYUFBYTtZQUNmLE1BQU0sQ0FBQ0UsWUFBWUMsT0FBTyxHQUFHSCxZQUFZSSxLQUFLLENBQUM7WUFDL0MsSUFBSUYsY0FBY0MsVUFBVWpCLDZEQUFVQSxDQUFDbUIsSUFBSSxDQUFDLENBQUNDLElBQU1BLEVBQUVDLEVBQUUsS0FBS0wsYUFBYTtnQkFDdkVSLFNBQVMsQ0FBQ2M7b0JBQ1IsTUFBTUMsVUFBVTt3QkFDZCxHQUFHRCxJQUFJO3dCQUNQLENBQUNOLFdBQVcsRUFBRUM7b0JBQ2hCO29CQUNBLDBCQUEwQjtvQkFDMUJQLGFBQWFjLE9BQU8sQ0FBQ3JCLGFBQWFTLEtBQUthLFNBQVMsQ0FBQ0Y7b0JBQ2pELE9BQU9BO2dCQUNUO2dCQUNBLDhCQUE4QjtnQkFDOUJqQixPQUFPb0IsT0FBTyxDQUFDLGVBQWU7b0JBQUVDLFFBQVE7Z0JBQU07WUFDaEQ7UUFDRjtJQUNGLEdBQUc7UUFBQ3RCO1FBQWNDO0tBQU87SUFFekIsMERBQTBEO0lBQzFEVixnREFBU0EsQ0FBQztRQUNSLElBQUksSUFBNkIsRUFBRTtZQUNqQ2MsYUFBYWMsT0FBTyxDQUFDckIsYUFBYVMsS0FBS2EsU0FBUyxDQUFDbEI7UUFDbkQ7SUFDRixHQUFHO1FBQUNBO0tBQU07SUFFVixNQUFNcUIsa0JBQThDbEMsOENBQU9BLENBQUM7UUFDMUQsTUFBTW1DLFVBQVUsQ0FBQztRQUNqQixLQUFLLE1BQU1DLFlBQVk5Qiw2REFBVUEsQ0FBRTtZQUNqQzZCLE9BQU8sQ0FBQ0MsU0FBU1QsRUFBRSxDQUFDLEdBQUdwQix3REFBS0EsQ0FBQzhCLE1BQU0sQ0FDakMsQ0FBQ0MsSUFBTUEsRUFBRWhCLFVBQVUsS0FBS2MsU0FBU1QsRUFBRTtRQUV2QztRQUNBLE9BQU9RO0lBQ1QsR0FBRyxFQUFFO0lBRUwsTUFBTUksZ0JBQXdCdkMsOENBQU9BLENBQUM7UUFDcEMsT0FBT3dDLE9BQU9DLE9BQU8sQ0FBQzVCLE9BQ25CNkIsR0FBRyxDQUFDO2dCQUFDLENBQUNwQixZQUFZQyxPQUFPO21CQUN4QmhCLHdEQUFLQSxDQUFDb0MsSUFBSSxDQUFDLENBQUNMLElBQU1BLEVBQUVYLEVBQUUsS0FBS0osVUFBVWUsRUFBRWhCLFVBQVUsS0FBS0E7V0FFdkRlLE1BQU0sQ0FBQ087SUFDWixHQUFHO1FBQUMvQjtLQUFNO0lBRVYsTUFBTWdDLGFBQWE3Qyw4Q0FBT0EsQ0FDeEIsSUFBTXVDLGNBQWNPLE1BQU0sQ0FBQyxDQUFDQyxLQUFLVCxJQUFNUyxNQUFNVCxFQUFFVSxLQUFLLEVBQUUsSUFDdEQ7UUFBQ1Q7S0FBYztJQUdqQixNQUFNVSxtQkFBbUIsQ0FBQzNCLFlBQXdCQztRQUNoRFQsU0FBUyxDQUFDYyxPQUFVO2dCQUNsQixHQUFHQSxJQUFJO2dCQUNQLENBQUNOLFdBQVcsRUFBRUM7WUFDaEI7SUFDRjtJQUVBLHFCQUNFLDhEQUFDMkI7UUFBS0MsV0FBVTtrQkFDZCw0RUFBQ0M7WUFBSUQsV0FBVTs7OEJBRWIsOERBQUNFO29CQUFPRixXQUFVOztzQ0FDaEIsOERBQUNDOzs4Q0FDQyw4REFBQ2Q7b0NBQUVhLFdBQVU7OENBQWlFOzs7Ozs7OENBRzlFLDhEQUFDRztvQ0FBR0gsV0FBVTs7d0NBQXlEO3NEQUMxRCw4REFBQ0k7NENBQUtKLFdBQVU7c0RBQWlCOzs7Ozs7Ozs7Ozs7OENBRTlDLDhEQUFDYjtvQ0FBRWEsV0FBVTs4Q0FBc0M7Ozs7Ozs7Ozs7OztzQ0FPckQsOERBQUNDOzRCQUFJRCxXQUFVOzs4Q0FDYiw4REFBQ0M7b0NBQUlELFdBQVU7OENBQXdCOzs7Ozs7OENBQ3ZDLDhEQUFDQztvQ0FBSUQsV0FBVTs7d0NBQXdDO3dDQUNuRE4sV0FBV1csT0FBTyxDQUFDOzs7Ozs7OzhDQUV2Qiw4REFBQ0o7b0NBQUlELFdBQVU7O3dDQUNaWixjQUFja0IsTUFBTTt3Q0FBQzt3Q0FBSW5ELDZEQUFVQSxDQUFDbUQsTUFBTTt3Q0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFNbEQsOERBQUNMO29CQUFJRCxXQUFVOztzQ0FFYiw4REFBQ087NEJBQVFQLFdBQVU7c0NBQ2pCLDRFQUFDQztnQ0FBSUQsV0FBVTswQ0FDWjdDLDZEQUFVQSxDQUFDb0MsR0FBRyxDQUFDLENBQUNOLHlCQUNmLDhEQUFDZ0I7d0NBRUNELFdBQVU7a0RBRVYsNEVBQUMzQyxzRUFBY0E7NENBQ2I0QixVQUFVQTs0Q0FDVnVCLE9BQU96QixlQUFlLENBQUNFLFNBQVNULEVBQUUsQ0FBQzs0Q0FDbkNpQyxnQkFBZ0IvQyxLQUFLLENBQUN1QixTQUFTVCxFQUFFLENBQUM7NENBQ2xDa0MsY0FBYyxDQUFDdEMsU0FDYjBCLGlCQUFpQmIsU0FBU1QsRUFBRSxFQUFFSjs7Ozs7O3VDQVI3QmEsU0FBU1QsRUFBRTs7Ozs7Ozs7Ozs7Ozs7O3NDQWlCeEIsOERBQUNtQzs0QkFBTVgsV0FBVTs7OENBQ2YsOERBQUNZO29DQUFHWixXQUFVOzhDQUF1RTs7Ozs7OzhDQUlyRiw4REFBQ0M7b0NBQUlELFdBQVU7O3dDQUNaWixjQUFja0IsTUFBTSxLQUFLLG1CQUN4Qiw4REFBQ25COzRDQUFFYSxXQUFVO3NEQUF3Qjs7Ozs7O3NEQUt2Qyw4REFBQ2E7NENBQUdiLFdBQVU7c0RBQ1g3Qyw2REFBVUEsQ0FBQ29DLEdBQUcsQ0FBQyxDQUFDdUI7Z0RBQ2YsTUFBTUwsaUJBQWlCL0MsS0FBSyxDQUFDb0QsSUFBSXRDLEVBQUUsQ0FBQztnREFDcEMsTUFBTXVDLE9BQU8zRCx3REFBS0EsQ0FBQ29DLElBQUksQ0FDckIsQ0FBQ0wsSUFBTUEsRUFBRVgsRUFBRSxLQUFLaUMsa0JBQWtCdEIsRUFBRWhCLFVBQVUsS0FBSzJDLElBQUl0QyxFQUFFO2dEQUUzRCxxQkFDRSw4REFBQ3dDOztzRUFDQyw4REFBQ2Y7NERBQUlELFdBQVU7c0VBQ1pjLElBQUlHLElBQUk7Ozs7Ozt3REFFVkYscUJBQ0MsOERBQUNkOzREQUFJRCxXQUFVOzs4RUFDYiw4REFBQ0M7b0VBQUlELFdBQVU7O3NGQUNiLDhEQUFDSTs0RUFBS0osV0FBVTs7Z0ZBQ2JlLEtBQUtHLEtBQUs7Z0ZBQUU7Ozs7Ozs7d0VBRWRILEtBQUtFLElBQUk7Ozs7Ozs7OEVBRVosOERBQUNoQjtvRUFBSUQsV0FBVTs7d0VBQXlEO3dFQUNwRWUsS0FBS2xCLEtBQUssQ0FBQ1EsT0FBTyxDQUFDOzs7Ozs7Ozs7Ozs7aUZBSXpCLDhEQUFDSjs0REFBSUQsV0FBVTtzRUFBNkI7Ozs7Ozs7bURBakJ2Q2MsSUFBSXRDLEVBQUU7Ozs7OzRDQXVCbkI7Ozs7Ozs7Ozs7Ozs4Q0FLSiw4REFBQ3lCO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ2hELGlEQUFJQTs0Q0FDSG1FLE1BQUs7NENBQ0xuQixXQUFXLHVLQUlWLE9BSENaLGNBQWNrQixNQUFNLEtBQUssSUFDckIsc0RBQ0E7c0RBRVA7Ozs7OztzREFHRCw4REFBQ25COzRDQUFFYSxXQUFVO3NEQUFtQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTOUQ7R0FyTXdCekM7O1FBQ0ROLDREQUFlQTtRQUNyQkMsc0RBQVNBOzs7S0FGRksiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2d1bmJ1aWxkZXIvcGFnZS50c3g/MDU0MCJdLCJzb3VyY2VzQ29udGVudCI6WyJcInVzZSBjbGllbnRcIjtcblxuaW1wb3J0IHsgdXNlTWVtbywgdXNlU3RhdGUsIHVzZUVmZmVjdCB9IGZyb20gXCJyZWFjdFwiO1xuaW1wb3J0IExpbmsgZnJvbSBcIm5leHQvbGlua1wiO1xuaW1wb3J0IHsgdXNlU2VhcmNoUGFyYW1zLCB1c2VSb3V0ZXIgfSBmcm9tIFwibmV4dC9uYXZpZ2F0aW9uXCI7XG5pbXBvcnQgeyBDQVRFR09SSUVTLCBQQVJUUyB9IGZyb20gXCJAL2RhdGEvZ3VuYnVpbGRlclBhcnRzXCI7XG5pbXBvcnQgdHlwZSB7IENhdGVnb3J5SWQsIFBhcnQgfSBmcm9tIFwiQC90eXBlcy9ndW5idWlsZGVyXCI7XG5pbXBvcnQgeyBDYXRlZ29yeUNvbHVtbiB9IGZyb20gXCJAL2NvbXBvbmVudHMvQ2F0ZWdvcnlDb2x1bW5cIjtcblxudHlwZSBCdWlsZFN0YXRlID0gUGFydGlhbDxSZWNvcmQ8Q2F0ZWdvcnlJZCwgc3RyaW5nPj47IC8vIGNhdGVnb3J5SWQgLT4gcGFydElkXG5cbmNvbnN0IFNUT1JBR0VfS0VZID0gXCJndW5idWlsZGVyLWJ1aWxkLXN0YXRlXCI7XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEd1bmJ1aWxkZXJQYWdlKCkge1xuICBjb25zdCBzZWFyY2hQYXJhbXMgPSB1c2VTZWFyY2hQYXJhbXMoKTtcbiAgY29uc3Qgcm91dGVyID0gdXNlUm91dGVyKCk7XG4gIGNvbnN0IFtidWlsZCwgc2V0QnVpbGRdID0gdXNlU3RhdGU8QnVpbGRTdGF0ZT4oKCkgPT4ge1xuICAgIC8vIEluaXRpYWxpemUgZnJvbSBsb2NhbFN0b3JhZ2UgaWYgYXZhaWxhYmxlXG4gICAgaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgIGNvbnN0IHN0b3JlZCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKFNUT1JBR0VfS0VZKTtcbiAgICAgIGlmIChzdG9yZWQpIHtcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICByZXR1cm4gSlNPTi5wYXJzZShzdG9yZWQpO1xuICAgICAgICB9IGNhdGNoIHtcbiAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHt9O1xuICB9KTtcblxuICAvLyBIYW5kbGUgVVJMIHF1ZXJ5IHBhcmFtZXRlciBmb3IgcGFydCBzZWxlY3Rpb25cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBzZWxlY3RQYXJhbSA9IHNlYXJjaFBhcmFtcy5nZXQoXCJzZWxlY3RcIik7XG4gICAgaWYgKHNlbGVjdFBhcmFtKSB7XG4gICAgICBjb25zdCBbY2F0ZWdvcnlJZCwgcGFydElkXSA9IHNlbGVjdFBhcmFtLnNwbGl0KFwiOlwiKTtcbiAgICAgIGlmIChjYXRlZ29yeUlkICYmIHBhcnRJZCAmJiBDQVRFR09SSUVTLnNvbWUoKGMpID0+IGMuaWQgPT09IGNhdGVnb3J5SWQpKSB7XG4gICAgICAgIHNldEJ1aWxkKChwcmV2KSA9PiB7XG4gICAgICAgICAgY29uc3QgdXBkYXRlZCA9IHtcbiAgICAgICAgICAgIC4uLnByZXYsXG4gICAgICAgICAgICBbY2F0ZWdvcnlJZF06IHBhcnRJZCxcbiAgICAgICAgICB9O1xuICAgICAgICAgIC8vIFBlcnNpc3QgdG8gbG9jYWxTdG9yYWdlXG4gICAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KHVwZGF0ZWQpKTtcbiAgICAgICAgICByZXR1cm4gdXBkYXRlZDtcbiAgICAgICAgfSk7XG4gICAgICAgIC8vIFJlbW92ZSBxdWVyeSBwYXJhbSBmcm9tIFVSTFxuICAgICAgICByb3V0ZXIucmVwbGFjZShcIi9ndW5idWlsZGVyXCIsIHsgc2Nyb2xsOiBmYWxzZSB9KTtcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtzZWFyY2hQYXJhbXMsIHJvdXRlcl0pO1xuXG4gIC8vIFBlcnNpc3QgYnVpbGQgc3RhdGUgdG8gbG9jYWxTdG9yYWdlIHdoZW5ldmVyIGl0IGNoYW5nZXNcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oU1RPUkFHRV9LRVksIEpTT04uc3RyaW5naWZ5KGJ1aWxkKSk7XG4gICAgfVxuICB9LCBbYnVpbGRdKTtcblxuICBjb25zdCBwYXJ0c0J5Q2F0ZWdvcnk6IFJlY29yZDxDYXRlZ29yeUlkLCBQYXJ0W10+ID0gdXNlTWVtbygoKSA9PiB7XG4gICAgY29uc3QgZ3JvdXBlZCA9IHt9IGFzIFJlY29yZDxDYXRlZ29yeUlkLCBQYXJ0W10+O1xuICAgIGZvciAoY29uc3QgY2F0ZWdvcnkgb2YgQ0FURUdPUklFUykge1xuICAgICAgZ3JvdXBlZFtjYXRlZ29yeS5pZF0gPSBQQVJUUy5maWx0ZXIoXG4gICAgICAgIChwKSA9PiBwLmNhdGVnb3J5SWQgPT09IGNhdGVnb3J5LmlkLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGdyb3VwZWQ7XG4gIH0sIFtdKTtcblxuICBjb25zdCBzZWxlY3RlZFBhcnRzOiBQYXJ0W10gPSB1c2VNZW1vKCgpID0+IHtcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoYnVpbGQpXG4gICAgICAubWFwKChbY2F0ZWdvcnlJZCwgcGFydElkXSkgPT5cbiAgICAgICAgUEFSVFMuZmluZCgocCkgPT4gcC5pZCA9PT0gcGFydElkICYmIHAuY2F0ZWdvcnlJZCA9PT0gY2F0ZWdvcnlJZCksXG4gICAgICApXG4gICAgICAuZmlsdGVyKEJvb2xlYW4pIGFzIFBhcnRbXTtcbiAgfSwgW2J1aWxkXSk7XG5cbiAgY29uc3QgdG90YWxQcmljZSA9IHVzZU1lbW8oXG4gICAgKCkgPT4gc2VsZWN0ZWRQYXJ0cy5yZWR1Y2UoKHN1bSwgcCkgPT4gc3VtICsgcC5wcmljZSwgMCksXG4gICAgW3NlbGVjdGVkUGFydHNdLFxuICApO1xuXG4gIGNvbnN0IGhhbmRsZVNlbGVjdFBhcnQgPSAoY2F0ZWdvcnlJZDogQ2F0ZWdvcnlJZCwgcGFydElkOiBzdHJpbmcpID0+IHtcbiAgICBzZXRCdWlsZCgocHJldikgPT4gKHtcbiAgICAgIC4uLnByZXYsXG4gICAgICBbY2F0ZWdvcnlJZF06IHBhcnRJZCxcbiAgICB9KSk7XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8bWFpbiBjbGFzc05hbWU9XCJtaW4taC1zY3JlZW4gYmctYmxhY2sgdGV4dC16aW5jLTUwXCI+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT1cIm14LWF1dG8gbWF4LXctNnhsIHB4LTQgcHktNiBsZzpweS0xMFwiPlxuICAgICAgICB7LyogSGVhZGVyICovfVxuICAgICAgICA8aGVhZGVyIGNsYXNzTmFtZT1cIm1iLTYgZmxleCBmbGV4LWNvbCBnYXAtMiBtZDpmbGV4LXJvdyBtZDppdGVtcy1lbmQgbWQ6anVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4yZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICAgIFNoYWRvdyBTdGFuZGFyZFxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgPGgxIGNsYXNzTmFtZT1cIm10LTEgdGV4dC0yeGwgbWQ6dGV4dC0zeGwgZm9udC1zZW1pYm9sZCB0cmFja2luZy10aWdodFwiPlxuICAgICAgICAgICAgICBHdW5idWlsZGVyIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtYW1iZXItMzAwXCI+UHJvdG90eXBlPC9zcGFuPlxuICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgIDxwIGNsYXNzTmFtZT1cIm10LTIgdGV4dC1zbSB0ZXh0LXppbmMtNDAwIG1heC13LXhsXCI+XG4gICAgICAgICAgICAgIENob29zZSBvbmUgcGFydCBwZXIgY2F0ZWdvcnkgdG8gYXNzZW1ibGUgYW4gQVItMTUgYnVpbGQuIFByaWNlc1xuICAgICAgICAgICAgICBhbmQgbGlua3MgYXJlIG1vY2sgZGF0YSBmb3Igbm934oCUYnV0IHRoZSBmbG93IGlzIGNsb3NlIHRvIHdoYXRcbiAgICAgICAgICAgICAgdGhlIHJlYWwgdG9vbCB3aWxsIGJlLlxuICAgICAgICAgICAgPC9wPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0zIG1kOm10LTBcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNDAwXCI+Q3VycmVudCBidWlsZCB0b3RhbDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LTJ4bCBmb250LXNlbWlib2xkIHRleHQtYW1iZXItMzAwXCI+XG4gICAgICAgICAgICAgICR7dG90YWxQcmljZS50b0ZpeGVkKDIpfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQteHMgdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgICAgICB7c2VsZWN0ZWRQYXJ0cy5sZW5ndGh9IC8ge0NBVEVHT1JJRVMubGVuZ3RofSBjYXRlZ29yaWVzIGZpbGxlZFxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvaGVhZGVyPlxuXG4gICAgICAgIHsvKiBMYXlvdXQgKi99XG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBnYXAtNCBsZzpncmlkLWNvbHMtWzNmciwxLjI1ZnJdXCI+XG4gICAgICAgICAgey8qIENhdGVnb3JpZXMvcGFydHMgKi99XG4gICAgICAgICAgPHNlY3Rpb24gY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzYwIHAtMyBtZDpwLTRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZ3JpZCBnYXAtNCBtZDpncmlkLWNvbHMtMiBsZzpncmlkLWNvbHMtM1wiPlxuICAgICAgICAgICAgICB7Q0FURUdPUklFUy5tYXAoKGNhdGVnb3J5KSA9PiAoXG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAga2V5PXtjYXRlZ29yeS5pZH1cbiAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT1cImJvcmRlciBib3JkZXItemluYy04MDAgcm91bmRlZC1tZCBwLTIgbWQ6cC0zIGJnLXppbmMtOTUwLzYwXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8Q2F0ZWdvcnlDb2x1bW5cbiAgICAgICAgICAgICAgICAgICAgY2F0ZWdvcnk9e2NhdGVnb3J5fVxuICAgICAgICAgICAgICAgICAgICBwYXJ0cz17cGFydHNCeUNhdGVnb3J5W2NhdGVnb3J5LmlkXX1cbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRQYXJ0SWQ9e2J1aWxkW2NhdGVnb3J5LmlkXX1cbiAgICAgICAgICAgICAgICAgICAgb25TZWxlY3RQYXJ0PXsocGFydElkKSA9PlxuICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdFBhcnQoY2F0ZWdvcnkuaWQsIHBhcnRJZClcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3NlY3Rpb24+XG5cbiAgICAgICAgICB7LyogQnVpbGQgU3VtbWFyeSAqL31cbiAgICAgICAgICA8YXNpZGUgY2xhc3NOYW1lPVwicm91bmRlZC1sZyBib3JkZXIgYm9yZGVyLXppbmMtODAwIGJnLXppbmMtOTUwLzgwIHAtMyBtZDpwLTQgZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICAgICAgPGgyIGNsYXNzTmFtZT1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0cmFja2luZy1bMC4xNmVtXSB1cHBlcmNhc2UgdGV4dC16aW5jLTQwMCBtYi0zXCI+XG4gICAgICAgICAgICAgIEN1cnJlbnQgQnVpbGRcbiAgICAgICAgICAgIDwvaDI+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiZmxleC0xIG92ZXJmbG93LXktYXV0byBwci0xXCI+XG4gICAgICAgICAgICAgIHtzZWxlY3RlZFBhcnRzLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC1zbSB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICAgICAgICBTZWxlY3QgYSBwYXJ0IGZyb20gZWFjaCBjYXRlZ29yeSB0byBzdGFydCB5b3VyIGJ1aWxkLlxuICAgICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgICAgKX1cblxuICAgICAgICAgICAgICA8dWwgY2xhc3NOYW1lPVwic3BhY2UteS0yXCI+XG4gICAgICAgICAgICAgICAge0NBVEVHT1JJRVMubWFwKChjYXQpID0+IHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkUGFydElkID0gYnVpbGRbY2F0LmlkXTtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHBhcnQgPSBQQVJUUy5maW5kKFxuICAgICAgICAgICAgICAgICAgICAocCkgPT4gcC5pZCA9PT0gc2VsZWN0ZWRQYXJ0SWQgJiYgcC5jYXRlZ29yeUlkID09PSBjYXQuaWQsXG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPGxpIGtleT17Y2F0LmlkfT5cbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtWzAuN3JlbV0gdXBwZXJjYXNlIHRyYWNraW5nLVswLjE2ZW1dIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtjYXQubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICB7cGFydCA/IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMSBmbGV4IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtemluYy01MFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cInRleHQtemluYy00MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtwYXJ0LmJyYW5kfXtcIiBcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQubmFtZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtYW1iZXItMzAwIHdoaXRlc3BhY2Utbm93cmFwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJHtwYXJ0LnByaWNlLnRvRml4ZWQoMil9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgKSA6IChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXQtMSB0ZXh0LXhzIHRleHQtemluYy02MDBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgTm90IHNlbGVjdGVkXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgPC91bD5cbiAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICB7LyogQ1RBICovfVxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC00IGJvcmRlci10IGJvcmRlci16aW5jLTgwMCBwdC0zXCI+XG4gICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgaHJlZj1cIi9ndW5idWlsZGVyL2J1aWxkXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BibG9jayB3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWFtYmVyLTQwMC82MCBiZy1hbWJlci00MDAvMTAgcHgtMyBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1hbWJlci0yMDAgaG92ZXI6YmctYW1iZXItNDAwLzE1IHRleHQtY2VudGVyIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZFBhcnRzLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICA/IFwib3BhY2l0eS00MCBjdXJzb3Itbm90LWFsbG93ZWQgcG9pbnRlci1ldmVudHMtbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIDogXCJcIlxuICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQ29udGludWUgdG8gQnV5XG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibXQtMiB0ZXh0LVswLjdyZW1dIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICAgICAgICBWaWV3IHlvdXIgYnVpbGQgc3VtbWFyeSB3aXRoIGFmZmlsaWF0ZSBsaW5rcyBhbmQgc2hhcmluZyBvcHRpb25zLlxuICAgICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2FzaWRlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbWFpbj5cbiAgKTtcbn1cbiJdLCJuYW1lcyI6WyJ1c2VNZW1vIiwidXNlU3RhdGUiLCJ1c2VFZmZlY3QiLCJMaW5rIiwidXNlU2VhcmNoUGFyYW1zIiwidXNlUm91dGVyIiwiQ0FURUdPUklFUyIsIlBBUlRTIiwiQ2F0ZWdvcnlDb2x1bW4iLCJTVE9SQUdFX0tFWSIsIkd1bmJ1aWxkZXJQYWdlIiwic2VhcmNoUGFyYW1zIiwicm91dGVyIiwiYnVpbGQiLCJzZXRCdWlsZCIsInN0b3JlZCIsImxvY2FsU3RvcmFnZSIsImdldEl0ZW0iLCJKU09OIiwicGFyc2UiLCJzZWxlY3RQYXJhbSIsImdldCIsImNhdGVnb3J5SWQiLCJwYXJ0SWQiLCJzcGxpdCIsInNvbWUiLCJjIiwiaWQiLCJwcmV2IiwidXBkYXRlZCIsInNldEl0ZW0iLCJzdHJpbmdpZnkiLCJyZXBsYWNlIiwic2Nyb2xsIiwicGFydHNCeUNhdGVnb3J5IiwiZ3JvdXBlZCIsImNhdGVnb3J5IiwiZmlsdGVyIiwicCIsInNlbGVjdGVkUGFydHMiLCJPYmplY3QiLCJlbnRyaWVzIiwibWFwIiwiZmluZCIsIkJvb2xlYW4iLCJ0b3RhbFByaWNlIiwicmVkdWNlIiwic3VtIiwicHJpY2UiLCJoYW5kbGVTZWxlY3RQYXJ0IiwibWFpbiIsImNsYXNzTmFtZSIsImRpdiIsImhlYWRlciIsImgxIiwic3BhbiIsInRvRml4ZWQiLCJsZW5ndGgiLCJzZWN0aW9uIiwicGFydHMiLCJzZWxlY3RlZFBhcnRJZCIsIm9uU2VsZWN0UGFydCIsImFzaWRlIiwiaDIiLCJ1bCIsImNhdCIsInBhcnQiLCJsaSIsIm5hbWUiLCJicmFuZCIsImhyZWYiXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/page.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/gunbuilder/page.dfb10022e50981f7.hot-update.js b/.next/static/webpack/app/gunbuilder/page.dfb10022e50981f7.hot-update.js
deleted file mode 100644
index 5f705f9..0000000
--- a/.next/static/webpack/app/gunbuilder/page.dfb10022e50981f7.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/gunbuilder/page",{
-
-/***/ "(app-pages-browser)/./app/gunbuilder/page.tsx":
-/*!*********************************!*\
- !*** ./app/gunbuilder/page.tsx ***!
- \*********************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony export */ __webpack_require__.d(__webpack_exports__, {\n/* harmony export */ \"default\": function() { return /* binding */ GunbuilderPage; }\n/* harmony export */ });\n/* harmony import */ var react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! react/jsx-dev-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-dev-runtime.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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 */ \"(app-pages-browser)/./node_modules/next/dist/api/link.js\");\n/* harmony import */ var next_navigation__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! next/navigation */ \"(app-pages-browser)/./node_modules/next/dist/api/navigation.js\");\n/* harmony import */ var _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! @/data/gunbuilderParts */ \"(app-pages-browser)/./data/gunbuilderParts.ts\");\n/* harmony import */ var _components_CategoryColumn__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! @/components/CategoryColumn */ \"(app-pages-browser)/./components/CategoryColumn.tsx\");\n/* __next_internal_client_entry_do_not_use__ default auto */ \nvar _s = $RefreshSig$();\n\n\n\n\n\nconst STORAGE_KEY = \"gunbuilder-build-state\";\nfunction GunbuilderPage() {\n _s();\n const searchParams = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useSearchParams)();\n const router = (0,next_navigation__WEBPACK_IMPORTED_MODULE_3__.useRouter)();\n const [build, setBuild] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(()=>{\n // Initialize from localStorage if available\n if (true) {\n const stored = localStorage.getItem(STORAGE_KEY);\n if (stored) {\n try {\n return JSON.parse(stored);\n } catch (e) {\n return {};\n }\n }\n }\n return {};\n });\n // Handle URL query parameter for part selection\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n const selectParam = searchParams.get(\"select\");\n if (selectParam) {\n const [categoryId, partId] = selectParam.split(\":\");\n if (categoryId && partId && _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.some((c)=>c.id === categoryId)) {\n setBuild((prev)=>{\n const updated = {\n ...prev,\n [categoryId]: partId\n };\n // Persist to localStorage\n localStorage.setItem(STORAGE_KEY, JSON.stringify(updated));\n return updated;\n });\n // Remove query param from URL\n router.replace(\"/gunbuilder\", {\n scroll: false\n });\n }\n }\n }, [\n searchParams,\n router\n ]);\n // Persist build state to localStorage whenever it changes\n (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{\n if (true) {\n localStorage.setItem(STORAGE_KEY, JSON.stringify(build));\n }\n }, [\n build\n ]);\n const partsByCategory = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n const grouped = {};\n for (const category of _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES){\n grouped[category.id] = _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.filter((p)=>p.categoryId === category.id);\n }\n return grouped;\n }, []);\n const selectedParts = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>{\n return Object.entries(build).map((param)=>{\n let [categoryId, partId] = param;\n return _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.find((p)=>p.id === partId && p.categoryId === categoryId);\n }).filter(Boolean);\n }, [\n build\n ]);\n const totalPrice = (0,react__WEBPACK_IMPORTED_MODULE_1__.useMemo)(()=>selectedParts.reduce((sum, p)=>sum + p.price, 0), [\n selectedParts\n ]);\n const handleSelectPart = (categoryId, partId)=>{\n setBuild((prev)=>({\n ...prev,\n [categoryId]: partId\n }));\n };\n return /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"main\", {\n className: \"min-h-screen bg-black text-zinc-50\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mx-auto max-w-6xl px-4 py-6 lg:py-10\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"header\", {\n className: \"mb-6 flex flex-col gap-2 md:flex-row md:items-end md: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)(\"p\", {\n className: \"text-xs font-semibold tracking-[0.2em] uppercase text-zinc-500\",\n children: \"Shadow Standard\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 96,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h1\", {\n className: \"mt-1 text-2xl md:text-3xl font-semibold tracking-tight\",\n children: [\n \"Gunbuilder \",\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-amber-300\",\n children: \"Prototype\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 100,\n columnNumber: 26\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 99,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-sm text-zinc-400 max-w-xl\",\n children: \"Choose one part per category to assemble an AR-15 build. Prices and links are mock data for now—but the flow is close to what the real tool will be.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 102,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 95,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-3 md:mt-0\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-400\",\n children: \"Current build total\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 110,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-2xl font-semibold text-amber-300\",\n children: [\n \"$\",\n totalPrice.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 111,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs text-zinc-500\",\n children: [\n selectedParts.length,\n \" / \",\n _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.length,\n \" categories filled\"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 114,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 109,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 94,\n columnNumber: 9\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 lg:grid-cols-[3fr,1.25fr]\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"section\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/60 p-3 md:p-4\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"grid gap-4 md:grid-cols-2 lg:grid-cols-3\",\n children: _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.map((category)=>/*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"border border-zinc-800 rounded-md p-2 md:p-3 bg-zinc-950/60\",\n children: /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(_components_CategoryColumn__WEBPACK_IMPORTED_MODULE_5__.CategoryColumn, {\n category: category,\n parts: partsByCategory[category.id],\n selectedPartId: build[category.id],\n onSelectPart: (partId)=>handleSelectPart(category.id, partId)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 130,\n columnNumber: 19\n }, this)\n }, category.id, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 126,\n columnNumber: 17\n }, this))\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 124,\n columnNumber: 13\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 123,\n columnNumber: 11\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"aside\", {\n className: \"rounded-lg border border-zinc-800 bg-zinc-950/80 p-3 md:p-4 flex flex-col\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"h2\", {\n className: \"text-xs font-semibold tracking-[0.16em] uppercase text-zinc-400 mb-3\",\n children: \"Current Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 145,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"flex-1 overflow-y-auto pr-1\",\n children: [\n selectedParts.length === 0 && /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"text-sm text-zinc-500\",\n children: \"Select a part from each category to start your build.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 151,\n columnNumber: 17\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"ul\", {\n className: \"space-y-2\",\n children: _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.CATEGORIES.map((cat)=>{\n const selectedPartId = build[cat.id];\n const part = _data_gunbuilderParts__WEBPACK_IMPORTED_MODULE_4__.PARTS.find((p)=>p.id === selectedPartId && p.categoryId === cat.id);\n return /*#__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)(\"div\", {\n className: \"text-[0.7rem] uppercase tracking-[0.16em] text-zinc-500\",\n children: cat.name\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 164,\n columnNumber: 23\n }, this),\n part ? /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 flex justify-between items-center gap-2\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-sm text-zinc-50\",\n children: [\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"span\", {\n className: \"text-zinc-400\",\n children: [\n part.brand,\n \" \"\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 170,\n columnNumber: 29\n }, this),\n part.name\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 169,\n columnNumber: 27\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"text-xs font-semibold text-amber-300 whitespace-nowrap\",\n children: [\n \"$\",\n part.price.toFixed(2)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 175,\n columnNumber: 27\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 168,\n columnNumber: 25\n }, this) : /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-1 text-xs text-zinc-600\",\n children: \"Not selected\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 180,\n columnNumber: 25\n }, this)\n ]\n }, cat.id, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 163,\n columnNumber: 21\n }, this);\n })\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 156,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 149,\n columnNumber: 13\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"div\", {\n className: \"mt-4 border-t border-zinc-800 pt-3 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: \"/gunbuilder/build\",\n className: \"block w-full rounded-md border border-amber-400/60 bg-amber-400/10 px-3 py-2 text-sm font-medium text-amber-200 hover:bg-amber-400/15 text-center transition-colors \".concat(selectedParts.length === 0 ? \"opacity-40 cursor-not-allowed pointer-events-none\" : \"\"),\n children: \"Continue to Buy\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 192,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"button\", {\n type: \"button\",\n onClick: ()=>{\n setBuild({});\n localStorage.removeItem(STORAGE_KEY);\n },\n disabled: selectedParts.length === 0,\n className: \"w-full rounded-md border border-zinc-700 bg-zinc-900/50 px-3 py-2 text-sm font-medium text-zinc-300 hover:bg-zinc-800 hover:border-zinc-600 transition-colors \".concat(selectedParts.length === 0 ? \"opacity-40 cursor-not-allowed\" : \"\"),\n children: \"Clear Build\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 202,\n columnNumber: 15\n }, this),\n /*#__PURE__*/ (0,react_jsx_dev_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxDEV)(\"p\", {\n className: \"mt-2 text-[0.7rem] text-zinc-500\",\n children: \"View your build summary with affiliate links and sharing options.\"\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 217,\n columnNumber: 15\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 191,\n columnNumber: 13\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 144,\n columnNumber: 11\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 121,\n columnNumber: 9\n }, this)\n ]\n }, void 0, true, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 92,\n columnNumber: 7\n }, this)\n }, void 0, false, {\n fileName: \"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx\",\n lineNumber: 91,\n columnNumber: 5\n }, this);\n}\n_s(GunbuilderPage, \"UcwNfiAgvkVgT2sjmQl74nmTISI=\", false, function() {\n return [\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useSearchParams,\n next_navigation__WEBPACK_IMPORTED_MODULE_3__.useRouter\n ];\n});\n_c = GunbuilderPage;\nvar _c;\n$RefreshReg$(_c, \"GunbuilderPage\");\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9ndW5idWlsZGVyL3BhZ2UudHN4IiwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUFFcUQ7QUFDeEI7QUFDZ0M7QUFDRjtBQUVFO0FBSTdELE1BQU1TLGNBQWM7QUFFTCxTQUFTQzs7SUFDdEIsTUFBTUMsZUFBZVAsZ0VBQWVBO0lBQ3BDLE1BQU1RLFNBQVNQLDBEQUFTQTtJQUN4QixNQUFNLENBQUNRLE9BQU9DLFNBQVMsR0FBR2IsK0NBQVFBLENBQWE7UUFDN0MsNENBQTRDO1FBQzVDLElBQUksSUFBNkIsRUFBRTtZQUNqQyxNQUFNYyxTQUFTQyxhQUFhQyxPQUFPLENBQUNSO1lBQ3BDLElBQUlNLFFBQVE7Z0JBQ1YsSUFBSTtvQkFDRixPQUFPRyxLQUFLQyxLQUFLLENBQUNKO2dCQUNwQixFQUFFLFVBQU07b0JBQ04sT0FBTyxDQUFDO2dCQUNWO1lBQ0Y7UUFDRjtRQUNBLE9BQU8sQ0FBQztJQUNWO0lBRUEsZ0RBQWdEO0lBQ2hEYixnREFBU0EsQ0FBQztRQUNSLE1BQU1rQixjQUFjVCxhQUFhVSxHQUFHLENBQUM7UUFDckMsSUFBSUQsYUFBYTtZQUNmLE1BQU0sQ0FBQ0UsWUFBWUMsT0FBTyxHQUFHSCxZQUFZSSxLQUFLLENBQUM7WUFDL0MsSUFBSUYsY0FBY0MsVUFBVWpCLDZEQUFVQSxDQUFDbUIsSUFBSSxDQUFDLENBQUNDLElBQU1BLEVBQUVDLEVBQUUsS0FBS0wsYUFBYTtnQkFDdkVSLFNBQVMsQ0FBQ2M7b0JBQ1IsTUFBTUMsVUFBVTt3QkFDZCxHQUFHRCxJQUFJO3dCQUNQLENBQUNOLFdBQVcsRUFBRUM7b0JBQ2hCO29CQUNBLDBCQUEwQjtvQkFDMUJQLGFBQWFjLE9BQU8sQ0FBQ3JCLGFBQWFTLEtBQUthLFNBQVMsQ0FBQ0Y7b0JBQ2pELE9BQU9BO2dCQUNUO2dCQUNBLDhCQUE4QjtnQkFDOUJqQixPQUFPb0IsT0FBTyxDQUFDLGVBQWU7b0JBQUVDLFFBQVE7Z0JBQU07WUFDaEQ7UUFDRjtJQUNGLEdBQUc7UUFBQ3RCO1FBQWNDO0tBQU87SUFFekIsMERBQTBEO0lBQzFEVixnREFBU0EsQ0FBQztRQUNSLElBQUksSUFBNkIsRUFBRTtZQUNqQ2MsYUFBYWMsT0FBTyxDQUFDckIsYUFBYVMsS0FBS2EsU0FBUyxDQUFDbEI7UUFDbkQ7SUFDRixHQUFHO1FBQUNBO0tBQU07SUFFVixNQUFNcUIsa0JBQThDbEMsOENBQU9BLENBQUM7UUFDMUQsTUFBTW1DLFVBQVUsQ0FBQztRQUNqQixLQUFLLE1BQU1DLFlBQVk5Qiw2REFBVUEsQ0FBRTtZQUNqQzZCLE9BQU8sQ0FBQ0MsU0FBU1QsRUFBRSxDQUFDLEdBQUdwQix3REFBS0EsQ0FBQzhCLE1BQU0sQ0FDakMsQ0FBQ0MsSUFBTUEsRUFBRWhCLFVBQVUsS0FBS2MsU0FBU1QsRUFBRTtRQUV2QztRQUNBLE9BQU9RO0lBQ1QsR0FBRyxFQUFFO0lBRUwsTUFBTUksZ0JBQXdCdkMsOENBQU9BLENBQUM7UUFDcEMsT0FBT3dDLE9BQU9DLE9BQU8sQ0FBQzVCLE9BQ25CNkIsR0FBRyxDQUFDO2dCQUFDLENBQUNwQixZQUFZQyxPQUFPO21CQUN4QmhCLHdEQUFLQSxDQUFDb0MsSUFBSSxDQUFDLENBQUNMLElBQU1BLEVBQUVYLEVBQUUsS0FBS0osVUFBVWUsRUFBRWhCLFVBQVUsS0FBS0E7V0FFdkRlLE1BQU0sQ0FBQ087SUFDWixHQUFHO1FBQUMvQjtLQUFNO0lBRVYsTUFBTWdDLGFBQWE3Qyw4Q0FBT0EsQ0FDeEIsSUFBTXVDLGNBQWNPLE1BQU0sQ0FBQyxDQUFDQyxLQUFLVCxJQUFNUyxNQUFNVCxFQUFFVSxLQUFLLEVBQUUsSUFDdEQ7UUFBQ1Q7S0FBYztJQUdqQixNQUFNVSxtQkFBbUIsQ0FBQzNCLFlBQXdCQztRQUNoRFQsU0FBUyxDQUFDYyxPQUFVO2dCQUNsQixHQUFHQSxJQUFJO2dCQUNQLENBQUNOLFdBQVcsRUFBRUM7WUFDaEI7SUFDRjtJQUVBLHFCQUNFLDhEQUFDMkI7UUFBS0MsV0FBVTtrQkFDZCw0RUFBQ0M7WUFBSUQsV0FBVTs7OEJBRWIsOERBQUNFO29CQUFPRixXQUFVOztzQ0FDaEIsOERBQUNDOzs4Q0FDQyw4REFBQ2Q7b0NBQUVhLFdBQVU7OENBQWlFOzs7Ozs7OENBRzlFLDhEQUFDRztvQ0FBR0gsV0FBVTs7d0NBQXlEO3NEQUMxRCw4REFBQ0k7NENBQUtKLFdBQVU7c0RBQWlCOzs7Ozs7Ozs7Ozs7OENBRTlDLDhEQUFDYjtvQ0FBRWEsV0FBVTs4Q0FBc0M7Ozs7Ozs7Ozs7OztzQ0FPckQsOERBQUNDOzRCQUFJRCxXQUFVOzs4Q0FDYiw4REFBQ0M7b0NBQUlELFdBQVU7OENBQXdCOzs7Ozs7OENBQ3ZDLDhEQUFDQztvQ0FBSUQsV0FBVTs7d0NBQXdDO3dDQUNuRE4sV0FBV1csT0FBTyxDQUFDOzs7Ozs7OzhDQUV2Qiw4REFBQ0o7b0NBQUlELFdBQVU7O3dDQUNaWixjQUFja0IsTUFBTTt3Q0FBQzt3Q0FBSW5ELDZEQUFVQSxDQUFDbUQsTUFBTTt3Q0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs4QkFNbEQsOERBQUNMO29CQUFJRCxXQUFVOztzQ0FFYiw4REFBQ087NEJBQVFQLFdBQVU7c0NBQ2pCLDRFQUFDQztnQ0FBSUQsV0FBVTswQ0FDWjdDLDZEQUFVQSxDQUFDb0MsR0FBRyxDQUFDLENBQUNOLHlCQUNmLDhEQUFDZ0I7d0NBRUNELFdBQVU7a0RBRVYsNEVBQUMzQyxzRUFBY0E7NENBQ2I0QixVQUFVQTs0Q0FDVnVCLE9BQU96QixlQUFlLENBQUNFLFNBQVNULEVBQUUsQ0FBQzs0Q0FDbkNpQyxnQkFBZ0IvQyxLQUFLLENBQUN1QixTQUFTVCxFQUFFLENBQUM7NENBQ2xDa0MsY0FBYyxDQUFDdEMsU0FDYjBCLGlCQUFpQmIsU0FBU1QsRUFBRSxFQUFFSjs7Ozs7O3VDQVI3QmEsU0FBU1QsRUFBRTs7Ozs7Ozs7Ozs7Ozs7O3NDQWlCeEIsOERBQUNtQzs0QkFBTVgsV0FBVTs7OENBQ2YsOERBQUNZO29DQUFHWixXQUFVOzhDQUF1RTs7Ozs7OzhDQUlyRiw4REFBQ0M7b0NBQUlELFdBQVU7O3dDQUNaWixjQUFja0IsTUFBTSxLQUFLLG1CQUN4Qiw4REFBQ25COzRDQUFFYSxXQUFVO3NEQUF3Qjs7Ozs7O3NEQUt2Qyw4REFBQ2E7NENBQUdiLFdBQVU7c0RBQ1g3Qyw2REFBVUEsQ0FBQ29DLEdBQUcsQ0FBQyxDQUFDdUI7Z0RBQ2YsTUFBTUwsaUJBQWlCL0MsS0FBSyxDQUFDb0QsSUFBSXRDLEVBQUUsQ0FBQztnREFDcEMsTUFBTXVDLE9BQU8zRCx3REFBS0EsQ0FBQ29DLElBQUksQ0FDckIsQ0FBQ0wsSUFBTUEsRUFBRVgsRUFBRSxLQUFLaUMsa0JBQWtCdEIsRUFBRWhCLFVBQVUsS0FBSzJDLElBQUl0QyxFQUFFO2dEQUUzRCxxQkFDRSw4REFBQ3dDOztzRUFDQyw4REFBQ2Y7NERBQUlELFdBQVU7c0VBQ1pjLElBQUlHLElBQUk7Ozs7Ozt3REFFVkYscUJBQ0MsOERBQUNkOzREQUFJRCxXQUFVOzs4RUFDYiw4REFBQ0M7b0VBQUlELFdBQVU7O3NGQUNiLDhEQUFDSTs0RUFBS0osV0FBVTs7Z0ZBQ2JlLEtBQUtHLEtBQUs7Z0ZBQUU7Ozs7Ozs7d0VBRWRILEtBQUtFLElBQUk7Ozs7Ozs7OEVBRVosOERBQUNoQjtvRUFBSUQsV0FBVTs7d0VBQXlEO3dFQUNwRWUsS0FBS2xCLEtBQUssQ0FBQ1EsT0FBTyxDQUFDOzs7Ozs7Ozs7Ozs7aUZBSXpCLDhEQUFDSjs0REFBSUQsV0FBVTtzRUFBNkI7Ozs7Ozs7bURBakJ2Q2MsSUFBSXRDLEVBQUU7Ozs7OzRDQXVCbkI7Ozs7Ozs7Ozs7Ozs4Q0FLSiw4REFBQ3lCO29DQUFJRCxXQUFVOztzREFDYiw4REFBQ2hELGlEQUFJQTs0Q0FDSG1FLE1BQUs7NENBQ0xuQixXQUFXLHVLQUlWLE9BSENaLGNBQWNrQixNQUFNLEtBQUssSUFDckIsc0RBQ0E7c0RBRVA7Ozs7OztzREFHRCw4REFBQ2M7NENBQ0NDLE1BQUs7NENBQ0xDLFNBQVM7Z0RBQ1AzRCxTQUFTLENBQUM7Z0RBQ1ZFLGFBQWEwRCxVQUFVLENBQUNqRTs0Q0FDMUI7NENBQ0FrRSxVQUFVcEMsY0FBY2tCLE1BQU0sS0FBSzs0Q0FDbkNOLFdBQVcsaUtBSVYsT0FIQ1osY0FBY2tCLE1BQU0sS0FBSyxJQUNyQixrQ0FDQTtzREFFUDs7Ozs7O3NEQUdELDhEQUFDbkI7NENBQUVhLFdBQVU7c0RBQW1DOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVM5RDtHQXBOd0J6Qzs7UUFDRE4sNERBQWVBO1FBQ3JCQyxzREFBU0E7OztLQUZGSyIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi9hcHAvZ3VuYnVpbGRlci9wYWdlLnRzeD8wNTQwIl0sInNvdXJjZXNDb250ZW50IjpbIlwidXNlIGNsaWVudFwiO1xuXG5pbXBvcnQgeyB1c2VNZW1vLCB1c2VTdGF0ZSwgdXNlRWZmZWN0IH0gZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQgTGluayBmcm9tIFwibmV4dC9saW5rXCI7XG5pbXBvcnQgeyB1c2VTZWFyY2hQYXJhbXMsIHVzZVJvdXRlciB9IGZyb20gXCJuZXh0L25hdmlnYXRpb25cIjtcbmltcG9ydCB7IENBVEVHT1JJRVMsIFBBUlRTIH0gZnJvbSBcIkAvZGF0YS9ndW5idWlsZGVyUGFydHNcIjtcbmltcG9ydCB0eXBlIHsgQ2F0ZWdvcnlJZCwgUGFydCB9IGZyb20gXCJAL3R5cGVzL2d1bmJ1aWxkZXJcIjtcbmltcG9ydCB7IENhdGVnb3J5Q29sdW1uIH0gZnJvbSBcIkAvY29tcG9uZW50cy9DYXRlZ29yeUNvbHVtblwiO1xuXG50eXBlIEJ1aWxkU3RhdGUgPSBQYXJ0aWFsPFJlY29yZDxDYXRlZ29yeUlkLCBzdHJpbmc+PjsgLy8gY2F0ZWdvcnlJZCAtPiBwYXJ0SWRcblxuY29uc3QgU1RPUkFHRV9LRVkgPSBcImd1bmJ1aWxkZXItYnVpbGQtc3RhdGVcIjtcblxuZXhwb3J0IGRlZmF1bHQgZnVuY3Rpb24gR3VuYnVpbGRlclBhZ2UoKSB7XG4gIGNvbnN0IHNlYXJjaFBhcmFtcyA9IHVzZVNlYXJjaFBhcmFtcygpO1xuICBjb25zdCByb3V0ZXIgPSB1c2VSb3V0ZXIoKTtcbiAgY29uc3QgW2J1aWxkLCBzZXRCdWlsZF0gPSB1c2VTdGF0ZTxCdWlsZFN0YXRlPigoKSA9PiB7XG4gICAgLy8gSW5pdGlhbGl6ZSBmcm9tIGxvY2FsU3RvcmFnZSBpZiBhdmFpbGFibGVcbiAgICBpZiAodHlwZW9mIHdpbmRvdyAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgY29uc3Qgc3RvcmVkID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oU1RPUkFHRV9LRVkpO1xuICAgICAgaWYgKHN0b3JlZCkge1xuICAgICAgICB0cnkge1xuICAgICAgICAgIHJldHVybiBKU09OLnBhcnNlKHN0b3JlZCk7XG4gICAgICAgIH0gY2F0Y2gge1xuICAgICAgICAgIHJldHVybiB7fTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4ge307XG4gIH0pO1xuXG4gIC8vIEhhbmRsZSBVUkwgcXVlcnkgcGFyYW1ldGVyIGZvciBwYXJ0IHNlbGVjdGlvblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IHNlbGVjdFBhcmFtID0gc2VhcmNoUGFyYW1zLmdldChcInNlbGVjdFwiKTtcbiAgICBpZiAoc2VsZWN0UGFyYW0pIHtcbiAgICAgIGNvbnN0IFtjYXRlZ29yeUlkLCBwYXJ0SWRdID0gc2VsZWN0UGFyYW0uc3BsaXQoXCI6XCIpO1xuICAgICAgaWYgKGNhdGVnb3J5SWQgJiYgcGFydElkICYmIENBVEVHT1JJRVMuc29tZSgoYykgPT4gYy5pZCA9PT0gY2F0ZWdvcnlJZCkpIHtcbiAgICAgICAgc2V0QnVpbGQoKHByZXYpID0+IHtcbiAgICAgICAgICBjb25zdCB1cGRhdGVkID0ge1xuICAgICAgICAgICAgLi4ucHJldixcbiAgICAgICAgICAgIFtjYXRlZ29yeUlkXTogcGFydElkLFxuICAgICAgICAgIH07XG4gICAgICAgICAgLy8gUGVyc2lzdCB0byBsb2NhbFN0b3JhZ2VcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkodXBkYXRlZCkpO1xuICAgICAgICAgIHJldHVybiB1cGRhdGVkO1xuICAgICAgICB9KTtcbiAgICAgICAgLy8gUmVtb3ZlIHF1ZXJ5IHBhcmFtIGZyb20gVVJMXG4gICAgICAgIHJvdXRlci5yZXBsYWNlKFwiL2d1bmJ1aWxkZXJcIiwgeyBzY3JvbGw6IGZhbHNlIH0pO1xuICAgICAgfVxuICAgIH1cbiAgfSwgW3NlYXJjaFBhcmFtcywgcm91dGVyXSk7XG5cbiAgLy8gUGVyc2lzdCBidWlsZCBzdGF0ZSB0byBsb2NhbFN0b3JhZ2Ugd2hlbmV2ZXIgaXQgY2hhbmdlc1xuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlmICh0eXBlb2Ygd2luZG93ICE9PSBcInVuZGVmaW5lZFwiKSB7XG4gICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShTVE9SQUdFX0tFWSwgSlNPTi5zdHJpbmdpZnkoYnVpbGQpKTtcbiAgICB9XG4gIH0sIFtidWlsZF0pO1xuXG4gIGNvbnN0IHBhcnRzQnlDYXRlZ29yeTogUmVjb3JkPENhdGVnb3J5SWQsIFBhcnRbXT4gPSB1c2VNZW1vKCgpID0+IHtcbiAgICBjb25zdCBncm91cGVkID0ge30gYXMgUmVjb3JkPENhdGVnb3J5SWQsIFBhcnRbXT47XG4gICAgZm9yIChjb25zdCBjYXRlZ29yeSBvZiBDQVRFR09SSUVTKSB7XG4gICAgICBncm91cGVkW2NhdGVnb3J5LmlkXSA9IFBBUlRTLmZpbHRlcihcbiAgICAgICAgKHApID0+IHAuY2F0ZWdvcnlJZCA9PT0gY2F0ZWdvcnkuaWQsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZ3JvdXBlZDtcbiAgfSwgW10pO1xuXG4gIGNvbnN0IHNlbGVjdGVkUGFydHM6IFBhcnRbXSA9IHVzZU1lbW8oKCkgPT4ge1xuICAgIHJldHVybiBPYmplY3QuZW50cmllcyhidWlsZClcbiAgICAgIC5tYXAoKFtjYXRlZ29yeUlkLCBwYXJ0SWRdKSA9PlxuICAgICAgICBQQVJUUy5maW5kKChwKSA9PiBwLmlkID09PSBwYXJ0SWQgJiYgcC5jYXRlZ29yeUlkID09PSBjYXRlZ29yeUlkKSxcbiAgICAgIClcbiAgICAgIC5maWx0ZXIoQm9vbGVhbikgYXMgUGFydFtdO1xuICB9LCBbYnVpbGRdKTtcblxuICBjb25zdCB0b3RhbFByaWNlID0gdXNlTWVtbyhcbiAgICAoKSA9PiBzZWxlY3RlZFBhcnRzLnJlZHVjZSgoc3VtLCBwKSA9PiBzdW0gKyBwLnByaWNlLCAwKSxcbiAgICBbc2VsZWN0ZWRQYXJ0c10sXG4gICk7XG5cbiAgY29uc3QgaGFuZGxlU2VsZWN0UGFydCA9IChjYXRlZ29yeUlkOiBDYXRlZ29yeUlkLCBwYXJ0SWQ6IHN0cmluZykgPT4ge1xuICAgIHNldEJ1aWxkKChwcmV2KSA9PiAoe1xuICAgICAgLi4ucHJldixcbiAgICAgIFtjYXRlZ29yeUlkXTogcGFydElkLFxuICAgIH0pKTtcbiAgfTtcblxuICByZXR1cm4gKFxuICAgIDxtYWluIGNsYXNzTmFtZT1cIm1pbi1oLXNjcmVlbiBiZy1ibGFjayB0ZXh0LXppbmMtNTBcIj5cbiAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXgtYXV0byBtYXgtdy02eGwgcHgtNCBweS02IGxnOnB5LTEwXCI+XG4gICAgICAgIHsvKiBIZWFkZXIgKi99XG4gICAgICAgIDxoZWFkZXIgY2xhc3NOYW1lPVwibWItNiBmbGV4IGZsZXgtY29sIGdhcC0yIG1kOmZsZXgtcm93IG1kOml0ZW1zLWVuZCBtZDpqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRyYWNraW5nLVswLjJlbV0gdXBwZXJjYXNlIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICAgICAgU2hhZG93IFN0YW5kYXJkXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgICA8aDEgY2xhc3NOYW1lPVwibXQtMSB0ZXh0LTJ4bCBtZDp0ZXh0LTN4bCBmb250LXNlbWlib2xkIHRyYWNraW5nLXRpZ2h0XCI+XG4gICAgICAgICAgICAgIEd1bmJ1aWxkZXIgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC1hbWJlci0zMDBcIj5Qcm90b3R5cGU8L3NwYW4+XG4gICAgICAgICAgICA8L2gxPlxuICAgICAgICAgICAgPHAgY2xhc3NOYW1lPVwibXQtMiB0ZXh0LXNtIHRleHQtemluYy00MDAgbWF4LXcteGxcIj5cbiAgICAgICAgICAgICAgQ2hvb3NlIG9uZSBwYXJ0IHBlciBjYXRlZ29yeSB0byBhc3NlbWJsZSBhbiBBUi0xNSBidWlsZC4gUHJpY2VzXG4gICAgICAgICAgICAgIGFuZCBsaW5rcyBhcmUgbW9jayBkYXRhIGZvciBub3figJRidXQgdGhlIGZsb3cgaXMgY2xvc2UgdG8gd2hhdFxuICAgICAgICAgICAgICB0aGUgcmVhbCB0b29sIHdpbGwgYmUuXG4gICAgICAgICAgICA8L3A+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTMgbWQ6bXQtMFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIHRleHQtemluYy00MDBcIj5DdXJyZW50IGJ1aWxkIHRvdGFsPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtMnhsIGZvbnQtc2VtaWJvbGQgdGV4dC1hbWJlci0zMDBcIj5cbiAgICAgICAgICAgICAgJHt0b3RhbFByaWNlLnRvRml4ZWQoMil9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC14cyB0ZXh0LXppbmMtNTAwXCI+XG4gICAgICAgICAgICAgIHtzZWxlY3RlZFBhcnRzLmxlbmd0aH0gLyB7Q0FURUdPUklFUy5sZW5ndGh9IGNhdGVnb3JpZXMgZmlsbGVkXG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9oZWFkZXI+XG5cbiAgICAgICAgey8qIExheW91dCAqL31cbiAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC00IGxnOmdyaWQtY29scy1bM2ZyLDEuMjVmcl1cIj5cbiAgICAgICAgICB7LyogQ2F0ZWdvcmllcy9wYXJ0cyAqL31cbiAgICAgICAgICA8c2VjdGlvbiBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy04MDAgYmctemluYy05NTAvNjAgcC0zIG1kOnAtNFwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJncmlkIGdhcC00IG1kOmdyaWQtY29scy0yIGxnOmdyaWQtY29scy0zXCI+XG4gICAgICAgICAgICAgIHtDQVRFR09SSUVTLm1hcCgoY2F0ZWdvcnkpID0+IChcbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICBrZXk9e2NhdGVnb3J5LmlkfVxuICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwiYm9yZGVyIGJvcmRlci16aW5jLTgwMCByb3VuZGVkLW1kIHAtMiBtZDpwLTMgYmctemluYy05NTAvNjBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxDYXRlZ29yeUNvbHVtblxuICAgICAgICAgICAgICAgICAgICBjYXRlZ29yeT17Y2F0ZWdvcnl9XG4gICAgICAgICAgICAgICAgICAgIHBhcnRzPXtwYXJ0c0J5Q2F0ZWdvcnlbY2F0ZWdvcnkuaWRdfVxuICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZFBhcnRJZD17YnVpbGRbY2F0ZWdvcnkuaWRdfVxuICAgICAgICAgICAgICAgICAgICBvblNlbGVjdFBhcnQ9eyhwYXJ0SWQpID0+XG4gICAgICAgICAgICAgICAgICAgICAgaGFuZGxlU2VsZWN0UGFydChjYXRlZ29yeS5pZCwgcGFydElkKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvc2VjdGlvbj5cblxuICAgICAgICAgIHsvKiBCdWlsZCBTdW1tYXJ5ICovfVxuICAgICAgICAgIDxhc2lkZSBjbGFzc05hbWU9XCJyb3VuZGVkLWxnIGJvcmRlciBib3JkZXItemluYy04MDAgYmctemluYy05NTAvODAgcC0zIG1kOnAtNCBmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgICAgICA8aDIgY2xhc3NOYW1lPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRyYWNraW5nLVswLjE2ZW1dIHVwcGVyY2FzZSB0ZXh0LXppbmMtNDAwIG1iLTNcIj5cbiAgICAgICAgICAgICAgQ3VycmVudCBCdWlsZFxuICAgICAgICAgICAgPC9oMj5cblxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJmbGV4LTEgb3ZlcmZsb3cteS1hdXRvIHByLTFcIj5cbiAgICAgICAgICAgICAge3NlbGVjdGVkUGFydHMubGVuZ3RoID09PSAwICYmIChcbiAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJ0ZXh0LXNtIHRleHQtemluYy01MDBcIj5cbiAgICAgICAgICAgICAgICAgIFNlbGVjdCBhIHBhcnQgZnJvbSBlYWNoIGNhdGVnb3J5IHRvIHN0YXJ0IHlvdXIgYnVpbGQuXG4gICAgICAgICAgICAgICAgPC9wPlxuICAgICAgICAgICAgICApfVxuXG4gICAgICAgICAgICAgIDx1bCBjbGFzc05hbWU9XCJzcGFjZS15LTJcIj5cbiAgICAgICAgICAgICAgICB7Q0FURUdPUklFUy5tYXAoKGNhdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRQYXJ0SWQgPSBidWlsZFtjYXQuaWRdO1xuICAgICAgICAgICAgICAgICAgY29uc3QgcGFydCA9IFBBUlRTLmZpbmQoXG4gICAgICAgICAgICAgICAgICAgIChwKSA9PiBwLmlkID09PSBzZWxlY3RlZFBhcnRJZCAmJiBwLmNhdGVnb3J5SWQgPT09IGNhdC5pZCxcbiAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8bGkga2V5PXtjYXQuaWR9PlxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwidGV4dC1bMC43cmVtXSB1cHBlcmNhc2UgdHJhY2tpbmctWzAuMTZlbV0gdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAge2NhdC5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgIHtwYXJ0ID8gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0xIGZsZXgganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInRleHQtc20gdGV4dC16aW5jLTUwXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPVwidGV4dC16aW5jLTQwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3BhcnQuYnJhbmR9e1wiIFwifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cGFydC5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1hbWJlci0zMDAgd2hpdGVzcGFjZS1ub3dyYXBcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAke3BhcnQucHJpY2UudG9GaXhlZCgyKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJtdC0xIHRleHQteHMgdGV4dC16aW5jLTYwMFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICBOb3Qgc2VsZWN0ZWRcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICl9XG4gICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgIHsvKiBDVEEgKi99XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm10LTQgYm9yZGVyLXQgYm9yZGVyLXppbmMtODAwIHB0LTMgc3BhY2UteS0yXCI+XG4gICAgICAgICAgICAgIDxMaW5rXG4gICAgICAgICAgICAgICAgaHJlZj1cIi9ndW5idWlsZGVyL2J1aWxkXCJcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2BibG9jayB3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLWFtYmVyLTQwMC82MCBiZy1hbWJlci00MDAvMTAgcHgtMyBweS0yIHRleHQtc20gZm9udC1tZWRpdW0gdGV4dC1hbWJlci0yMDAgaG92ZXI6YmctYW1iZXItNDAwLzE1IHRleHQtY2VudGVyIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZFBhcnRzLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICA/IFwib3BhY2l0eS00MCBjdXJzb3Itbm90LWFsbG93ZWQgcG9pbnRlci1ldmVudHMtbm9uZVwiXG4gICAgICAgICAgICAgICAgICAgIDogXCJcIlxuICAgICAgICAgICAgICAgIH1gfVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgQ29udGludWUgdG8gQnV5XG4gICAgICAgICAgICAgIDwvTGluaz5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIHNldEJ1aWxkKHt9KTtcbiAgICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKFNUT1JBR0VfS0VZKTtcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIGRpc2FibGVkPXtzZWxlY3RlZFBhcnRzLmxlbmd0aCA9PT0gMH1cbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2B3LWZ1bGwgcm91bmRlZC1tZCBib3JkZXIgYm9yZGVyLXppbmMtNzAwIGJnLXppbmMtOTAwLzUwIHB4LTMgcHktMiB0ZXh0LXNtIGZvbnQtbWVkaXVtIHRleHQtemluYy0zMDAgaG92ZXI6YmctemluYy04MDAgaG92ZXI6Ym9yZGVyLXppbmMtNjAwIHRyYW5zaXRpb24tY29sb3JzICR7XG4gICAgICAgICAgICAgICAgICBzZWxlY3RlZFBhcnRzLmxlbmd0aCA9PT0gMFxuICAgICAgICAgICAgICAgICAgICA/IFwib3BhY2l0eS00MCBjdXJzb3Itbm90LWFsbG93ZWRcIlxuICAgICAgICAgICAgICAgICAgICA6IFwiXCJcbiAgICAgICAgICAgICAgICB9YH1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIENsZWFyIEJ1aWxkXG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9XCJtdC0yIHRleHQtWzAuN3JlbV0gdGV4dC16aW5jLTUwMFwiPlxuICAgICAgICAgICAgICAgIFZpZXcgeW91ciBidWlsZCBzdW1tYXJ5IHdpdGggYWZmaWxpYXRlIGxpbmtzIGFuZCBzaGFyaW5nIG9wdGlvbnMuXG4gICAgICAgICAgICAgIDwvcD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvYXNpZGU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9tYWluPlxuICApO1xufVxuIl0sIm5hbWVzIjpbInVzZU1lbW8iLCJ1c2VTdGF0ZSIsInVzZUVmZmVjdCIsIkxpbmsiLCJ1c2VTZWFyY2hQYXJhbXMiLCJ1c2VSb3V0ZXIiLCJDQVRFR09SSUVTIiwiUEFSVFMiLCJDYXRlZ29yeUNvbHVtbiIsIlNUT1JBR0VfS0VZIiwiR3VuYnVpbGRlclBhZ2UiLCJzZWFyY2hQYXJhbXMiLCJyb3V0ZXIiLCJidWlsZCIsInNldEJ1aWxkIiwic3RvcmVkIiwibG9jYWxTdG9yYWdlIiwiZ2V0SXRlbSIsIkpTT04iLCJwYXJzZSIsInNlbGVjdFBhcmFtIiwiZ2V0IiwiY2F0ZWdvcnlJZCIsInBhcnRJZCIsInNwbGl0Iiwic29tZSIsImMiLCJpZCIsInByZXYiLCJ1cGRhdGVkIiwic2V0SXRlbSIsInN0cmluZ2lmeSIsInJlcGxhY2UiLCJzY3JvbGwiLCJwYXJ0c0J5Q2F0ZWdvcnkiLCJncm91cGVkIiwiY2F0ZWdvcnkiLCJmaWx0ZXIiLCJwIiwic2VsZWN0ZWRQYXJ0cyIsIk9iamVjdCIsImVudHJpZXMiLCJtYXAiLCJmaW5kIiwiQm9vbGVhbiIsInRvdGFsUHJpY2UiLCJyZWR1Y2UiLCJzdW0iLCJwcmljZSIsImhhbmRsZVNlbGVjdFBhcnQiLCJtYWluIiwiY2xhc3NOYW1lIiwiZGl2IiwiaGVhZGVyIiwiaDEiLCJzcGFuIiwidG9GaXhlZCIsImxlbmd0aCIsInNlY3Rpb24iLCJwYXJ0cyIsInNlbGVjdGVkUGFydElkIiwib25TZWxlY3RQYXJ0IiwiYXNpZGUiLCJoMiIsInVsIiwiY2F0IiwicGFydCIsImxpIiwibmFtZSIsImJyYW5kIiwiaHJlZiIsImJ1dHRvbiIsInR5cGUiLCJvbkNsaWNrIiwicmVtb3ZlSXRlbSIsImRpc2FibGVkIl0sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/gunbuilder/page.tsx\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.02985b2227e92138.hot-update.js b/.next/static/webpack/app/layout.02985b2227e92138.hot-update.js
deleted file mode 100644
index 99af0aa..0000000
--- a/.next/static/webpack/app/layout.02985b2227e92138.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"b78d2654cd4d\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJiNzhkMjY1NGNkNGRcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.0422c1777ea6729c.hot-update.js b/.next/static/webpack/app/layout.0422c1777ea6729c.hot-update.js
deleted file mode 100644
index c52848c..0000000
--- a/.next/static/webpack/app/layout.0422c1777ea6729c.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"744339387e4f\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI3NDQzMzkzODdlNGZcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.046d14ac1f24d478.hot-update.js b/.next/static/webpack/app/layout.046d14ac1f24d478.hot-update.js
deleted file mode 100644
index d76e478..0000000
--- a/.next/static/webpack/app/layout.046d14ac1f24d478.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"eedd160618c3\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJlZWRkMTYwNjE4YzNcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.123e6081feae4650.hot-update.js b/.next/static/webpack/app/layout.123e6081feae4650.hot-update.js
deleted file mode 100644
index a80e0af..0000000
--- a/.next/static/webpack/app/layout.123e6081feae4650.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"1da28a8396f2\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCIxZGEyOGE4Mzk2ZjJcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.128627853224a2d4.hot-update.js b/.next/static/webpack/app/layout.128627853224a2d4.hot-update.js
deleted file mode 100644
index 012b3d9..0000000
--- a/.next/static/webpack/app/layout.128627853224a2d4.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"ffae9c85647d\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJmZmFlOWM4NTY0N2RcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.223a54f5f9cb6c34.hot-update.js b/.next/static/webpack/app/layout.223a54f5f9cb6c34.hot-update.js
deleted file mode 100644
index 2e251cf..0000000
--- a/.next/static/webpack/app/layout.223a54f5f9cb6c34.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"515f849d8fb0\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI1MTVmODQ5ZDhmYjBcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.3b6503389f6ac034.hot-update.js b/.next/static/webpack/app/layout.3b6503389f6ac034.hot-update.js
deleted file mode 100644
index 2ebd041..0000000
--- a/.next/static/webpack/app/layout.3b6503389f6ac034.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"61cf095c03ae\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI2MWNmMDk1YzAzYWVcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.3bebdd7477e09e2a.hot-update.js b/.next/static/webpack/app/layout.3bebdd7477e09e2a.hot-update.js
deleted file mode 100644
index df32e47..0000000
--- a/.next/static/webpack/app/layout.3bebdd7477e09e2a.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"738f319964c9\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI3MzhmMzE5OTY0YzlcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.44b2c6af73f059b8.hot-update.js b/.next/static/webpack/app/layout.44b2c6af73f059b8.hot-update.js
deleted file mode 100644
index 7e5e630..0000000
--- a/.next/static/webpack/app/layout.44b2c6af73f059b8.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"1f8d993f3235\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCIxZjhkOTkzZjMyMzVcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.469afc16cd5c06dc.hot-update.js b/.next/static/webpack/app/layout.469afc16cd5c06dc.hot-update.js
deleted file mode 100644
index 69c31c5..0000000
--- a/.next/static/webpack/app/layout.469afc16cd5c06dc.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"f26df888f4cd\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJmMjZkZjg4OGY0Y2RcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.470106d2483fe157.hot-update.js b/.next/static/webpack/app/layout.470106d2483fe157.hot-update.js
deleted file mode 100644
index a42665e..0000000
--- a/.next/static/webpack/app/layout.470106d2483fe157.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"9b737540a384\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI5YjczNzU0MGEzODRcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.4aab4cece345bfd8.hot-update.js b/.next/static/webpack/app/layout.4aab4cece345bfd8.hot-update.js
deleted file mode 100644
index 7a9e7e6..0000000
--- a/.next/static/webpack/app/layout.4aab4cece345bfd8.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"79151dd11033\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI3OTE1MWRkMTEwMzNcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.51a0251b56f840c5.hot-update.js b/.next/static/webpack/app/layout.51a0251b56f840c5.hot-update.js
deleted file mode 100644
index eef86b6..0000000
--- a/.next/static/webpack/app/layout.51a0251b56f840c5.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"632b0fa9e308\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI2MzJiMGZhOWUzMDhcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.52bc31ac991d7066.hot-update.js b/.next/static/webpack/app/layout.52bc31ac991d7066.hot-update.js
deleted file mode 100644
index 8dc8d8b..0000000
--- a/.next/static/webpack/app/layout.52bc31ac991d7066.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"0211aad8a3a7\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCIwMjExYWFkOGEzYTdcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.580f64a4930cd520.hot-update.js b/.next/static/webpack/app/layout.580f64a4930cd520.hot-update.js
deleted file mode 100644
index 1c4bdad..0000000
--- a/.next/static/webpack/app/layout.580f64a4930cd520.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"c6435c311551\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJjNjQzNWMzMTE1NTFcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.5aa0f4b5d703f9bd.hot-update.js b/.next/static/webpack/app/layout.5aa0f4b5d703f9bd.hot-update.js
deleted file mode 100644
index 64c93cf..0000000
--- a/.next/static/webpack/app/layout.5aa0f4b5d703f9bd.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"f0ff7bd15da8\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJmMGZmN2JkMTVkYThcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.601796416dea5810.hot-update.js b/.next/static/webpack/app/layout.601796416dea5810.hot-update.js
deleted file mode 100644
index 70f581f..0000000
--- a/.next/static/webpack/app/layout.601796416dea5810.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"943ca02dbd60\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI5NDNjYTAyZGJkNjBcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.62829ecc5a9f016d.hot-update.js b/.next/static/webpack/app/layout.62829ecc5a9f016d.hot-update.js
deleted file mode 100644
index 748f026..0000000
--- a/.next/static/webpack/app/layout.62829ecc5a9f016d.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"6dc9a1dd8479\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI2ZGM5YTFkZDg0NzlcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.73f26e6e39ca6219.hot-update.js b/.next/static/webpack/app/layout.73f26e6e39ca6219.hot-update.js
deleted file mode 100644
index e650d7c..0000000
--- a/.next/static/webpack/app/layout.73f26e6e39ca6219.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"956c150ca78a\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI5NTZjMTUwY2E3OGFcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.7bb4a4e9a866cbdd.hot-update.js b/.next/static/webpack/app/layout.7bb4a4e9a866cbdd.hot-update.js
deleted file mode 100644
index 2aba071..0000000
--- a/.next/static/webpack/app/layout.7bb4a4e9a866cbdd.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"eebfcdab4246\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJlZWJmY2RhYjQyNDZcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.7bcd31a758e98304.hot-update.js b/.next/static/webpack/app/layout.7bcd31a758e98304.hot-update.js
deleted file mode 100644
index 9270a72..0000000
--- a/.next/static/webpack/app/layout.7bcd31a758e98304.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"432f48a2a0b9\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI0MzJmNDhhMmEwYjlcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.7cec39c7e4aa49e7.hot-update.js b/.next/static/webpack/app/layout.7cec39c7e4aa49e7.hot-update.js
deleted file mode 100644
index 54b54c7..0000000
--- a/.next/static/webpack/app/layout.7cec39c7e4aa49e7.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"7ddaf62fdeac\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI3ZGRhZjYyZmRlYWNcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.7fb14897109b9564.hot-update.js b/.next/static/webpack/app/layout.7fb14897109b9564.hot-update.js
deleted file mode 100644
index c056212..0000000
--- a/.next/static/webpack/app/layout.7fb14897109b9564.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"4fe89e81a7e8\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI0ZmU4OWU4MWE3ZThcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.86af3bcc66ce70ea.hot-update.js b/.next/static/webpack/app/layout.86af3bcc66ce70ea.hot-update.js
deleted file mode 100644
index 4ae81a5..0000000
--- a/.next/static/webpack/app/layout.86af3bcc66ce70ea.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"cd1373263066\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJjZDEzNzMyNjMwNjZcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.87786bf095dfd3fe.hot-update.js b/.next/static/webpack/app/layout.87786bf095dfd3fe.hot-update.js
deleted file mode 100644
index ef23cbf..0000000
--- a/.next/static/webpack/app/layout.87786bf095dfd3fe.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"5b643262de82\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI1YjY0MzI2MmRlODJcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.a5a7cc0fc6697586.hot-update.js b/.next/static/webpack/app/layout.a5a7cc0fc6697586.hot-update.js
deleted file mode 100644
index 6cfb4f0..0000000
--- a/.next/static/webpack/app/layout.a5a7cc0fc6697586.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"425db0a70c41\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI0MjVkYjBhNzBjNDFcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.ac57d1da09eaaba0.hot-update.js b/.next/static/webpack/app/layout.ac57d1da09eaaba0.hot-update.js
deleted file mode 100644
index 4b8ff03..0000000
--- a/.next/static/webpack/app/layout.ac57d1da09eaaba0.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"62dc0312b971\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI2MmRjMDMxMmI5NzFcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.b9562c6bb83d9ef0.hot-update.js b/.next/static/webpack/app/layout.b9562c6bb83d9ef0.hot-update.js
deleted file mode 100644
index 9d26234..0000000
--- a/.next/static/webpack/app/layout.b9562c6bb83d9ef0.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"faf111c78721\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJmYWYxMTFjNzg3MjFcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.b95ba82ad8360b94.hot-update.js b/.next/static/webpack/app/layout.b95ba82ad8360b94.hot-update.js
deleted file mode 100644
index 4344a82..0000000
--- a/.next/static/webpack/app/layout.b95ba82ad8360b94.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"77db371fa927\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI3N2RiMzcxZmE5MjdcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.c52ce44877672471.hot-update.js b/.next/static/webpack/app/layout.c52ce44877672471.hot-update.js
deleted file mode 100644
index aa7c820..0000000
--- a/.next/static/webpack/app/layout.c52ce44877672471.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"75c6021d1d3d\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI3NWM2MDIxZDFkM2RcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.c5fccd017612ecaa.hot-update.js b/.next/static/webpack/app/layout.c5fccd017612ecaa.hot-update.js
deleted file mode 100644
index 41eec00..0000000
--- a/.next/static/webpack/app/layout.c5fccd017612ecaa.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"f6466cc2ef9a\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJmNjQ2NmNjMmVmOWFcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.c81c5ba568e3f3ba.hot-update.js b/.next/static/webpack/app/layout.c81c5ba568e3f3ba.hot-update.js
deleted file mode 100644
index f60f003..0000000
--- a/.next/static/webpack/app/layout.c81c5ba568e3f3ba.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"ea83046c2320\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJlYTgzMDQ2YzIzMjBcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.cbda6c3666c270dc.hot-update.js b/.next/static/webpack/app/layout.cbda6c3666c270dc.hot-update.js
deleted file mode 100644
index b76df5d..0000000
--- a/.next/static/webpack/app/layout.cbda6c3666c270dc.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"549097158ba0\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI1NDkwOTcxNThiYTBcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.d42e0c8c45a81c3a.hot-update.js b/.next/static/webpack/app/layout.d42e0c8c45a81c3a.hot-update.js
deleted file mode 100644
index 5eb7675..0000000
--- a/.next/static/webpack/app/layout.d42e0c8c45a81c3a.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"5b81591ded17\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCI1YjgxNTkxZGVkMTdcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.dfb10022e50981f7.hot-update.js b/.next/static/webpack/app/layout.dfb10022e50981f7.hot-update.js
deleted file mode 100644
index 0c87b31..0000000
--- a/.next/static/webpack/app/layout.dfb10022e50981f7.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"2689aa9e2ade\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCIyNjg5YWE5ZTJhZGVcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.e059b46eff1bf257.hot-update.js b/.next/static/webpack/app/layout.e059b46eff1bf257.hot-update.js
deleted file mode 100644
index 120126f..0000000
--- a/.next/static/webpack/app/layout.e059b46eff1bf257.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"2205c020ffc8\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCIyMjA1YzAyMGZmYzhcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.e7efc7da54c7e7bb.hot-update.js b/.next/static/webpack/app/layout.e7efc7da54c7e7bb.hot-update.js
deleted file mode 100644
index 854ea76..0000000
--- a/.next/static/webpack/app/layout.e7efc7da54c7e7bb.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"ab4867089143\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJhYjQ4NjcwODkxNDNcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.f661c5629f8adb93.hot-update.js b/.next/static/webpack/app/layout.f661c5629f8adb93.hot-update.js
deleted file mode 100644
index 984511b..0000000
--- a/.next/static/webpack/app/layout.f661c5629f8adb93.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"fab2e0740501\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJmYWIyZTA3NDA1MDFcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/app/layout.fae79994cbbcace2.hot-update.js b/.next/static/webpack/app/layout.fae79994cbbcace2.hot-update.js
deleted file mode 100644
index 0a52532..0000000
--- a/.next/static/webpack/app/layout.fae79994cbbcace2.hot-update.js
+++ /dev/null
@@ -1,22 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("app/layout",{
-
-/***/ "(app-pages-browser)/./app/globals.css":
-/*!*************************!*\
- !*** ./app/globals.css ***!
- \*************************/
-/***/ (function(module, __webpack_exports__, __webpack_require__) {
-
-eval(__webpack_require__.ts("__webpack_require__.r(__webpack_exports__);\n/* harmony default export */ __webpack_exports__[\"default\"] = (\"bca9b62cbb63\");\nif (true) { module.hot.accept() }\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL2FwcC9nbG9iYWxzLmNzcyIsIm1hcHBpbmdzIjoiO0FBQUEsK0RBQWUsY0FBYztBQUM3QixJQUFJLElBQVUsSUFBSSxpQkFBaUIiLCJzb3VyY2VzIjpbIndlYnBhY2s6Ly9fTl9FLy4vYXBwL2dsb2JhbHMuY3NzPzk1YWEiXSwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGRlZmF1bHQgXCJiY2E5YjYyY2JiNjNcIlxuaWYgKG1vZHVsZS5ob3QpIHsgbW9kdWxlLmhvdC5hY2NlcHQoKSB9XG4iXSwibmFtZXMiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./app/globals.css\n"));
-
-/***/ })
-
-});
\ No newline at end of file
diff --git a/.next/static/webpack/b3ad1fad31e1ee28.webpack.hot-update.json b/.next/static/webpack/b3ad1fad31e1ee28.webpack.hot-update.json
deleted file mode 100644
index 3823c4c..0000000
--- a/.next/static/webpack/b3ad1fad31e1ee28.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/b9562c6bb83d9ef0.webpack.hot-update.json b/.next/static/webpack/b9562c6bb83d9ef0.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/b9562c6bb83d9ef0.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/b95ba82ad8360b94.webpack.hot-update.json b/.next/static/webpack/b95ba82ad8360b94.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/b95ba82ad8360b94.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/c52ce44877672471.webpack.hot-update.json b/.next/static/webpack/c52ce44877672471.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/c52ce44877672471.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/c5fccd017612ecaa.webpack.hot-update.json b/.next/static/webpack/c5fccd017612ecaa.webpack.hot-update.json
deleted file mode 100644
index 5e3f6af..0000000
--- a/.next/static/webpack/c5fccd017612ecaa.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/[categoryId]/[partId]/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/c81c5ba568e3f3ba.webpack.hot-update.json b/.next/static/webpack/c81c5ba568e3f3ba.webpack.hot-update.json
deleted file mode 100644
index 31f1cde..0000000
--- a/.next/static/webpack/c81c5ba568e3f3ba.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/cbda6c3666c270dc.webpack.hot-update.json b/.next/static/webpack/cbda6c3666c270dc.webpack.hot-update.json
deleted file mode 100644
index 7b48c60..0000000
--- a/.next/static/webpack/cbda6c3666c270dc.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/[categoryId]/[partId]/page","webpack"],"r":[],"m":["(app-pages-browser)/./components/PricingHistoryGraph.tsx"]}
\ No newline at end of file
diff --git a/.next/static/webpack/d057380e3b8a78a0.webpack.hot-update.json b/.next/static/webpack/d057380e3b8a78a0.webpack.hot-update.json
deleted file mode 100644
index 3823c4c..0000000
--- a/.next/static/webpack/d057380e3b8a78a0.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/d42e0c8c45a81c3a.webpack.hot-update.json b/.next/static/webpack/d42e0c8c45a81c3a.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/d42e0c8c45a81c3a.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/a161476a3ce87ae3.webpack.hot-update.json b/.next/static/webpack/d7538ff50d2d1cfd.webpack.hot-update.json
similarity index 100%
rename from .next/static/webpack/a161476a3ce87ae3.webpack.hot-update.json
rename to .next/static/webpack/d7538ff50d2d1cfd.webpack.hot-update.json
diff --git a/.next/static/webpack/dfb10022e50981f7.webpack.hot-update.json b/.next/static/webpack/dfb10022e50981f7.webpack.hot-update.json
deleted file mode 100644
index 31f1cde..0000000
--- a/.next/static/webpack/dfb10022e50981f7.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/dffab0dd64ea971c.webpack.hot-update.json b/.next/static/webpack/dffab0dd64ea971c.webpack.hot-update.json
deleted file mode 100644
index 3823c4c..0000000
--- a/.next/static/webpack/dffab0dd64ea971c.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/e059b46eff1bf257.webpack.hot-update.json b/.next/static/webpack/e059b46eff1bf257.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/e059b46eff1bf257.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/e7efc7da54c7e7bb.webpack.hot-update.json b/.next/static/webpack/e7efc7da54c7e7bb.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/e7efc7da54c7e7bb.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/f661c5629f8adb93.webpack.hot-update.json b/.next/static/webpack/f661c5629f8adb93.webpack.hot-update.json
deleted file mode 100644
index 5c82546..0000000
--- a/.next/static/webpack/f661c5629f8adb93.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/fae79994cbbcace2.webpack.hot-update.json b/.next/static/webpack/fae79994cbbcace2.webpack.hot-update.json
deleted file mode 100644
index 5e3f6af..0000000
--- a/.next/static/webpack/fae79994cbbcace2.webpack.hot-update.json
+++ /dev/null
@@ -1 +0,0 @@
-{"c":["app/layout","app/gunbuilder/[categoryId]/[partId]/page","webpack"],"r":[],"m":[]}
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.046d14ac1f24d478.hot-update.js b/.next/static/webpack/webpack.046d14ac1f24d478.hot-update.js
deleted file mode 100644
index 7ba83c0..0000000
--- a/.next/static/webpack/webpack.046d14ac1f24d478.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "7bb4a4e9a866cbdd"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.123e6081feae4650.hot-update.js b/.next/static/webpack/webpack.123e6081feae4650.hot-update.js
deleted file mode 100644
index fd82515..0000000
--- a/.next/static/webpack/webpack.123e6081feae4650.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "a5a7cc0fc6697586"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.128627853224a2d4.hot-update.js b/.next/static/webpack/webpack.128627853224a2d4.hot-update.js
deleted file mode 100644
index 57316fd..0000000
--- a/.next/static/webpack/webpack.128627853224a2d4.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "dfb10022e50981f7"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.223a54f5f9cb6c34.hot-update.js b/.next/static/webpack/webpack.223a54f5f9cb6c34.hot-update.js
deleted file mode 100644
index e4a8fee..0000000
--- a/.next/static/webpack/webpack.223a54f5f9cb6c34.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "02985b2227e92138"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.3b6503389f6ac034.hot-update.js b/.next/static/webpack/webpack.3b6503389f6ac034.hot-update.js
deleted file mode 100644
index eb9faac..0000000
--- a/.next/static/webpack/webpack.3b6503389f6ac034.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "73f26e6e39ca6219"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.3bebdd7477e09e2a.hot-update.js b/.next/static/webpack/webpack.3bebdd7477e09e2a.hot-update.js
deleted file mode 100644
index 7a68577..0000000
--- a/.next/static/webpack/webpack.3bebdd7477e09e2a.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "dffab0dd64ea971c"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.44b2c6af73f059b8.hot-update.js b/.next/static/webpack/webpack.44b2c6af73f059b8.hot-update.js
deleted file mode 100644
index 2dd3134..0000000
--- a/.next/static/webpack/webpack.44b2c6af73f059b8.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "f661c5629f8adb93"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.459ae513b6e23f16.hot-update.js b/.next/static/webpack/webpack.459ae513b6e23f16.hot-update.js
deleted file mode 100644
index 1906d9b..0000000
--- a/.next/static/webpack/webpack.459ae513b6e23f16.hot-update.js
+++ /dev/null
@@ -1,30 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/compat get default export */
-/******/ !function() {
-/******/ // getDefaultExport function for compatibility with non-harmony modules
-/******/ __webpack_require__.n = function(module) {
-/******/ var getter = module && module.__esModule ?
-/******/ function() { return module['default']; } :
-/******/ function() { return module; };
-/******/ __webpack_require__.d(getter, { a: getter });
-/******/ return getter;
-/******/ };
-/******/ }();
-/******/
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "a161476a3ce87ae3"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.469afc16cd5c06dc.hot-update.js b/.next/static/webpack/webpack.469afc16cd5c06dc.hot-update.js
deleted file mode 100644
index e60d903..0000000
--- a/.next/static/webpack/webpack.469afc16cd5c06dc.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "7bcd31a758e98304"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.470106d2483fe157.hot-update.js b/.next/static/webpack/webpack.470106d2483fe157.hot-update.js
deleted file mode 100644
index b8de0d2..0000000
--- a/.next/static/webpack/webpack.470106d2483fe157.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "3bebdd7477e09e2a"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.4aab4cece345bfd8.hot-update.js b/.next/static/webpack/webpack.4aab4cece345bfd8.hot-update.js
deleted file mode 100644
index 5ca8b8e..0000000
--- a/.next/static/webpack/webpack.4aab4cece345bfd8.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "7f83c2b3ede35a16"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.51a0251b56f840c5.hot-update.js b/.next/static/webpack/webpack.51a0251b56f840c5.hot-update.js
deleted file mode 100644
index 3b9254f..0000000
--- a/.next/static/webpack/webpack.51a0251b56f840c5.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "046d14ac1f24d478"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.52bc31ac991d7066.hot-update.js b/.next/static/webpack/webpack.52bc31ac991d7066.hot-update.js
deleted file mode 100644
index ea41f01..0000000
--- a/.next/static/webpack/webpack.52bc31ac991d7066.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "86af3bcc66ce70ea"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.580f64a4930cd520.hot-update.js b/.next/static/webpack/webpack.580f64a4930cd520.hot-update.js
deleted file mode 100644
index 61df624..0000000
--- a/.next/static/webpack/webpack.580f64a4930cd520.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "3b6503389f6ac034"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.5aa0f4b5d703f9bd.hot-update.js b/.next/static/webpack/webpack.5aa0f4b5d703f9bd.hot-update.js
deleted file mode 100644
index b45f640..0000000
--- a/.next/static/webpack/webpack.5aa0f4b5d703f9bd.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "c52ce44877672471"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.601796416dea5810.hot-update.js b/.next/static/webpack/webpack.601796416dea5810.hot-update.js
deleted file mode 100644
index a160b46..0000000
--- a/.next/static/webpack/webpack.601796416dea5810.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "7fb14897109b9564"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.62829ecc5a9f016d.hot-update.js b/.next/static/webpack/webpack.62829ecc5a9f016d.hot-update.js
deleted file mode 100644
index a4aaa0e..0000000
--- a/.next/static/webpack/webpack.62829ecc5a9f016d.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "51a0251b56f840c5"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.73f26e6e39ca6219.hot-update.js b/.next/static/webpack/webpack.73f26e6e39ca6219.hot-update.js
deleted file mode 100644
index 7d8efa2..0000000
--- a/.next/static/webpack/webpack.73f26e6e39ca6219.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "62829ecc5a9f016d"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.7bb4a4e9a866cbdd.hot-update.js b/.next/static/webpack/webpack.7bb4a4e9a866cbdd.hot-update.js
deleted file mode 100644
index 077d660..0000000
--- a/.next/static/webpack/webpack.7bb4a4e9a866cbdd.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "b9562c6bb83d9ef0"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.7bcd31a758e98304.hot-update.js b/.next/static/webpack/webpack.7bcd31a758e98304.hot-update.js
deleted file mode 100644
index 8b090cf..0000000
--- a/.next/static/webpack/webpack.7bcd31a758e98304.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "601796416dea5810"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.7cec39c7e4aa49e7.hot-update.js b/.next/static/webpack/webpack.7cec39c7e4aa49e7.hot-update.js
deleted file mode 100644
index 0944b50..0000000
--- a/.next/static/webpack/webpack.7cec39c7e4aa49e7.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "b3ad1fad31e1ee28"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.7fb14897109b9564.hot-update.js b/.next/static/webpack/webpack.7fb14897109b9564.hot-update.js
deleted file mode 100644
index 1d19364..0000000
--- a/.next/static/webpack/webpack.7fb14897109b9564.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "c5fccd017612ecaa"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.86af3bcc66ce70ea.hot-update.js b/.next/static/webpack/webpack.86af3bcc66ce70ea.hot-update.js
deleted file mode 100644
index 7a40652..0000000
--- a/.next/static/webpack/webpack.86af3bcc66ce70ea.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "4aab4cece345bfd8"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.87786bf095dfd3fe.hot-update.js b/.next/static/webpack/webpack.87786bf095dfd3fe.hot-update.js
deleted file mode 100644
index 1ed7d35..0000000
--- a/.next/static/webpack/webpack.87786bf095dfd3fe.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "52bc31ac991d7066"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.02985b2227e92138.hot-update.js b/.next/static/webpack/webpack.9d51351cbbe0e509.hot-update.js
similarity index 91%
rename from .next/static/webpack/webpack.02985b2227e92138.hot-update.js
rename to .next/static/webpack/webpack.9d51351cbbe0e509.hot-update.js
index f3930e9..660e344 100644
--- a/.next/static/webpack/webpack.02985b2227e92138.hot-update.js
+++ b/.next/static/webpack/webpack.9d51351cbbe0e509.hot-update.js
@@ -11,7 +11,7 @@ self["webpackHotUpdate_N_E"]("webpack",{},
/******/ function(__webpack_require__) { // webpackRuntimeModules
/******/ /* webpack/runtime/getFullHash */
/******/ !function() {
-/******/ __webpack_require__.h = function() { return "e059b46eff1bf257"; }
+/******/ __webpack_require__.h = function() { return "95f881488f2e5382"; }
/******/ }();
/******/
/******/ }
diff --git a/.next/static/webpack/webpack.a161476a3ce87ae3.hot-update.js b/.next/static/webpack/webpack.a161476a3ce87ae3.hot-update.js
deleted file mode 100644
index 3fad4ea..0000000
--- a/.next/static/webpack/webpack.a161476a3ce87ae3.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "d057380e3b8a78a0"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.a5a7cc0fc6697586.hot-update.js b/.next/static/webpack/webpack.a5a7cc0fc6697586.hot-update.js
deleted file mode 100644
index 7e054cf..0000000
--- a/.next/static/webpack/webpack.a5a7cc0fc6697586.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "5aa0f4b5d703f9bd"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.ac57d1da09eaaba0.hot-update.js b/.next/static/webpack/webpack.ac57d1da09eaaba0.hot-update.js
deleted file mode 100644
index b30078d..0000000
--- a/.next/static/webpack/webpack.ac57d1da09eaaba0.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "c81c5ba568e3f3ba"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.b3ad1fad31e1ee28.hot-update.js b/.next/static/webpack/webpack.b3ad1fad31e1ee28.hot-update.js
deleted file mode 100644
index c7eaf3e..0000000
--- a/.next/static/webpack/webpack.b3ad1fad31e1ee28.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "128627853224a2d4"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.b9562c6bb83d9ef0.hot-update.js b/.next/static/webpack/webpack.b9562c6bb83d9ef0.hot-update.js
deleted file mode 100644
index 041bfc4..0000000
--- a/.next/static/webpack/webpack.b9562c6bb83d9ef0.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "d42e0c8c45a81c3a"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.b95ba82ad8360b94.hot-update.js b/.next/static/webpack/webpack.b95ba82ad8360b94.hot-update.js
deleted file mode 100644
index cf10f39..0000000
--- a/.next/static/webpack/webpack.b95ba82ad8360b94.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "459ae513b6e23f16"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.c52ce44877672471.hot-update.js b/.next/static/webpack/webpack.c52ce44877672471.hot-update.js
deleted file mode 100644
index ef05f20..0000000
--- a/.next/static/webpack/webpack.c52ce44877672471.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "223a54f5f9cb6c34"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.c5fccd017612ecaa.hot-update.js b/.next/static/webpack/webpack.c5fccd017612ecaa.hot-update.js
deleted file mode 100644
index 0d16e97..0000000
--- a/.next/static/webpack/webpack.c5fccd017612ecaa.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "fae79994cbbcace2"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.c81c5ba568e3f3ba.hot-update.js b/.next/static/webpack/webpack.c81c5ba568e3f3ba.hot-update.js
deleted file mode 100644
index 8dc6904..0000000
--- a/.next/static/webpack/webpack.c81c5ba568e3f3ba.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "7cec39c7e4aa49e7"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.cbda6c3666c270dc.hot-update.js b/.next/static/webpack/webpack.cbda6c3666c270dc.hot-update.js
deleted file mode 100644
index 660e3bb..0000000
--- a/.next/static/webpack/webpack.cbda6c3666c270dc.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "87786bf095dfd3fe"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.d057380e3b8a78a0.hot-update.js b/.next/static/webpack/webpack.d057380e3b8a78a0.hot-update.js
deleted file mode 100644
index 738f0ff..0000000
--- a/.next/static/webpack/webpack.d057380e3b8a78a0.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "0422c1777ea6729c"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.d42e0c8c45a81c3a.hot-update.js b/.next/static/webpack/webpack.d42e0c8c45a81c3a.hot-update.js
deleted file mode 100644
index a2ce433..0000000
--- a/.next/static/webpack/webpack.d42e0c8c45a81c3a.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "e7efc7da54c7e7bb"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.0422c1777ea6729c.hot-update.js b/.next/static/webpack/webpack.d7538ff50d2d1cfd.hot-update.js
similarity index 91%
rename from .next/static/webpack/webpack.0422c1777ea6729c.hot-update.js
rename to .next/static/webpack/webpack.d7538ff50d2d1cfd.hot-update.js
index 9a46af4..8d7b3d2 100644
--- a/.next/static/webpack/webpack.0422c1777ea6729c.hot-update.js
+++ b/.next/static/webpack/webpack.d7538ff50d2d1cfd.hot-update.js
@@ -11,7 +11,7 @@ self["webpackHotUpdate_N_E"]("webpack",{},
/******/ function(__webpack_require__) { // webpackRuntimeModules
/******/ /* webpack/runtime/getFullHash */
/******/ !function() {
-/******/ __webpack_require__.h = function() { return "123e6081feae4650"; }
+/******/ __webpack_require__.h = function() { return "9d51351cbbe0e509"; }
/******/ }();
/******/
/******/ }
diff --git a/.next/static/webpack/webpack.dfb10022e50981f7.hot-update.js b/.next/static/webpack/webpack.dfb10022e50981f7.hot-update.js
deleted file mode 100644
index f182dc5..0000000
--- a/.next/static/webpack/webpack.dfb10022e50981f7.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "580f64a4930cd520"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.dffab0dd64ea971c.hot-update.js b/.next/static/webpack/webpack.dffab0dd64ea971c.hot-update.js
deleted file mode 100644
index d747915..0000000
--- a/.next/static/webpack/webpack.dffab0dd64ea971c.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "ac57d1da09eaaba0"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.e059b46eff1bf257.hot-update.js b/.next/static/webpack/webpack.e059b46eff1bf257.hot-update.js
deleted file mode 100644
index f15df00..0000000
--- a/.next/static/webpack/webpack.e059b46eff1bf257.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "470106d2483fe157"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.e7efc7da54c7e7bb.hot-update.js b/.next/static/webpack/webpack.e7efc7da54c7e7bb.hot-update.js
deleted file mode 100644
index 7ff5ac0..0000000
--- a/.next/static/webpack/webpack.e7efc7da54c7e7bb.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "469afc16cd5c06dc"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.f661c5629f8adb93.hot-update.js b/.next/static/webpack/webpack.f661c5629f8adb93.hot-update.js
deleted file mode 100644
index 548744d..0000000
--- a/.next/static/webpack/webpack.f661c5629f8adb93.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "cbda6c3666c270dc"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/static/webpack/webpack.fae79994cbbcace2.hot-update.js b/.next/static/webpack/webpack.fae79994cbbcace2.hot-update.js
deleted file mode 100644
index 25825bb..0000000
--- a/.next/static/webpack/webpack.fae79994cbbcace2.hot-update.js
+++ /dev/null
@@ -1,18 +0,0 @@
-"use strict";
-/*
- * ATTENTION: An "eval-source-map" devtool has been used.
- * This devtool is neither made for production nor for readable output files.
- * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools.
- * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/)
- * or disable the default devtool with "devtool: false".
- * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/).
- */
-self["webpackHotUpdate_N_E"]("webpack",{},
-/******/ function(__webpack_require__) { // webpackRuntimeModules
-/******/ /* webpack/runtime/getFullHash */
-/******/ !function() {
-/******/ __webpack_require__.h = function() { return "44b2c6af73f059b8"; }
-/******/ }();
-/******/
-/******/ }
-);
\ No newline at end of file
diff --git a/.next/trace b/.next/trace
index a847b79..0679a50 100644
--- a/.next/trace
+++ b/.next/trace
@@ -1,67 +1,5 @@
-[{"name":"hot-reloader","duration":24,"timestamp":472853208864,"id":3,"tags":{"version":"14.2.3","isTurbopack":false},"startTime":1764105498296,"traceId":"e274ac96b05c42d4"},{"name":"start","duration":0,"timestamp":472853209245,"id":4,"parentId":3,"tags":{},"startTime":1764105498296,"traceId":"e274ac96b05c42d4"},{"name":"get-version-info","duration":441885,"timestamp":472853209316,"id":5,"parentId":4,"tags":{},"startTime":1764105498296,"traceId":"e274ac96b05c42d4"},{"name":"clean","duration":5501,"timestamp":472853651261,"id":6,"parentId":4,"tags":{},"startTime":1764105498738,"traceId":"e274ac96b05c42d4"},{"name":"create-pages-mapping","duration":137,"timestamp":472853657785,"id":8,"parentId":7,"tags":{},"startTime":1764105498745,"traceId":"e274ac96b05c42d4"},{"name":"create-entrypoints","duration":16059,"timestamp":472853657936,"id":9,"parentId":7,"tags":{},"startTime":1764105498745,"traceId":"e274ac96b05c42d4"},{"name":"generate-webpack-config","duration":55135,"timestamp":472853674028,"id":10,"parentId":7,"tags":{},"startTime":1764105498761,"traceId":"e274ac96b05c42d4"},{"name":"get-webpack-config","duration":71455,"timestamp":472853657722,"id":7,"parentId":4,"tags":{},"startTime":1764105498745,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":433,"timestamp":472853764738,"id":12,"parentId":11,"tags":{},"startTime":1764105498852,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":335,"timestamp":472853765916,"id":14,"parentId":13,"tags":{},"startTime":1764105498853,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":8,"timestamp":472853766277,"id":16,"parentId":13,"tags":{},"startTime":1764105498853,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":56,"timestamp":472853766322,"id":17,"parentId":13,"tags":{},"startTime":1764105498853,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":8,"timestamp":472853766399,"id":18,"parentId":13,"tags":{},"startTime":1764105498853,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":4,"timestamp":472853766469,"id":19,"parentId":13,"tags":{},"startTime":1764105498853,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":243,"timestamp":472853766269,"id":15,"parentId":13,"tags":{},"startTime":1764105498853,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":38,"timestamp":472853766763,"id":20,"parentId":13,"tags":{},"startTime":1764105498854,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":62,"timestamp":472853766810,"id":21,"parentId":13,"tags":{},"startTime":1764105498854,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":190,"timestamp":472853766976,"id":22,"parentId":13,"tags":{},"startTime":1764105498854,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":22,"timestamp":472853767166,"id":23,"parentId":13,"tags":{},"startTime":1764105498854,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":31,"timestamp":472853767179,"id":24,"parentId":13,"tags":{},"startTime":1764105498854,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":107,"timestamp":472853767213,"id":25,"parentId":13,"tags":{},"startTime":1764105498854,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":466,"timestamp":472853898367,"id":27,"parentId":11,"tags":{},"startTime":1764105498985,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":689,"timestamp":472853898153,"id":26,"parentId":11,"tags":{},"startTime":1764105498985,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":133564,"timestamp":472853765846,"id":13,"parentId":11,"tags":{},"startTime":1764105498853,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":136093,"timestamp":472853763421,"id":11,"parentId":3,"tags":{"name":"client"},"startTime":1764105498850,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2663,"timestamp":472853899689,"id":28,"parentId":3,"tags":{},"startTime":1764105498987,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":632,"timestamp":472853905531,"id":30,"parentId":29,"tags":{},"startTime":1764105498992,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":13,"timestamp":472853906349,"id":32,"parentId":31,"tags":{},"startTime":1764105498993,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":472853906374,"id":34,"parentId":31,"tags":{},"startTime":1764105498993,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":20,"timestamp":472853906407,"id":35,"parentId":31,"tags":{},"startTime":1764105498993,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":472853906432,"id":36,"parentId":31,"tags":{},"startTime":1764105498993,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472853906441,"id":37,"parentId":31,"tags":{},"startTime":1764105498993,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":79,"timestamp":472853906372,"id":33,"parentId":31,"tags":{},"startTime":1764105498993,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":4,"timestamp":472853906497,"id":38,"parentId":31,"tags":{},"startTime":1764105498993,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":3,"timestamp":472853906504,"id":39,"parentId":31,"tags":{},"startTime":1764105498993,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":26,"timestamp":472853906525,"id":40,"parentId":31,"tags":{},"startTime":1764105498993,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":11,"timestamp":472853906551,"id":41,"parentId":31,"tags":{},"startTime":1764105498994,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":5,"timestamp":472853906560,"id":42,"parentId":31,"tags":{},"startTime":1764105498994,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":8,"timestamp":472853906568,"id":43,"parentId":31,"tags":{},"startTime":1764105498994,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":567,"timestamp":472853906335,"id":31,"parentId":29,"tags":{},"startTime":1764105498993,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":1843,"timestamp":472853905110,"id":29,"parentId":3,"tags":{"name":"server"},"startTime":1764105498992,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":490,"timestamp":472853906971,"id":44,"parentId":3,"tags":{},"startTime":1764105498994,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":64,"timestamp":472853908785,"id":46,"parentId":45,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":13,"timestamp":472853909078,"id":48,"parentId":47,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":472853909098,"id":50,"parentId":47,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":3,"timestamp":472853909107,"id":51,"parentId":47,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":472853909115,"id":52,"parentId":47,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472853909122,"id":53,"parentId":47,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":34,"timestamp":472853909096,"id":49,"parentId":47,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":3,"timestamp":472853909169,"id":54,"parentId":47,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":3,"timestamp":472853909176,"id":55,"parentId":47,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":21,"timestamp":472853909197,"id":56,"parentId":47,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":12,"timestamp":472853909218,"id":57,"parentId":47,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":3,"timestamp":472853909228,"id":58,"parentId":47,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":14,"timestamp":472853909233,"id":59,"parentId":47,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":407,"timestamp":472853909066,"id":47,"parentId":45,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":1187,"timestamp":472853908301,"id":45,"parentId":3,"tags":{"name":"edge-server"},"startTime":1764105498995,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":455,"timestamp":472853909502,"id":60,"parentId":3,"tags":{},"startTime":1764105498996,"traceId":"e274ac96b05c42d4"}]
-[{"name":"make","duration":94,"timestamp":472854120455,"id":65,"parentId":64,"tags":{},"startTime":1764105499207,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":15,"timestamp":472854120648,"id":67,"parentId":66,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":472854120672,"id":69,"parentId":66,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":4,"timestamp":472854120681,"id":70,"parentId":66,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":472854120692,"id":71,"parentId":66,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472854120701,"id":72,"parentId":66,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":47,"timestamp":472854120669,"id":68,"parentId":66,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":5,"timestamp":472854120771,"id":73,"parentId":66,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":4,"timestamp":472854120780,"id":74,"parentId":66,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":31,"timestamp":472854120801,"id":75,"parentId":66,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":9,"timestamp":472854120832,"id":76,"parentId":66,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":4,"timestamp":472854120839,"id":77,"parentId":66,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":7,"timestamp":472854120846,"id":78,"parentId":66,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":61,"timestamp":472854120941,"id":80,"parentId":64,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":87,"timestamp":472854120917,"id":79,"parentId":64,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":437,"timestamp":472854120627,"id":66,"parentId":64,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":993,"timestamp":472854120087,"id":64,"parentId":61,"tags":{"name":"client"},"startTime":1764105499207,"traceId":"e274ac96b05c42d4"},{"name":"setup-dev-bundler","duration":1022472,"timestamp":472853120524,"id":2,"parentId":1,"tags":{},"startTime":1764105498207,"traceId":"e274ac96b05c42d4"},{"name":"run-instrumentation-hook","duration":25,"timestamp":472854152884,"id":82,"parentId":1,"tags":{},"startTime":1764105499240,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":32209,"timestamp":472854121092,"id":81,"parentId":61,"tags":{},"startTime":1764105499208,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":35873,"timestamp":472854117844,"id":61,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764105499205,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":89,"timestamp":472854154549,"id":84,"parentId":83,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":22,"timestamp":472854154717,"id":86,"parentId":85,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":472854154746,"id":88,"parentId":85,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":19,"timestamp":472854154754,"id":89,"parentId":85,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":472854154778,"id":90,"parentId":85,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472854154786,"id":91,"parentId":85,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":53,"timestamp":472854154744,"id":87,"parentId":85,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":3,"timestamp":472854154839,"id":92,"parentId":85,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":3,"timestamp":472854154846,"id":93,"parentId":85,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":20,"timestamp":472854154862,"id":94,"parentId":85,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":14,"timestamp":472854154883,"id":95,"parentId":85,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":4,"timestamp":472854154894,"id":96,"parentId":85,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":6,"timestamp":472854154901,"id":97,"parentId":85,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":291,"timestamp":472854154704,"id":85,"parentId":83,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":723,"timestamp":472854154287,"id":83,"parentId":62,"tags":{"name":"server"},"startTime":1764105499241,"traceId":"e274ac96b05c42d4"},{"name":"start-dev-server","duration":1185481,"timestamp":472852970864,"id":1,"tags":{"cpus":"16","platform":"darwin","memory.freeMem":"9458892800","memory.totalMem":"68719476736","memory.heapSizeLimit":"34561064960","isTurbopack":false,"memory.rss":"270581760","memory.heapTotal":"128811008","memory.heapUsed":"94836216"},"startTime":1764105498058,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1702,"timestamp":472854155018,"id":98,"parentId":62,"tags":{},"startTime":1764105499242,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":38957,"timestamp":472854117921,"id":62,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764105499205,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":67,"timestamp":472854157622,"id":100,"parentId":99,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":11,"timestamp":472854157756,"id":102,"parentId":101,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":472854157774,"id":104,"parentId":101,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":10,"timestamp":472854157782,"id":105,"parentId":101,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":472854157798,"id":106,"parentId":101,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472854157806,"id":107,"parentId":101,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":43,"timestamp":472854157771,"id":103,"parentId":101,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":3,"timestamp":472854157853,"id":108,"parentId":101,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":2,"timestamp":472854157859,"id":109,"parentId":101,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":24,"timestamp":472854157874,"id":110,"parentId":101,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":8,"timestamp":472854157898,"id":111,"parentId":101,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":3,"timestamp":472854157904,"id":112,"parentId":101,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":5,"timestamp":472854157909,"id":113,"parentId":101,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":251,"timestamp":472854157742,"id":101,"parentId":99,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":566,"timestamp":472854157438,"id":99,"parentId":63,"tags":{"name":"edge-server"},"startTime":1764105499244,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":658,"timestamp":472854158016,"id":114,"parentId":63,"tags":{},"startTime":1764105499245,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-edge-server","duration":41099,"timestamp":472854117938,"id":63,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764105499205,"traceId":"e274ac96b05c42d4"}]
-[{"name":"build-module","duration":22015,"timestamp":472858568632,"id":121,"parentId":120,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!","layer":"rsc"},"startTime":1764105503656,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2226,"timestamp":472858598941,"id":127,"parentId":126,"tags":{},"startTime":1764105503686,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2334,"timestamp":472858598840,"id":126,"parentId":123,"tags":{},"startTime":1764105503686,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4575,"timestamp":472858598115,"id":123,"parentId":121,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx","layer":"rsc"},"startTime":1764105503685,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3400,"timestamp":472858599936,"id":137,"parentId":136,"tags":{},"startTime":1764105503687,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3457,"timestamp":472858599882,"id":136,"parentId":131,"tags":{},"startTime":1764105503687,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4721,"timestamp":472858599608,"id":131,"parentId":121,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/error-boundary.js","layer":"rsc"},"startTime":1764105503687,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4380,"timestamp":472858599972,"id":139,"parentId":138,"tags":{},"startTime":1764105503687,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4414,"timestamp":472858599939,"id":138,"parentId":132,"tags":{},"startTime":1764105503687,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6314,"timestamp":472858599665,"id":132,"parentId":121,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-error.js","layer":"rsc"},"startTime":1764105503687,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7180,"timestamp":472858598817,"id":125,"parentId":124,"tags":{},"startTime":1764105503686,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7620,"timestamp":472858598378,"id":124,"parentId":122,"tags":{},"startTime":1764105503685,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":9615,"timestamp":472858596902,"id":122,"parentId":121,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/page.tsx","layer":"rsc"},"startTime":1764105503684,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":7845,"timestamp":472858599847,"id":133,"parentId":128,"tags":{},"startTime":1764105503687,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":87,"timestamp":472858607718,"id":140,"parentId":128,"tags":{},"startTime":1764105503695,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9117,"timestamp":472858599081,"id":128,"parentId":121,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-kind.js","layer":"rsc"},"startTime":1764105503686,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":8335,"timestamp":472858599876,"id":135,"parentId":130,"tags":{},"startTime":1764105503687,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":69,"timestamp":472858608218,"id":141,"parentId":130,"tags":{},"startTime":1764105503695,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9426,"timestamp":472858599513,"id":130,"parentId":121,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js","layer":"ssr"},"startTime":1764105503686,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":9077,"timestamp":472858599870,"id":134,"parentId":129,"tags":{},"startTime":1764105503687,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":42,"timestamp":472858608954,"id":142,"parentId":129,"tags":{},"startTime":1764105503696,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11188,"timestamp":472858599415,"id":129,"parentId":121,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/app-render/entry-base.js","layer":"rsc"},"startTime":1764105503686,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":243,"timestamp":472858612583,"id":143,"parentId":130,"tags":{"name":"next/dist/compiled/next-server/app-page.runtime.dev.js","layer":null},"startTime":1764105503700,"traceId":"e274ac96b05c42d4"},{"name":"build-module-external","duration":14,"timestamp":472858614840,"id":146,"parentId":129,"tags":{"name":"../../client/components/static-generation-async-storage.external","layer":null},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"build-module-external","duration":5,"timestamp":472858614864,"id":147,"parentId":129,"tags":{"name":"../../client/components/request-async-storage.external","layer":null},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"build-module-external","duration":4,"timestamp":472858614917,"id":149,"parentId":129,"tags":{"name":"../../client/components/action-async-storage.external","layer":null},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1586,"timestamp":472858615165,"id":159,"parentId":158,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1620,"timestamp":472858615139,"id":158,"parentId":148,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2370,"timestamp":472858614872,"id":148,"parentId":129,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/render-from-template-context.js","layer":"rsc"},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2494,"timestamp":472858615193,"id":161,"parentId":160,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2524,"timestamp":472858615167,"id":160,"parentId":150,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3750,"timestamp":472858614924,"id":150,"parentId":129,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/search-params.js","layer":"rsc"},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3591,"timestamp":472858615106,"id":155,"parentId":154,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3647,"timestamp":472858615051,"id":154,"parentId":144,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4204,"timestamp":472858614651,"id":144,"parentId":129,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router.js","layer":"rsc"},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3627,"timestamp":472858615240,"id":163,"parentId":162,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3669,"timestamp":472858615198,"id":162,"parentId":151,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4727,"timestamp":472858614960,"id":151,"parentId":129,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/hooks-server-context.js","layer":"rsc"},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5283,"timestamp":472858615136,"id":157,"parentId":156,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5312,"timestamp":472858615109,"id":156,"parentId":145,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5793,"timestamp":472858614768,"id":145,"parentId":129,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/layout-router.js","layer":"rsc"},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5292,"timestamp":472858615284,"id":165,"parentId":164,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5334,"timestamp":472858615242,"id":164,"parentId":152,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5708,"timestamp":472858614988,"id":152,"parentId":129,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/client-page.js","layer":"rsc"},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5748,"timestamp":472858615308,"id":167,"parentId":166,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5771,"timestamp":472858615286,"id":166,"parentId":153,"tags":{},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6155,"timestamp":472858615014,"id":153,"parentId":129,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-boundary.js","layer":"rsc"},"startTime":1764105503702,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":5731,"timestamp":472858616691,"id":169,"parentId":168,"tags":{},"startTime":1764105503704,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":6554,"timestamp":472858616164,"id":168,"parentId":123,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"rsc"},"startTime":1764105503703,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":5439,"timestamp":472858617652,"id":177,"parentId":173,"tags":{},"startTime":1764105503705,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":45,"timestamp":472858623098,"id":178,"parentId":173,"tags":{},"startTime":1764105503710,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6228,"timestamp":472858617543,"id":173,"parentId":129,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/app-render/rsc/taint.js","layer":"rsc"},"startTime":1764105503704,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":6129,"timestamp":472858617648,"id":176,"parentId":172,"tags":{},"startTime":1764105503705,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":35,"timestamp":472858623782,"id":179,"parentId":172,"tags":{},"startTime":1764105503711,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6467,"timestamp":472858617489,"id":172,"parentId":129,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/app-render/rsc/postpone.js","layer":"rsc"},"startTime":1764105503704,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":6803,"timestamp":472858617643,"id":175,"parentId":171,"tags":{},"startTime":1764105503705,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":32,"timestamp":472858624451,"id":180,"parentId":171,"tags":{},"startTime":1764105503711,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7419,"timestamp":472858617424,"id":171,"parentId":129,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/app-render/rsc/preloads.js","layer":"rsc"},"startTime":1764105503704,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":7482,"timestamp":472858617629,"id":174,"parentId":170,"tags":{},"startTime":1764105503705,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":50,"timestamp":472858625117,"id":183,"parentId":170,"tags":{},"startTime":1764105503712,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":14484,"timestamp":472858617315,"id":170,"parentId":129,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/lib/patch-fetch.js","layer":"rsc"},"startTime":1764105503704,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":9647,"timestamp":472858624987,"id":182,"parentId":181,"tags":{},"startTime":1764105503712,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":51,"timestamp":472858634661,"id":184,"parentId":181,"tags":{},"startTime":1764105503722,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11412,"timestamp":472858624882,"id":181,"parentId":150,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/app-render/dynamic-rendering.js","layer":"rsc"},"startTime":1764105503712,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":2761,"timestamp":472858637489,"id":186,"parentId":185,"tags":{},"startTime":1764105503724,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":32,"timestamp":472858640259,"id":206,"parentId":185,"tags":{},"startTime":1764105503727,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3099,"timestamp":472858637365,"id":185,"parentId":131,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-loader/module-proxy.js","layer":"rsc"},"startTime":1764105503724,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":2757,"timestamp":472858638337,"id":188,"parentId":187,"tags":{},"startTime":1764105503725,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":38,"timestamp":472858641099,"id":209,"parentId":187,"tags":{},"startTime":1764105503728,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3173,"timestamp":472858638256,"id":187,"parentId":150,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js","layer":"rsc"},"startTime":1764105503725,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":2260,"timestamp":472858639202,"id":193,"parentId":189,"tags":{},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":40,"timestamp":472858641466,"id":210,"parentId":189,"tags":{},"startTime":1764105503728,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3452,"timestamp":472858638987,"id":189,"parentId":170,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/lib/trace/constants.js","layer":"rsc"},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2914,"timestamp":472858639560,"id":205,"parentId":204,"tags":{},"startTime":1764105503727,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2940,"timestamp":472858639534,"id":204,"parentId":200,"tags":{},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3353,"timestamp":472858639488,"id":200,"parentId":181,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/static-generation-bailout.js","layer":"rsc"},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":3744,"timestamp":472858639210,"id":194,"parentId":190,"tags":{},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":35,"timestamp":472858642958,"id":213,"parentId":190,"tags":{},"startTime":1764105503730,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5790,"timestamp":472858639048,"id":190,"parentId":170,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/lib/trace/tracer.js","layer":"rsc"},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":5620,"timestamp":472858639224,"id":196,"parentId":192,"tags":{},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":72,"timestamp":472858644849,"id":214,"parentId":192,"tags":{},"startTime":1764105503732,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6545,"timestamp":472858639154,"id":192,"parentId":170,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/output/log.js","layer":"rsc"},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":6488,"timestamp":472858639217,"id":195,"parentId":191,"tags":{},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":39,"timestamp":472858645709,"id":215,"parentId":191,"tags":{},"startTime":1764105503733,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7424,"timestamp":472858639102,"id":191,"parentId":170,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/lib/constants.js","layer":"rsc"},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":7036,"timestamp":472858639531,"id":203,"parentId":199,"tags":{},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":32,"timestamp":472858646572,"id":216,"parentId":199,"tags":{},"startTime":1764105503734,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7545,"timestamp":472858639438,"id":199,"parentId":181,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/lib/url.js","layer":"rsc"},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":7465,"timestamp":472858639524,"id":201,"parentId":197,"tags":{},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":34,"timestamp":472858646993,"id":217,"parentId":197,"tags":{},"startTime":1764105503734,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7784,"timestamp":472858639331,"id":197,"parentId":129,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react-server-dom-webpack-server-edge.js","layer":"rsc"},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":7593,"timestamp":472858639528,"id":202,"parentId":198,"tags":{},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":32,"timestamp":472858647124,"id":218,"parentId":198,"tags":{},"startTime":1764105503734,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7833,"timestamp":472858639385,"id":198,"parentId":132,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react-jsx-runtime.js","layer":"rsc"},"startTime":1764105503726,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":8106,"timestamp":472858640573,"id":208,"parentId":207,"tags":{},"startTime":1764105503728,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":32,"timestamp":472858648684,"id":219,"parentId":207,"tags":{},"startTime":1764105503736,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8284,"timestamp":472858640509,"id":207,"parentId":132,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react.js","layer":"rsc"},"startTime":1764105503727,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":6881,"timestamp":472858642945,"id":212,"parentId":211,"tags":{},"startTime":1764105503730,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":33,"timestamp":472858649831,"id":222,"parentId":211,"tags":{},"startTime":1764105503737,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7063,"timestamp":472858642877,"id":211,"parentId":123,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react-jsx-dev-runtime.js","layer":"rsc"},"startTime":1764105503730,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":1476,"timestamp":472858648976,"id":221,"parentId":220,"tags":{},"startTime":1764105503736,"traceId":"e274ac96b05c42d4"}]
-[{"name":"next-swc-loader","duration":32,"timestamp":472858650545,"id":225,"parentId":220,"tags":{},"startTime":1764105503737,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1828,"timestamp":472858648900,"id":220,"parentId":122,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/api/link.js","layer":"rsc"},"startTime":1764105503736,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":1274,"timestamp":472858650067,"id":224,"parentId":223,"tags":{},"startTime":1764105503737,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":35,"timestamp":472858651345,"id":226,"parentId":223,"tags":{},"startTime":1764105503738,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2186,"timestamp":472858649987,"id":223,"parentId":192,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/lib/picocolors.js","layer":"rsc"},"startTime":1764105503737,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1856,"timestamp":472858652994,"id":229,"parentId":228,"tags":{},"startTime":1764105503740,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1891,"timestamp":472858652965,"id":228,"parentId":227,"tags":{},"startTime":1764105503740,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2208,"timestamp":472858652876,"id":227,"parentId":220,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/link.js","layer":"rsc"},"startTime":1764105503740,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":1369,"timestamp":472858654072,"id":231,"parentId":230,"tags":{},"startTime":1764105503741,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":41,"timestamp":472858655447,"id":236,"parentId":230,"tags":{},"startTime":1764105503742,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1590,"timestamp":472858653984,"id":230,"parentId":171,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/rsc/react-dom.js","layer":"rsc"},"startTime":1764105503741,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":1170,"timestamp":472858654410,"id":233,"parentId":232,"tags":{},"startTime":1764105503741,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":31,"timestamp":472858655583,"id":237,"parentId":232,"tags":{},"startTime":1764105503743,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1760,"timestamp":472858654136,"id":232,"parentId":132,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/@swc/helpers/esm/_interop_require_default.js","layer":"rsc"},"startTime":1764105503741,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":1281,"timestamp":472858654800,"id":235,"parentId":234,"tags":{},"startTime":1764105503742,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":42,"timestamp":472858656084,"id":238,"parentId":234,"tags":{},"startTime":1764105503743,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7729,"timestamp":472858654736,"id":234,"parentId":190,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@opentelemetry/api/index.js","layer":"rsc"},"startTime":1764105503742,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":112311,"timestamp":472858552036,"id":120,"parentId":119,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105503639,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":1253,"timestamp":472858672413,"id":243,"parentId":118,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=true!","layer":"ssr"},"startTime":1764105503759,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":92,"timestamp":472858673680,"id":244,"parentId":118,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=true!","layer":"ssr"},"startTime":1764105503761,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":1924,"timestamp":472858673780,"id":245,"parentId":118,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=true!","layer":"ssr"},"startTime":1764105503761,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3615,"timestamp":472858679434,"id":260,"parentId":259,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3637,"timestamp":472858679419,"id":259,"parentId":249,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4375,"timestamp":472858679197,"id":249,"parentId":245,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/client-page.js","layer":"ssr"},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4208,"timestamp":472858679388,"id":254,"parentId":253,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4304,"timestamp":472858679293,"id":253,"parentId":246,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5957,"timestamp":472858678244,"id":246,"parentId":245,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/error-boundary.js","layer":"ssr"},"startTime":1764105503765,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4767,"timestamp":472858679454,"id":264,"parentId":263,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4776,"timestamp":472858679445,"id":263,"parentId":251,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5430,"timestamp":472858679246,"id":251,"parentId":245,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-boundary.js","layer":"ssr"},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5225,"timestamp":472858679463,"id":266,"parentId":265,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5234,"timestamp":472858679455,"id":265,"parentId":252,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5604,"timestamp":472858679268,"id":252,"parentId":245,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/render-from-template-context.js","layer":"ssr"},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5509,"timestamp":472858679407,"id":256,"parentId":255,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5525,"timestamp":472858679391,"id":255,"parentId":247,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7378,"timestamp":472858679129,"id":247,"parentId":243,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/link.js","layer":"ssr"},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7095,"timestamp":472858679444,"id":262,"parentId":261,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7104,"timestamp":472858679436,"id":261,"parentId":250,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8701,"timestamp":472858679220,"id":250,"parentId":245,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/layout-router.js","layer":"ssr"},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8542,"timestamp":472858679418,"id":258,"parentId":257,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8553,"timestamp":472858679408,"id":257,"parentId":248,"tags":{},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10444,"timestamp":472858679169,"id":248,"parentId":245,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router.js","layer":"ssr"},"startTime":1764105503766,"traceId":"e274ac96b05c42d4"},{"name":"build-module-external","duration":37,"timestamp":472858694005,"id":267,"parentId":246,"tags":{"name":"./static-generation-async-storage.external","layer":null},"startTime":1764105503781,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":64,"timestamp":472858694376,"id":270,"parentId":269,"tags":{},"startTime":1764105503781,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":36,"timestamp":472858694447,"id":273,"parentId":269,"tags":{},"startTime":1764105503781,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":601,"timestamp":472858694142,"id":269,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/@swc/helpers/esm/_interop_require_default.js","layer":"ssr"},"startTime":1764105503781,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1714,"timestamp":472858694403,"id":272,"parentId":271,"tags":{},"startTime":1764105503781,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1739,"timestamp":472858694380,"id":271,"parentId":268,"tags":{},"startTime":1764105503781,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2467,"timestamp":472858694053,"id":268,"parentId":249,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/search-params.js","layer":"ssr"},"startTime":1764105503781,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":186,"timestamp":472858698478,"id":332,"parentId":322,"tags":{},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":218,"timestamp":472858698485,"id":333,"parentId":323,"tags":{},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":58,"timestamp":472858698671,"id":350,"parentId":322,"tags":{},"startTime":1764105503786,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":25,"timestamp":472858698705,"id":351,"parentId":323,"tags":{},"startTime":1764105503786,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1258,"timestamp":472858698197,"id":322,"parentId":268,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/app-render/dynamic-rendering.js","layer":"ssr"},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1355,"timestamp":472858698298,"id":323,"parentId":268,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js","layer":"ssr"},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2686,"timestamp":472858696989,"id":293,"parentId":292,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2696,"timestamp":472858696980,"id":292,"parentId":275,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3238,"timestamp":472858696688,"id":275,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/add-locale.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2934,"timestamp":472858697004,"id":297,"parentId":296,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2941,"timestamp":472858696998,"id":296,"parentId":277,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3455,"timestamp":472858696722,"id":277,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/get-domain-locale.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3212,"timestamp":472858696978,"id":291,"parentId":290,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3259,"timestamp":472858696933,"id":290,"parentId":274,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4366,"timestamp":472858696633,"id":274,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/resolve-href.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4040,"timestamp":472858696997,"id":295,"parentId":294,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4048,"timestamp":472858696990,"id":294,"parentId":276,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4832,"timestamp":472858696706,"id":276,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/use-intersection.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4547,"timestamp":472858697010,"id":299,"parentId":298,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4554,"timestamp":472858697005,"id":298,"parentId":278,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5163,"timestamp":472858696736,"id":278,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/add-base-path.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4893,"timestamp":472858697017,"id":301,"parentId":300,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4900,"timestamp":472858697011,"id":300,"parentId":279,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5380,"timestamp":472858696750,"id":279,"parentId":248,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/remove-base-path.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5115,"timestamp":472858697023,"id":303,"parentId":302,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5121,"timestamp":472858697018,"id":302,"parentId":280,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5556,"timestamp":472858696765,"id":280,"parentId":248,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/has-base-path.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6435,"timestamp":472858697049,"id":311,"parentId":310,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6442,"timestamp":472858697044,"id":310,"parentId":284,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6808,"timestamp":472858696821,"id":284,"parentId":250,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/unresolved-thenable.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6596,"timestamp":472858697043,"id":309,"parentId":308,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6602,"timestamp":472858697037,"id":308,"parentId":283,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7025,"timestamp":472858696808,"id":283,"parentId":251,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6809,"timestamp":472858697037,"id":307,"parentId":306,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6816,"timestamp":472858697031,"id":306,"parentId":282,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7190,"timestamp":472858696795,"id":282,"parentId":246,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/is-next-router-error.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6967,"timestamp":472858697030,"id":305,"parentId":304,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6974,"timestamp":472858697024,"id":304,"parentId":281,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7607,"timestamp":472858696781,"id":281,"parentId":246,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/navigation.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7340,"timestamp":472858697055,"id":313,"parentId":312,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7346,"timestamp":472858697050,"id":312,"parentId":285,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7763,"timestamp":472858696834,"id":285,"parentId":250,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/match-segments.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7546,"timestamp":472858697061,"id":315,"parentId":314,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7552,"timestamp":472858697056,"id":314,"parentId":286,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8064,"timestamp":472858696850,"id":286,"parentId":250,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/redirect-boundary.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8013,"timestamp":472858697074,"id":319,"parentId":318,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8031,"timestamp":472858697068,"id":318,"parentId":288,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8488,"timestamp":472858696874,"id":288,"parentId":248,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router-announcer.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8289,"timestamp":472858697080,"id":321,"parentId":320,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8295,"timestamp":472858697074,"id":320,"parentId":289,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8644,"timestamp":472858696886,"id":289,"parentId":248,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router-headers.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8475,"timestamp":472858697067,"id":317,"parentId":316,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"}]
-[{"name":"next-swc-loader","duration":8606,"timestamp":472858697062,"id":316,"parentId":287,"tags":{},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9206,"timestamp":472858696862,"id":287,"parentId":248,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/use-reducer-with-devtools.js","layer":"ssr"},"startTime":1764105503784,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7566,"timestamp":472858698510,"id":335,"parentId":334,"tags":{},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7588,"timestamp":472858698488,"id":334,"parentId":324,"tags":{},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7948,"timestamp":472858698344,"id":324,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js","layer":"ssr"},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7764,"timestamp":472858698535,"id":341,"parentId":340,"tags":{},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7770,"timestamp":472858698529,"id":340,"parentId":327,"tags":{},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8004,"timestamp":472858698400,"id":327,"parentId":248,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/create-href-from-url.js","layer":"ssr"},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7882,"timestamp":472858698528,"id":339,"parentId":338,"tags":{},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7889,"timestamp":472858698522,"id":338,"parentId":326,"tags":{},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8158,"timestamp":472858698384,"id":326,"parentId":250,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js","layer":"ssr"},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8000,"timestamp":472858698548,"id":345,"parentId":344,"tags":{},"startTime":1764105503786,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8006,"timestamp":472858698542,"id":344,"parentId":329,"tags":{},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8218,"timestamp":472858698432,"id":329,"parentId":250,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js","layer":"ssr"},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8102,"timestamp":472858698554,"id":347,"parentId":346,"tags":{},"startTime":1764105503786,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8108,"timestamp":472858698549,"id":346,"parentId":330,"tags":{},"startTime":1764105503786,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8366,"timestamp":472858698445,"id":330,"parentId":250,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js","layer":"ssr"},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8302,"timestamp":472858698521,"id":337,"parentId":336,"tags":{},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8312,"timestamp":472858698512,"id":336,"parentId":325,"tags":{},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8849,"timestamp":472858698368,"id":325,"parentId":250,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js","layer":"ssr"},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8685,"timestamp":472858698542,"id":343,"parentId":342,"tags":{},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8692,"timestamp":472858698536,"id":342,"parentId":328,"tags":{},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9069,"timestamp":472858698414,"id":328,"parentId":248,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js","layer":"ssr"},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":9015,"timestamp":472858698561,"id":349,"parentId":348,"tags":{},"startTime":1764105503786,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9021,"timestamp":472858698555,"id":348,"parentId":331,"tags":{},"startTime":1764105503786,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9278,"timestamp":472858698459,"id":331,"parentId":248,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js","layer":"ssr"},"startTime":1764105503785,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":194,"timestamp":472858711613,"id":355,"parentId":352,"tags":{},"startTime":1764105503799,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":38,"timestamp":472858711822,"id":360,"parentId":352,"tags":{},"startTime":1764105503799,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":875,"timestamp":472858711408,"id":352,"parentId":322,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/lib/url.js","layer":"ssr"},"startTime":1764105503798,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1930,"timestamp":472858711738,"id":359,"parentId":358,"tags":{},"startTime":1764105503799,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1945,"timestamp":472858711725,"id":358,"parentId":354,"tags":{},"startTime":1764105503799,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2379,"timestamp":472858711574,"id":354,"parentId":322,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/static-generation-bailout.js","layer":"ssr"},"startTime":1764105503799,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2242,"timestamp":472858711723,"id":357,"parentId":356,"tags":{},"startTime":1764105503799,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2282,"timestamp":472858711684,"id":356,"parentId":353,"tags":{},"startTime":1764105503799,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2709,"timestamp":472858711538,"id":353,"parentId":322,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/hooks-server-context.js","layer":"ssr"},"startTime":1764105503798,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1997,"timestamp":472858713371,"id":372,"parentId":371,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2013,"timestamp":472858713357,"id":371,"parentId":362,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2382,"timestamp":472858713158,"id":362,"parentId":248,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/segment.js","layer":"ssr"},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2167,"timestamp":472858713383,"id":374,"parentId":373,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2180,"timestamp":472858713372,"id":373,"parentId":363,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2476,"timestamp":472858713189,"id":363,"parentId":251,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/utils/warn-once.js","layer":"ssr"},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2281,"timestamp":472858713392,"id":376,"parentId":375,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2289,"timestamp":472858713384,"id":375,"parentId":364,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2614,"timestamp":472858713212,"id":364,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/is-local-url.js","layer":"ssr"},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2488,"timestamp":472858713355,"id":370,"parentId":369,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2511,"timestamp":472858713333,"id":369,"parentId":361,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3507,"timestamp":472858713100,"id":361,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/utils.js","layer":"ssr"},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3217,"timestamp":472858713414,"id":382,"parentId":381,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3224,"timestamp":472858713408,"id":381,"parentId":367,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3690,"timestamp":472858713267,"id":367,"parentId":248,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/is-bot.js","layer":"ssr"},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3794,"timestamp":472858713407,"id":380,"parentId":379,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3802,"timestamp":472858713400,"id":379,"parentId":366,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4074,"timestamp":472858713249,"id":366,"parentId":250,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/handle-smooth-scroll.js","layer":"ssr"},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3935,"timestamp":472858713399,"id":378,"parentId":377,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3943,"timestamp":472858713393,"id":377,"parentId":365,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4521,"timestamp":472858713231,"id":365,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/format-url.js","layer":"ssr"},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3626,"timestamp":472858715199,"id":393,"parentId":392,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3648,"timestamp":472858715180,"id":392,"parentId":385,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4236,"timestamp":472858714996,"id":385,"parentId":275,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/normalize-trailing-slash.js","layer":"ssr"},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4031,"timestamp":472858715211,"id":395,"parentId":394,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4042,"timestamp":472858715201,"id":394,"parentId":386,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4451,"timestamp":472858715043,"id":386,"parentId":276,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/request-idle-callback.js","layer":"ssr"},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4288,"timestamp":472858715220,"id":397,"parentId":396,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4296,"timestamp":472858715212,"id":396,"parentId":387,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4745,"timestamp":472858715066,"id":387,"parentId":274,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/querystring.js","layer":"ssr"},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4584,"timestamp":472858715236,"id":401,"parentId":400,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4591,"timestamp":472858715229,"id":400,"parentId":389,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4836,"timestamp":472858715100,"id":389,"parentId":278,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js","layer":"ssr"},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4701,"timestamp":472858715243,"id":403,"parentId":402,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4709,"timestamp":472858715236,"id":402,"parentId":390,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4924,"timestamp":472858715115,"id":390,"parentId":274,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/omit.js","layer":"ssr"},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4820,"timestamp":472858715228,"id":399,"parentId":398,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4827,"timestamp":472858715221,"id":398,"parentId":388,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5223,"timestamp":472858715083,"id":388,"parentId":274,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/interpolate-as.js","layer":"ssr"},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5156,"timestamp":472858715251,"id":405,"parentId":404,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5164,"timestamp":472858715244,"id":404,"parentId":391,"tags":{},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5395,"timestamp":472858715132,"id":391,"parentId":280,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js","layer":"ssr"},"startTime":1764105503802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7290,"timestamp":472858713422,"id":384,"parentId":383,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7298,"timestamp":472858713415,"id":383,"parentId":368,"tags":{},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8766,"timestamp":472858713285,"id":368,"parentId":248,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/app/hot-reloader-client.js","layer":"ssr"},"startTime":1764105503800,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5050,"timestamp":472858718162,"id":421,"parentId":420,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5060,"timestamp":472858718154,"id":420,"parentId":407,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5537,"timestamp":472858717879,"id":407,"parentId":281,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/navigation.react-server.js","layer":"ssr"},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5247,"timestamp":472858718177,"id":423,"parentId":422,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5261,"timestamp":472858718163,"id":422,"parentId":408,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5685,"timestamp":472858717899,"id":408,"parentId":281,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/bailout-to-client-rendering.js","layer":"ssr"},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5407,"timestamp":472858718184,"id":425,"parentId":424,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5414,"timestamp":472858718178,"id":424,"parentId":410,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5775,"timestamp":472858717951,"id":410,"parentId":325,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/app-call-server.js","layer":"ssr"},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5583,"timestamp":472858718152,"id":419,"parentId":418,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5605,"timestamp":472858718131,"id":418,"parentId":406,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6258,"timestamp":472858717832,"id":406,"parentId":282,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/redirect.js","layer":"ssr"},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5908,"timestamp":472858718191,"id":427,"parentId":426,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5920,"timestamp":472858718185,"id":426,"parentId":411,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6349,"timestamp":472858717970,"id":411,"parentId":325,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/hash.js","layer":"ssr"},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6136,"timestamp":472858718197,"id":429,"parentId":428,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6142,"timestamp":472858718191,"id":428,"parentId":412,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6812,"timestamp":472858717984,"id":412,"parentId":328,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js","layer":"ssr"},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6604,"timestamp":472858718204,"id":431,"parentId":430,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6611,"timestamp":472858718198,"id":430,"parentId":413,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7157,"timestamp":472858717998,"id":413,"parentId":328,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js","layer":"ssr"},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"}]
-[{"name":"next-swc-transform","duration":7059,"timestamp":472858718218,"id":433,"parentId":432,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7073,"timestamp":472858718204,"id":432,"parentId":414,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7586,"timestamp":472858718016,"id":414,"parentId":328,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js","layer":"ssr"},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7496,"timestamp":472858718225,"id":435,"parentId":434,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7503,"timestamp":472858718219,"id":434,"parentId":415,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8183,"timestamp":472858718030,"id":415,"parentId":328,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js","layer":"ssr"},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7994,"timestamp":472858718231,"id":437,"parentId":436,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8000,"timestamp":472858718225,"id":436,"parentId":416,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8553,"timestamp":472858718043,"id":416,"parentId":287,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/action-queue.js","layer":"ssr"},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":13224,"timestamp":472858718122,"id":417,"parentId":409,"tags":{},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":41,"timestamp":472858731356,"id":440,"parentId":409,"tags":{},"startTime":1764105503818,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":13893,"timestamp":472858717915,"id":409,"parentId":285,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/app-render/get-segment-param.js","layer":"ssr"},"startTime":1764105503805,"traceId":"e274ac96b05c42d4"},{"name":"build-module-external","duration":27,"timestamp":472858732415,"id":441,"parentId":406,"tags":{"name":"./request-async-storage.external","layer":null},"startTime":1764105503819,"traceId":"e274ac96b05c42d4"},{"name":"build-module-external","duration":5,"timestamp":472858732448,"id":442,"parentId":406,"tags":{"name":"./action-async-storage.external","layer":null},"startTime":1764105503819,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":6921,"timestamp":472858727353,"id":439,"parentId":438,"tags":{},"startTime":1764105503814,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":39,"timestamp":472858734280,"id":473,"parentId":438,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8002,"timestamp":472858726932,"id":438,"parentId":330,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/helpers/interception-routes.js","layer":"ssr"},"startTime":1764105503814,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1599,"timestamp":472858733803,"id":462,"parentId":461,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1629,"timestamp":472858733775,"id":461,"parentId":449,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2020,"timestamp":472858733551,"id":449,"parentId":385,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js","layer":"ssr"},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1766,"timestamp":472858733817,"id":464,"parentId":463,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1776,"timestamp":472858733807,"id":463,"parentId":450,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2150,"timestamp":472858733579,"id":450,"parentId":385,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/parse-path.js","layer":"ssr"},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1900,"timestamp":472858733840,"id":468,"parentId":467,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1914,"timestamp":472858733826,"id":467,"parentId":452,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2354,"timestamp":472858733617,"id":452,"parentId":388,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/route-matcher.js","layer":"ssr"},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2540,"timestamp":472858733825,"id":466,"parentId":465,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2551,"timestamp":472858733818,"id":465,"parentId":451,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3223,"timestamp":472858733594,"id":451,"parentId":368,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/shared.js","layer":"ssr"},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3507,"timestamp":472858733860,"id":472,"parentId":471,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3515,"timestamp":472858733853,"id":471,"parentId":454,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4173,"timestamp":472858733657,"id":454,"parentId":368,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/app/ReactDevOverlay.js","layer":"ssr"},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2620,"timestamp":472858735217,"id":479,"parentId":478,"tags":{},"startTime":1764105503822,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2645,"timestamp":472858735193,"id":478,"parentId":474,"tags":{},"startTime":1764105503822,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2977,"timestamp":472858735040,"id":474,"parentId":406,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/redirect-status-code.js","layer":"ssr"},"startTime":1764105503822,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4186,"timestamp":472858733852,"id":470,"parentId":469,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4198,"timestamp":472858733841,"id":469,"parentId":453,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5374,"timestamp":472858733636,"id":453,"parentId":388,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/route-regex.js","layer":"ssr"},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4319,"timestamp":472858735231,"id":481,"parentId":480,"tags":{},"startTime":1764105503822,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4332,"timestamp":472858735219,"id":480,"parentId":475,"tags":{},"startTime":1764105503822,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4806,"timestamp":472858735089,"id":475,"parentId":414,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/apply-flight-data.js","layer":"ssr"},"startTime":1764105503822,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4662,"timestamp":472858735250,"id":485,"parentId":484,"tags":{},"startTime":1764105503822,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4678,"timestamp":472858735241,"id":484,"parentId":477,"tags":{},"startTime":1764105503822,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5106,"timestamp":472858735136,"id":477,"parentId":415,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js","layer":"ssr"},"startTime":1764105503822,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5036,"timestamp":472858735240,"id":483,"parentId":482,"tags":{},"startTime":1764105503822,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5044,"timestamp":472858735232,"id":482,"parentId":476,"tags":{},"startTime":1764105503822,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5462,"timestamp":472858735113,"id":476,"parentId":416,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/router-reducer.js","layer":"ssr"},"startTime":1764105503822,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5768,"timestamp":472858737098,"id":492,"parentId":491,"tags":{},"startTime":1764105503824,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5784,"timestamp":472858737083,"id":491,"parentId":486,"tags":{},"startTime":1764105503824,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6146,"timestamp":472858736871,"id":486,"parentId":274,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/index.js","layer":"ssr"},"startTime":1764105503824,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":9380,"timestamp":472858733693,"id":456,"parentId":444,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":36,"timestamp":472858743078,"id":500,"parentId":444,"tags":{},"startTime":1764105503830,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9927,"timestamp":472858733270,"id":444,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/app-router-context.js","layer":"ssr"},"startTime":1764105503820,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":9510,"timestamp":472858733697,"id":457,"parentId":445,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":40,"timestamp":472858743211,"id":501,"parentId":445,"tags":{},"startTime":1764105503830,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9971,"timestamp":472858733336,"id":445,"parentId":248,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/hooks-client-context.js","layer":"ssr"},"startTime":1764105503820,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":9604,"timestamp":472858733707,"id":458,"parentId":446,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":27,"timestamp":472858743314,"id":502,"parentId":446,"tags":{},"startTime":1764105503830,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10007,"timestamp":472858733394,"id":446,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react.js","layer":"ssr"},"startTime":1764105503820,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":9681,"timestamp":472858733725,"id":460,"parentId":448,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":30,"timestamp":472858743412,"id":503,"parentId":448,"tags":{},"startTime":1764105503830,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9998,"timestamp":472858733509,"id":448,"parentId":250,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-dom.js","layer":"ssr"},"startTime":1764105503820,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":9841,"timestamp":472858733679,"id":455,"parentId":443,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":25,"timestamp":472858743523,"id":504,"parentId":443,"tags":{},"startTime":1764105503830,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10414,"timestamp":472858733178,"id":443,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/router-context.js","layer":"ssr"},"startTime":1764105503820,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":9874,"timestamp":472858733722,"id":459,"parentId":447,"tags":{},"startTime":1764105503821,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":24,"timestamp":472858743603,"id":505,"parentId":447,"tags":{},"startTime":1764105503831,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10220,"timestamp":472858733460,"id":447,"parentId":247,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-runtime.js","layer":"ssr"},"startTime":1764105503820,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2241,"timestamp":472858741713,"id":499,"parentId":498,"tags":{},"startTime":1764105503829,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2273,"timestamp":472858741683,"id":498,"parentId":494,"tags":{},"startTime":1764105503829,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3133,"timestamp":472858741014,"id":494,"parentId":408,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","layer":"ssr"},"startTime":1764105503828,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1140,"timestamp":472858744805,"id":519,"parentId":518,"tags":{},"startTime":1764105503832,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1154,"timestamp":472858744793,"id":518,"parentId":509,"tags":{},"startTime":1764105503832,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1791,"timestamp":472858744327,"id":509,"parentId":368,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/runtime-error-handler.js","layer":"ssr"},"startTime":1764105503831,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1353,"timestamp":472858744779,"id":515,"parentId":514,"tags":{},"startTime":1764105503832,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1365,"timestamp":472858744768,"id":514,"parentId":507,"tags":{},"startTime":1764105503832,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2152,"timestamp":472858744282,"id":507,"parentId":368,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parseStack.js","layer":"ssr"},"startTime":1764105503831,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":42,"timestamp":472858746580,"id":526,"parentId":524,"tags":{},"startTime":1764105503834,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":87,"timestamp":472858746625,"id":529,"parentId":524,"tags":{},"startTime":1764105503834,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":389,"timestamp":472858746478,"id":524,"parentId":444,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/module.compiled.js","layer":"ssr"},"startTime":1764105503833,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2090,"timestamp":472858744791,"id":517,"parentId":516,"tags":{},"startTime":1764105503832,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2102,"timestamp":472858744780,"id":516,"parentId":508,"tags":{},"startTime":1764105503832,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2912,"timestamp":472858744304,"id":508,"parentId":368,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-error-handler.js","layer":"ssr"},"startTime":1764105503831,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":10218,"timestamp":472858737063,"id":489,"parentId":487,"tags":{},"startTime":1764105503824,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":30,"timestamp":472858747285,"id":530,"parentId":487,"tags":{},"startTime":1764105503834,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10546,"timestamp":472858736900,"id":487,"parentId":368,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/dev/hot-reloader-types.js","layer":"ssr"},"startTime":1764105503824,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2697,"timestamp":472858744766,"id":513,"parentId":512,"tags":{},"startTime":1764105503832,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2719,"timestamp":472858744744,"id":512,"parentId":506,"tags":{},"startTime":1764105503832,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4311,"timestamp":472858744245,"id":506,"parentId":368,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/format-webpack-messages.js","layer":"ssr"},"startTime":1764105503831,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":11597,"timestamp":472858737071,"id":490,"parentId":488,"tags":{},"startTime":1764105503824,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":33,"timestamp":472858748676,"id":531,"parentId":488,"tags":{},"startTime":1764105503836,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11993,"timestamp":472858736939,"id":488,"parentId":368,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/dev/extract-modules-from-turbopack-message.js","layer":"ssr"},"startTime":1764105503824,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4729,"timestamp":472858744820,"id":523,"parentId":522,"tags":{},"startTime":1764105503832,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4738,"timestamp":472858744813,"id":522,"parentId":511,"tags":{},"startTime":1764105503832,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5513,"timestamp":472858744382,"id":511,"parentId":368,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js","layer":"ssr"},"startTime":1764105503831,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5112,"timestamp":472858744812,"id":521,"parentId":520,"tags":{},"startTime":1764105503832,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5119,"timestamp":472858744805,"id":520,"parentId":510,"tags":{},"startTime":1764105503832,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5915,"timestamp":472858744363,"id":510,"parentId":368,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-websocket.js","layer":"ssr"},"startTime":1764105503831,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6174,"timestamp":472858746598,"id":528,"parentId":527,"tags":{},"startTime":1764105503834,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6189,"timestamp":472858746583,"id":527,"parentId":525,"tags":{},"startTime":1764105503834,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6425,"timestamp":472858746533,"id":525,"parentId":438,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/app-paths.js","layer":"ssr"},"startTime":1764105503833,"traceId":"e274ac96b05c42d4"}]
-[{"name":"read-resource","duration":11444,"timestamp":472858741649,"id":497,"parentId":495,"tags":{},"startTime":1764105503829,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":50,"timestamp":472858753098,"id":532,"parentId":495,"tags":{},"startTime":1764105503840,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":12160,"timestamp":472858741045,"id":495,"parentId":325,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-server-dom-webpack-client-edge.js","layer":"ssr"},"startTime":1764105503828,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":11592,"timestamp":472858741638,"id":496,"parentId":493,"tags":{},"startTime":1764105503829,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":29,"timestamp":472858753233,"id":533,"parentId":493,"tags":{},"startTime":1764105503840,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":12410,"timestamp":472858740914,"id":493,"parentId":281,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/contexts/server-inserted-html.js","layer":"ssr"},"startTime":1764105503828,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1236,"timestamp":472858753851,"id":544,"parentId":543,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1259,"timestamp":472858753832,"id":543,"parentId":534,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1852,"timestamp":472858753466,"id":534,"parentId":453,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/escape-regexp.js","layer":"ssr"},"startTime":1764105503840,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1483,"timestamp":472858753861,"id":546,"parentId":545,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1492,"timestamp":472858753853,"id":545,"parentId":535,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2180,"timestamp":472858753516,"id":535,"parentId":475,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js","layer":"ssr"},"startTime":1764105503840,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2542,"timestamp":472858753878,"id":550,"parentId":549,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2552,"timestamp":472858753872,"id":549,"parentId":537,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3452,"timestamp":472858753556,"id":537,"parentId":477,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/promise-queue.js","layer":"ssr"},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3137,"timestamp":472858753889,"id":552,"parentId":551,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3149,"timestamp":472858753879,"id":551,"parentId":538,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3909,"timestamp":472858753578,"id":538,"parentId":476,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js","layer":"ssr"},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3609,"timestamp":472858753899,"id":554,"parentId":553,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3619,"timestamp":472858753890,"id":553,"parentId":539,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4319,"timestamp":472858753594,"id":539,"parentId":476,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/fast-refresh-reducer.js","layer":"ssr"},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4018,"timestamp":472858753906,"id":556,"parentId":555,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4025,"timestamp":472858753900,"id":555,"parentId":540,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4605,"timestamp":472858753609,"id":540,"parentId":476,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js","layer":"ssr"},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6232,"timestamp":472858753871,"id":548,"parentId":547,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6242,"timestamp":472858753862,"id":547,"parentId":536,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7494,"timestamp":472858753537,"id":536,"parentId":476,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js","layer":"ssr"},"startTime":1764105503840,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7128,"timestamp":472858753914,"id":558,"parentId":557,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7135,"timestamp":472858753907,"id":557,"parentId":541,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7623,"timestamp":472858753627,"id":541,"parentId":476,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js","layer":"ssr"},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5115,"timestamp":472858756141,"id":575,"parentId":574,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5127,"timestamp":472858756130,"id":574,"parentId":564,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5585,"timestamp":472858755801,"id":564,"parentId":486,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js","layer":"ssr"},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5242,"timestamp":472858756151,"id":577,"parentId":576,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5252,"timestamp":472858756142,"id":576,"parentId":565,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5749,"timestamp":472858755835,"id":565,"parentId":454,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/ShadowPortal.js","layer":"ssr"},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5469,"timestamp":472858756128,"id":573,"parentId":572,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5490,"timestamp":472858756108,"id":572,"parentId":563,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6282,"timestamp":472858755757,"id":563,"parentId":486,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js","layer":"ssr"},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8133,"timestamp":472858753922,"id":560,"parentId":559,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8141,"timestamp":472858753914,"id":559,"parentId":542,"tags":{},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8921,"timestamp":472858753652,"id":542,"parentId":476,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js","layer":"ssr"},"startTime":1764105503841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6422,"timestamp":472858756161,"id":579,"parentId":578,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6430,"timestamp":472858756154,"id":578,"parentId":566,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7005,"timestamp":472858755856,"id":566,"parentId":454,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.js","layer":"ssr"},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6681,"timestamp":472858756187,"id":585,"parentId":584,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6688,"timestamp":472858756180,"id":584,"parentId":569,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7111,"timestamp":472858755926,"id":569,"parentId":454,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/styles/Base.js","layer":"ssr"},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6866,"timestamp":472858756179,"id":583,"parentId":582,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6874,"timestamp":472858756172,"id":582,"parentId":568,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7384,"timestamp":472858755894,"id":568,"parentId":454,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/root-layout-missing-tags-error.js","layer":"ssr"},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7170,"timestamp":472858756196,"id":587,"parentId":586,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7179,"timestamp":472858756188,"id":586,"parentId":570,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7689,"timestamp":472858755944,"id":570,"parentId":454,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/styles/ComponentStyles.js","layer":"ssr"},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7436,"timestamp":472858756214,"id":589,"parentId":588,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7454,"timestamp":472858756196,"id":588,"parentId":571,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7879,"timestamp":472858755960,"id":571,"parentId":454,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/styles/CssReset.js","layer":"ssr"},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7734,"timestamp":472858756171,"id":581,"parentId":580,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7743,"timestamp":472858756162,"id":580,"parentId":567,"tags":{},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8903,"timestamp":472858755876,"id":567,"parentId":454,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.js","layer":"ssr"},"startTime":1764105503843,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":19114,"timestamp":472858755045,"id":562,"parentId":561,"tags":{},"startTime":1764105503842,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":32,"timestamp":472858774169,"id":599,"parentId":561,"tags":{},"startTime":1764105503861,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":19703,"timestamp":472858754968,"id":561,"parentId":251,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/@swc/helpers/esm/_interop_require_wildcard.js","layer":"ssr"},"startTime":1764105503842,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1920,"timestamp":472858773658,"id":594,"parentId":593,"tags":{},"startTime":1764105503861,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1945,"timestamp":472858773634,"id":593,"parentId":590,"tags":{},"startTime":1764105503861,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2392,"timestamp":472858773447,"id":590,"parentId":508,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/is-hydration-error.js","layer":"ssr"},"startTime":1764105503860,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2177,"timestamp":472858773676,"id":598,"parentId":597,"tags":{},"startTime":1764105503861,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2185,"timestamp":472858773669,"id":597,"parentId":592,"tags":{},"startTime":1764105503861,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2541,"timestamp":472858773539,"id":592,"parentId":510,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-socket-url.js","layer":"ssr"},"startTime":1764105503860,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2427,"timestamp":472858773668,"id":596,"parentId":595,"tags":{},"startTime":1764105503861,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2436,"timestamp":472858773660,"id":595,"parentId":591,"tags":{},"startTime":1764105503861,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2805,"timestamp":472858773515,"id":591,"parentId":508,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js","layer":"ssr"},"startTime":1764105503860,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":857,"timestamp":472858777229,"id":610,"parentId":609,"tags":{},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":866,"timestamp":472858777222,"id":609,"parentId":602,"tags":{},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1340,"timestamp":472858776963,"id":602,"parentId":538,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js","layer":"ssr"},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1078,"timestamp":472858777239,"id":612,"parentId":611,"tags":{},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1088,"timestamp":472858777230,"id":611,"parentId":603,"tags":{},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1494,"timestamp":472858776979,"id":603,"parentId":538,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js","layer":"ssr"},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1415,"timestamp":472858777211,"id":606,"parentId":605,"tags":{},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1436,"timestamp":472858777192,"id":605,"parentId":600,"tags":{},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1902,"timestamp":472858776908,"id":600,"parentId":535,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/invalidate-cache-by-router-state.js","layer":"ssr"},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2021,"timestamp":472858777221,"id":608,"parentId":607,"tags":{},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2031,"timestamp":472858777212,"id":607,"parentId":601,"tags":{},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2586,"timestamp":472858776945,"id":601,"parentId":538,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/handle-mutable.js","layer":"ssr"},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1950,"timestamp":472858777762,"id":622,"parentId":621,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1970,"timestamp":472858777748,"id":621,"parentId":615,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2291,"timestamp":472858777625,"id":615,"parentId":525,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","layer":"ssr"},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2160,"timestamp":472858777770,"id":624,"parentId":623,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2168,"timestamp":472858777763,"id":623,"parentId":616,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2516,"timestamp":472858777655,"id":616,"parentId":536,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js","layer":"ssr"},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2402,"timestamp":472858777778,"id":626,"parentId":625,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2410,"timestamp":472858777771,"id":625,"parentId":617,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2665,"timestamp":472858777672,"id":617,"parentId":536,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/should-hard-navigate.js","layer":"ssr"},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3101,"timestamp":472858777247,"id":614,"parentId":613,"tags":{},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3108,"timestamp":472858777240,"id":613,"parentId":604,"tags":{},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3654,"timestamp":472858776998,"id":604,"parentId":538,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js","layer":"ssr"},"startTime":1764105503864,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2632,"timestamp":472858778033,"id":636,"parentId":635,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2656,"timestamp":472858778015,"id":635,"parentId":633,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2873,"timestamp":472858777922,"id":633,"parentId":567,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/error-source.js","layer":"ssr"},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3022,"timestamp":472858777786,"id":628,"parentId":627,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3031,"timestamp":472858777778,"id":627,"parentId":618,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"}]
-[{"name":"build-module-js","duration":3466,"timestamp":472858777691,"id":618,"parentId":536,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/clear-cache-node-data-for-segment-path.js","layer":"ssr"},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4593,"timestamp":472858777801,"id":632,"parentId":631,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4601,"timestamp":472858777795,"id":631,"parentId":620,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4872,"timestamp":472858777721,"id":620,"parentId":566,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js","layer":"ssr"},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4562,"timestamp":472858778043,"id":638,"parentId":637,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4571,"timestamp":472858778035,"id":637,"parentId":634,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4819,"timestamp":472858777990,"id":634,"parentId":567,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/getErrorByType.js","layer":"ssr"},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5307,"timestamp":472858777794,"id":630,"parentId":629,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5315,"timestamp":472858777787,"id":629,"parentId":619,"tags":{},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6470,"timestamp":472858777706,"id":619,"parentId":536,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js","layer":"ssr"},"startTime":1764105503865,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2585,"timestamp":472858782219,"id":650,"parentId":649,"tags":{},"startTime":1764105503869,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2593,"timestamp":472858782212,"id":649,"parentId":642,"tags":{},"startTime":1764105503869,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3061,"timestamp":472858781918,"id":642,"parentId":570,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/styles.js","layer":"ssr"},"startTime":1764105503869,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3099,"timestamp":472858782212,"id":648,"parentId":647,"tags":{},"startTime":1764105503869,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3107,"timestamp":472858782205,"id":647,"parentId":641,"tags":{},"startTime":1764105503869,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3547,"timestamp":472858781899,"id":641,"parentId":570,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/styles.js","layer":"ssr"},"startTime":1764105503869,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3248,"timestamp":472858782204,"id":646,"parentId":645,"tags":{},"startTime":1764105503869,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3258,"timestamp":472858782195,"id":645,"parentId":640,"tags":{},"startTime":1764105503869,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3706,"timestamp":472858781878,"id":640,"parentId":570,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js","layer":"ssr"},"startTime":1764105503869,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3397,"timestamp":472858782192,"id":644,"parentId":643,"tags":{},"startTime":1764105503869,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3430,"timestamp":472858782160,"id":643,"parentId":639,"tags":{},"startTime":1764105503869,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3916,"timestamp":472858781790,"id":639,"parentId":570,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js","layer":"ssr"},"startTime":1764105503869,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2746,"timestamp":472858784510,"id":653,"parentId":652,"tags":{},"startTime":1764105503871,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2765,"timestamp":472858784493,"id":652,"parentId":651,"tags":{},"startTime":1764105503871,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3615,"timestamp":472858784295,"id":651,"parentId":567,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/component-stack-pseudo-html.js","layer":"ssr"},"startTime":1764105503871,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2881,"timestamp":472858785929,"id":658,"parentId":657,"tags":{},"startTime":1764105503873,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2895,"timestamp":472858785915,"id":657,"parentId":654,"tags":{},"startTime":1764105503873,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3198,"timestamp":472858785787,"id":654,"parentId":567,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js","layer":"ssr"},"startTime":1764105503873,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1298,"timestamp":472858789371,"id":661,"parentId":660,"tags":{},"startTime":1764105503876,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1329,"timestamp":472858789342,"id":660,"parentId":659,"tags":{},"startTime":1764105503876,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1690,"timestamp":472858789276,"id":659,"parentId":368,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/strip-ansi/index.js","layer":"ssr"},"startTime":1764105503876,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":5300,"timestamp":472858785909,"id":656,"parentId":655,"tags":{},"startTime":1764105503873,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":31,"timestamp":472858791213,"id":668,"parentId":655,"tags":{},"startTime":1764105503878,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5648,"timestamp":472858785815,"id":655,"parentId":590,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/lib/is-error.js","layer":"ssr"},"startTime":1764105503873,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1441,"timestamp":472858791066,"id":665,"parentId":664,"tags":{},"startTime":1764105503878,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1456,"timestamp":472858791052,"id":664,"parentId":662,"tags":{},"startTime":1764105503878,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1680,"timestamp":472858790988,"id":662,"parentId":510,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/dev/noop-turbopack-hmr.js","layer":"ssr"},"startTime":1764105503878,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1013,"timestamp":472858791661,"id":675,"parentId":674,"tags":{},"startTime":1764105503879,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1023,"timestamp":472858791652,"id":674,"parentId":670,"tags":{},"startTime":1764105503879,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1219,"timestamp":472858791581,"id":670,"parentId":566,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/index.js","layer":"ssr"},"startTime":1764105503879,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1574,"timestamp":472858791650,"id":673,"parentId":672,"tags":{},"startTime":1764105503879,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1588,"timestamp":472858791637,"id":672,"parentId":669,"tags":{},"startTime":1764105503879,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1797,"timestamp":472858791554,"id":669,"parentId":566,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js","layer":"ssr"},"startTime":1764105503879,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2300,"timestamp":472858791076,"id":667,"parentId":666,"tags":{},"startTime":1764105503878,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2310,"timestamp":472858791067,"id":666,"parentId":663,"tags":{},"startTime":1764105503878,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3013,"timestamp":472858791019,"id":663,"parentId":634,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js","layer":"ssr"},"startTime":1764105503878,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2493,"timestamp":472858791669,"id":677,"parentId":676,"tags":{},"startTime":1764105503879,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2501,"timestamp":472858791662,"id":676,"parentId":671,"tags":{},"startTime":1764105503879,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3060,"timestamp":472858791602,"id":671,"parentId":570,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/index.js","layer":"ssr"},"startTime":1764105503879,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3143,"timestamp":472858792482,"id":680,"parentId":679,"tags":{},"startTime":1764105503879,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3161,"timestamp":472858792465,"id":679,"parentId":678,"tags":{},"startTime":1764105503879,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3367,"timestamp":472858792419,"id":678,"parentId":651,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CollapseIcon.js","layer":"ssr"},"startTime":1764105503879,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2733,"timestamp":472858793061,"id":687,"parentId":686,"tags":{},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2758,"timestamp":472858793037,"id":686,"parentId":681,"tags":{},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3011,"timestamp":472858792921,"id":681,"parentId":567,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js","layer":"ssr"},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2857,"timestamp":472858793080,"id":691,"parentId":690,"tags":{},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2865,"timestamp":472858793072,"id":690,"parentId":683,"tags":{},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3122,"timestamp":472858792974,"id":683,"parentId":566,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js","layer":"ssr"},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3129,"timestamp":472858793072,"id":689,"parentId":688,"tags":{},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3139,"timestamp":472858793063,"id":688,"parentId":682,"tags":{},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3412,"timestamp":472858792953,"id":682,"parentId":566,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js","layer":"ssr"},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3342,"timestamp":472858793089,"id":693,"parentId":692,"tags":{},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3349,"timestamp":472858793082,"id":692,"parentId":684,"tags":{},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3722,"timestamp":472858792991,"id":684,"parentId":568,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js","layer":"ssr"},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3604,"timestamp":472858793118,"id":695,"parentId":694,"tags":{},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3633,"timestamp":472858793090,"id":694,"parentId":685,"tags":{},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3852,"timestamp":472858793007,"id":685,"parentId":570,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.js","layer":"ssr"},"startTime":1764105503880,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1460,"timestamp":472858798632,"id":698,"parentId":697,"tags":{},"startTime":1764105503886,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1476,"timestamp":472858798617,"id":697,"parentId":696,"tags":{},"startTime":1764105503886,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1674,"timestamp":472858798579,"id":696,"parentId":655,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/is-plain-object.js","layer":"ssr"},"startTime":1764105503886,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":912,"timestamp":472858799776,"id":708,"parentId":707,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":922,"timestamp":472858799768,"id":707,"parentId":701,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1251,"timestamp":472858799673,"id":701,"parentId":671,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/group-stack-frames-by-framework.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1327,"timestamp":472858799782,"id":710,"parentId":709,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1334,"timestamp":472858799776,"id":709,"parentId":702,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1728,"timestamp":472858799689,"id":702,"parentId":669,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1634,"timestamp":472858799794,"id":712,"parentId":711,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1644,"timestamp":472858799784,"id":711,"parentId":703,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1983,"timestamp":472858799703,"id":703,"parentId":671,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/GroupedStackFrames.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3549,"timestamp":472858799766,"id":706,"parentId":705,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3565,"timestamp":472858799754,"id":705,"parentId":699,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4291,"timestamp":472858799599,"id":699,"parentId":670,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3404,"timestamp":472858800496,"id":728,"parentId":727,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3414,"timestamp":472858800487,"id":727,"parentId":715,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3781,"timestamp":472858800320,"id":715,"parentId":683,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3639,"timestamp":472858800476,"id":724,"parentId":723,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3651,"timestamp":472858800464,"id":723,"parentId":713,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4115,"timestamp":472858800272,"id":713,"parentId":684,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/magic-identifier.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3922,"timestamp":472858800487,"id":726,"parentId":725,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3935,"timestamp":472858800479,"id":725,"parentId":714,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4558,"timestamp":472858800303,"id":714,"parentId":681,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4347,"timestamp":472858800521,"id":734,"parentId":733,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4355,"timestamp":472858800513,"id":733,"parentId":718,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4667,"timestamp":472858800370,"id":718,"parentId":682,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4541,"timestamp":472858800505,"id":730,"parentId":729,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4549,"timestamp":472858800497,"id":729,"parentId":716,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5047,"timestamp":472858800337,"id":716,"parentId":683,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4888,"timestamp":472858800512,"id":732,"parentId":731,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4896,"timestamp":472858800506,"id":731,"parentId":717,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5344,"timestamp":472858800353,"id":717,"parentId":682,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5175,"timestamp":472858800529,"id":736,"parentId":735,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"}]
-[{"name":"next-swc-loader","duration":5281,"timestamp":472858800521,"id":735,"parentId":719,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5575,"timestamp":472858800386,"id":719,"parentId":682,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6406,"timestamp":472858800536,"id":738,"parentId":737,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6413,"timestamp":472858800530,"id":737,"parentId":720,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6659,"timestamp":472858800410,"id":720,"parentId":682,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6627,"timestamp":472858800544,"id":740,"parentId":739,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6635,"timestamp":472858800537,"id":739,"parentId":721,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6879,"timestamp":472858800424,"id":721,"parentId":685,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/styles.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6756,"timestamp":472858800553,"id":742,"parentId":741,"tags":{},"startTime":1764105503888,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6765,"timestamp":472858800545,"id":741,"parentId":722,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7031,"timestamp":472858800441,"id":722,"parentId":685,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/Toast.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":12497,"timestamp":472858801042,"id":745,"parentId":744,"tags":{},"startTime":1764105503888,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":12518,"timestamp":472858801024,"id":744,"parentId":743,"tags":{},"startTime":1764105503888,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":12783,"timestamp":472858800987,"id":743,"parentId":682,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/styles.js","layer":"ssr"},"startTime":1764105503888,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":14115,"timestamp":472858799724,"id":704,"parentId":700,"tags":{},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":32,"timestamp":472858813843,"id":746,"parentId":700,"tags":{},"startTime":1764105503901,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":14651,"timestamp":472858799620,"id":700,"parentId":507,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","layer":"ssr"},"startTime":1764105503887,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1765,"timestamp":472858817341,"id":762,"parentId":761,"tags":{},"startTime":1764105503904,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1774,"timestamp":472858817334,"id":761,"parentId":755,"tags":{},"startTime":1764105503904,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2122,"timestamp":472858817244,"id":755,"parentId":702,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js","layer":"ssr"},"startTime":1764105503904,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2145,"timestamp":472858817349,"id":764,"parentId":763,"tags":{},"startTime":1764105503904,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2153,"timestamp":472858817342,"id":763,"parentId":756,"tags":{},"startTime":1764105503904,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2455,"timestamp":472858817263,"id":756,"parentId":703,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js","layer":"ssr"},"startTime":1764105503904,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2397,"timestamp":472858817333,"id":760,"parentId":759,"tags":{},"startTime":1764105503904,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2406,"timestamp":472858817324,"id":759,"parentId":754,"tags":{},"startTime":1764105503904,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2729,"timestamp":472858817213,"id":754,"parentId":703,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/icons/FrameworkIcon.js","layer":"ssr"},"startTime":1764105503904,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":3705,"timestamp":472858816242,"id":750,"parentId":747,"tags":{},"startTime":1764105503903,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":28,"timestamp":472858819951,"id":771,"parentId":747,"tags":{},"startTime":1764105503907,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4069,"timestamp":472858816031,"id":747,"parentId":537,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/@swc/helpers/esm/_class_private_field_loose_base.js","layer":"ssr"},"startTime":1764105503903,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":3842,"timestamp":472858816262,"id":751,"parentId":748,"tags":{},"startTime":1764105503903,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":22,"timestamp":472858820106,"id":772,"parentId":748,"tags":{},"startTime":1764105503907,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4092,"timestamp":472858816116,"id":748,"parentId":537,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/@swc/helpers/esm/_class_private_field_loose_key.js","layer":"ssr"},"startTime":1764105503903,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":3946,"timestamp":472858816265,"id":752,"parentId":749,"tags":{},"startTime":1764105503903,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":21,"timestamp":472858820213,"id":773,"parentId":749,"tags":{},"startTime":1764105503907,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4170,"timestamp":472858816156,"id":749,"parentId":566,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js","layer":"ssr"},"startTime":1764105503903,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3331,"timestamp":472858817614,"id":770,"parentId":769,"tags":{},"startTime":1764105503905,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3340,"timestamp":472858817606,"id":769,"parentId":768,"tags":{},"startTime":1764105503905,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3472,"timestamp":472858817587,"id":768,"parentId":671,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/index.js","layer":"ssr"},"startTime":1764105503905,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3515,"timestamp":472858817557,"id":767,"parentId":766,"tags":{},"startTime":1764105503905,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3525,"timestamp":472858817547,"id":766,"parentId":765,"tags":{},"startTime":1764105503905,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3769,"timestamp":472858817515,"id":765,"parentId":699,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js","layer":"ssr"},"startTime":1764105503904,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1023,"timestamp":472858820605,"id":776,"parentId":775,"tags":{},"startTime":1764105503908,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1042,"timestamp":472858820587,"id":775,"parentId":774,"tags":{},"startTime":1764105503908,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1390,"timestamp":472858820397,"id":774,"parentId":717,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js","layer":"ssr"},"startTime":1764105503907,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":923,"timestamp":472858822511,"id":779,"parentId":778,"tags":{},"startTime":1764105503909,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":942,"timestamp":472858822495,"id":778,"parentId":777,"tags":{},"startTime":1764105503909,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1289,"timestamp":472858822452,"id":777,"parentId":756,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js","layer":"ssr"},"startTime":1764105503909,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1305,"timestamp":472858822585,"id":782,"parentId":781,"tags":{},"startTime":1764105503910,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1316,"timestamp":472858822574,"id":781,"parentId":780,"tags":{},"startTime":1764105503910,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1739,"timestamp":472858822550,"id":780,"parentId":768,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js","layer":"ssr"},"startTime":1764105503910,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":2759,"timestamp":472858823253,"id":784,"parentId":783,"tags":{},"startTime":1764105503910,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":33,"timestamp":472858826017,"id":785,"parentId":783,"tags":{},"startTime":1764105503913,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4152,"timestamp":472858823194,"id":783,"parentId":699,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/anser/index.js","layer":"ssr"},"startTime":1764105503910,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":13725,"timestamp":472858817322,"id":758,"parentId":757,"tags":{},"startTime":1764105503904,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":13760,"timestamp":472858817291,"id":757,"parentId":753,"tags":{},"startTime":1764105503904,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":18925,"timestamp":472858817179,"id":753,"parentId":702,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js","layer":"ssr"},"startTime":1764105503904,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":347,"timestamp":472858837573,"id":787,"parentId":786,"tags":{},"startTime":1764105503925,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":27,"timestamp":472858837925,"id":790,"parentId":786,"tags":{},"startTime":1764105503925,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":868,"timestamp":472858837493,"id":786,"parentId":753,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/css.escape/css.escape.js","layer":"ssr"},"startTime":1764105503924,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":652,"timestamp":472858837736,"id":789,"parentId":788,"tags":{},"startTime":1764105503925,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":53,"timestamp":472858838394,"id":791,"parentId":788,"tags":{},"startTime":1764105503925,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3353,"timestamp":472858837692,"id":788,"parentId":753,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/platform/platform.js","layer":"ssr"},"startTime":1764105503925,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":290992,"timestamp":472858550107,"id":119,"parentId":118,"tags":{},"startTime":1764105503637,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":2100,"timestamp":472858845479,"id":793,"parentId":792,"tags":{},"startTime":1764105503932,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":472858847594,"id":795,"parentId":792,"tags":{},"startTime":1764105503935,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1511,"timestamp":472858847607,"id":796,"parentId":792,"tags":{},"startTime":1764105503935,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":4,"timestamp":472858849127,"id":797,"parentId":792,"tags":{},"startTime":1764105503936,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472858849145,"id":798,"parentId":792,"tags":{},"startTime":1764105503936,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1787,"timestamp":472858847590,"id":794,"parentId":792,"tags":{},"startTime":1764105503935,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":2686,"timestamp":472858850673,"id":799,"parentId":792,"tags":{},"startTime":1764105503938,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":6187,"timestamp":472858853366,"id":800,"parentId":792,"tags":{},"startTime":1764105503940,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1928,"timestamp":472858860954,"id":801,"parentId":792,"tags":{},"startTime":1764105503948,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":118,"timestamp":472858862883,"id":802,"parentId":792,"tags":{},"startTime":1764105503950,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":33,"timestamp":472858862994,"id":803,"parentId":792,"tags":{},"startTime":1764105503950,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":26680,"timestamp":472858863032,"id":804,"parentId":792,"tags":{},"startTime":1764105503950,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":46014,"timestamp":472858845020,"id":792,"parentId":118,"tags":{},"startTime":1764105503932,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":341983,"timestamp":472858549697,"id":118,"parentId":116,"tags":{"name":"server"},"startTime":1764105503637,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":4729,"timestamp":472858891699,"id":805,"parentId":116,"tags":{},"startTime":1764105503979,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":348439,"timestamp":472858548269,"id":116,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764105503635,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":988,"timestamp":472858904240,"id":814,"parentId":810,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!","layer":"app-pages-browser"},"startTime":1764105503991,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":399,"timestamp":472858905278,"id":815,"parentId":811,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!","layer":"app-pages-browser"},"startTime":1764105503992,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":2171,"timestamp":472858905690,"id":816,"parentId":812,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!","layer":"app-pages-browser"},"startTime":1764105503993,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6623,"timestamp":472858912465,"id":832,"parentId":831,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6642,"timestamp":472858912457,"id":831,"parentId":820,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7939,"timestamp":472858912168,"id":820,"parentId":816,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/client-page.js","layer":"app-pages-browser"},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7699,"timestamp":472858912428,"id":826,"parentId":825,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7754,"timestamp":472858912373,"id":825,"parentId":817,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9526,"timestamp":472858910892,"id":817,"parentId":809,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/app-next-dev.js","layer":"app-pages-browser"},"startTime":1764105503998,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7956,"timestamp":472858912477,"id":834,"parentId":833,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7967,"timestamp":472858912466,"id":833,"parentId":821,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8836,"timestamp":472858912192,"id":821,"parentId":816,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/error-boundary.js","layer":"app-pages-browser"},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8624,"timestamp":472858912446,"id":828,"parentId":827,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8640,"timestamp":472858912430,"id":827,"parentId":818,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10170,"timestamp":472858912081,"id":818,"parentId":814,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/link.js","layer":"app-pages-browser"},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":9734,"timestamp":472858912532,"id":838,"parentId":837,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9746,"timestamp":472858912521,"id":837,"parentId":823,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10411,"timestamp":472858912288,"id":823,"parentId":816,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-boundary.js","layer":"app-pages-browser"},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10463,"timestamp":472858912541,"id":840,"parentId":839,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10472,"timestamp":472858912533,"id":839,"parentId":824,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10920,"timestamp":472858912319,"id":824,"parentId":816,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/render-from-template-context.js","layer":"app-pages-browser"},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10811,"timestamp":472858912456,"id":830,"parentId":829,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"}]
-[{"name":"next-swc-loader","duration":10927,"timestamp":472858912447,"id":829,"parentId":819,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":12515,"timestamp":472858912127,"id":819,"parentId":816,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router.js","layer":"app-pages-browser"},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":12153,"timestamp":472858912519,"id":836,"parentId":835,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":12194,"timestamp":472858912478,"id":835,"parentId":822,"tags":{},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":13344,"timestamp":472858912254,"id":822,"parentId":816,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/layout-router.js","layer":"app-pages-browser"},"startTime":1764105503999,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2300,"timestamp":472858932283,"id":880,"parentId":879,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2312,"timestamp":472858932272,"id":879,"parentId":844,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3345,"timestamp":472858931645,"id":844,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/add-locale.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2705,"timestamp":472858932299,"id":884,"parentId":883,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2712,"timestamp":472858932292,"id":883,"parentId":846,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3647,"timestamp":472858931690,"id":846,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/get-domain-locale.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3078,"timestamp":472858932271,"id":878,"parentId":877,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3102,"timestamp":472858932248,"id":877,"parentId":843,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4143,"timestamp":472858931610,"id":843,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/resolve-href.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3475,"timestamp":472858932292,"id":882,"parentId":881,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3483,"timestamp":472858932284,"id":881,"parentId":845,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4513,"timestamp":472858931666,"id":845,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/use-intersection.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3880,"timestamp":472858932306,"id":886,"parentId":885,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3887,"timestamp":472858932300,"id":885,"parentId":847,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4716,"timestamp":472858931707,"id":847,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/add-base-path.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4111,"timestamp":472858932320,"id":890,"parentId":889,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4117,"timestamp":472858932314,"id":889,"parentId":849,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4902,"timestamp":472858931741,"id":849,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/has-base-path.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5568,"timestamp":472858932313,"id":888,"parentId":887,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5575,"timestamp":472858932307,"id":887,"parentId":848,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6431,"timestamp":472858931724,"id":848,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/remove-base-path.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5816,"timestamp":472858932347,"id":898,"parentId":897,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5822,"timestamp":472858932341,"id":897,"parentId":853,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6535,"timestamp":472858931822,"id":853,"parentId":821,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/is-next-router-error.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6031,"timestamp":472858932334,"id":894,"parentId":893,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6038,"timestamp":472858932328,"id":893,"parentId":851,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6838,"timestamp":472858931784,"id":851,"parentId":820,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/search-params.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6308,"timestamp":472858932327,"id":892,"parentId":891,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6314,"timestamp":472858932321,"id":891,"parentId":850,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7329,"timestamp":472858931758,"id":850,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/utils.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6738,"timestamp":472858932354,"id":900,"parentId":899,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6745,"timestamp":472858932348,"id":899,"parentId":854,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7426,"timestamp":472858931838,"id":854,"parentId":821,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/static-generation-async-storage.external.js","layer":"shared"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6909,"timestamp":472858932361,"id":902,"parentId":901,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6915,"timestamp":472858932355,"id":901,"parentId":855,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7610,"timestamp":472858931853,"id":855,"parentId":823,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7132,"timestamp":472858932340,"id":896,"parentId":895,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7138,"timestamp":472858932334,"id":895,"parentId":852,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8053,"timestamp":472858931805,"id":852,"parentId":821,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/navigation.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7474,"timestamp":472858932390,"id":910,"parentId":909,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7482,"timestamp":472858932383,"id":909,"parentId":859,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8112,"timestamp":472858931913,"id":859,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/unresolved-thenable.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7659,"timestamp":472858932374,"id":906,"parentId":905,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7665,"timestamp":472858932368,"id":905,"parentId":857,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8445,"timestamp":472858931882,"id":857,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router-announcer.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7953,"timestamp":472858932382,"id":908,"parentId":907,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7961,"timestamp":472858932375,"id":907,"parentId":858,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8772,"timestamp":472858931897,"id":858,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/redirect-boundary.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8277,"timestamp":472858932399,"id":912,"parentId":911,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8285,"timestamp":472858932391,"id":911,"parentId":860,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8930,"timestamp":472858931935,"id":860,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/app-router-headers.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8506,"timestamp":472858932367,"id":904,"parentId":903,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8513,"timestamp":472858932361,"id":903,"parentId":856,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9375,"timestamp":472858931868,"id":856,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/use-reducer-with-devtools.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8843,"timestamp":472858932405,"id":914,"parentId":913,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8850,"timestamp":472858932399,"id":913,"parentId":861,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9450,"timestamp":472858931950,"id":861,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/segment.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8993,"timestamp":472858932412,"id":916,"parentId":915,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9000,"timestamp":472858932406,"id":915,"parentId":862,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9642,"timestamp":472858931997,"id":862,"parentId":822,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/match-segments.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":9219,"timestamp":472858932426,"id":920,"parentId":919,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9226,"timestamp":472858932420,"id":919,"parentId":864,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9767,"timestamp":472858932033,"id":864,"parentId":823,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/utils/warn-once.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":9373,"timestamp":472858932433,"id":922,"parentId":921,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9379,"timestamp":472858932427,"id":921,"parentId":865,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9936,"timestamp":472858932048,"id":865,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/create-href-from-url.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":9573,"timestamp":472858932419,"id":918,"parentId":917,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9580,"timestamp":472858932413,"id":917,"parentId":863,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10219,"timestamp":472858932017,"id":863,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/router-reducer-types.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":9787,"timestamp":472858932456,"id":928,"parentId":927,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9795,"timestamp":472858932448,"id":927,"parentId":868,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10330,"timestamp":472858932100,"id":868,"parentId":822,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10001,"timestamp":472858932440,"id":924,"parentId":923,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10008,"timestamp":472858932433,"id":923,"parentId":866,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10643,"timestamp":472858932063,"id":866,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/create-initial-router-state.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10247,"timestamp":472858932465,"id":930,"parentId":929,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10256,"timestamp":472858932457,"id":929,"parentId":869,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10752,"timestamp":472858932120,"id":869,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/is-local-url.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10399,"timestamp":472858932479,"id":934,"parentId":933,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10405,"timestamp":472858932473,"id":933,"parentId":871,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10902,"timestamp":472858932154,"id":871,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/is-bot.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10620,"timestamp":472858932447,"id":926,"parentId":925,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10626,"timestamp":472858932440,"id":925,"parentId":867,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11373,"timestamp":472858932078,"id":867,"parentId":822,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/fetch-server-response.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10972,"timestamp":472858932486,"id":936,"parentId":935,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10979,"timestamp":472858932480,"id":935,"parentId":872,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11522,"timestamp":472858932168,"id":872,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/find-head-in-cache.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":11225,"timestamp":472858932472,"id":932,"parentId":931,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":11232,"timestamp":472858932466,"id":931,"parentId":870,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11916,"timestamp":472858932139,"id":870,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/format-url.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":11563,"timestamp":472858932500,"id":940,"parentId":939,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":11569,"timestamp":472858932494,"id":939,"parentId":874,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":12211,"timestamp":472858932197,"id":874,"parentId":822,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/handle-smooth-scroll.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":11983,"timestamp":472858932507,"id":942,"parentId":941,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":11991,"timestamp":472858932500,"id":941,"parentId":875,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":12560,"timestamp":472858932213,"id":875,"parentId":822,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/get-segment-value.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"}]
-[{"name":"read-resource","duration":297,"timestamp":472858946671,"id":954,"parentId":945,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":322,"timestamp":472858946677,"id":955,"parentId":946,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2394,"timestamp":472858946973,"id":970,"parentId":945,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2367,"timestamp":472858947002,"id":971,"parentId":946,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3430,"timestamp":472858946206,"id":945,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/@swc/helpers/esm/_interop_require_default.js","layer":"app-pages-browser"},"startTime":1764105504033,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3382,"timestamp":472858946496,"id":946,"parentId":823,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/@swc/helpers/esm/_interop_require_wildcard.js","layer":"app-pages-browser"},"startTime":1764105504033,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":17384,"timestamp":472858932522,"id":944,"parentId":943,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":17403,"timestamp":472858932508,"id":943,"parentId":876,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":17999,"timestamp":472858932229,"id":876,"parentId":822,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/has-interception-route-in-current-tree.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":17772,"timestamp":472858932493,"id":938,"parentId":937,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":17778,"timestamp":472858932487,"id":937,"parentId":873,"tags":{},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":19273,"timestamp":472858932183,"id":873,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/app/hot-reloader-client.js","layer":"app-pages-browser"},"startTime":1764105504019,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4755,"timestamp":472858946820,"id":959,"parentId":958,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4766,"timestamp":472858946810,"id":958,"parentId":948,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5203,"timestamp":472858946564,"id":948,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router-context.shared-runtime.js","layer":"app-pages-browser"},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4948,"timestamp":472858946827,"id":961,"parentId":960,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4955,"timestamp":472858946820,"id":960,"parentId":949,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5386,"timestamp":472858946581,"id":949,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js","layer":"app-pages-browser"},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5139,"timestamp":472858946835,"id":963,"parentId":962,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5146,"timestamp":472858946828,"id":962,"parentId":950,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5607,"timestamp":472858946600,"id":950,"parentId":819,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/dev-root-not-found-boundary.js","layer":"app-pages-browser"},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5381,"timestamp":472858946841,"id":965,"parentId":964,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5387,"timestamp":472858946835,"id":964,"parentId":951,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5857,"timestamp":472858946617,"id":951,"parentId":817,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/app-bootstrap.js","layer":"app-pages-browser"},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5692,"timestamp":472858946851,"id":967,"parentId":966,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5702,"timestamp":472858946842,"id":966,"parentId":952,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6147,"timestamp":472858946632,"id":952,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/app-router-context.shared-runtime.js","layer":"app-pages-browser"},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5929,"timestamp":472858946857,"id":969,"parentId":968,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5935,"timestamp":472858946852,"id":968,"parentId":953,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6439,"timestamp":472858946646,"id":953,"parentId":817,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/app-webpack.js","layer":"app-pages-browser"},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6294,"timestamp":472858946809,"id":957,"parentId":956,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6315,"timestamp":472858946788,"id":956,"parentId":947,"tags":{},"startTime":1764105504034,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7288,"timestamp":472858946538,"id":947,"parentId":817,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/app-index.js","layer":"app-pages-browser"},"startTime":1764105504033,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":26722,"timestamp":472858931366,"id":842,"parentId":841,"tags":{},"startTime":1764105504018,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":29,"timestamp":472858958096,"id":996,"parentId":841,"tags":{},"startTime":1764105504045,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":27115,"timestamp":472858931240,"id":841,"parentId":808,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js","layer":"app-pages-browser"},"startTime":1764105504018,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3709,"timestamp":472858954839,"id":987,"parentId":986,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3717,"timestamp":472858954832,"id":986,"parentId":975,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4219,"timestamp":472858954557,"id":975,"parentId":843,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/omit.js","layer":"app-pages-browser"},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3980,"timestamp":472858954823,"id":983,"parentId":982,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3989,"timestamp":472858954814,"id":982,"parentId":973,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4550,"timestamp":472858954514,"id":973,"parentId":845,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/request-idle-callback.js","layer":"app-pages-browser"},"startTime":1764105504041,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4265,"timestamp":472858954812,"id":981,"parentId":980,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4282,"timestamp":472858954796,"id":980,"parentId":972,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4894,"timestamp":472858954475,"id":972,"parentId":844,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/normalize-trailing-slash.js","layer":"app-pages-browser"},"startTime":1764105504041,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4549,"timestamp":472858954831,"id":985,"parentId":984,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4556,"timestamp":472858954824,"id":984,"parentId":974,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5120,"timestamp":472858954539,"id":974,"parentId":843,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/querystring.js","layer":"app-pages-browser"},"startTime":1764105504041,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4812,"timestamp":472858954853,"id":991,"parentId":990,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4818,"timestamp":472858954847,"id":990,"parentId":977,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5232,"timestamp":472858954601,"id":977,"parentId":847,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/add-path-prefix.js","layer":"app-pages-browser"},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5040,"timestamp":472858954860,"id":993,"parentId":992,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5047,"timestamp":472858954854,"id":992,"parentId":978,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5449,"timestamp":472858954620,"id":978,"parentId":849,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/path-has-prefix.js","layer":"app-pages-browser"},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5221,"timestamp":472858954867,"id":995,"parentId":994,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5228,"timestamp":472858954861,"id":994,"parentId":979,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5609,"timestamp":472858954638,"id":979,"parentId":843,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/index.js","layer":"app-pages-browser"},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5430,"timestamp":472858954846,"id":989,"parentId":988,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5437,"timestamp":472858954839,"id":988,"parentId":976,"tags":{},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5929,"timestamp":472858954578,"id":976,"parentId":843,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/interpolate-as.js","layer":"app-pages-browser"},"startTime":1764105504042,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":335,"timestamp":472858962508,"id":1010,"parentId":999,"tags":{},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":371,"timestamp":472858962512,"id":1011,"parentId":1002,"tags":{},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":394,"timestamp":472858962513,"id":1012,"parentId":1009,"tags":{},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":735,"timestamp":472858962850,"id":1033,"parentId":999,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":701,"timestamp":472858962884,"id":1034,"parentId":1002,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":677,"timestamp":472858962909,"id":1035,"parentId":1009,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2007,"timestamp":472858962218,"id":999,"parentId":851,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/app-render/dynamic-rendering.js","layer":"app-pages-browser"},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2044,"timestamp":472858962310,"id":1002,"parentId":862,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/app-render/get-segment-param.js","layer":"app-pages-browser"},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2023,"timestamp":472858962453,"id":1009,"parentId":851,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/web/spec-extension/adapters/reflect.js","layer":"app-pages-browser"},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2192,"timestamp":472858962637,"id":1014,"parentId":1013,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2233,"timestamp":472858962597,"id":1013,"parentId":997,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3003,"timestamp":472858962099,"id":997,"parentId":867,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/app-call-server.js","layer":"app-pages-browser"},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2447,"timestamp":472858962664,"id":1020,"parentId":1019,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2454,"timestamp":472858962657,"id":1019,"parentId":1001,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3015,"timestamp":472858962289,"id":1001,"parentId":852,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/bailout-to-client-rendering.js","layer":"app-pages-browser"},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2656,"timestamp":472858962656,"id":1018,"parentId":1017,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2664,"timestamp":472858962649,"id":1017,"parentId":1000,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3289,"timestamp":472858962266,"id":1000,"parentId":852,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/navigation.react-server.js","layer":"app-pages-browser"},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2916,"timestamp":472858962648,"id":1016,"parentId":1015,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2926,"timestamp":472858962639,"id":1015,"parentId":998,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3754,"timestamp":472858962192,"id":998,"parentId":853,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/redirect.js","layer":"app-pages-browser"},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3283,"timestamp":472858962671,"id":1022,"parentId":1021,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3290,"timestamp":472858962665,"id":1021,"parentId":1003,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3826,"timestamp":472858962344,"id":1003,"parentId":867,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/hash.js","layer":"app-pages-browser"},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":324,"timestamp":472858966844,"id":1050,"parentId":1036,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":349,"timestamp":472858966848,"id":1051,"parentId":1038,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":372,"timestamp":472858966849,"id":1052,"parentId":1040,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":879,"timestamp":472858967171,"id":1075,"parentId":1036,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":854,"timestamp":472858967198,"id":1076,"parentId":1038,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":829,"timestamp":472858967223,"id":1077,"parentId":1040,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1726,"timestamp":472858966466,"id":1036,"parentId":947,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/dev/hot-reloader-types.js","layer":"app-pages-browser"},"startTime":1764105504053,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1783,"timestamp":472858966563,"id":1038,"parentId":873,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/dev/extract-modules-from-turbopack-message.js","layer":"app-pages-browser"},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1962,"timestamp":472858966624,"id":1040,"parentId":876,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/helpers/interception-routes.js","layer":"app-pages-browser"},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5928,"timestamp":472858962678,"id":1024,"parentId":1023,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5935,"timestamp":472858962672,"id":1023,"parentId":1004,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6627,"timestamp":472858962359,"id":1004,"parentId":856,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/action-queue.js","layer":"app-pages-browser"},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6321,"timestamp":472858962685,"id":1026,"parentId":1025,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6328,"timestamp":472858962679,"id":1025,"parentId":1005,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7018,"timestamp":472858962379,"id":1005,"parentId":866,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/fill-lazy-items-till-leaf-with-head.js","layer":"app-pages-browser"},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7019,"timestamp":472858962692,"id":1028,"parentId":1027,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7026,"timestamp":472858962686,"id":1027,"parentId":1006,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"}]
-[{"name":"build-module-js","duration":7769,"timestamp":472858962398,"id":1006,"parentId":866,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/compute-changed-path.js","layer":"app-pages-browser"},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7789,"timestamp":472858962699,"id":1030,"parentId":1029,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7796,"timestamp":472858962693,"id":1029,"parentId":1007,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8568,"timestamp":472858962417,"id":1007,"parentId":866,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/prefetch-cache-utils.js","layer":"app-pages-browser"},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8290,"timestamp":472858962708,"id":1032,"parentId":1031,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8298,"timestamp":472858962700,"id":1031,"parentId":1008,"tags":{},"startTime":1764105504050,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8886,"timestamp":472858962433,"id":1008,"parentId":866,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/refetch-inactive-parallel-segments.js","layer":"app-pages-browser"},"startTime":1764105504049,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4355,"timestamp":472858966974,"id":1060,"parentId":1059,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4362,"timestamp":472858966968,"id":1059,"parentId":1042,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4887,"timestamp":472858966684,"id":1042,"parentId":947,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/get-socket-url.js","layer":"app-pages-browser"},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4611,"timestamp":472858966967,"id":1058,"parentId":1057,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4618,"timestamp":472858966960,"id":1057,"parentId":1041,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5181,"timestamp":472858966662,"id":1041,"parentId":947,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/hydration-error-info.js","layer":"app-pages-browser"},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4908,"timestamp":472858966946,"id":1054,"parentId":1053,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4926,"timestamp":472858966928,"id":1053,"parentId":1037,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5618,"timestamp":472858966529,"id":1037,"parentId":947,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/shared.js","layer":"app-pages-browser"},"startTime":1764105504053,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5198,"timestamp":472858966959,"id":1056,"parentId":1055,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5209,"timestamp":472858966948,"id":1055,"parentId":1039,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5881,"timestamp":472858966604,"id":1039,"parentId":947,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/app/ReactDevOverlay.js","layer":"app-pages-browser"},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5490,"timestamp":472858967003,"id":1068,"parentId":1067,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5496,"timestamp":472858966997,"id":1067,"parentId":1046,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5890,"timestamp":472858966760,"id":1046,"parentId":873,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/runtime-error-handler.js","layer":"app-pages-browser"},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5670,"timestamp":472858966989,"id":1064,"parentId":1063,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5677,"timestamp":472858966982,"id":1063,"parentId":1044,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6227,"timestamp":472858966722,"id":1044,"parentId":873,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parseStack.js","layer":"app-pages-browser"},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":9271,"timestamp":472858966996,"id":1066,"parentId":1065,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9280,"timestamp":472858966990,"id":1065,"parentId":1045,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10084,"timestamp":472858966741,"id":1045,"parentId":873,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-error-handler.js","layer":"app-pages-browser"},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":9860,"timestamp":472858966982,"id":1062,"parentId":1061,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9867,"timestamp":472858966975,"id":1061,"parentId":1043,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10785,"timestamp":472858966703,"id":1043,"parentId":873,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/format-webpack-messages.js","layer":"app-pages-browser"},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10482,"timestamp":472858967017,"id":1072,"parentId":1071,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10489,"timestamp":472858967011,"id":1071,"parentId":1048,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11062,"timestamp":472858966798,"id":1048,"parentId":873,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/parse-component-stack.js","layer":"app-pages-browser"},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10843,"timestamp":472858967042,"id":1074,"parentId":1073,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10867,"timestamp":472858967018,"id":1073,"parentId":1049,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11328,"timestamp":472858966817,"id":1049,"parentId":873,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/strip-ansi/index.js","layer":"app-pages-browser"},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":11147,"timestamp":472858967010,"id":1070,"parentId":1069,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":11154,"timestamp":472858967004,"id":1069,"parentId":1047,"tags":{},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11788,"timestamp":472858966775,"id":1047,"parentId":873,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-websocket.js","layer":"app-pages-browser"},"startTime":1764105504054,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4799,"timestamp":472858973946,"id":1087,"parentId":1086,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4817,"timestamp":472858973929,"id":1086,"parentId":1078,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5450,"timestamp":472858973460,"id":1078,"parentId":972,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js","layer":"app-pages-browser"},"startTime":1764105504060,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4943,"timestamp":472858973973,"id":1093,"parentId":1092,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4951,"timestamp":472858973966,"id":1092,"parentId":1081,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5543,"timestamp":472858973545,"id":1081,"parentId":979,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/is-dynamic.js","layer":"app-pages-browser"},"startTime":1764105504060,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5144,"timestamp":472858973955,"id":1089,"parentId":1088,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5153,"timestamp":472858973947,"id":1088,"parentId":1079,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5788,"timestamp":472858973505,"id":1079,"parentId":972,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/parse-path.js","layer":"app-pages-browser"},"startTime":1764105504060,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5320,"timestamp":472858973980,"id":1095,"parentId":1094,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5327,"timestamp":472858973974,"id":1094,"parentId":1082,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5931,"timestamp":472858973566,"id":1082,"parentId":976,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/route-matcher.js","layer":"app-pages-browser"},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5499,"timestamp":472858974003,"id":1099,"parentId":1098,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5514,"timestamp":472858973988,"id":1098,"parentId":1084,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6103,"timestamp":472858973600,"id":1084,"parentId":854,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/static-generation-async-storage-instance.js","layer":"shared"},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5751,"timestamp":472858973965,"id":1091,"parentId":1090,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5760,"timestamp":472858973956,"id":1090,"parentId":1080,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6645,"timestamp":472858973524,"id":1080,"parentId":979,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/sorted-routes.js","layer":"app-pages-browser"},"startTime":1764105504060,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6166,"timestamp":472858974011,"id":1101,"parentId":1100,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6173,"timestamp":472858974004,"id":1100,"parentId":1085,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6552,"timestamp":472858973808,"id":1085,"parentId":852,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/server-inserted-html.shared-runtime.js","layer":"app-pages-browser"},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6384,"timestamp":472858973988,"id":1097,"parentId":1096,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6391,"timestamp":472858973981,"id":1096,"parentId":1083,"tags":{},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7255,"timestamp":472858973582,"id":1083,"parentId":976,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/route-regex.js","layer":"app-pages-browser"},"startTime":1764105504061,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":408,"timestamp":472858983558,"id":1114,"parentId":1102,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2277,"timestamp":472858983973,"id":1134,"parentId":1102,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5097,"timestamp":472858981431,"id":1102,"parentId":999,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/lib/url.js","layer":"app-pages-browser"},"startTime":1764105504068,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3103,"timestamp":472858983734,"id":1117,"parentId":1116,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3134,"timestamp":472858983705,"id":1116,"parentId":1103,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5727,"timestamp":472858981490,"id":1103,"parentId":999,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/hooks-server-context.js","layer":"app-pages-browser"},"startTime":1764105504068,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3458,"timestamp":472858983771,"id":1123,"parentId":1122,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3466,"timestamp":472858983764,"id":1122,"parentId":1106,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5884,"timestamp":472858981577,"id":1106,"parentId":998,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/action-async-storage.external.js","layer":"shared"},"startTime":1764105504069,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3714,"timestamp":472858983753,"id":1119,"parentId":1118,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3732,"timestamp":472858983736,"id":1118,"parentId":1104,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6178,"timestamp":472858981513,"id":1104,"parentId":999,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/static-generation-bailout.js","layer":"app-pages-browser"},"startTime":1764105504068,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3934,"timestamp":472858983763,"id":1121,"parentId":1120,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3942,"timestamp":472858983755,"id":1120,"parentId":1105,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6365,"timestamp":472858981531,"id":1105,"parentId":998,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/request-async-storage.external.js","layer":"shared"},"startTime":1764105504068,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4127,"timestamp":472858983779,"id":1125,"parentId":1124,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4134,"timestamp":472858983772,"id":1124,"parentId":1107,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6497,"timestamp":472858981597,"id":1107,"parentId":998,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/redirect-status-code.js","layer":"app-pages-browser"},"startTime":1764105504069,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4323,"timestamp":472858983787,"id":1127,"parentId":1126,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4330,"timestamp":472858983780,"id":1126,"parentId":1108,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6675,"timestamp":472858981619,"id":1108,"parentId":1001,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/lazy-dynamic/bailout-to-csr.js","layer":"app-pages-browser"},"startTime":1764105504069,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4523,"timestamp":472858983794,"id":1129,"parentId":1128,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4530,"timestamp":472858983788,"id":1128,"parentId":1111,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5038,"timestamp":472858983478,"id":1111,"parentId":947,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/on-recoverable-error.js","layer":"app-pages-browser"},"startTime":1764105504070,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4713,"timestamp":472858983809,"id":1133,"parentId":1132,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4720,"timestamp":472858983802,"id":1132,"parentId":1113,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5151,"timestamp":472858983524,"id":1113,"parentId":947,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/head-manager-context.shared-runtime.js","layer":"app-pages-browser"},"startTime":1764105504070,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4887,"timestamp":472858983801,"id":1131,"parentId":1130,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4894,"timestamp":472858983795,"id":1130,"parentId":1112,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5467,"timestamp":472858983504,"id":1112,"parentId":947,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/app-link-gc.js","layer":"app-pages-browser"},"startTime":1764105504070,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":255,"timestamp":472858989763,"id":1147,"parentId":1146,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":478,"timestamp":472858990022,"id":1170,"parentId":1146,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1159,"timestamp":472858989722,"id":1146,"parentId":1044,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/stacktrace-parser/stack-trace-parser.cjs.js","layer":"app-pages-browser"},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1207,"timestamp":472858989839,"id":1153,"parentId":1152,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1215,"timestamp":472858989832,"id":1152,"parentId":1137,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1732,"timestamp":472858989566,"id":1137,"parentId":1040,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/router/utils/app-paths.js","layer":"app-pages-browser"},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1477,"timestamp":472858989831,"id":1151,"parentId":1150,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"}]
-[{"name":"next-swc-loader","duration":1598,"timestamp":472858989823,"id":1150,"parentId":1136,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2146,"timestamp":472858989545,"id":1136,"parentId":1008,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/apply-flight-data.js","layer":"app-pages-browser"},"startTime":1764105504076,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1878,"timestamp":472858989822,"id":1149,"parentId":1148,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1895,"timestamp":472858989805,"id":1148,"parentId":1135,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2456,"timestamp":472858989506,"id":1135,"parentId":1004,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/router-reducer.js","layer":"app-pages-browser"},"startTime":1764105504076,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2123,"timestamp":472858989846,"id":1155,"parentId":1154,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2130,"timestamp":472858989839,"id":1154,"parentId":1138,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2619,"timestamp":472858989584,"id":1138,"parentId":1007,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/prefetch-reducer.js","layer":"app-pages-browser"},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3958,"timestamp":472858989875,"id":1163,"parentId":1162,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3966,"timestamp":472858989868,"id":1162,"parentId":1142,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4492,"timestamp":472858989657,"id":1142,"parentId":1039,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/styles/Base.js","layer":"app-pages-browser"},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4304,"timestamp":472858989854,"id":1157,"parentId":1156,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4311,"timestamp":472858989847,"id":1156,"parentId":1139,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4836,"timestamp":472858989606,"id":1139,"parentId":1039,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/ShadowPortal.js","layer":"app-pages-browser"},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4595,"timestamp":472858989861,"id":1159,"parentId":1158,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4602,"timestamp":472858989854,"id":1158,"parentId":1140,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5177,"timestamp":472858989622,"id":1140,"parentId":1039,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/BuildError.js","layer":"app-pages-browser"},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4929,"timestamp":472858989882,"id":1165,"parentId":1164,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4936,"timestamp":472858989876,"id":1164,"parentId":1143,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5407,"timestamp":472858989673,"id":1143,"parentId":1039,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/styles/ComponentStyles.js","layer":"app-pages-browser"},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5588,"timestamp":472858989889,"id":1167,"parentId":1166,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5596,"timestamp":472858989882,"id":1166,"parentId":1144,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6080,"timestamp":472858989688,"id":1144,"parentId":1039,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/styles/CssReset.js","layer":"app-pages-browser"},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5887,"timestamp":472858989896,"id":1169,"parentId":1168,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5893,"timestamp":472858989890,"id":1168,"parentId":1145,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6383,"timestamp":472858989703,"id":1145,"parentId":1039,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/root-layout-missing-tags-error.js","layer":"app-pages-browser"},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6251,"timestamp":472858989868,"id":1161,"parentId":1160,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6257,"timestamp":472858989861,"id":1160,"parentId":1141,"tags":{},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7209,"timestamp":472858989638,"id":1141,"parentId":1039,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/Errors.js","layer":"app-pages-browser"},"startTime":1764105504077,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3823,"timestamp":472858993034,"id":1181,"parentId":1180,"tags":{},"startTime":1764105504080,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3830,"timestamp":472858993027,"id":1180,"parentId":1173,"tags":{},"startTime":1764105504080,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4181,"timestamp":472858992839,"id":1173,"parentId":1047,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/dev/noop-turbopack-hmr.js","layer":"app-pages-browser"},"startTime":1764105504080,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3999,"timestamp":472858993026,"id":1179,"parentId":1178,"tags":{},"startTime":1764105504080,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4008,"timestamp":472858993018,"id":1178,"parentId":1172,"tags":{},"startTime":1764105504080,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4424,"timestamp":472858992820,"id":1172,"parentId":1045,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/is-hydration-error.js","layer":"app-pages-browser"},"startTime":1764105504080,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4232,"timestamp":472858993016,"id":1177,"parentId":1176,"tags":{},"startTime":1764105504080,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4254,"timestamp":472858992995,"id":1176,"parentId":1171,"tags":{},"startTime":1764105504080,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4635,"timestamp":472858992781,"id":1171,"parentId":1083,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/escape-regexp.js","layer":"app-pages-browser"},"startTime":1764105504080,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":20105,"timestamp":472858983562,"id":1115,"parentId":1110,"tags":{},"startTime":1764105504071,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":28,"timestamp":472859003674,"id":1182,"parentId":1110,"tags":{},"startTime":1764105504091,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":20469,"timestamp":472858983416,"id":1110,"parentId":953,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/deployment-id.js","layer":"app-pages-browser"},"startTime":1764105504070,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":255,"timestamp":472859006682,"id":1184,"parentId":1183,"tags":{},"startTime":1764105504094,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1453,"timestamp":472859018774,"id":1203,"parentId":1202,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1465,"timestamp":472859018766,"id":1202,"parentId":1187,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":13772,"timestamp":472859006747,"id":1187,"parentId":1137,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/page-path/ensure-leading-slash.js","layer":"app-pages-browser"},"startTime":1764105504094,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1766,"timestamp":472859018764,"id":1201,"parentId":1200,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1779,"timestamp":472859018752,"id":1200,"parentId":1186,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":14166,"timestamp":472859006725,"id":1186,"parentId":1136,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/fill-cache-with-new-subtree-data.js","layer":"app-pages-browser"},"startTime":1764105504094,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2154,"timestamp":472859018749,"id":1199,"parentId":1198,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2180,"timestamp":472859018723,"id":1198,"parentId":1185,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":14615,"timestamp":472859006688,"id":1185,"parentId":1138,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/promise-queue.js","layer":"app-pages-browser"},"startTime":1764105504094,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":264,"timestamp":472859021835,"id":1231,"parentId":1230,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":592,"timestamp":472859022103,"id":1256,"parentId":1230,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1059,"timestamp":472859021784,"id":1230,"parentId":1142,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/@swc/helpers/esm/_tagged_template_literal_loose.js","layer":"app-pages-browser"},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4069,"timestamp":472859018790,"id":1207,"parentId":1206,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4077,"timestamp":472859018783,"id":1206,"parentId":1189,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":16449,"timestamp":472859006781,"id":1189,"parentId":1135,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/server-patch-reducer.js","layer":"app-pages-browser"},"startTime":1764105504094,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4513,"timestamp":472859018798,"id":1209,"parentId":1208,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4521,"timestamp":472859018791,"id":1208,"parentId":1190,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":16783,"timestamp":472859006804,"id":1190,"parentId":1135,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/restore-reducer.js","layer":"app-pages-browser"},"startTime":1764105504094,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4791,"timestamp":472859018806,"id":1211,"parentId":1210,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4799,"timestamp":472859018799,"id":1210,"parentId":1191,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":17227,"timestamp":472859006821,"id":1191,"parentId":1135,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/refresh-reducer.js","layer":"app-pages-browser"},"startTime":1764105504094,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5254,"timestamp":472859018814,"id":1213,"parentId":1212,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5261,"timestamp":472859018807,"id":1212,"parentId":1192,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":17610,"timestamp":472859006838,"id":1192,"parentId":1135,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/fast-refresh-reducer.js","layer":"app-pages-browser"},"startTime":1764105504094,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":31724,"timestamp":472858992902,"id":1175,"parentId":1174,"tags":{},"startTime":1764105504080,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":32,"timestamp":472859024631,"id":1257,"parentId":1174,"tags":{},"startTime":1764105504112,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":32067,"timestamp":472858992858,"id":1174,"parentId":947,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/polyfills/polyfill-module.js","layer":"app-pages-browser"},"startTime":1764105504080,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6203,"timestamp":472859018782,"id":1205,"parentId":1204,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6210,"timestamp":472859018775,"id":1204,"parentId":1188,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":19050,"timestamp":472859006765,"id":1188,"parentId":1135,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/navigate-reducer.js","layer":"app-pages-browser"},"startTime":1764105504094,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6994,"timestamp":472859018830,"id":1217,"parentId":1216,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7002,"timestamp":472859018822,"id":1216,"parentId":1195,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":19130,"timestamp":472859006921,"id":1195,"parentId":1084,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/async-local-storage.js","layer":"shared"},"startTime":1764105504094,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7248,"timestamp":472859018822,"id":1215,"parentId":1214,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7256,"timestamp":472859018815,"id":1214,"parentId":1193,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":19752,"timestamp":472859006861,"id":1193,"parentId":1135,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/reducers/server-action-reducer.js","layer":"app-pages-browser"},"startTime":1764105504094,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4711,"timestamp":472859021913,"id":1239,"parentId":1238,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4718,"timestamp":472859021906,"id":1238,"parentId":1221,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5194,"timestamp":472859021624,"id":1221,"parentId":1143,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/styles.js","layer":"app-pages-browser"},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4922,"timestamp":472859021905,"id":1237,"parentId":1236,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4930,"timestamp":472859021898,"id":1236,"parentId":1220,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5439,"timestamp":472859021604,"id":1220,"parentId":1143,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/styles.js","layer":"app-pages-browser"},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5156,"timestamp":472859021897,"id":1235,"parentId":1234,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5164,"timestamp":472859021889,"id":1234,"parentId":1219,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5661,"timestamp":472859021575,"id":1219,"parentId":1143,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/styles.js","layer":"app-pages-browser"},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5355,"timestamp":472859021888,"id":1233,"parentId":1232,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5373,"timestamp":472859021871,"id":1232,"parentId":1218,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5937,"timestamp":472859021515,"id":1218,"parentId":1142,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/noop-template.js","layer":"app-pages-browser"},"startTime":1764105504108,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6945,"timestamp":472859021934,"id":1245,"parentId":1244,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6952,"timestamp":472859021928,"id":1244,"parentId":1224,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7372,"timestamp":472859021680,"id":1224,"parentId":1140,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/index.js","layer":"app-pages-browser"},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7116,"timestamp":472859021941,"id":1247,"parentId":1246,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7123,"timestamp":472859021935,"id":1246,"parentId":1225,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7538,"timestamp":472859021697,"id":1225,"parentId":1140,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/index.js","layer":"app-pages-browser"},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7314,"timestamp":472859021927,"id":1243,"parentId":1242,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7321,"timestamp":472859021921,"id":1242,"parentId":1223,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7792,"timestamp":472859021662,"id":1223,"parentId":1140,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/index.js","layer":"app-pages-browser"},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7540,"timestamp":472859021920,"id":1241,"parentId":1240,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7547,"timestamp":472859021913,"id":1240,"parentId":1222,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"}]
-[{"name":"build-module-js","duration":8120,"timestamp":472859021643,"id":1222,"parentId":1143,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/styles.js","layer":"app-pages-browser"},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7824,"timestamp":472859021949,"id":1249,"parentId":1248,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7831,"timestamp":472859021942,"id":1248,"parentId":1226,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8236,"timestamp":472859021714,"id":1226,"parentId":1140,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/index.js","layer":"app-pages-browser"},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8000,"timestamp":472859021956,"id":1251,"parentId":1250,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8007,"timestamp":472859021949,"id":1250,"parentId":1227,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8400,"timestamp":472859021732,"id":1227,"parentId":1143,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/index.js","layer":"app-pages-browser"},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8170,"timestamp":472859021970,"id":1255,"parentId":1254,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8177,"timestamp":472859021964,"id":1254,"parentId":1229,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":8685,"timestamp":472859021766,"id":1229,"parentId":1145,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/hot-linked-text/index.js","layer":"app-pages-browser"},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":8500,"timestamp":472859021963,"id":1253,"parentId":1252,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":8507,"timestamp":472859021957,"id":1252,"parentId":1228,"tags":{},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9119,"timestamp":472859021749,"id":1228,"parentId":1143,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/index.js","layer":"app-pages-browser"},"startTime":1764105504109,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":18778,"timestamp":472859018602,"id":1197,"parentId":1194,"tags":{},"startTime":1764105504106,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":33,"timestamp":472859037392,"id":1258,"parentId":1194,"tags":{},"startTime":1764105504124,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":30897,"timestamp":472859006877,"id":1194,"parentId":841,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/internal/helpers.js","layer":"app-pages-browser"},"startTime":1764105504094,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":356,"timestamp":472859038249,"id":1275,"parentId":1259,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":379,"timestamp":472859038251,"id":1276,"parentId":1268,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":402,"timestamp":472859038252,"id":1277,"parentId":1269,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":403,"timestamp":472859038608,"id":1304,"parentId":1259,"tags":{},"startTime":1764105504126,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":379,"timestamp":472859038633,"id":1305,"parentId":1268,"tags":{},"startTime":1764105504126,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":355,"timestamp":472859038658,"id":1306,"parentId":1269,"tags":{},"startTime":1764105504126,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1326,"timestamp":472859037869,"id":1259,"parentId":1172,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/lib/is-error.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1304,"timestamp":472859038079,"id":1268,"parentId":1185,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/@swc/helpers/esm/_class_private_field_loose_base.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1402,"timestamp":472859038113,"id":1269,"parentId":1185,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/@swc/helpers/esm/_class_private_field_loose_key.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4151,"timestamp":472859038352,"id":1279,"parentId":1278,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4181,"timestamp":472859038327,"id":1278,"parentId":1260,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5017,"timestamp":472859037929,"id":1260,"parentId":1141,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/error-source.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4601,"timestamp":472859038371,"id":1283,"parentId":1282,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4609,"timestamp":472859038363,"id":1282,"parentId":1262,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5263,"timestamp":472859037978,"id":1262,"parentId":1141,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CloseIcon.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4893,"timestamp":472859038363,"id":1281,"parentId":1280,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4903,"timestamp":472859038353,"id":1280,"parentId":1261,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5572,"timestamp":472859037959,"id":1261,"parentId":1141,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/getErrorByType.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":5151,"timestamp":472859038386,"id":1287,"parentId":1286,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":5158,"timestamp":472859038379,"id":1286,"parentId":1264,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":5703,"timestamp":472859038015,"id":1264,"parentId":1141,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/index.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":9515,"timestamp":472859038395,"id":1289,"parentId":1288,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9525,"timestamp":472859038387,"id":1288,"parentId":1265,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10160,"timestamp":472859038031,"id":1265,"parentId":1105,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/request-async-storage-instance.js","layer":"shared"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":9796,"timestamp":472859038403,"id":1291,"parentId":1290,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9804,"timestamp":472859038395,"id":1290,"parentId":1266,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10327,"timestamp":472859038047,"id":1266,"parentId":1106,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/action-async-storage-instance.js","layer":"shared"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10012,"timestamp":472859038379,"id":1285,"parentId":1284,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10020,"timestamp":472859038372,"id":1284,"parentId":1263,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10891,"timestamp":472859037998,"id":1263,"parentId":1141,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/component-stack-pseudo-html.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10484,"timestamp":472859038413,"id":1293,"parentId":1292,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10494,"timestamp":472859038404,"id":1292,"parentId":1267,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11057,"timestamp":472859038061,"id":1267,"parentId":1186,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/invalidate-cache-by-router-state.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10684,"timestamp":472859038442,"id":1301,"parentId":1300,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10691,"timestamp":472859038435,"id":1300,"parentId":1273,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11106,"timestamp":472859038202,"id":1273,"parentId":1189,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/handle-segment-mismatch.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10889,"timestamp":472859038428,"id":1297,"parentId":1296,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10895,"timestamp":472859038421,"id":1296,"parentId":1271,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11344,"timestamp":472859038164,"id":1271,"parentId":1189,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/is-navigating-to-new-root-layout.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":11081,"timestamp":472859038435,"id":1299,"parentId":1298,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":11087,"timestamp":472859038428,"id":1298,"parentId":1272,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11567,"timestamp":472859038180,"id":1272,"parentId":1189,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/handle-mutable.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":11335,"timestamp":472859038420,"id":1295,"parentId":1294,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":11342,"timestamp":472859038414,"id":1294,"parentId":1270,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":11874,"timestamp":472859038148,"id":1270,"parentId":1189,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/apply-router-state-patch-to-tree.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":226249,"timestamp":472859038449,"id":1303,"parentId":1302,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":226260,"timestamp":472859038442,"id":1302,"parentId":1274,"tags":{},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":229731,"timestamp":472859038218,"id":1274,"parentId":1190,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/ppr-navigations.js","layer":"app-pages-browser"},"startTime":1764105504125,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":221502,"timestamp":472859046480,"id":1328,"parentId":1327,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":221511,"timestamp":472859046472,"id":1327,"parentId":1308,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":222563,"timestamp":472859045709,"id":1308,"parentId":1188,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/should-hard-navigate.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":221812,"timestamp":472859046470,"id":1326,"parentId":1325,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":221835,"timestamp":472859046448,"id":1325,"parentId":1307,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":222876,"timestamp":472859045641,"id":1307,"parentId":1188,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/invalidate-cache-below-flight-segmentpath.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":222037,"timestamp":472859046488,"id":1330,"parentId":1329,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":222044,"timestamp":472859046481,"id":1329,"parentId":1309,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":223028,"timestamp":472859045730,"id":1309,"parentId":1188,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/router-reducer/clear-cache-node-data-for-segment-path.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":222270,"timestamp":472859046495,"id":1332,"parentId":1331,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":222277,"timestamp":472859046489,"id":1331,"parentId":1310,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":223297,"timestamp":472859045752,"id":1310,"parentId":1229,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/magic-identifier.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":223967,"timestamp":472859046503,"id":1334,"parentId":1333,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":223975,"timestamp":472859046496,"id":1333,"parentId":1311,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":225004,"timestamp":472859045773,"id":1311,"parentId":1224,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/Overlay.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":224260,"timestamp":472859046525,"id":1340,"parentId":1339,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":224267,"timestamp":472859046518,"id":1339,"parentId":1314,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":225142,"timestamp":472859045842,"id":1314,"parentId":1223,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogBody.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":224477,"timestamp":472859046518,"id":1338,"parentId":1337,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":224484,"timestamp":472859046511,"id":1337,"parentId":1313,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":225430,"timestamp":472859045824,"id":1313,"parentId":1223,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/Dialog.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":224753,"timestamp":472859046510,"id":1336,"parentId":1335,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":224760,"timestamp":472859046504,"id":1335,"parentId":1312,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":225807,"timestamp":472859045804,"id":1312,"parentId":1225,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/Terminal.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":225067,"timestamp":472859046550,"id":1344,"parentId":1343,"tags":{},"startTime":1764105504134,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":225085,"timestamp":472859046533,"id":1343,"parentId":1316,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":225908,"timestamp":472859045878,"id":1316,"parentId":1223,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogHeader.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":225259,"timestamp":472859046532,"id":1342,"parentId":1341,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":225266,"timestamp":472859046526,"id":1341,"parentId":1315,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":226097,"timestamp":472859045860,"id":1315,"parentId":1223,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/DialogContent.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":225404,"timestamp":472859046558,"id":1346,"parentId":1345,"tags":{},"startTime":1764105504134,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":225412,"timestamp":472859046551,"id":1345,"parentId":1317,"tags":{},"startTime":1764105504134,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":226230,"timestamp":472859045910,"id":1317,"parentId":1223,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Dialog/styles.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":225579,"timestamp":472859046566,"id":1348,"parentId":1347,"tags":{},"startTime":1764105504134,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":225586,"timestamp":472859046559,"id":1347,"parentId":1318,"tags":{},"startTime":1764105504134,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":226378,"timestamp":472859045930,"id":1318,"parentId":1226,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/styles.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":225733,"timestamp":472859046580,"id":1352,"parentId":1351,"tags":{},"startTime":1764105504134,"traceId":"e274ac96b05c42d4"}]
-[{"name":"next-swc-loader","duration":225829,"timestamp":472859046574,"id":1351,"parentId":1320,"tags":{},"startTime":1764105504134,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":226605,"timestamp":472859045965,"id":1320,"parentId":1227,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/styles.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":225989,"timestamp":472859046587,"id":1354,"parentId":1353,"tags":{},"startTime":1764105504134,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":225995,"timestamp":472859046581,"id":1353,"parentId":1321,"tags":{},"startTime":1764105504134,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":226775,"timestamp":472859045981,"id":1321,"parentId":1227,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Toast/Toast.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":226208,"timestamp":472859046573,"id":1350,"parentId":1349,"tags":{},"startTime":1764105504134,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":226214,"timestamp":472859046567,"id":1349,"parentId":1319,"tags":{},"startTime":1764105504134,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":227131,"timestamp":472859045950,"id":1319,"parentId":1226,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/VersionStalenessInfo/VersionStalenessInfo.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":226491,"timestamp":472859046595,"id":1356,"parentId":1355,"tags":{},"startTime":1764105504134,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":226498,"timestamp":472859046588,"id":1355,"parentId":1322,"tags":{},"startTime":1764105504134,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":227249,"timestamp":472859045997,"id":1322,"parentId":1228,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/index.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":9445,"timestamp":472859270081,"id":1363,"parentId":1362,"tags":{},"startTime":1764105504357,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9472,"timestamp":472859270055,"id":1362,"parentId":1358,"tags":{},"startTime":1764105504357,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":9857,"timestamp":472859269912,"id":1358,"parentId":1228,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/group-stack-frames-by-framework.js","layer":"app-pages-browser"},"startTime":1764105504357,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":9686,"timestamp":472859270091,"id":1365,"parentId":1364,"tags":{},"startTime":1764105504357,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9695,"timestamp":472859270083,"id":1364,"parentId":1359,"tags":{},"startTime":1764105504357,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10058,"timestamp":472859269970,"id":1359,"parentId":1228,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/GroupedStackFrames.js","layer":"app-pages-browser"},"startTime":1764105504357,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6684,"timestamp":472859274069,"id":1370,"parentId":1369,"tags":{},"startTime":1764105504361,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6703,"timestamp":472859274052,"id":1369,"parentId":1366,"tags":{},"startTime":1764105504361,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7072,"timestamp":472859273871,"id":1366,"parentId":1259,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/shared/lib/is-plain-object.js","layer":"app-pages-browser"},"startTime":1764105504361,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6871,"timestamp":472859274087,"id":1374,"parentId":1373,"tags":{},"startTime":1764105504361,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6879,"timestamp":472859274080,"id":1373,"parentId":1368,"tags":{},"startTime":1764105504361,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7388,"timestamp":472859273927,"id":1368,"parentId":1264,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/LeftRightDialogHeader/LeftRightDialogHeader.js","layer":"app-pages-browser"},"startTime":1764105504361,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":7249,"timestamp":472859274079,"id":1372,"parentId":1371,"tags":{},"startTime":1764105504361,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":7258,"timestamp":472859274071,"id":1371,"parentId":1367,"tags":{},"startTime":1764105504361,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":7912,"timestamp":472859273907,"id":1367,"parentId":1261,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/stack-frame.js","layer":"app-pages-browser"},"startTime":1764105504361,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":236740,"timestamp":472859046335,"id":1324,"parentId":1323,"tags":{},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":237139,"timestamp":472859046030,"id":1323,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react/jsx-runtime.js","layer":"app-pages-browser"},"startTime":1764105504133,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1019,"timestamp":472859282167,"id":1377,"parentId":1376,"tags":{},"startTime":1764105504369,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1036,"timestamp":472859282150,"id":1376,"parentId":1375,"tags":{},"startTime":1764105504369,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1349,"timestamp":472859282052,"id":1375,"parentId":1263,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/icons/CollapseIcon.js","layer":"app-pages-browser"},"startTime":1764105504369,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":123,"timestamp":472859283939,"id":1390,"parentId":1383,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":69,"timestamp":472859284066,"id":1401,"parentId":1383,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1002,"timestamp":472859283862,"id":1383,"parentId":1312,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/anser/index.js","layer":"app-pages-browser"},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":123304,"timestamp":472859188636,"id":1357,"parentId":1196,"tags":{},"startTime":1764105504276,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":305493,"timestamp":472859007014,"id":1196,"parentId":1183,"tags":{},"startTime":1764105504094,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":14854,"timestamp":472859312600,"id":1402,"parentId":1183,"tags":{"astUsed":"true"},"startTime":1764105504400,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":58122,"timestamp":472859270000,"id":1361,"parentId":1360,"tags":{},"startTime":1764105504357,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":58244,"timestamp":472859269992,"id":1360,"parentId":818,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react/index.js","layer":"app-pages-browser"},"startTime":1764105504357,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":44301,"timestamp":472859283974,"id":1392,"parentId":1391,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":44316,"timestamp":472859283960,"id":1391,"parentId":1378,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":44843,"timestamp":472859283760,"id":1378,"parentId":1313,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/hooks/use-on-click-outside.js","layer":"app-pages-browser"},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":44621,"timestamp":472859283992,"id":1396,"parentId":1395,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":44629,"timestamp":472859283985,"id":1395,"parentId":1380,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":45090,"timestamp":472859283811,"id":1380,"parentId":1311,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/body-locker.js","layer":"app-pages-browser"},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":44996,"timestamp":472859284000,"id":1398,"parentId":1397,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":45003,"timestamp":472859283993,"id":1397,"parentId":1381,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":45468,"timestamp":472859283829,"id":1381,"parentId":1312,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Terminal/EditorLink.js","layer":"app-pages-browser"},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":46950,"timestamp":472859284007,"id":1400,"parentId":1399,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":46959,"timestamp":472859284001,"id":1399,"parentId":1382,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":47564,"timestamp":472859283845,"id":1382,"parentId":1322,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/CodeFrame/CodeFrame.js","layer":"app-pages-browser"},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":47613,"timestamp":472859283984,"id":1394,"parentId":1393,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":47622,"timestamp":472859283976,"id":1393,"parentId":1379,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":51888,"timestamp":472859283792,"id":1379,"parentId":1311,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/components/Overlay/maintain--tab-focus.js","layer":"app-pages-browser"},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":9704,"timestamp":472859329892,"id":1408,"parentId":1407,"tags":{},"startTime":1764105504417,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":9715,"timestamp":472859329883,"id":1407,"parentId":1404,"tags":{},"startTime":1764105504417,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10150,"timestamp":472859329794,"id":1404,"parentId":1359,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/container/RuntimeError/CallStackFrame.js","layer":"app-pages-browser"},"startTime":1764105504417,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10080,"timestamp":472859329881,"id":1406,"parentId":1405,"tags":{},"startTime":1764105504417,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10103,"timestamp":472859329858,"id":1405,"parentId":1403,"tags":{},"startTime":1764105504417,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":10510,"timestamp":472859329742,"id":1403,"parentId":1359,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/icons/FrameworkIcon.js","layer":"app-pages-browser"},"startTime":1764105504417,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":57408,"timestamp":472859283930,"id":1389,"parentId":1388,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":57562,"timestamp":472859283922,"id":1388,"parentId":947,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react-dom/client.js","layer":"app-pages-browser"},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":57585,"timestamp":472859283904,"id":1385,"parentId":1384,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":57634,"timestamp":472859283896,"id":1384,"parentId":867,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react-server-dom-webpack/client.js","layer":"app-pages-browser"},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":57621,"timestamp":472859283918,"id":1387,"parentId":1386,"tags":{},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":57731,"timestamp":472859283911,"id":1386,"parentId":822,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react-dom/index.js","layer":"app-pages-browser"},"startTime":1764105504371,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":30,"timestamp":472859341979,"id":1416,"parentId":1414,"tags":{},"startTime":1764105504429,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":84,"timestamp":472859341981,"id":1417,"parentId":1415,"tags":{},"startTime":1764105504429,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":442,"timestamp":472859342012,"id":1418,"parentId":1414,"tags":{},"startTime":1764105504429,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":387,"timestamp":472859342067,"id":1419,"parentId":1415,"tags":{},"startTime":1764105504429,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2370,"timestamp":472859341887,"id":1414,"parentId":1379,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/platform/platform.js","layer":"app-pages-browser"},"startTime":1764105504429,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2516,"timestamp":472859341938,"id":1415,"parentId":1379,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/css.escape/css.escape.js","layer":"app-pages-browser"},"startTime":1764105504429,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3813,"timestamp":472859340674,"id":1413,"parentId":1412,"tags":{},"startTime":1764105504428,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3836,"timestamp":472859340651,"id":1412,"parentId":1409,"tags":{},"startTime":1764105504428,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4231,"timestamp":472859340512,"id":1409,"parentId":1381,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/react-dev-overlay/internal/helpers/use-open-in-editor.js","layer":"app-pages-browser"},"startTime":1764105504427,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":4569,"timestamp":472859340623,"id":1411,"parentId":1410,"tags":{},"startTime":1764105504428,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":25,"timestamp":472859345196,"id":1424,"parentId":1410,"tags":{},"startTime":1764105504432,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":4721,"timestamp":472859340574,"id":1410,"parentId":841,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react-refresh/runtime.js","layer":"app-pages-browser"},"startTime":1764105504428,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":804,"timestamp":472859344943,"id":1421,"parentId":1420,"tags":{},"startTime":1764105504432,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2685,"timestamp":472859344925,"id":1420,"parentId":1323,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react/cjs/react-jsx-runtime.development.js","layer":"app-pages-browser"},"startTime":1764105504432,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":2440,"timestamp":472859345598,"id":1426,"parentId":1425,"tags":{},"startTime":1764105504433,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2524,"timestamp":472859345587,"id":1425,"parentId":1384,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react-server-dom-webpack/client.browser.js","layer":"app-pages-browser"},"startTime":1764105504433,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":3156,"timestamp":472859344959,"id":1423,"parentId":1422,"tags":{},"startTime":1764105504432,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":6626,"timestamp":472859344950,"id":1422,"parentId":1360,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react/cjs/react.development.js","layer":"app-pages-browser"},"startTime":1764105504432,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":452197,"timestamp":472858899464,"id":810,"parentId":807,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764105503986,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":347691,"timestamp":472859004320,"id":1183,"parentId":1109,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764105504091,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":578,"timestamp":472859352108,"id":1430,"parentId":1429,"tags":{},"startTime":1764105504439,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":36,"timestamp":472859352690,"id":1435,"parentId":1429,"tags":{},"startTime":1764105504440,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1519,"timestamp":472859352047,"id":1429,"parentId":1410,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react-refresh/cjs/react-refresh-runtime.development.js","layer":"app-pages-browser"},"startTime":1764105504439,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":454186,"timestamp":472858899400,"id":808,"parentId":807,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764105503986,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":7902,"timestamp":472859345700,"id":1428,"parentId":1427,"tags":{},"startTime":1764105504433,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":54882,"timestamp":472859345691,"id":1427,"parentId":1386,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react-dom/cjs/react-dom.development.js","layer":"app-pages-browser"},"startTime":1764105504433,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":49547,"timestamp":472859352500,"id":1432,"parentId":1431,"tags":{},"startTime":1764105504439,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":51825,"timestamp":472859352480,"id":1431,"parentId":1425,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react-server-dom-webpack/cjs/react-server-dom-webpack-client.browser.development.js","layer":"app-pages-browser"},"startTime":1764105504439,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":52226,"timestamp":472859352679,"id":1434,"parentId":1433,"tags":{},"startTime":1764105504440,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":52581,"timestamp":472859352521,"id":1433,"parentId":1183,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/runtime/api.js","layer":null},"startTime":1764105504439,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":427357,"timestamp":472858981636,"id":1109,"parentId":815,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764105504069,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":43,"timestamp":472859409212,"id":1436,"parentId":1109,"tags":{},"startTime":1764105504496,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":509811,"timestamp":472858899481,"id":811,"parentId":807,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105503986,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":241,"timestamp":472859410110,"id":1438,"parentId":1437,"tags":{},"startTime":1764105504497,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":32,"timestamp":472859410356,"id":1439,"parentId":1437,"tags":{},"startTime":1764105504497,"traceId":"e274ac96b05c42d4"}]
-[{"name":"build-module-js","duration":578,"timestamp":472859410029,"id":1437,"parentId":1427,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/scheduler/index.js","layer":"app-pages-browser"},"startTime":1764105504497,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":278,"timestamp":472859410946,"id":1441,"parentId":1440,"tags":{},"startTime":1764105504498,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":33,"timestamp":472859411231,"id":1442,"parentId":1440,"tags":{},"startTime":1764105504498,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1145,"timestamp":472859410886,"id":1440,"parentId":1437,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/scheduler/cjs/scheduler.development.js","layer":"app-pages-browser"},"startTime":1764105504498,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":512618,"timestamp":472858899449,"id":809,"parentId":807,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764105503986,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":512580,"timestamp":472858899490,"id":812,"parentId":807,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105503986,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":514325,"timestamp":472858897765,"id":807,"parentId":806,"tags":{},"startTime":1764105503985,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1135,"timestamp":472859413829,"id":1444,"parentId":1443,"tags":{},"startTime":1764105504501,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":472859414972,"id":1446,"parentId":1443,"tags":{},"startTime":1764105504502,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":30,"timestamp":472859414981,"id":1447,"parentId":1443,"tags":{},"startTime":1764105504502,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":4,"timestamp":472859415017,"id":1448,"parentId":1443,"tags":{},"startTime":1764105504502,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472859415026,"id":1449,"parentId":1443,"tags":{},"startTime":1764105504502,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":289,"timestamp":472859414969,"id":1445,"parentId":1443,"tags":{},"startTime":1764105504502,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":2082,"timestamp":472859416260,"id":1450,"parentId":1443,"tags":{},"startTime":1764105504503,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":3793,"timestamp":472859418348,"id":1451,"parentId":1443,"tags":{},"startTime":1764105504505,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":5029,"timestamp":472859423005,"id":1452,"parentId":1443,"tags":{},"startTime":1764105504510,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":140,"timestamp":472859428034,"id":1453,"parentId":1443,"tags":{},"startTime":1764105504515,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":34,"timestamp":472859428165,"id":1454,"parentId":1443,"tags":{},"startTime":1764105504515,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":54279,"timestamp":472859428202,"id":1455,"parentId":1443,"tags":{},"startTime":1764105504515,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":64,"timestamp":472859482902,"id":1457,"parentId":806,"tags":{},"startTime":1764105504570,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":208,"timestamp":472859482761,"id":1456,"parentId":806,"tags":{},"startTime":1764105504570,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":70498,"timestamp":472859413575,"id":1443,"parentId":806,"tags":{},"startTime":1764105504501,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":586529,"timestamp":472858897566,"id":806,"parentId":242,"tags":{"name":"client"},"startTime":1764105503985,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":11944,"timestamp":472859484106,"id":1458,"parentId":242,"tags":{},"startTime":1764105504571,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":824909,"timestamp":472858671557,"id":242,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764105503759,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":863,"timestamp":472859501253,"id":1468,"parentId":1467,"tags":{},"startTime":1764105504588,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":892,"timestamp":472859501226,"id":1467,"parentId":1464,"tags":{},"startTime":1764105504588,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1362,"timestamp":472859501113,"id":1464,"parentId":1459,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx","layer":"rsc"},"startTime":1764105504588,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1435,"timestamp":472859501223,"id":1466,"parentId":1465,"tags":{},"startTime":1764105504588,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1491,"timestamp":472859501169,"id":1465,"parentId":1463,"tags":{},"startTime":1764105504588,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1855,"timestamp":472859500989,"id":1463,"parentId":1459,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/page.tsx","layer":"rsc"},"startTime":1764105504588,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":3,"timestamp":472859503387,"id":1470,"parentId":1469,"tags":{},"startTime":1764105504590,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":161,"timestamp":472859503334,"id":1469,"parentId":1464,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"rsc"},"startTime":1764105504590,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5707,"timestamp":472859499343,"id":1462,"parentId":1460,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105504586,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":9242,"timestamp":472859497859,"id":1460,"parentId":1459,"tags":{},"startTime":1764105504585,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":599,"timestamp":472859507958,"id":1475,"parentId":1474,"tags":{},"startTime":1764105504595,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":472859508567,"id":1477,"parentId":1474,"tags":{},"startTime":1764105504596,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":473,"timestamp":472859508577,"id":1478,"parentId":1474,"tags":{},"startTime":1764105504596,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":472859509057,"id":1479,"parentId":1474,"tags":{},"startTime":1764105504596,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472859509066,"id":1480,"parentId":1474,"tags":{},"startTime":1764105504596,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":710,"timestamp":472859508564,"id":1476,"parentId":1474,"tags":{},"startTime":1764105504596,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":200,"timestamp":472859509838,"id":1481,"parentId":1474,"tags":{},"startTime":1764105504597,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":380,"timestamp":472859510042,"id":1482,"parentId":1474,"tags":{},"startTime":1764105504597,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":499,"timestamp":472859510806,"id":1483,"parentId":1474,"tags":{},"startTime":1764105504598,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":31,"timestamp":472859511305,"id":1484,"parentId":1474,"tags":{},"startTime":1764105504598,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":19,"timestamp":472859511332,"id":1485,"parentId":1474,"tags":{},"startTime":1764105504598,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":57,"timestamp":472859511354,"id":1486,"parentId":1474,"tags":{},"startTime":1764105504598,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":4185,"timestamp":472859507781,"id":1474,"parentId":1459,"tags":{},"startTime":1764105504595,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":14866,"timestamp":472859497603,"id":1459,"parentId":813,"tags":{"name":"server"},"startTime":1764105504585,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":628,"timestamp":472859512480,"id":1487,"parentId":813,"tags":{},"startTime":1764105504599,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":612401,"timestamp":472858900855,"id":813,"parentId":3,"tags":{"trigger":"app/globals.css"},"startTime":1764105503988,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2574,"timestamp":472859515459,"id":1490,"parentId":1489,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764105504602,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8070,"timestamp":472859515485,"id":1492,"parentId":1489,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764105504602,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8281,"timestamp":472859515498,"id":1494,"parentId":1489,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105504602,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8334,"timestamp":472859515478,"id":1491,"parentId":1489,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764105504602,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":129,"timestamp":472859523760,"id":1497,"parentId":1496,"tags":{},"startTime":1764105504611,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":6364,"timestamp":472859523911,"id":1499,"parentId":1498,"tags":{},"startTime":1764105504611,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":6462,"timestamp":472859523900,"id":1498,"parentId":1496,"tags":{},"startTime":1764105504611,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":1542,"timestamp":472859530369,"id":1500,"parentId":1496,"tags":{"astUsed":"true"},"startTime":1764105504617,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":8611,"timestamp":472859523708,"id":1496,"parentId":1495,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764105504611,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":16530,"timestamp":472859517040,"id":1495,"parentId":1488,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764105504604,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":10,"timestamp":472859533660,"id":1501,"parentId":1495,"tags":{},"startTime":1764105504621,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":18197,"timestamp":472859515491,"id":1493,"parentId":1489,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105504602,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":19337,"timestamp":472859514361,"id":1489,"parentId":1488,"tags":{},"startTime":1764105504601,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":553,"timestamp":472859534405,"id":1503,"parentId":1502,"tags":{},"startTime":1764105504621,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":472859534967,"id":1505,"parentId":1502,"tags":{},"startTime":1764105504622,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":23,"timestamp":472859534974,"id":1506,"parentId":1502,"tags":{},"startTime":1764105504622,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":472859535004,"id":1507,"parentId":1502,"tags":{},"startTime":1764105504622,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472859535014,"id":1508,"parentId":1502,"tags":{},"startTime":1764105504622,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":180,"timestamp":472859534964,"id":1504,"parentId":1502,"tags":{},"startTime":1764105504622,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":122,"timestamp":472859535576,"id":1509,"parentId":1502,"tags":{},"startTime":1764105504623,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":414,"timestamp":472859535703,"id":1510,"parentId":1502,"tags":{},"startTime":1764105504623,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":990,"timestamp":472859536500,"id":1511,"parentId":1502,"tags":{},"startTime":1764105504623,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":37,"timestamp":472859537490,"id":1512,"parentId":1502,"tags":{},"startTime":1764105504624,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":21,"timestamp":472859537524,"id":1513,"parentId":1502,"tags":{},"startTime":1764105504624,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":824,"timestamp":472859537547,"id":1514,"parentId":1502,"tags":{},"startTime":1764105504624,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":26,"timestamp":472859538907,"id":1516,"parentId":1488,"tags":{},"startTime":1764105504626,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":59,"timestamp":472859538876,"id":1515,"parentId":1488,"tags":{},"startTime":1764105504626,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5198,"timestamp":472859534192,"id":1502,"parentId":1488,"tags":{},"startTime":1764105504621,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":25324,"timestamp":472859514105,"id":1488,"parentId":1461,"tags":{"name":"client"},"startTime":1764105504601,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1133,"timestamp":472859539440,"id":1517,"parentId":1461,"tags":{},"startTime":1764105504626,"traceId":"e274ac96b05c42d4"},{"name":"compile-path","duration":992578,"timestamp":472858548308,"id":117,"tags":{"trigger":"/","isTurbopack":false},"startTime":1764105503635,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":42387,"timestamp":472859498644,"id":1461,"parentId":3,"tags":{"trigger":"components/PartCard.tsx"},"startTime":1764105504586,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":1059579,"timestamp":472858540828,"id":115,"tags":{"url":"/","isTurbopack":false},"startTime":1764105503628,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472859600442,"id":1518,"parentId":115,"tags":{"url":"/","memory.rss":"558366720","memory.heapUsed":"219447656","memory.heapTotal":"326664192"},"startTime":1764105504687,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":31,"timestamp":472859781760,"id":1519,"parentId":3,"tags":{},"startTime":1764105504869,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10711,"timestamp":472861385154,"id":1525,"parentId":1524,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105506472,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":8189,"timestamp":472861393670,"id":1527,"parentId":1526,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!","layer":"rsc"},"startTime":1764105506481,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1019,"timestamp":472861419192,"id":1530,"parentId":1529,"tags":{},"startTime":1764105506506,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1111,"timestamp":472861419106,"id":1529,"parentId":1528,"tags":{},"startTime":1764105506506,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1792,"timestamp":472861418982,"id":1528,"parentId":1527,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"rsc"},"startTime":1764105506506,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":36371,"timestamp":472861385179,"id":1526,"parentId":1524,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105506472,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":505,"timestamp":472861423104,"id":1538,"parentId":1523,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!","layer":"ssr"},"startTime":1764105506510,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1849,"timestamp":472861425437,"id":1541,"parentId":1540,"tags":{},"startTime":1764105506512,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1903,"timestamp":472861425389,"id":1540,"parentId":1539,"tags":{},"startTime":1764105506512,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":3796,"timestamp":472861425114,"id":1539,"parentId":1538,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"ssr"},"startTime":1764105506512,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":705,"timestamp":472861431924,"id":1544,"parentId":1542,"tags":{},"startTime":1764105506519,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":34,"timestamp":472861432639,"id":1552,"parentId":1542,"tags":{},"startTime":1764105506520,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1076,"timestamp":472861431775,"id":1542,"parentId":1539,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/server/future/route-modules/app-page/vendored/ssr/react-jsx-dev-runtime.js","layer":"ssr"},"startTime":1764105506519,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":889,"timestamp":472861432148,"id":1549,"parentId":1548,"tags":{},"startTime":1764105506519,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":921,"timestamp":472861432117,"id":1548,"parentId":1547,"tags":{},"startTime":1764105506519,"traceId":"e274ac96b05c42d4"},{"name":"build-module-ts","duration":1176,"timestamp":472861432073,"id":1547,"parentId":1539,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/data/gunbuilderParts.ts","layer":"ssr"},"startTime":1764105506519,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1279,"timestamp":472861431991,"id":1546,"parentId":1545,"tags":{},"startTime":1764105506519,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1328,"timestamp":472861431942,"id":1545,"parentId":1543,"tags":{},"startTime":1764105506519,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1745,"timestamp":472861431859,"id":1543,"parentId":1539,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx","layer":"ssr"},"startTime":1764105506519,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":1684,"timestamp":472861432592,"id":1551,"parentId":1550,"tags":{},"startTime":1764105506520,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":25,"timestamp":472861434281,"id":1553,"parentId":1550,"tags":{},"startTime":1764105506521,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":1919,"timestamp":472861432520,"id":1550,"parentId":1539,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/api/navigation.js","layer":"ssr"},"startTime":1764105506519,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":121,"timestamp":472861435537,"id":1558,"parentId":1557,"tags":{},"startTime":1764105506522,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":25,"timestamp":472861435666,"id":1559,"parentId":1557,"tags":{},"startTime":1764105506523,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":341,"timestamp":472861435476,"id":1557,"parentId":1543,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/api/link.js","layer":"ssr"},"startTime":1764105506522,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":794,"timestamp":472861435157,"id":1556,"parentId":1555,"tags":{},"startTime":1764105506522,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":829,"timestamp":472861435123,"id":1555,"parentId":1554,"tags":{},"startTime":1764105506522,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1195,"timestamp":472861435072,"id":1554,"parentId":1543,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/PartCard.tsx","layer":"ssr"},"startTime":1764105506522,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":52021,"timestamp":472861384479,"id":1524,"parentId":1523,"tags":{},"startTime":1764105506471,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":729,"timestamp":472861437713,"id":1561,"parentId":1560,"tags":{},"startTime":1764105506525,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":472861438452,"id":1563,"parentId":1560,"tags":{},"startTime":1764105506525,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":637,"timestamp":472861438462,"id":1564,"parentId":1560,"tags":{},"startTime":1764105506525,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":4,"timestamp":472861439108,"id":1565,"parentId":1560,"tags":{},"startTime":1764105506526,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472861439118,"id":1566,"parentId":1560,"tags":{},"startTime":1764105506526,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":2013,"timestamp":472861438450,"id":1562,"parentId":1560,"tags":{},"startTime":1764105506525,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":263,"timestamp":472861441155,"id":1567,"parentId":1560,"tags":{},"startTime":1764105506528,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":984,"timestamp":472861441424,"id":1568,"parentId":1560,"tags":{},"startTime":1764105506528,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":499,"timestamp":472861442919,"id":1569,"parentId":1560,"tags":{},"startTime":1764105506530,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":31,"timestamp":472861443418,"id":1570,"parentId":1560,"tags":{},"startTime":1764105506530,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":26,"timestamp":472861443446,"id":1571,"parentId":1560,"tags":{},"startTime":1764105506530,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":2204,"timestamp":472861443474,"id":1572,"parentId":1560,"tags":{},"startTime":1764105506530,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8863,"timestamp":472861437540,"id":1560,"parentId":1523,"tags":{},"startTime":1764105506524,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":63345,"timestamp":472861384284,"id":1523,"parentId":1521,"tags":{"name":"server"},"startTime":1764105506471,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2041,"timestamp":472861447656,"id":1573,"parentId":1521,"tags":{},"startTime":1764105506535,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":66919,"timestamp":472861383099,"id":1521,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764105506470,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2018,"timestamp":472861452753,"id":1576,"parentId":1575,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764105506540,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2610,"timestamp":472861452781,"id":1579,"parentId":1575,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105506540,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3223,"timestamp":472861452780,"id":1578,"parentId":1575,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764105506540,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3292,"timestamp":472861452783,"id":1580,"parentId":1575,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105506540,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3315,"timestamp":472861452776,"id":1577,"parentId":1575,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764105506540,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":705,"timestamp":472861465788,"id":1583,"parentId":1581,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!","layer":"app-pages-browser"},"startTime":1764105506553,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2015,"timestamp":472861467442,"id":1586,"parentId":1585,"tags":{},"startTime":1764105506554,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2071,"timestamp":472861467388,"id":1585,"parentId":1584,"tags":{},"startTime":1764105506554,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4138,"timestamp":472861467043,"id":1584,"parentId":1583,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"app-pages-browser"},"startTime":1764105506554,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":157,"timestamp":472861473404,"id":1590,"parentId":1587,"tags":{},"startTime":1764105506560,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":29,"timestamp":472861473567,"id":1595,"parentId":1587,"tags":{},"startTime":1764105506561,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":588,"timestamp":472861473179,"id":1587,"parentId":1584,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/api/navigation.js","layer":"app-pages-browser"},"startTime":1764105506560,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":950,"timestamp":472861473500,"id":1594,"parentId":1593,"tags":{},"startTime":1764105506560,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":985,"timestamp":472861473465,"id":1593,"parentId":1589,"tags":{},"startTime":1764105506560,"traceId":"e274ac96b05c42d4"},{"name":"build-module-ts","duration":1742,"timestamp":472861473336,"id":1589,"parentId":1584,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/data/gunbuilderParts.ts","layer":"app-pages-browser"},"startTime":1764105506560,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1682,"timestamp":472861473462,"id":1592,"parentId":1591,"tags":{},"startTime":1764105506560,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1738,"timestamp":472861473407,"id":1591,"parentId":1588,"tags":{},"startTime":1764105506560,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2348,"timestamp":472861473272,"id":1588,"parentId":1584,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx","layer":"app-pages-browser"},"startTime":1764105506560,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":62,"timestamp":472861476722,"id":1598,"parentId":1596,"tags":{},"startTime":1764105506564,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":25,"timestamp":472861476788,"id":1601,"parentId":1596,"tags":{},"startTime":1764105506564,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":291,"timestamp":472861476610,"id":1596,"parentId":1588,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/api/link.js","layer":"app-pages-browser"},"startTime":1764105506564,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1230,"timestamp":472861476763,"id":1600,"parentId":1599,"tags":{},"startTime":1764105506564,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1271,"timestamp":472861476724,"id":1599,"parentId":1597,"tags":{},"startTime":1764105506564,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1821,"timestamp":472861476672,"id":1597,"parentId":1588,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/PartCard.tsx","layer":"app-pages-browser"},"startTime":1764105506564,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":545,"timestamp":472861486946,"id":1603,"parentId":1602,"tags":{},"startTime":1764105506574,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":719,"timestamp":472861486928,"id":1602,"parentId":1584,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react/jsx-dev-runtime.js","layer":"app-pages-browser"},"startTime":1764105506574,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":380,"timestamp":472861488199,"id":1605,"parentId":1604,"tags":{},"startTime":1764105506575,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":2280,"timestamp":472861488166,"id":1604,"parentId":1602,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/react/cjs/react-jsx-dev-runtime.development.js","layer":"app-pages-browser"},"startTime":1764105506575,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":38154,"timestamp":472861452785,"id":1581,"parentId":1575,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105506540,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":39729,"timestamp":472861451224,"id":1575,"parentId":1574,"tags":{},"startTime":1764105506538,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":677,"timestamp":472861492013,"id":1607,"parentId":1606,"tags":{},"startTime":1764105506579,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":7,"timestamp":472861492698,"id":1609,"parentId":1606,"tags":{},"startTime":1764105506580,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":21,"timestamp":472861492711,"id":1610,"parentId":1606,"tags":{},"startTime":1764105506580,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":472861492743,"id":1611,"parentId":1606,"tags":{},"startTime":1764105506580,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472861492756,"id":1612,"parentId":1606,"tags":{},"startTime":1764105506580,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":341,"timestamp":472861492695,"id":1608,"parentId":1606,"tags":{},"startTime":1764105506580,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":239,"timestamp":472861493447,"id":1613,"parentId":1606,"tags":{},"startTime":1764105506580,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":929,"timestamp":472861493690,"id":1614,"parentId":1606,"tags":{},"startTime":1764105506581,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1498,"timestamp":472861495387,"id":1615,"parentId":1606,"tags":{},"startTime":1764105506582,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":62,"timestamp":472861496884,"id":1616,"parentId":1606,"tags":{},"startTime":1764105506584,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":33,"timestamp":472861496938,"id":1617,"parentId":1606,"tags":{},"startTime":1764105506584,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":3010,"timestamp":472861496974,"id":1618,"parentId":1606,"tags":{},"startTime":1764105506584,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":53,"timestamp":472861500552,"id":1620,"parentId":1574,"tags":{},"startTime":1764105506588,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":101,"timestamp":472861500506,"id":1619,"parentId":1574,"tags":{},"startTime":1764105506587,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":9868,"timestamp":472861491733,"id":1606,"parentId":1574,"tags":{},"startTime":1764105506579,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":50611,"timestamp":472861451008,"id":1574,"parentId":1537,"tags":{"name":"client"},"startTime":1764105506538,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1729,"timestamp":472861501631,"id":1621,"parentId":1537,"tags":{},"startTime":1764105506589,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":81478,"timestamp":472861422307,"id":1537,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764105506509,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":3,"timestamp":472861505455,"id":1624,"parentId":3,"tags":{},"startTime":1764105506592,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3147,"timestamp":472861506392,"id":1627,"parentId":1623,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105506593,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3459,"timestamp":472861506368,"id":1626,"parentId":1623,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105506593,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1341,"timestamp":472861511313,"id":1636,"parentId":1635,"tags":{},"startTime":1764105506598,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1396,"timestamp":472861511261,"id":1635,"parentId":1634,"tags":{},"startTime":1764105506598,"traceId":"e274ac96b05c42d4"}]
-[{"name":"build-module-ts","duration":1930,"timestamp":472861511150,"id":1634,"parentId":1622,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/data/gunbuilderParts.ts","layer":"ssr"},"startTime":1764105506598,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1312,"timestamp":472861511786,"id":1639,"parentId":1638,"tags":{},"startTime":1764105506599,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1353,"timestamp":472861511746,"id":1638,"parentId":1637,"tags":{},"startTime":1764105506599,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1659,"timestamp":472861511677,"id":1637,"parentId":1622,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/PartCard.tsx","layer":"ssr"},"startTime":1764105506599,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":9512,"timestamp":472861504877,"id":1623,"parentId":1622,"tags":{},"startTime":1764105506592,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":592,"timestamp":472861515183,"id":1641,"parentId":1640,"tags":{},"startTime":1764105506602,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":472861515782,"id":1643,"parentId":1640,"tags":{},"startTime":1764105506603,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":562,"timestamp":472861515791,"id":1644,"parentId":1640,"tags":{},"startTime":1764105506603,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":472861516360,"id":1645,"parentId":1640,"tags":{},"startTime":1764105506603,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":472861516368,"id":1646,"parentId":1640,"tags":{},"startTime":1764105506603,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":756,"timestamp":472861515780,"id":1642,"parentId":1640,"tags":{},"startTime":1764105506603,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":148,"timestamp":472861516912,"id":1647,"parentId":1640,"tags":{},"startTime":1764105506604,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":221,"timestamp":472861517064,"id":1648,"parentId":1640,"tags":{},"startTime":1764105506604,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":390,"timestamp":472861517604,"id":1649,"parentId":1640,"tags":{},"startTime":1764105506605,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":20,"timestamp":472861517994,"id":1650,"parentId":1640,"tags":{},"startTime":1764105506605,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":17,"timestamp":472861518011,"id":1651,"parentId":1640,"tags":{},"startTime":1764105506605,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":72,"timestamp":472861518030,"id":1652,"parentId":1640,"tags":{},"startTime":1764105506605,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":3653,"timestamp":472861515028,"id":1640,"parentId":1622,"tags":{},"startTime":1764105506602,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":14872,"timestamp":472861504709,"id":1622,"parentId":1582,"tags":{"name":"server"},"startTime":1764105506592,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":910,"timestamp":472861519588,"id":1653,"parentId":1582,"tags":{},"startTime":1764105506607,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":67560,"timestamp":472861453165,"id":1582,"parentId":3,"tags":{"trigger":"components/PartCard.tsx"},"startTime":1764105506540,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":16000,"timestamp":472861506194,"id":1662,"parentId":3,"tags":{"updatedModules":[],"page":"/","isPageHidden":false},"startTime":1764105506610,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2199,"timestamp":472861522860,"id":1656,"parentId":1655,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764105506610,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2895,"timestamp":472861522889,"id":1659,"parentId":1655,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105506610,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1015,"timestamp":472861524949,"id":1665,"parentId":1664,"tags":{},"startTime":1764105506612,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1069,"timestamp":472861524897,"id":1664,"parentId":1663,"tags":{},"startTime":1764105506612,"traceId":"e274ac96b05c42d4"},{"name":"build-module-ts","duration":1774,"timestamp":472861524794,"id":1663,"parentId":1654,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/data/gunbuilderParts.ts","layer":"app-pages-browser"},"startTime":1764105506612,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3938,"timestamp":472861522893,"id":1661,"parentId":1655,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105506610,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4162,"timestamp":472861522886,"id":1658,"parentId":1655,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764105506610,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4225,"timestamp":472861522890,"id":1660,"parentId":1655,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105506610,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4254,"timestamp":472861522883,"id":1657,"parentId":1655,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764105506610,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":5619,"timestamp":472861521529,"id":1655,"parentId":1654,"tags":{},"startTime":1764105506608,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":607,"timestamp":472861527936,"id":1667,"parentId":1666,"tags":{},"startTime":1764105506615,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":472861528550,"id":1669,"parentId":1666,"tags":{},"startTime":1764105506615,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":24,"timestamp":472861528557,"id":1670,"parentId":1666,"tags":{},"startTime":1764105506616,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":472861528593,"id":1671,"parentId":1666,"tags":{},"startTime":1764105506616,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472861528601,"id":1672,"parentId":1666,"tags":{},"startTime":1764105506616,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":216,"timestamp":472861528547,"id":1668,"parentId":1666,"tags":{},"startTime":1764105506615,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":189,"timestamp":472861529151,"id":1673,"parentId":1666,"tags":{},"startTime":1764105506616,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":310,"timestamp":472861529347,"id":1674,"parentId":1666,"tags":{},"startTime":1764105506616,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1297,"timestamp":472861530240,"id":1675,"parentId":1666,"tags":{},"startTime":1764105506617,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":40,"timestamp":472861531537,"id":1676,"parentId":1666,"tags":{},"startTime":1764105506618,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":33,"timestamp":472861531573,"id":1677,"parentId":1666,"tags":{},"startTime":1764105506619,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":710,"timestamp":472861531608,"id":1678,"parentId":1666,"tags":{},"startTime":1764105506619,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":28,"timestamp":472861532482,"id":1680,"parentId":1654,"tags":{},"startTime":1764105506619,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":73,"timestamp":472861532443,"id":1679,"parentId":1654,"tags":{},"startTime":1764105506619,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5267,"timestamp":472861527699,"id":1666,"parentId":1654,"tags":{},"startTime":1764105506615,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":11629,"timestamp":472861521356,"id":1654,"parentId":1625,"tags":{"name":"client"},"startTime":1764105506608,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":978,"timestamp":472861532992,"id":1681,"parentId":1625,"tags":{},"startTime":1764105506620,"traceId":"e274ac96b05c42d4"},{"name":"compile-path","duration":151151,"timestamp":472861383116,"id":1522,"tags":{"trigger":"/gunbuilder","isTurbopack":false},"startTime":1764105506470,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":28936,"timestamp":472861505562,"id":1625,"parentId":3,"tags":{"trigger":"data/gunbuilderParts.ts"},"startTime":1764105506593,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":1,"timestamp":472861535421,"id":1682,"parentId":3,"tags":{},"startTime":1764105506622,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":170623,"timestamp":472861381908,"id":1520,"tags":{"url":"/gunbuilder?_rsc=1wtp7","isTurbopack":false},"startTime":1764105506469,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472861552563,"id":1683,"parentId":1520,"tags":{"url":"/gunbuilder?_rsc=1wtp7","memory.rss":"637566976","memory.heapUsed":"232820480","memory.heapTotal":"326270976"},"startTime":1764105506640,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6403,"timestamp":472861560244,"id":1684,"tags":{"url":"/gunbuilder?_rsc=52fbb","isTurbopack":false},"startTime":1764105506647,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472861566673,"id":1685,"parentId":1684,"tags":{"url":"/gunbuilder?_rsc=52fbb","memory.rss":"637566976","memory.heapUsed":"233630336","memory.heapTotal":"326270976"},"startTime":1764105506654,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6178,"timestamp":472863096564,"id":1692,"parentId":1690,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105508184,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":14369,"timestamp":472863096509,"id":1691,"parentId":1690,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105508183,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":16065,"timestamp":472863101756,"id":1694,"parentId":1693,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!","layer":"rsc"},"startTime":1764105508189,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1582,"timestamp":472863121274,"id":1697,"parentId":1696,"tags":{},"startTime":1764105508208,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1686,"timestamp":472863121176,"id":1696,"parentId":1695,"tags":{},"startTime":1764105508208,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2531,"timestamp":472863120974,"id":1695,"parentId":1694,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"rsc"},"startTime":1764105508208,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":27774,"timestamp":472863096570,"id":1693,"parentId":1690,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105508184,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":618,"timestamp":472863126154,"id":1708,"parentId":1689,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!","layer":"ssr"},"startTime":1764105508213,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2676,"timestamp":472863129001,"id":1711,"parentId":1710,"tags":{},"startTime":1764105508216,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2749,"timestamp":472863128934,"id":1710,"parentId":1709,"tags":{},"startTime":1764105508216,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4115,"timestamp":472863128771,"id":1709,"parentId":1708,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"ssr"},"startTime":1764105508216,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":40042,"timestamp":472863095323,"id":1690,"parentId":1689,"tags":{},"startTime":1764105508182,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1191,"timestamp":472863136801,"id":1713,"parentId":1712,"tags":{},"startTime":1764105508224,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":472863138003,"id":1715,"parentId":1712,"tags":{},"startTime":1764105508225,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1070,"timestamp":472863138015,"id":1716,"parentId":1712,"tags":{},"startTime":1764105508225,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":472863139094,"id":1717,"parentId":1712,"tags":{},"startTime":1764105508226,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472863139105,"id":1718,"parentId":1712,"tags":{},"startTime":1764105508226,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1290,"timestamp":472863138000,"id":1714,"parentId":1712,"tags":{},"startTime":1764105508225,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":239,"timestamp":472863139802,"id":1719,"parentId":1712,"tags":{},"startTime":1764105508227,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":853,"timestamp":472863140046,"id":1720,"parentId":1712,"tags":{},"startTime":1764105508227,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":524,"timestamp":472863141355,"id":1721,"parentId":1712,"tags":{},"startTime":1764105508228,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":30,"timestamp":472863141879,"id":1722,"parentId":1712,"tags":{},"startTime":1764105508229,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":27,"timestamp":472863141905,"id":1723,"parentId":1712,"tags":{},"startTime":1764105508229,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1015,"timestamp":472863141935,"id":1724,"parentId":1712,"tags":{},"startTime":1764105508229,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7297,"timestamp":472863136524,"id":1712,"parentId":1689,"tags":{},"startTime":1764105508223,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":50512,"timestamp":472863094947,"id":1689,"parentId":1687,"tags":{"name":"server"},"startTime":1764105508182,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1606,"timestamp":472863145474,"id":1725,"parentId":1687,"tags":{},"startTime":1764105508232,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":54245,"timestamp":472863093032,"id":1687,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764105508180,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":637,"timestamp":472863152106,"id":1735,"parentId":1734,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!","layer":"app-pages-browser"},"startTime":1764105508239,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3093,"timestamp":472863150626,"id":1728,"parentId":1727,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764105508238,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3949,"timestamp":472863150665,"id":1733,"parentId":1727,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105508238,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3959,"timestamp":472863150659,"id":1731,"parentId":1727,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105508238,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4955,"timestamp":472863150654,"id":1730,"parentId":1727,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764105508238,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5035,"timestamp":472863150663,"id":1732,"parentId":1727,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105508238,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5078,"timestamp":472863150651,"id":1729,"parentId":1727,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764105508238,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2611,"timestamp":472863155287,"id":1738,"parentId":1737,"tags":{},"startTime":1764105508242,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2670,"timestamp":472863155229,"id":1737,"parentId":1736,"tags":{},"startTime":1764105508242,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4026,"timestamp":472863155077,"id":1736,"parentId":1735,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"app-pages-browser"},"startTime":1764105508242,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10521,"timestamp":472863150667,"id":1734,"parentId":1727,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105508238,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":12710,"timestamp":472863148497,"id":1727,"parentId":1726,"tags":{},"startTime":1764105508235,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":667,"timestamp":472863162138,"id":1740,"parentId":1739,"tags":{},"startTime":1764105508249,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":472863162812,"id":1742,"parentId":1739,"tags":{},"startTime":1764105508250,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":32,"timestamp":472863162820,"id":1743,"parentId":1739,"tags":{},"startTime":1764105508250,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":472863162858,"id":1744,"parentId":1739,"tags":{},"startTime":1764105508250,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":472863162866,"id":1745,"parentId":1739,"tags":{},"startTime":1764105508250,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":205,"timestamp":472863162810,"id":1741,"parentId":1739,"tags":{},"startTime":1764105508250,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":173,"timestamp":472863163390,"id":1746,"parentId":1739,"tags":{},"startTime":1764105508250,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":632,"timestamp":472863163567,"id":1747,"parentId":1739,"tags":{},"startTime":1764105508251,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1243,"timestamp":472863164715,"id":1748,"parentId":1739,"tags":{},"startTime":1764105508252,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":39,"timestamp":472863165959,"id":1749,"parentId":1739,"tags":{},"startTime":1764105508253,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":38,"timestamp":472863165995,"id":1750,"parentId":1739,"tags":{},"startTime":1764105508253,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1452,"timestamp":472863166036,"id":1751,"parentId":1739,"tags":{},"startTime":1764105508253,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":27,"timestamp":472863167778,"id":1753,"parentId":1726,"tags":{},"startTime":1764105508255,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":88,"timestamp":472863167718,"id":1752,"parentId":1726,"tags":{},"startTime":1764105508255,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6460,"timestamp":472863161878,"id":1739,"parentId":1726,"tags":{},"startTime":1764105508249,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":20067,"timestamp":472863148284,"id":1726,"parentId":1707,"tags":{"name":"client"},"startTime":1764105508235,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1415,"timestamp":472863168358,"id":1754,"parentId":1707,"tags":{},"startTime":1764105508255,"traceId":"e274ac96b05c42d4"},{"name":"compile-path","duration":76935,"timestamp":472863093087,"id":1688,"tags":{"trigger":"/gunbuilder/[categoryId]","isTurbopack":false},"startTime":1764105508180,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":44966,"timestamp":472863125265,"id":1707,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764105508212,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":1,"timestamp":472863171163,"id":1755,"parentId":3,"tags":{},"startTime":1764105508258,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":60000,"timestamp":472863125884,"id":1756,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764105508273,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":203821,"timestamp":472863089284,"id":1686,"tags":{"url":"/gunbuilder/upper?_rsc=1acsq","isTurbopack":false},"startTime":1764105508176,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472863293131,"id":1757,"parentId":1686,"tags":{"url":"/gunbuilder/upper?_rsc=1acsq","memory.rss":"636764160","memory.heapUsed":"204341120","memory.heapTotal":"330825728"},"startTime":1764105508380,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6449,"timestamp":472863299293,"id":1758,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","isTurbopack":false},"startTime":1764105508386,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472863305765,"id":1759,"parentId":1758,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","memory.rss":"636764160","memory.heapUsed":"205342472","memory.heapTotal":"330825728"},"startTime":1764105508393,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10472,"timestamp":472864082930,"id":1760,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1d33p","isTurbopack":false},"startTime":1764105509170,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472864093456,"id":1761,"parentId":1760,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1d33p","memory.rss":"637272064","memory.heapUsed":"206563856","memory.heapTotal":"331055104"},"startTime":1764105509180,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8066,"timestamp":472864098378,"id":1762,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1fb4y","isTurbopack":false},"startTime":1764105509185,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472864106474,"id":1763,"parentId":1762,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1fb4y","memory.rss":"637272064","memory.heapUsed":"207233888","memory.heapTotal":"331317248"},"startTime":1764105509193,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10521,"timestamp":472865244250,"id":1764,"tags":{"url":"/gunbuilder/lower?_rsc=m09l5","isTurbopack":false},"startTime":1764105510331,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472865254819,"id":1765,"parentId":1764,"tags":{"url":"/gunbuilder/lower?_rsc=m09l5","memory.rss":"637272064","memory.heapUsed":"208084912","memory.heapTotal":"331317248"},"startTime":1764105510342,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4840,"timestamp":472865257646,"id":1766,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","isTurbopack":false},"startTime":1764105510345,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472865262509,"id":1767,"parentId":1766,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","memory.rss":"637272064","memory.heapUsed":"209204960","memory.heapTotal":"331579392"},"startTime":1764105510349,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7445,"timestamp":472865877440,"id":1775,"parentId":1772,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105510964,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7459,"timestamp":472865877443,"id":1776,"parentId":1772,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105510964,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8750,"timestamp":472865877371,"id":1773,"parentId":1772,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105510964,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":10026,"timestamp":472865884127,"id":1777,"parentId":1774,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!","layer":"rsc"},"startTime":1764105510971,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1002,"timestamp":472865897671,"id":1780,"parentId":1779,"tags":{},"startTime":1764105510985,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1073,"timestamp":472865897602,"id":1779,"parentId":1778,"tags":{},"startTime":1764105510985,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1543,"timestamp":472865897459,"id":1778,"parentId":1777,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"rsc"},"startTime":1764105510984,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":22159,"timestamp":472865877432,"id":1774,"parentId":1772,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105510964,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":517,"timestamp":472865901358,"id":1794,"parentId":1771,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!","layer":"ssr"},"startTime":1764105510988,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1852,"timestamp":472865903782,"id":1797,"parentId":1796,"tags":{},"startTime":1764105510991,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1911,"timestamp":472865903725,"id":1796,"parentId":1795,"tags":{},"startTime":1764105510991,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":3083,"timestamp":472865903586,"id":1795,"parentId":1794,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"ssr"},"startTime":1764105510991,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":33120,"timestamp":472865875752,"id":1772,"parentId":1771,"tags":{},"startTime":1764105510963,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1436,"timestamp":472865909991,"id":1799,"parentId":1798,"tags":{},"startTime":1764105510997,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":472865911437,"id":1801,"parentId":1798,"tags":{},"startTime":1764105510998,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1301,"timestamp":472865911447,"id":1802,"parentId":1798,"tags":{},"startTime":1764105510998,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":472865912757,"id":1803,"parentId":1798,"tags":{},"startTime":1764105511000,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472865912767,"id":1804,"parentId":1798,"tags":{},"startTime":1764105511000,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1480,"timestamp":472865911434,"id":1800,"parentId":1798,"tags":{},"startTime":1764105510998,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":234,"timestamp":472865913399,"id":1805,"parentId":1798,"tags":{},"startTime":1764105511000,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":771,"timestamp":472865913638,"id":1806,"parentId":1798,"tags":{},"startTime":1764105511001,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":539,"timestamp":472865914855,"id":1807,"parentId":1798,"tags":{},"startTime":1764105511002,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":34,"timestamp":472865915394,"id":1808,"parentId":1798,"tags":{},"startTime":1764105511002,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":23,"timestamp":472865915424,"id":1809,"parentId":1798,"tags":{},"startTime":1764105511002,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":982,"timestamp":472865915450,"id":1810,"parentId":1798,"tags":{},"startTime":1764105511002,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7621,"timestamp":472865909766,"id":1798,"parentId":1771,"tags":{},"startTime":1764105510997,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":43781,"timestamp":472865875189,"id":1771,"parentId":1769,"tags":{"name":"server"},"startTime":1764105510962,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1414,"timestamp":472865918980,"id":1811,"parentId":1769,"tags":{},"startTime":1764105511006,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":48238,"timestamp":472865872335,"id":1769,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764105510959,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":495,"timestamp":472865925313,"id":1822,"parentId":1821,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!","layer":"app-pages-browser"},"startTime":1764105511012,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2638,"timestamp":472865923940,"id":1814,"parentId":1813,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764105511011,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2853,"timestamp":472865923970,"id":1820,"parentId":1813,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105511011,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3253,"timestamp":472865923968,"id":1819,"parentId":1813,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105511011,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3259,"timestamp":472865923964,"id":1817,"parentId":1813,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105511011,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3981,"timestamp":472865923962,"id":1816,"parentId":1813,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764105511011,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4047,"timestamp":472865923966,"id":1818,"parentId":1813,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105511011,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4077,"timestamp":472865923959,"id":1815,"parentId":1813,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764105511011,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1801,"timestamp":472865927727,"id":1825,"parentId":1824,"tags":{},"startTime":1764105511015,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1851,"timestamp":472865927680,"id":1824,"parentId":1823,"tags":{},"startTime":1764105511015,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":3030,"timestamp":472865927571,"id":1823,"parentId":1822,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"app-pages-browser"},"startTime":1764105511015,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11978,"timestamp":472865923971,"id":1821,"parentId":1813,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105511011,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":14586,"timestamp":472865921384,"id":1813,"parentId":1812,"tags":{},"startTime":1764105511008,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":804,"timestamp":472865936904,"id":1827,"parentId":1826,"tags":{},"startTime":1764105511024,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":472865937720,"id":1829,"parentId":1826,"tags":{},"startTime":1764105511025,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":17,"timestamp":472865937731,"id":1830,"parentId":1826,"tags":{},"startTime":1764105511025,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":472865937759,"id":1831,"parentId":1826,"tags":{},"startTime":1764105511025,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472865937771,"id":1832,"parentId":1826,"tags":{},"startTime":1764105511025,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":215,"timestamp":472865937716,"id":1828,"parentId":1826,"tags":{},"startTime":1764105511025,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":243,"timestamp":472865938392,"id":1833,"parentId":1826,"tags":{},"startTime":1764105511025,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":800,"timestamp":472865938640,"id":1834,"parentId":1826,"tags":{},"startTime":1764105511026,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1409,"timestamp":472865940077,"id":1835,"parentId":1826,"tags":{},"startTime":1764105511027,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":49,"timestamp":472865941486,"id":1836,"parentId":1826,"tags":{},"startTime":1764105511028,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":19,"timestamp":472865941531,"id":1837,"parentId":1826,"tags":{},"startTime":1764105511028,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1793,"timestamp":472865941553,"id":1838,"parentId":1826,"tags":{},"startTime":1764105511028,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":28,"timestamp":472865943647,"id":1840,"parentId":1812,"tags":{},"startTime":1764105511031,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":61,"timestamp":472865943617,"id":1839,"parentId":1812,"tags":{},"startTime":1764105511031,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7793,"timestamp":472865936575,"id":1826,"parentId":1812,"tags":{},"startTime":1764105511024,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":23179,"timestamp":472865921203,"id":1812,"parentId":1793,"tags":{"name":"client"},"startTime":1764105511008,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2170,"timestamp":472865944390,"id":1841,"parentId":1793,"tags":{},"startTime":1764105511031,"traceId":"e274ac96b05c42d4"},{"name":"compile-path","duration":74480,"timestamp":472865872392,"id":1770,"tags":{"trigger":"/gunbuilder/[categoryId]/[partId]","isTurbopack":false},"startTime":1764105510959,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":46470,"timestamp":472865900619,"id":1793,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764105510988,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":2,"timestamp":472865948197,"id":1842,"parentId":3,"tags":{},"startTime":1764105511035,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":65000,"timestamp":472865901138,"id":1843,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder/lower","isPageHidden":false},"startTime":1764105511053,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":195964,"timestamp":472865868950,"id":1768,"tags":{"url":"/gunbuilder/lower/lower-aero-m4e1?_rsc=uiigs","isTurbopack":false},"startTime":1764105510956,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472866064944,"id":1844,"parentId":1768,"tags":{"url":"/gunbuilder/lower/lower-aero-m4e1?_rsc=uiigs","memory.rss":"638353408","memory.heapUsed":"191912416","memory.heapTotal":"339771392"},"startTime":1764105511152,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5469,"timestamp":472866069829,"id":1845,"tags":{"url":"/gunbuilder/lower/lower-aero-m4e1?_rsc=rksw7","isTurbopack":false},"startTime":1764105511157,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472866075314,"id":1846,"parentId":1845,"tags":{"url":"/gunbuilder/lower/lower-aero-m4e1?_rsc=rksw7","memory.rss":"638353408","memory.heapUsed":"193046352","memory.heapTotal":"339771392"},"startTime":1764105511162,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11459,"timestamp":472867575944,"id":1847,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1o8dd","isTurbopack":false},"startTime":1764105512663,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472867587472,"id":1848,"parentId":1847,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1o8dd","memory.rss":"638582784","memory.heapUsed":"194319344","memory.heapTotal":"340000768"},"startTime":1764105512674,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7887,"timestamp":472867591364,"id":1849,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","isTurbopack":false},"startTime":1764105512678,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472867599281,"id":1850,"parentId":1849,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","memory.rss":"638582784","memory.heapUsed":"194946056","memory.heapTotal":"340000768"},"startTime":1764105512686,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":52076,"timestamp":472878494633,"id":1851,"tags":{"url":"/gunbuilder","isTurbopack":false},"startTime":1764105523582,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472878546735,"id":1852,"parentId":1851,"tags":{"url":"/gunbuilder","memory.rss":"453656576","memory.heapUsed":"171341744","memory.heapTotal":"178110464"},"startTime":1764105523634,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":4,"timestamp":472878738437,"id":1853,"parentId":3,"tags":{},"startTime":1764105523825,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":21052,"timestamp":472880506271,"id":1854,"tags":{"url":"/gunbuilder","isTurbopack":false},"startTime":1764105525593,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472880527362,"id":1855,"parentId":1854,"tags":{"url":"/gunbuilder","memory.rss":"454770688","memory.heapUsed":"171342192","memory.heapTotal":"177324032"},"startTime":1764105525614,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":3,"timestamp":472880723307,"id":1856,"parentId":3,"tags":{},"startTime":1764105525810,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8032,"timestamp":472889040343,"id":1868,"parentId":1860,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105534127,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9219,"timestamp":472889040246,"id":1861,"parentId":1860,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764105534127,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10787,"timestamp":472889040340,"id":1867,"parentId":1860,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105534127,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3988,"timestamp":472889047508,"id":1872,"parentId":1871,"tags":{},"startTime":1764105534134,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4131,"timestamp":472889047368,"id":1871,"parentId":1870,"tags":{},"startTime":1764105534134,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":28183,"timestamp":472889047232,"id":1870,"parentId":1859,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"app-pages-browser"},"startTime":1764105534134,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":36244,"timestamp":472889040323,"id":1863,"parentId":1860,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764105534127,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":36848,"timestamp":472889040332,"id":1865,"parentId":1860,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105534127,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":37124,"timestamp":472889040316,"id":1862,"parentId":1860,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764105534127,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":38451,"timestamp":472889040337,"id":1866,"parentId":1860,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105534127,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":379,"timestamp":472889128521,"id":1874,"parentId":1873,"tags":{},"startTime":1764105534215,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":17840,"timestamp":472889128974,"id":1876,"parentId":1875,"tags":{},"startTime":1764105534216,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":18233,"timestamp":472889128912,"id":1875,"parentId":1873,"tags":{},"startTime":1764105534216,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":4625,"timestamp":472889147167,"id":1877,"parentId":1873,"tags":{"astUsed":"true"},"startTime":1764105534234,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":24662,"timestamp":472889128379,"id":1873,"parentId":1869,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764105534215,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":114774,"timestamp":472889046114,"id":1869,"parentId":1859,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764105534133,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":30,"timestamp":472889160936,"id":1878,"parentId":1869,"tags":{},"startTime":1764105534248,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":120647,"timestamp":472889040329,"id":1864,"parentId":1860,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105534127,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":121123,"timestamp":472889039860,"id":1860,"parentId":1859,"tags":{},"startTime":1764105534127,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":613,"timestamp":472889161691,"id":1880,"parentId":1879,"tags":{},"startTime":1764105534249,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":472889162313,"id":1882,"parentId":1879,"tags":{},"startTime":1764105534249,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":17,"timestamp":472889162320,"id":1883,"parentId":1879,"tags":{},"startTime":1764105534249,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":472889162342,"id":1884,"parentId":1879,"tags":{},"startTime":1764105534249,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":6,"timestamp":472889162353,"id":1885,"parentId":1879,"tags":{},"startTime":1764105534249,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":328,"timestamp":472889162311,"id":1881,"parentId":1879,"tags":{},"startTime":1764105534249,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":139,"timestamp":472889162969,"id":1886,"parentId":1879,"tags":{},"startTime":1764105534250,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":627,"timestamp":472889163112,"id":1887,"parentId":1879,"tags":{},"startTime":1764105534250,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":2140,"timestamp":472889164287,"id":1888,"parentId":1879,"tags":{},"startTime":1764105534251,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":94,"timestamp":472889166425,"id":1889,"parentId":1879,"tags":{},"startTime":1764105534253,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":37,"timestamp":472889166514,"id":1890,"parentId":1879,"tags":{},"startTime":1764105534253,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1798,"timestamp":472889166554,"id":1891,"parentId":1879,"tags":{},"startTime":1764105534253,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":48,"timestamp":472889168912,"id":1893,"parentId":1859,"tags":{},"startTime":1764105534256,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":89,"timestamp":472889168876,"id":1892,"parentId":1859,"tags":{},"startTime":1764105534256,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8294,"timestamp":472889161497,"id":1879,"parentId":1859,"tags":{},"startTime":1764105534248,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":130405,"timestamp":472889039412,"id":1859,"parentId":1857,"tags":{"name":"client"},"startTime":1764105534126,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2171,"timestamp":472889169827,"id":1894,"parentId":1857,"tags":{},"startTime":1764105534257,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":140782,"timestamp":472889031655,"id":1857,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764105534119,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":2,"timestamp":472889174125,"id":1897,"parentId":3,"tags":{},"startTime":1764105534261,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6332,"timestamp":472889174913,"id":1900,"parentId":1896,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105534262,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6318,"timestamp":472889174931,"id":1901,"parentId":1896,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105534262,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6689,"timestamp":472889174890,"id":1898,"parentId":1896,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105534262,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":827,"timestamp":472889180947,"id":1904,"parentId":1903,"tags":{},"startTime":1764105534268,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":891,"timestamp":472889180886,"id":1903,"parentId":1902,"tags":{},"startTime":1764105534268,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1614,"timestamp":472889180724,"id":1902,"parentId":1895,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"rsc"},"startTime":1764105534268,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9552,"timestamp":472889174910,"id":1899,"parentId":1896,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105534262,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1580,"timestamp":472889185982,"id":1919,"parentId":1918,"tags":{},"startTime":1764105534273,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1639,"timestamp":472889185924,"id":1918,"parentId":1917,"tags":{},"startTime":1764105534273,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4289,"timestamp":472889185835,"id":1917,"parentId":1895,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"ssr"},"startTime":1764105534273,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":18744,"timestamp":472889173508,"id":1896,"parentId":1895,"tags":{},"startTime":1764105534260,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1305,"timestamp":472889193329,"id":1921,"parentId":1920,"tags":{},"startTime":1764105534280,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":472889194645,"id":1923,"parentId":1920,"tags":{},"startTime":1764105534282,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1105,"timestamp":472889194654,"id":1924,"parentId":1920,"tags":{},"startTime":1764105534282,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":472889195766,"id":1925,"parentId":1920,"tags":{},"startTime":1764105534283,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":472889195775,"id":1926,"parentId":1920,"tags":{},"startTime":1764105534283,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1336,"timestamp":472889194641,"id":1922,"parentId":1920,"tags":{},"startTime":1764105534282,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":207,"timestamp":472889196399,"id":1927,"parentId":1920,"tags":{},"startTime":1764105534283,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":2445,"timestamp":472889196609,"id":1928,"parentId":1920,"tags":{},"startTime":1764105534284,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":666,"timestamp":472889199586,"id":1929,"parentId":1920,"tags":{},"startTime":1764105534286,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":58,"timestamp":472889200249,"id":1930,"parentId":1920,"tags":{},"startTime":1764105534287,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":33,"timestamp":472889200304,"id":1931,"parentId":1920,"tags":{},"startTime":1764105534287,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":700,"timestamp":472889200340,"id":1932,"parentId":1920,"tags":{},"startTime":1764105534287,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":159000,"timestamp":472889033442,"id":1933,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/page.tsx"],"page":"/gunbuilder","isPageHidden":false},"startTime":1764105534288,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8909,"timestamp":472889193119,"id":1920,"parentId":1895,"tags":{},"startTime":1764105534280,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":30038,"timestamp":472889173344,"id":1895,"parentId":1858,"tags":{"name":"server"},"startTime":1764105534260,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1206,"timestamp":472889203394,"id":1934,"parentId":1858,"tags":{},"startTime":1764105534290,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":172942,"timestamp":472889032126,"id":1858,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764105534119,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":9133,"timestamp":472889208522,"id":1935,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764105534295,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472889217738,"id":1936,"parentId":1935,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"563183616","memory.heapUsed":"199423712","memory.heapTotal":"223248384"},"startTime":1764105534305,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6264,"timestamp":472891412043,"id":1942,"parentId":1940,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105536499,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6280,"timestamp":472891412050,"id":1944,"parentId":1940,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105536499,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6428,"timestamp":472891412047,"id":1943,"parentId":1940,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105536499,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6721,"timestamp":472891411998,"id":1941,"parentId":1940,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764105536499,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1327,"timestamp":472891420800,"id":1959,"parentId":1958,"tags":{},"startTime":1764105536508,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1388,"timestamp":472891420744,"id":1958,"parentId":1957,"tags":{},"startTime":1764105536508,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2726,"timestamp":472891420540,"id":1957,"parentId":1939,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx","layer":"ssr"},"startTime":1764105536507,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":14265,"timestamp":472891410891,"id":1940,"parentId":1939,"tags":{},"startTime":1764105536498,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1153,"timestamp":472891426133,"id":1961,"parentId":1960,"tags":{},"startTime":1764105536513,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":472891427294,"id":1963,"parentId":1960,"tags":{},"startTime":1764105536514,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1194,"timestamp":472891427302,"id":1964,"parentId":1960,"tags":{},"startTime":1764105536514,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":472891428504,"id":1965,"parentId":1960,"tags":{},"startTime":1764105536515,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472891428514,"id":1966,"parentId":1960,"tags":{},"startTime":1764105536515,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1353,"timestamp":472891427291,"id":1962,"parentId":1960,"tags":{},"startTime":1764105536514,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":169,"timestamp":472891430375,"id":1967,"parentId":1960,"tags":{},"startTime":1764105536517,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":508,"timestamp":472891430550,"id":1968,"parentId":1960,"tags":{},"startTime":1764105536517,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":740,"timestamp":472891431416,"id":1969,"parentId":1960,"tags":{},"startTime":1764105536518,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":35,"timestamp":472891432156,"id":1970,"parentId":1960,"tags":{},"startTime":1764105536519,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":18,"timestamp":472891432188,"id":1971,"parentId":1960,"tags":{},"startTime":1764105536519,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":429,"timestamp":472891432208,"id":1972,"parentId":1960,"tags":{},"startTime":1764105536519,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7449,"timestamp":472891425937,"id":1960,"parentId":1939,"tags":{},"startTime":1764105536513,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":24014,"timestamp":472891410686,"id":1939,"parentId":1937,"tags":{"name":"server"},"startTime":1764105536498,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1214,"timestamp":472891434710,"id":1973,"parentId":1937,"tags":{},"startTime":1764105536522,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":32927,"timestamp":472891403157,"id":1937,"parentId":3,"tags":{"trigger":"components/CategoryColumn.tsx"},"startTime":1764105536490,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":1971,"timestamp":472891439695,"id":1983,"parentId":1975,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105536527,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2435,"timestamp":472891439658,"id":1976,"parentId":1975,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764105536527,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2669,"timestamp":472891439693,"id":1982,"parentId":1975,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105536527,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2180,"timestamp":472891441953,"id":1987,"parentId":1986,"tags":{},"startTime":1764105536529,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2243,"timestamp":472891441894,"id":1986,"parentId":1985,"tags":{},"startTime":1764105536529,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":3598,"timestamp":472891441816,"id":1985,"parentId":1974,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx","layer":"app-pages-browser"},"startTime":1764105536529,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6456,"timestamp":472891439686,"id":1978,"parentId":1975,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764105536527,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6628,"timestamp":472891439690,"id":1980,"parentId":1975,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105536527,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":3832,"timestamp":472891442850,"id":1989,"parentId":1988,"tags":{},"startTime":1764105536530,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8290,"timestamp":472891439683,"id":1977,"parentId":1975,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764105536527,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8319,"timestamp":472891439692,"id":1981,"parentId":1975,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105536527,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":9099,"timestamp":472891446715,"id":1991,"parentId":1990,"tags":{},"startTime":1764105536534,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":9254,"timestamp":472891446699,"id":1990,"parentId":1988,"tags":{},"startTime":1764105536534,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2807,"timestamp":472891455977,"id":1992,"parentId":1988,"tags":{"astUsed":"true"},"startTime":1764105536543,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":17826,"timestamp":472891442806,"id":1988,"parentId":1984,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764105536530,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":21578,"timestamp":472891440946,"id":1984,"parentId":1974,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764105536528,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":15,"timestamp":472891462606,"id":1993,"parentId":1984,"tags":{},"startTime":1764105536550,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":22946,"timestamp":472891439688,"id":1979,"parentId":1975,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105536527,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":25751,"timestamp":472891436896,"id":1975,"parentId":1974,"tags":{},"startTime":1764105536524,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1152,"timestamp":472891463645,"id":1995,"parentId":1994,"tags":{},"startTime":1764105536551,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":472891464823,"id":1997,"parentId":1994,"tags":{},"startTime":1764105536552,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":43,"timestamp":472891464840,"id":1998,"parentId":1994,"tags":{},"startTime":1764105536552,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":5,"timestamp":472891464907,"id":1999,"parentId":1994,"tags":{},"startTime":1764105536552,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472891464926,"id":2000,"parentId":1994,"tags":{},"startTime":1764105536552,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":406,"timestamp":472891464811,"id":1996,"parentId":1994,"tags":{},"startTime":1764105536552,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":360,"timestamp":472891465878,"id":2001,"parentId":1994,"tags":{},"startTime":1764105536553,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":1012,"timestamp":472891466247,"id":2002,"parentId":1994,"tags":{},"startTime":1764105536553,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1619,"timestamp":472891467953,"id":2003,"parentId":1994,"tags":{},"startTime":1764105536555,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":94,"timestamp":472891469571,"id":2004,"parentId":1994,"tags":{},"startTime":1764105536556,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":29,"timestamp":472891469661,"id":2005,"parentId":1994,"tags":{},"startTime":1764105536557,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1902,"timestamp":472891469692,"id":2006,"parentId":1994,"tags":{},"startTime":1764105536557,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":39,"timestamp":472891472163,"id":2008,"parentId":1974,"tags":{},"startTime":1764105536559,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":80,"timestamp":472891472126,"id":2007,"parentId":1974,"tags":{},"startTime":1764105536559,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":9768,"timestamp":472891463338,"id":1994,"parentId":1974,"tags":{},"startTime":1764105536550,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":36392,"timestamp":472891436733,"id":1974,"parentId":1938,"tags":{"name":"client"},"startTime":1764105536524,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":6585,"timestamp":472891473137,"id":2009,"parentId":1938,"tags":{},"startTime":1764105536560,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":77115,"timestamp":472891403233,"id":1938,"parentId":3,"tags":{"trigger":"components/CategoryColumn.tsx"},"startTime":1764105536490,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":2,"timestamp":472891481391,"id":2011,"parentId":3,"tags":{},"startTime":1764105536568,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10387,"timestamp":472891482522,"id":2012,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764105536569,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472891492928,"id":2023,"parentId":2012,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"576634880","memory.heapUsed":"199422616","memory.heapTotal":"237355008"},"startTime":1764105536580,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4192,"timestamp":472891490500,"id":2022,"parentId":2014,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105536577,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4489,"timestamp":472891490453,"id":2015,"parentId":2014,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764105536577,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4759,"timestamp":472891490498,"id":2021,"parentId":2014,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105536577,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5192,"timestamp":472891490496,"id":2020,"parentId":2014,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105536577,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5890,"timestamp":472891490491,"id":2017,"parentId":2014,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764105536577,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5969,"timestamp":472891490494,"id":2019,"parentId":2014,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105536577,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":669,"timestamp":472891495819,"id":2026,"parentId":2025,"tags":{},"startTime":1764105536583,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":6618,"timestamp":472891496531,"id":2028,"parentId":2027,"tags":{},"startTime":1764105536583,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":6706,"timestamp":472891496511,"id":2027,"parentId":2025,"tags":{},"startTime":1764105536583,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":1875,"timestamp":472891503229,"id":2029,"parentId":2025,"tags":{"astUsed":"true"},"startTime":1764105536590,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":9864,"timestamp":472891495772,"id":2025,"parentId":2024,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764105536583,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":19000,"timestamp":472891481460,"id":2030,"parentId":3,"tags":{"updatedModules":["[project]/components/CategoryColumn.tsx"],"page":"/gunbuilder","isPageHidden":false},"startTime":1764105536593,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":16091,"timestamp":472891490487,"id":2016,"parentId":2014,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764105536577,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":14169,"timestamp":472891494022,"id":2024,"parentId":2013,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764105536581,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":13,"timestamp":472891508404,"id":2031,"parentId":2024,"tags":{},"startTime":1764105536595,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":18067,"timestamp":472891490493,"id":2018,"parentId":2014,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764105536577,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":18266,"timestamp":472891490306,"id":2014,"parentId":2013,"tags":{},"startTime":1764105536577,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":778,"timestamp":472891509567,"id":2033,"parentId":2032,"tags":{},"startTime":1764105536596,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":5,"timestamp":472891510373,"id":2035,"parentId":2032,"tags":{},"startTime":1764105536597,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":30,"timestamp":472891510385,"id":2036,"parentId":2032,"tags":{},"startTime":1764105536597,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":4,"timestamp":472891510420,"id":2037,"parentId":2032,"tags":{},"startTime":1764105536597,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":472891510431,"id":2038,"parentId":2032,"tags":{},"startTime":1764105536597,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":240,"timestamp":472891510370,"id":2034,"parentId":2032,"tags":{},"startTime":1764105536597,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":154,"timestamp":472891511069,"id":2039,"parentId":2032,"tags":{},"startTime":1764105536598,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":493,"timestamp":472891511227,"id":2040,"parentId":2032,"tags":{},"startTime":1764105536598,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1516,"timestamp":472891512321,"id":2041,"parentId":2032,"tags":{},"startTime":1764105536599,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":64,"timestamp":472891513836,"id":2042,"parentId":2032,"tags":{},"startTime":1764105536601,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":39,"timestamp":472891513897,"id":2043,"parentId":2032,"tags":{},"startTime":1764105536601,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1165,"timestamp":472891513938,"id":2044,"parentId":2032,"tags":{},"startTime":1764105536601,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":28,"timestamp":472891515420,"id":2046,"parentId":2013,"tags":{},"startTime":1764105536602,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":54,"timestamp":472891515397,"id":2045,"parentId":2013,"tags":{},"startTime":1764105536602,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6823,"timestamp":472891509207,"id":2032,"parentId":2013,"tags":{},"startTime":1764105536596,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":25925,"timestamp":472891490116,"id":2013,"parentId":2010,"tags":{"name":"client"},"startTime":1764105536577,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2374,"timestamp":472891516054,"id":2047,"parentId":2010,"tags":{},"startTime":1764105536603,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":38215,"timestamp":472891481000,"id":2010,"parentId":3,"tags":{"trigger":"components"},"startTime":1764105536568,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":2,"timestamp":472891519851,"id":2048,"parentId":3,"tags":{},"startTime":1764105536607,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4189,"timestamp":472891522165,"id":2049,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764105536609,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472891526366,"id":2050,"parentId":2049,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"586776576","memory.heapUsed":"221626192","memory.heapTotal":"247578624"},"startTime":1764105536613,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":47000,"timestamp":472891481518,"id":2051,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764105536615,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":29071,"timestamp":472893357790,"id":2052,"tags":{"url":"/gunbuilder","isTurbopack":false},"startTime":1764105538445,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472893386887,"id":2053,"parentId":2052,"tags":{"url":"/gunbuilder","memory.rss":"587792384","memory.heapUsed":"200686536","memory.heapTotal":"248528896"},"startTime":1764105538474,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":2,"timestamp":472893590004,"id":2054,"parentId":3,"tags":{},"startTime":1764105538677,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":16629,"timestamp":472895893236,"id":2055,"tags":{"url":"/gunbuilder/barrel?_rsc=1acsq","isTurbopack":false},"startTime":1764105540980,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472895909905,"id":2056,"parentId":2055,"tags":{"url":"/gunbuilder/barrel?_rsc=1acsq","memory.rss":"588447744","memory.heapUsed":"203384592","memory.heapTotal":"248725504"},"startTime":1764105540997,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5915,"timestamp":472895918327,"id":2057,"tags":{"url":"/gunbuilder/barrel?_rsc=2b9yl","isTurbopack":false},"startTime":1764105541005,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472895924262,"id":2058,"parentId":2057,"tags":{"url":"/gunbuilder/barrel?_rsc=2b9yl","memory.rss":"588464128","memory.heapUsed":"204271640","memory.heapTotal":"248725504"},"startTime":1764105541011,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7215,"timestamp":472896917057,"id":2059,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-ba-13-9&_rsc=2t5kv","isTurbopack":false},"startTime":1764105542004,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472896924340,"id":2060,"parentId":2059,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-ba-13-9&_rsc=2t5kv","memory.rss":"588890112","memory.heapUsed":"204967328","memory.heapTotal":"248725504"},"startTime":1764105542011,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7125,"timestamp":472896927433,"id":2061,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-ba-13-9&_rsc=bpw29","isTurbopack":false},"startTime":1764105542014,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472896934586,"id":2062,"parentId":2061,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-ba-13-9&_rsc=bpw29","memory.rss":"588955648","memory.heapUsed":"205622712","memory.heapTotal":"248725504"},"startTime":1764105542021,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":12869,"timestamp":472902838133,"id":2063,"tags":{"url":"/gunbuilder/handguard?_rsc=10u94","isTurbopack":false},"startTime":1764105547925,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472902851038,"id":2064,"parentId":2063,"tags":{"url":"/gunbuilder/handguard?_rsc=10u94","memory.rss":"527908864","memory.heapUsed":"179986640","memory.heapTotal":"187187200"},"startTime":1764105547938,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5805,"timestamp":472902855569,"id":2065,"tags":{"url":"/gunbuilder/handguard?_rsc=rs5ev","isTurbopack":false},"startTime":1764105547942,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472902861391,"id":2066,"parentId":2065,"tags":{"url":"/gunbuilder/handguard?_rsc=rs5ev","memory.rss":"528613376","memory.heapUsed":"180126048","memory.heapTotal":"187973632"},"startTime":1764105547948,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10910,"timestamp":472904350973,"id":2067,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-centurion-c4&_rsc=1wjnh","isTurbopack":false},"startTime":1764105549438,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":472904361953,"id":2068,"parentId":2067,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-centurion-c4&_rsc=1wjnh","memory.rss":"528613376","memory.heapUsed":"180758976","memory.heapTotal":"187973632"},"startTime":1764105549449,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8124,"timestamp":472904365390,"id":2069,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-centurion-c4&_rsc=de779","isTurbopack":false},"startTime":1764105549452,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472904373545,"id":2070,"parentId":2069,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-centurion-c4&_rsc=de779","memory.rss":"528629760","memory.heapUsed":"180623704","memory.heapTotal":"186925056"},"startTime":1764105549460,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":13125,"timestamp":472908252323,"id":2071,"tags":{"url":"/gunbuilder/handguard/hg-geissele-mk8?_rsc=1wjnh","isTurbopack":false},"startTime":1764105553339,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472908265490,"id":2072,"parentId":2071,"tags":{"url":"/gunbuilder/handguard/hg-geissele-mk8?_rsc=1wjnh","memory.rss":"480149504","memory.heapUsed":"181189016","memory.heapTotal":"186859520"},"startTime":1764105553352,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5062,"timestamp":472908269206,"id":2073,"tags":{"url":"/gunbuilder/handguard/hg-geissele-mk8?_rsc=14gmu","isTurbopack":false},"startTime":1764105553356,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":472908274287,"id":2074,"parentId":2073,"tags":{"url":"/gunbuilder/handguard/hg-geissele-mk8?_rsc=14gmu","memory.rss":"480083968","memory.heapUsed":"180452664","memory.heapTotal":"187973632"},"startTime":1764105553361,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8225,"timestamp":472909426895,"id":2075,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=1ivld","isTurbopack":false},"startTime":1764105554514,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":472909435186,"id":2076,"parentId":2075,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=1ivld","memory.rss":"480116736","memory.heapUsed":"180520128","memory.heapTotal":"186925056"},"startTime":1764105554522,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6673,"timestamp":472909437843,"id":2077,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=5xggt","isTurbopack":false},"startTime":1764105554525,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472909444546,"id":2078,"parentId":2077,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=5xggt","memory.rss":"480116736","memory.heapUsed":"181179128","memory.heapTotal":"186925056"},"startTime":1764105554531,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10233,"timestamp":472915678422,"id":2079,"tags":{"url":"/gunbuilder/stock?_rsc=wvdsh","isTurbopack":false},"startTime":1764105560765,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472915688694,"id":2080,"parentId":2079,"tags":{"url":"/gunbuilder/stock?_rsc=wvdsh","memory.rss":"480165888","memory.heapUsed":"181314968","memory.heapTotal":"186662912"},"startTime":1764105560776,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5468,"timestamp":472915693041,"id":2081,"tags":{"url":"/gunbuilder/stock?_rsc=iik8j","isTurbopack":false},"startTime":1764105560780,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472915698533,"id":2082,"parentId":2081,"tags":{"url":"/gunbuilder/stock?_rsc=iik8j","memory.rss":"480182272","memory.heapUsed":"181401264","memory.heapTotal":"187973632"},"startTime":1764105560785,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9850,"timestamp":472917044405,"id":2083,"tags":{"url":"/gunbuilder?select=stock%3Astock-b5-bravo&_rsc=g9x6a","isTurbopack":false},"startTime":1764105562131,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":472917054317,"id":2084,"parentId":2083,"tags":{"url":"/gunbuilder?select=stock%3Astock-b5-bravo&_rsc=g9x6a","memory.rss":"480198656","memory.heapUsed":"181321840","memory.heapTotal":"187187200"},"startTime":1764105562141,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8341,"timestamp":472917057565,"id":2085,"tags":{"url":"/gunbuilder?select=stock%3Astock-b5-bravo&_rsc=16qd3","isTurbopack":false},"startTime":1764105562144,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":472917065941,"id":2086,"parentId":2085,"tags":{"url":"/gunbuilder?select=stock%3Astock-b5-bravo&_rsc=16qd3","memory.rss":"480215040","memory.heapUsed":"181197312","memory.heapTotal":"187711488"},"startTime":1764105562153,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":28328,"timestamp":473971405925,"id":2087,"tags":{"url":"/gunbuilder?select=stock:stock-b5-bravo","isTurbopack":false},"startTime":1764106616493,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":473971434294,"id":2088,"parentId":2087,"tags":{"url":"/gunbuilder?select=stock:stock-b5-bravo","memory.rss":"525942784","memory.heapUsed":"193917656","memory.heapTotal":"206520320"},"startTime":1764106616522,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":3,"timestamp":473971631416,"id":2089,"parentId":3,"tags":{},"startTime":1764106616719,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9246,"timestamp":473973449525,"id":2090,"tags":{"url":"/gunbuilder/stock?_rsc=iik8j","isTurbopack":false},"startTime":1764106618537,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":473973458800,"id":2091,"parentId":2090,"tags":{"url":"/gunbuilder/stock?_rsc=iik8j","memory.rss":"531005440","memory.heapUsed":"196230024","memory.heapTotal":"207831040"},"startTime":1764106618546,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8944,"timestamp":473974795476,"id":2092,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=5xggt","isTurbopack":false},"startTime":1764106619883,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":473974804452,"id":2093,"parentId":2092,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=5xggt","memory.rss":"532316160","memory.heapUsed":"197007640","memory.heapTotal":"208355328"},"startTime":1764106619892,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":17785,"timestamp":473977162459,"id":2094,"tags":{"url":"/","isTurbopack":false},"startTime":1764106622250,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":473977180302,"id":2095,"parentId":2094,"tags":{"url":"/","memory.rss":"533626880","memory.heapUsed":"198705760","memory.heapTotal":"209666048"},"startTime":1764106622268,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":3,"timestamp":473977377351,"id":2096,"parentId":3,"tags":{},"startTime":1764106622465,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":12347,"timestamp":473979818970,"id":2097,"tags":{"url":"/gunbuilder?_rsc=1wtp7","isTurbopack":false},"startTime":1764106624906,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":473979831359,"id":2098,"parentId":2097,"tags":{"url":"/gunbuilder?_rsc=1wtp7","memory.rss":"542457856","memory.heapUsed":"200164048","memory.heapTotal":"211501056"},"startTime":1764106624919,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6740,"timestamp":473979838860,"id":2099,"tags":{"url":"/gunbuilder?_rsc=52fbb","isTurbopack":false},"startTime":1764106624926,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":473979845634,"id":2100,"parentId":2099,"tags":{"url":"/gunbuilder?_rsc=52fbb","memory.rss":"543080448","memory.heapUsed":"188015976","memory.heapTotal":"194985984"},"startTime":1764106624933,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":13694,"timestamp":474128301457,"id":2101,"tags":{"url":"/","isTurbopack":false},"startTime":1764106773389,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474128315182,"id":2102,"parentId":2101,"tags":{"url":"/","memory.rss":"543129600","memory.heapUsed":"189151552","memory.heapTotal":"196296704"},"startTime":1764106773402,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":2,"timestamp":474128512681,"id":2103,"parentId":3,"tags":{},"startTime":1764106773600,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":2,"timestamp":474128515767,"id":2104,"parentId":3,"tags":{},"startTime":1764106773603,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4743,"timestamp":474129690170,"id":2105,"tags":{"url":"/gunbuilder?_rsc=1wtp7","isTurbopack":false},"startTime":1764106774777,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474129694953,"id":2106,"parentId":2105,"tags":{"url":"/gunbuilder?_rsc=1wtp7","memory.rss":"543588352","memory.heapUsed":"188218384","memory.heapTotal":"194461696"},"startTime":1764106774782,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5387,"timestamp":474129699296,"id":2107,"tags":{"url":"/gunbuilder?_rsc=52fbb","isTurbopack":false},"startTime":1764106774786,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474129704708,"id":2108,"parentId":2107,"tags":{"url":"/gunbuilder?_rsc=52fbb","memory.rss":"543588352","memory.heapUsed":"188857952","memory.heapTotal":"194461696"},"startTime":1764106774792,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8880,"timestamp":474143030985,"id":2109,"tags":{"url":"/gunbuilder/upper?_rsc=1acsq","isTurbopack":false},"startTime":1764106788118,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474143039899,"id":2110,"parentId":2109,"tags":{"url":"/gunbuilder/upper?_rsc=1acsq","memory.rss":"543588352","memory.heapUsed":"188336328","memory.heapTotal":"194461696"},"startTime":1764106788127,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":3808,"timestamp":474143043618,"id":2111,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","isTurbopack":false},"startTime":1764106788131,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474143047448,"id":2112,"parentId":2111,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","memory.rss":"543588352","memory.heapUsed":"188358624","memory.heapTotal":"194723840"},"startTime":1764106788135,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7717,"timestamp":474143945203,"id":2113,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=1d33p","isTurbopack":false},"startTime":1764106789032,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474143952961,"id":2114,"parentId":2113,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=1d33p","memory.rss":"543588352","memory.heapUsed":"189078128","memory.heapTotal":"195510272"},"startTime":1764106789040,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6076,"timestamp":474143956451,"id":2115,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=nxvwl","isTurbopack":false},"startTime":1764106789044,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474143962555,"id":2116,"parentId":2115,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=nxvwl","memory.rss":"543588352","memory.heapUsed":"188956064","memory.heapTotal":"194461696"},"startTime":1764106789050,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6577,"timestamp":474194067868,"id":2128,"parentId":2120,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106839155,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7205,"timestamp":474194067808,"id":2121,"parentId":2120,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764106839155,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7741,"timestamp":474194067866,"id":2127,"parentId":2120,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106839155,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1870,"timestamp":474194074847,"id":2132,"parentId":2131,"tags":{},"startTime":1764106839162,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1950,"timestamp":474194074769,"id":2131,"parentId":2130,"tags":{},"startTime":1764106839162,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":5195,"timestamp":474194074666,"id":2130,"parentId":2119,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx","layer":"app-pages-browser"},"startTime":1764106839162,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12903,"timestamp":474194067857,"id":2123,"parentId":2120,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764106839155,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":14117,"timestamp":474194067862,"id":2125,"parentId":2120,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106839155,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":14169,"timestamp":474194067864,"id":2126,"parentId":2120,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106839155,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":5386,"timestamp":474194076655,"id":2134,"parentId":2133,"tags":{},"startTime":1764106839164,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":18691,"timestamp":474194067853,"id":2122,"parentId":2120,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764106839155,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":14442,"timestamp":474194082123,"id":2136,"parentId":2135,"tags":{},"startTime":1764106839169,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":14835,"timestamp":474194082061,"id":2135,"parentId":2133,"tags":{},"startTime":1764106839169,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":3135,"timestamp":474194096939,"id":2137,"parentId":2133,"tags":{"astUsed":"true"},"startTime":1764106839184,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":24647,"timestamp":474194076569,"id":2133,"parentId":2129,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764106839164,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":31852,"timestamp":474194072222,"id":2129,"parentId":2119,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764106839159,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":39,"timestamp":474194104206,"id":2138,"parentId":2129,"tags":{},"startTime":1764106839191,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":36406,"timestamp":474194067860,"id":2124,"parentId":2120,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106839155,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":36783,"timestamp":474194067494,"id":2120,"parentId":2119,"tags":{},"startTime":1764106839155,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":14195,"timestamp":474194111361,"id":2140,"parentId":2139,"tags":{},"startTime":1764106839198,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":474194125575,"id":2142,"parentId":2139,"tags":{},"startTime":1764106839213,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":49,"timestamp":474194125617,"id":2143,"parentId":2139,"tags":{},"startTime":1764106839213,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":4,"timestamp":474194125694,"id":2144,"parentId":2139,"tags":{},"startTime":1764106839213,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474194125718,"id":2145,"parentId":2139,"tags":{},"startTime":1764106839213,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":406,"timestamp":474194125567,"id":2141,"parentId":2139,"tags":{},"startTime":1764106839213,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":227,"timestamp":474194126366,"id":2146,"parentId":2139,"tags":{},"startTime":1764106839213,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":534,"timestamp":474194126597,"id":2147,"parentId":2139,"tags":{},"startTime":1764106839214,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1425,"timestamp":474194127819,"id":2148,"parentId":2139,"tags":{},"startTime":1764106839215,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":57,"timestamp":474194129244,"id":2149,"parentId":2139,"tags":{},"startTime":1764106839216,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":25,"timestamp":474194129297,"id":2150,"parentId":2139,"tags":{},"startTime":1764106839216,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1449,"timestamp":474194129324,"id":2151,"parentId":2139,"tags":{},"startTime":1764106839216,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":53,"timestamp":474194131304,"id":2153,"parentId":2119,"tags":{},"startTime":1764106839218,"traceId":"e274ac96b05c42d4"}]
-[{"name":"NextJsBuildManifest-createassets","duration":213,"timestamp":474194131279,"id":2152,"parentId":2119,"tags":{},"startTime":1764106839218,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":21126,"timestamp":474194111042,"id":2139,"parentId":2119,"tags":{},"startTime":1764106839198,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":65257,"timestamp":474194066923,"id":2119,"parentId":2117,"tags":{"name":"client"},"startTime":1764106839154,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2777,"timestamp":474194132190,"id":2154,"parentId":2117,"tags":{},"startTime":1764106839219,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":75360,"timestamp":474194060059,"id":2117,"parentId":3,"tags":{"trigger":"components/CategoryColumn.tsx"},"startTime":1764106839147,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474194136933,"id":2157,"parentId":3,"tags":{},"startTime":1764106839224,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474194136957,"id":2158,"parentId":3,"tags":{},"startTime":1764106839224,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5084,"timestamp":474194138041,"id":2160,"parentId":2156,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764106839225,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":82000,"timestamp":474194061410,"id":2161,"parentId":3,"tags":{"updatedModules":["[project]/components/CategoryColumn.tsx"],"page":"/gunbuilder","isPageHidden":false},"startTime":1764106839231,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6618,"timestamp":474194138004,"id":2159,"parentId":2156,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764106839225,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1172,"timestamp":474194146183,"id":2170,"parentId":2169,"tags":{},"startTime":1764106839233,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1243,"timestamp":474194146119,"id":2169,"parentId":2168,"tags":{},"startTime":1764106839233,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":3269,"timestamp":474194145931,"id":2168,"parentId":2155,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx","layer":"ssr"},"startTime":1764106839233,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":14810,"timestamp":474194136423,"id":2156,"parentId":2155,"tags":{},"startTime":1764106839223,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":814,"timestamp":474194157611,"id":2172,"parentId":2171,"tags":{},"startTime":1764106839245,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474194158439,"id":2174,"parentId":2171,"tags":{},"startTime":1764106839245,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":879,"timestamp":474194158505,"id":2175,"parentId":2171,"tags":{},"startTime":1764106839246,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":4,"timestamp":474194159405,"id":2176,"parentId":2171,"tags":{},"startTime":1764106839246,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474194159419,"id":2177,"parentId":2171,"tags":{},"startTime":1764106839246,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1226,"timestamp":474194158434,"id":2173,"parentId":2171,"tags":{},"startTime":1764106839245,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":229,"timestamp":474194160217,"id":2178,"parentId":2171,"tags":{},"startTime":1764106839247,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":655,"timestamp":474194160453,"id":2179,"parentId":2171,"tags":{},"startTime":1764106839247,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":919,"timestamp":474194161756,"id":2180,"parentId":2171,"tags":{},"startTime":1764106839249,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":86,"timestamp":474194162674,"id":2181,"parentId":2171,"tags":{},"startTime":1764106839250,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":40,"timestamp":474194162749,"id":2182,"parentId":2171,"tags":{},"startTime":1764106839250,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":2106,"timestamp":474194162793,"id":2183,"parentId":2171,"tags":{},"startTime":1764106839250,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":93000,"timestamp":474194061465,"id":2184,"parentId":3,"tags":{"updatedModules":["[project]/components/CategoryColumn.tsx"],"page":"/gunbuilder","isPageHidden":true},"startTime":1764106839253,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8736,"timestamp":474194157301,"id":2171,"parentId":2155,"tags":{},"startTime":1764106839244,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":30662,"timestamp":474194136280,"id":2155,"parentId":2118,"tags":{"name":"server"},"startTime":1764106839223,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2038,"timestamp":474194166974,"id":2185,"parentId":2118,"tags":{},"startTime":1764106839254,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":109370,"timestamp":474194060234,"id":2118,"parentId":3,"tags":{"trigger":"components/CategoryColumn.tsx"},"startTime":1764106839147,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":22676,"timestamp":474194178702,"id":2186,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=13jbp","isTurbopack":false},"startTime":1764106839266,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474194201402,"id":2188,"parentId":2186,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=13jbp","memory.rss":"561610752","memory.heapUsed":"191643768","memory.heapTotal":"213794816"},"startTime":1764106839288,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":22626,"timestamp":474194178913,"id":2187,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764106839266,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474194201548,"id":2189,"parentId":2187,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"561610752","memory.heapUsed":"191661200","memory.heapTotal":"213794816"},"startTime":1764106839289,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3580,"timestamp":474202394466,"id":2201,"parentId":2193,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106847481,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4175,"timestamp":474202394393,"id":2194,"parentId":2193,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764106847481,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4471,"timestamp":474202394464,"id":2200,"parentId":2193,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106847481,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1635,"timestamp":474202398444,"id":2205,"parentId":2204,"tags":{},"startTime":1764106847485,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1732,"timestamp":474202398350,"id":2204,"parentId":2203,"tags":{},"startTime":1764106847485,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4120,"timestamp":474202398249,"id":2203,"parentId":2192,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx","layer":"app-pages-browser"},"startTime":1764106847485,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8378,"timestamp":474202394454,"id":2196,"parentId":2193,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764106847481,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8542,"timestamp":474202394459,"id":2198,"parentId":2193,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106847481,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":3864,"timestamp":474202399603,"id":2207,"parentId":2206,"tags":{},"startTime":1764106847487,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11435,"timestamp":474202394462,"id":2199,"parentId":2193,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106847481,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11608,"timestamp":474202394448,"id":2195,"parentId":2193,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764106847481,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":10114,"timestamp":474202403501,"id":2209,"parentId":2208,"tags":{},"startTime":1764106847491,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":10365,"timestamp":474202403483,"id":2208,"parentId":2206,"tags":{},"startTime":1764106847491,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2352,"timestamp":474202413865,"id":2210,"parentId":2206,"tags":{"astUsed":"true"},"startTime":1764106847501,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":17236,"timestamp":474202399527,"id":2206,"parentId":2202,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764106847487,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":22360,"timestamp":474202397229,"id":2202,"parentId":2192,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764106847484,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":12,"timestamp":474202419677,"id":2211,"parentId":2202,"tags":{},"startTime":1764106847507,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":25252,"timestamp":474202394457,"id":2197,"parentId":2193,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106847481,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":25541,"timestamp":474202394176,"id":2193,"parentId":2192,"tags":{},"startTime":1764106847481,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":667,"timestamp":474202420553,"id":2213,"parentId":2212,"tags":{},"startTime":1764106847508,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474202421227,"id":2215,"parentId":2212,"tags":{},"startTime":1764106847508,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":18,"timestamp":474202421235,"id":2216,"parentId":2212,"tags":{},"startTime":1764106847508,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":474202421259,"id":2217,"parentId":2212,"tags":{},"startTime":1764106847508,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474202421268,"id":2218,"parentId":2212,"tags":{},"startTime":1764106847508,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":297,"timestamp":474202421225,"id":2214,"parentId":2212,"tags":{},"startTime":1764106847508,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":170,"timestamp":474202421866,"id":2219,"parentId":2212,"tags":{},"startTime":1764106847509,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":412,"timestamp":474202422041,"id":2220,"parentId":2212,"tags":{},"startTime":1764106847509,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1282,"timestamp":474202422843,"id":2221,"parentId":2212,"tags":{},"startTime":1764106847510,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":54,"timestamp":474202424125,"id":2222,"parentId":2212,"tags":{},"startTime":1764106847511,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":22,"timestamp":474202424176,"id":2223,"parentId":2212,"tags":{},"startTime":1764106847511,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1056,"timestamp":474202424200,"id":2224,"parentId":2212,"tags":{},"startTime":1764106847511,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":28,"timestamp":474202425630,"id":2226,"parentId":2192,"tags":{},"startTime":1764106847513,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":71,"timestamp":474202425590,"id":2225,"parentId":2192,"tags":{},"startTime":1764106847513,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6036,"timestamp":474202420326,"id":2212,"parentId":2192,"tags":{},"startTime":1764106847507,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":32435,"timestamp":474202393942,"id":2192,"parentId":2190,"tags":{"name":"client"},"startTime":1764106847481,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1911,"timestamp":474202426387,"id":2227,"parentId":2190,"tags":{},"startTime":1764106847513,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":41814,"timestamp":474202386831,"id":2190,"parentId":3,"tags":{"trigger":"components/CategoryColumn.tsx"},"startTime":1764106847474,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":474202431691,"id":2230,"parentId":3,"tags":{},"startTime":1764106847519,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474202431722,"id":2231,"parentId":3,"tags":{},"startTime":1764106847519,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":49000,"timestamp":474202387020,"id":2234,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764106847523,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5091,"timestamp":474202432850,"id":2233,"parentId":2229,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764106847520,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5509,"timestamp":474202432824,"id":2232,"parentId":2229,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764106847520,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":52000,"timestamp":474202386779,"id":2244,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764106847527,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1173,"timestamp":474202439695,"id":2243,"parentId":2242,"tags":{},"startTime":1764106847527,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1231,"timestamp":474202439639,"id":2242,"parentId":2241,"tags":{},"startTime":1764106847527,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2792,"timestamp":474202439481,"id":2241,"parentId":2228,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx","layer":"ssr"},"startTime":1764106847527,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":14168,"timestamp":474202429865,"id":2229,"parentId":2228,"tags":{},"startTime":1764106847517,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":650,"timestamp":474202444794,"id":2246,"parentId":2245,"tags":{},"startTime":1764106847532,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474202445451,"id":2248,"parentId":2245,"tags":{},"startTime":1764106847532,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":598,"timestamp":474202445459,"id":2249,"parentId":2245,"tags":{},"startTime":1764106847532,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474202446063,"id":2250,"parentId":2245,"tags":{},"startTime":1764106847533,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474202446071,"id":2251,"parentId":2245,"tags":{},"startTime":1764106847533,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":760,"timestamp":474202445448,"id":2247,"parentId":2245,"tags":{},"startTime":1764106847532,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":129,"timestamp":474202446588,"id":2252,"parentId":2245,"tags":{},"startTime":1764106847534,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":281,"timestamp":474202446721,"id":2253,"parentId":2245,"tags":{},"startTime":1764106847534,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":552,"timestamp":474202447265,"id":2254,"parentId":2245,"tags":{},"startTime":1764106847534,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":22,"timestamp":474202447818,"id":2255,"parentId":2245,"tags":{},"startTime":1764106847535,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":17,"timestamp":474202447838,"id":2256,"parentId":2245,"tags":{},"startTime":1764106847535,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":48,"timestamp":474202447857,"id":2257,"parentId":2245,"tags":{},"startTime":1764106847535,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":4772,"timestamp":474202444630,"id":2245,"parentId":2228,"tags":{},"startTime":1764106847532,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":20419,"timestamp":474202429685,"id":2228,"parentId":2191,"tags":{"name":"server"},"startTime":1764106847517,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":766,"timestamp":474202450118,"id":2258,"parentId":2191,"tags":{},"startTime":1764106847537,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":64249,"timestamp":474202387070,"id":2191,"parentId":3,"tags":{"trigger":"components/CategoryColumn.tsx"},"startTime":1764106847474,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":7618,"timestamp":474202453880,"id":2259,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=1jouf","isTurbopack":false},"startTime":1764106847541,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474202461522,"id":2261,"parentId":2259,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=1jouf","memory.rss":"567984128","memory.heapUsed":"203993072","memory.heapTotal":"231309312"},"startTime":1764106847549,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8373,"timestamp":474202454063,"id":2260,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764106847541,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474202462451,"id":2262,"parentId":2260,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"567984128","memory.heapUsed":"204081000","memory.heapTotal":"231309312"},"startTime":1764106847549,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9785,"timestamp":474210996553,"id":2263,"tags":{"url":"/gunbuilder/lower?_rsc=145qt","isTurbopack":false},"startTime":1764106856084,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474211006372,"id":2264,"parentId":2263,"tags":{"url":"/gunbuilder/lower?_rsc=145qt","memory.rss":"568459264","memory.heapUsed":"205643728","memory.heapTotal":"231768064"},"startTime":1764106856093,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5384,"timestamp":474211009503,"id":2265,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","isTurbopack":false},"startTime":1764106856097,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474211014910,"id":2266,"parentId":2265,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","memory.rss":"568459264","memory.heapUsed":"206469624","memory.heapTotal":"231768064"},"startTime":1764106856102,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4442,"timestamp":474211672206,"id":2267,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=uiigs","isTurbopack":false},"startTime":1764106856759,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474211676686,"id":2268,"parentId":2267,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=uiigs","memory.rss":"568475648","memory.heapUsed":"207088744","memory.heapTotal":"231768064"},"startTime":1764106856764,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4624,"timestamp":474211679429,"id":2269,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","isTurbopack":false},"startTime":1764106856766,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474211684074,"id":2270,"parentId":2269,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","memory.rss":"568508416","memory.heapUsed":"207732696","memory.heapTotal":"231768064"},"startTime":1764106856771,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5646,"timestamp":474261203330,"id":2271,"tags":{"url":"/gunbuilder?_rsc=x5p1f","isTurbopack":false},"startTime":1764106906290,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":474261209026,"id":2272,"parentId":2271,"tags":{"url":"/gunbuilder?_rsc=x5p1f","memory.rss":"530071552","memory.heapUsed":"208567936","memory.heapTotal":"231768064"},"startTime":1764106906296,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4458,"timestamp":474276001741,"id":2278,"parentId":2276,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764106921089,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1442,"timestamp":474276005770,"id":2281,"parentId":2280,"tags":{},"startTime":1764106921093,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1525,"timestamp":474276005689,"id":2280,"parentId":2279,"tags":{},"startTime":1764106921093,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":3211,"timestamp":474276005441,"id":2279,"parentId":2275,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"rsc"},"startTime":1764106921092,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8306,"timestamp":474276001692,"id":2277,"parentId":2276,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764106921089,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2304,"timestamp":474276011184,"id":2290,"parentId":2289,"tags":{},"startTime":1764106921098,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2370,"timestamp":474276011122,"id":2289,"parentId":2288,"tags":{},"startTime":1764106921098,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6562,"timestamp":474276010998,"id":2288,"parentId":2275,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"ssr"},"startTime":1764106921098,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":47306,"timestamp":474276000575,"id":2276,"parentId":2275,"tags":{},"startTime":1764106921088,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":753,"timestamp":474276049209,"id":2292,"parentId":2291,"tags":{},"startTime":1764106921136,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474276049972,"id":2294,"parentId":2291,"tags":{},"startTime":1764106921137,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":612,"timestamp":474276049983,"id":2295,"parentId":2291,"tags":{},"startTime":1764106921137,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":474276050606,"id":2296,"parentId":2291,"tags":{},"startTime":1764106921138,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474276050618,"id":2297,"parentId":2291,"tags":{},"startTime":1764106921138,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":815,"timestamp":474276049969,"id":2293,"parentId":2291,"tags":{},"startTime":1764106921137,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":193,"timestamp":474276051155,"id":2298,"parentId":2291,"tags":{},"startTime":1764106921138,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":1244,"timestamp":474276051352,"id":2299,"parentId":2291,"tags":{},"startTime":1764106921138,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":862,"timestamp":474276053243,"id":2300,"parentId":2291,"tags":{},"startTime":1764106921140,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":58,"timestamp":474276054105,"id":2301,"parentId":2291,"tags":{},"startTime":1764106921141,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":42,"timestamp":474276054158,"id":2302,"parentId":2291,"tags":{},"startTime":1764106921141,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1295,"timestamp":474276054203,"id":2303,"parentId":2291,"tags":{},"startTime":1764106921141,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7428,"timestamp":474276048949,"id":2291,"parentId":2275,"tags":{},"startTime":1764106921136,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":56990,"timestamp":474276000343,"id":2275,"parentId":2273,"tags":{"name":"server"},"startTime":1764106921087,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1378,"timestamp":474276057356,"id":2304,"parentId":2273,"tags":{},"startTime":1764106921144,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":65792,"timestamp":474275993167,"id":2273,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764106921080,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3603,"timestamp":474276061800,"id":2314,"parentId":2306,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106921149,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3923,"timestamp":474276061767,"id":2307,"parentId":2306,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764106921149,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4796,"timestamp":474276061799,"id":2313,"parentId":2306,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106921149,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2626,"timestamp":474276064709,"id":2318,"parentId":2317,"tags":{},"startTime":1764106921152,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2749,"timestamp":474276064587,"id":2317,"parentId":2316,"tags":{},"startTime":1764106921152,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":8365,"timestamp":474276064479,"id":2316,"parentId":2305,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"app-pages-browser"},"startTime":1764106921151,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11492,"timestamp":474276061792,"id":2309,"parentId":2306,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764106921149,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11616,"timestamp":474276061795,"id":2311,"parentId":2306,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106921149,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":6652,"timestamp":474276066767,"id":2320,"parentId":2319,"tags":{},"startTime":1764106921154,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":14304,"timestamp":474276061789,"id":2308,"parentId":2306,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764106921149,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":13101,"timestamp":474276073442,"id":2322,"parentId":2321,"tags":{},"startTime":1764106921160,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":13321,"timestamp":474276073431,"id":2321,"parentId":2319,"tags":{},"startTime":1764106921160,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2825,"timestamp":474276086776,"id":2323,"parentId":2319,"tags":{"astUsed":"true"},"startTime":1764106921174,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":23544,"timestamp":474276066698,"id":2319,"parentId":2315,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764106921154,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":35268,"timestamp":474276064230,"id":2315,"parentId":2305,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764106921151,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":21,"timestamp":474276100443,"id":2324,"parentId":2315,"tags":{},"startTime":1764106921187,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":38684,"timestamp":474276061794,"id":2310,"parentId":2306,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106921149,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":44994,"timestamp":474276061797,"id":2312,"parentId":2306,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106921149,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":47054,"timestamp":474276059746,"id":2306,"parentId":2305,"tags":{},"startTime":1764106921147,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":688,"timestamp":474276107658,"id":2326,"parentId":2325,"tags":{},"startTime":1764106921195,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":474276108357,"id":2328,"parentId":2325,"tags":{},"startTime":1764106921195,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":17,"timestamp":474276108367,"id":2329,"parentId":2325,"tags":{},"startTime":1764106921195,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":474276108391,"id":2330,"parentId":2325,"tags":{},"startTime":1764106921195,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474276108403,"id":2331,"parentId":2325,"tags":{},"startTime":1764106921195,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":261,"timestamp":474276108352,"id":2327,"parentId":2325,"tags":{},"startTime":1764106921195,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":193,"timestamp":474276108988,"id":2332,"parentId":2325,"tags":{},"startTime":1764106921196,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":767,"timestamp":474276109185,"id":2333,"parentId":2325,"tags":{},"startTime":1764106921196,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1945,"timestamp":474276110788,"id":2334,"parentId":2325,"tags":{},"startTime":1764106921198,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":112,"timestamp":474276112730,"id":2335,"parentId":2325,"tags":{},"startTime":1764106921200,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":34,"timestamp":474276112834,"id":2336,"parentId":2325,"tags":{},"startTime":1764106921200,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1964,"timestamp":474276112874,"id":2337,"parentId":2325,"tags":{},"startTime":1764106921200,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":44,"timestamp":474276115331,"id":2339,"parentId":2305,"tags":{},"startTime":1764106921202,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":81,"timestamp":474276115298,"id":2338,"parentId":2305,"tags":{},"startTime":1764106921202,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8819,"timestamp":474276107416,"id":2325,"parentId":2305,"tags":{},"startTime":1764106921194,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":56642,"timestamp":474276059606,"id":2305,"parentId":2274,"tags":{"name":"client"},"startTime":1764106921147,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":10047,"timestamp":474276116257,"id":2340,"parentId":2274,"tags":{},"startTime":1764106921203,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":133701,"timestamp":474275993229,"id":2274,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764106921080,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":7,"timestamp":474276127540,"id":2341,"parentId":3,"tags":{},"startTime":1764106921214,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474276128709,"id":2343,"parentId":3,"tags":{},"startTime":1764106921216,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10418,"timestamp":474276128129,"id":2342,"tags":{"url":"/gunbuilder?_rsc=9gfev","isTurbopack":false},"startTime":1764106921215,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474276138572,"id":2345,"parentId":2342,"tags":{"url":"/gunbuilder?_rsc=9gfev","memory.rss":"570425344","memory.heapUsed":"196316408","memory.heapTotal":"228048896"},"startTime":1764106921226,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":145000,"timestamp":474275994552,"id":2346,"parentId":3,"tags":{"updatedModules":["[project]/node_modules/next/dist/api/navigation.js","[project]/app/gunbuilder/[categoryId]/page.tsx","[project]/app/gunbuilder/page.tsx"],"page":"/gunbuilder","isPageHidden":false},"startTime":1764106921226,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11258,"timestamp":474276130168,"id":2344,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764106921217,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474276141441,"id":2347,"parentId":2344,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"570425344","memory.heapUsed":"196908704","memory.heapTotal":"228048896"},"startTime":1764106921228,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":159000,"timestamp":474275994429,"id":2348,"parentId":3,"tags":{"updatedModules":["[project]/node_modules/next/dist/api/navigation.js","[project]/app/gunbuilder/page.tsx"],"page":"/gunbuilder","isPageHidden":true},"startTime":1764106921240,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":14245,"timestamp":474295440194,"id":2349,"tags":{"url":"/gunbuilder/lower?_rsc=fbwoq","isTurbopack":false},"startTime":1764106940527,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":474295454496,"id":2350,"parentId":2349,"tags":{"url":"/gunbuilder/lower?_rsc=fbwoq","memory.rss":"520355840","memory.heapUsed":"182505096","memory.heapTotal":"191250432"},"startTime":1764106940541,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7390,"timestamp":474296040964,"id":2351,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","isTurbopack":false},"startTime":1764106941128,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":474296048400,"id":2352,"parentId":2351,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","memory.rss":"520470528","memory.heapUsed":"182465872","memory.heapTotal":"191512576"},"startTime":1764106941135,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7736,"timestamp":474296058138,"id":2353,"tags":{"url":"/gunbuilder?_rsc=x5p1f","isTurbopack":false},"startTime":1764106941145,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474296065896,"id":2354,"parentId":2353,"tags":{"url":"/gunbuilder?_rsc=x5p1f","memory.rss":"520470528","memory.heapUsed":"182427800","memory.heapTotal":"191512576"},"startTime":1764106941153,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9633,"timestamp":474297703883,"id":2355,"tags":{"url":"/gunbuilder/upper?_rsc=1tdvv","isTurbopack":false},"startTime":1764106942791,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":3,"timestamp":474297713574,"id":2356,"parentId":2355,"tags":{"url":"/gunbuilder/upper?_rsc=1tdvv","memory.rss":"520470528","memory.heapUsed":"182579960","memory.heapTotal":"190464000"},"startTime":1764106942800,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8415,"timestamp":474298393942,"id":2357,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=nxvwl","isTurbopack":false},"startTime":1764106943481,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474298402396,"id":2358,"parentId":2357,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=nxvwl","memory.rss":"520486912","memory.heapUsed":"182503936","memory.heapTotal":"191250432"},"startTime":1764106943489,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7340,"timestamp":474299828959,"id":2359,"tags":{"url":"/gunbuilder/barrel?_rsc=1acsq","isTurbopack":false},"startTime":1764106944916,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474299836345,"id":2360,"parentId":2359,"tags":{"url":"/gunbuilder/barrel?_rsc=1acsq","memory.rss":"520486912","memory.heapUsed":"182538424","memory.heapTotal":"190464000"},"startTime":1764106944923,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6873,"timestamp":474299840985,"id":2361,"tags":{"url":"/gunbuilder/barrel?_rsc=2b9yl","isTurbopack":false},"startTime":1764106944928,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474299847896,"id":2362,"parentId":2361,"tags":{"url":"/gunbuilder/barrel?_rsc=2b9yl","memory.rss":"520486912","memory.heapUsed":"182641472","memory.heapTotal":"191250432"},"startTime":1764106944935,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5305,"timestamp":474300820710,"id":2363,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-criterion-16&_rsc=2t5kv","isTurbopack":false},"startTime":1764106945908,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474300826068,"id":2364,"parentId":2363,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-criterion-16&_rsc=2t5kv","memory.rss":"520486912","memory.heapUsed":"182522752","memory.heapTotal":"190464000"},"startTime":1764106945913,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6901,"timestamp":474300829423,"id":2365,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-criterion-16&_rsc=zfc1s","isTurbopack":false},"startTime":1764106945916,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474300836364,"id":2366,"parentId":2365,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-criterion-16&_rsc=zfc1s","memory.rss":"520552448","memory.heapUsed":"182304216","memory.heapTotal":"190726144"},"startTime":1764106945923,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6519,"timestamp":474302344754,"id":2367,"tags":{"url":"/gunbuilder/handguard?_rsc=1acsq","isTurbopack":false},"startTime":1764106947432,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474302351312,"id":2368,"parentId":2367,"tags":{"url":"/gunbuilder/handguard?_rsc=1acsq","memory.rss":"505004032","memory.heapUsed":"182323312","memory.heapTotal":"191512576"},"startTime":1764106947438,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":3747,"timestamp":474302353812,"id":2369,"tags":{"url":"/gunbuilder/handguard?_rsc=rs5ev","isTurbopack":false},"startTime":1764106947441,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474302357591,"id":2370,"parentId":2369,"tags":{"url":"/gunbuilder/handguard?_rsc=rs5ev","memory.rss":"505004032","memory.heapUsed":"182423968","memory.heapTotal":"191512576"},"startTime":1764106947444,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1369,"timestamp":474303755567,"id":2379,"parentId":2378,"tags":{},"startTime":1764106948842,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1535,"timestamp":474303755412,"id":2378,"parentId":2377,"tags":{},"startTime":1764106948842,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":3376,"timestamp":474303755075,"id":2377,"parentId":2373,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"rsc"},"startTime":1764106948842,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10549,"timestamp":474303749136,"id":2375,"parentId":2374,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764106948836,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11955,"timestamp":474303749185,"id":2376,"parentId":2374,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764106948836,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1892,"timestamp":474303762472,"id":2388,"parentId":2387,"tags":{},"startTime":1764106948849,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1977,"timestamp":474303762393,"id":2387,"parentId":2386,"tags":{},"startTime":1764106948849,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":7175,"timestamp":474303762290,"id":2386,"parentId":2373,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"ssr"},"startTime":1764106948849,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":25016,"timestamp":474303747836,"id":2374,"parentId":2373,"tags":{},"startTime":1764106948835,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":744,"timestamp":474303773919,"id":2390,"parentId":2389,"tags":{},"startTime":1764106948861,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474303774672,"id":2392,"parentId":2389,"tags":{},"startTime":1764106948862,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":616,"timestamp":474303774694,"id":2393,"parentId":2389,"tags":{},"startTime":1764106948862,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":474303775320,"id":2394,"parentId":2389,"tags":{},"startTime":1764106948862,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474303775335,"id":2395,"parentId":2389,"tags":{},"startTime":1764106948862,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":882,"timestamp":474303774669,"id":2391,"parentId":2389,"tags":{},"startTime":1764106948862,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":681,"timestamp":474303775954,"id":2396,"parentId":2389,"tags":{},"startTime":1764106948863,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":532,"timestamp":474303776661,"id":2397,"parentId":2389,"tags":{},"startTime":1764106948864,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":831,"timestamp":474303777751,"id":2398,"parentId":2389,"tags":{},"startTime":1764106948865,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":49,"timestamp":474303778581,"id":2399,"parentId":2389,"tags":{},"startTime":1764106948865,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":36,"timestamp":474303778621,"id":2400,"parentId":2389,"tags":{},"startTime":1764106948866,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":64,"timestamp":474303778659,"id":2401,"parentId":2389,"tags":{},"startTime":1764106948866,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5782,"timestamp":474303773634,"id":2389,"parentId":2373,"tags":{},"startTime":1764106948861,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":32668,"timestamp":474303747622,"id":2373,"parentId":2371,"tags":{"name":"server"},"startTime":1764106948835,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1029,"timestamp":474303780308,"id":2402,"parentId":2371,"tags":{},"startTime":1764106948867,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":41609,"timestamp":474303740038,"id":2371,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764106948827,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2636,"timestamp":474303785557,"id":2412,"parentId":2404,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106948872,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2899,"timestamp":474303785516,"id":2405,"parentId":2404,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764106948872,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3522,"timestamp":474303785551,"id":2411,"parentId":2404,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106948872,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4351,"timestamp":474303785544,"id":2407,"parentId":2404,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764106948872,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4430,"timestamp":474303785547,"id":2409,"parentId":2404,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106948872,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2410,"timestamp":474303787660,"id":2416,"parentId":2415,"tags":{},"startTime":1764106948875,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2463,"timestamp":474303787607,"id":2415,"parentId":2414,"tags":{},"startTime":1764106948875,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6563,"timestamp":474303787538,"id":2414,"parentId":2403,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"app-pages-browser"},"startTime":1764106948874,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":4915,"timestamp":474303789200,"id":2418,"parentId":2417,"tags":{},"startTime":1764106948876,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10710,"timestamp":474303785540,"id":2406,"parentId":2404,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764106948872,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":13739,"timestamp":474303794138,"id":2420,"parentId":2419,"tags":{},"startTime":1764106948881,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":13984,"timestamp":474303794125,"id":2419,"parentId":2417,"tags":{},"startTime":1764106948881,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":3165,"timestamp":474303808132,"id":2421,"parentId":2417,"tags":{"astUsed":"true"},"startTime":1764106948895,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":23326,"timestamp":474303789149,"id":2417,"parentId":2413,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764106948876,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":26967,"timestamp":474303785550,"id":2410,"parentId":2404,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106948872,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":26894,"timestamp":474303787323,"id":2413,"parentId":2403,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764106948874,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":15,"timestamp":474303814295,"id":2422,"parentId":2413,"tags":{},"startTime":1764106948901,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":28784,"timestamp":474303785546,"id":2408,"parentId":2404,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106948872,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":31597,"timestamp":474303782742,"id":2404,"parentId":2403,"tags":{},"startTime":1764106948870,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":745,"timestamp":474303815149,"id":2424,"parentId":2423,"tags":{},"startTime":1764106948902,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474303815902,"id":2426,"parentId":2423,"tags":{},"startTime":1764106948903,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":29,"timestamp":474303815910,"id":2427,"parentId":2423,"tags":{},"startTime":1764106948903,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":7,"timestamp":474303815945,"id":2428,"parentId":2423,"tags":{},"startTime":1764106948903,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474303815960,"id":2429,"parentId":2423,"tags":{},"startTime":1764106948903,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":370,"timestamp":474303815900,"id":2425,"parentId":2423,"tags":{},"startTime":1764106948903,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":156,"timestamp":474303816654,"id":2430,"parentId":2423,"tags":{},"startTime":1764106948904,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":410,"timestamp":474303816813,"id":2431,"parentId":2423,"tags":{},"startTime":1764106948904,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1431,"timestamp":474303817644,"id":2432,"parentId":2423,"tags":{},"startTime":1764106948905,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":54,"timestamp":474303819075,"id":2433,"parentId":2423,"tags":{},"startTime":1764106948906,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":24,"timestamp":474303819125,"id":2434,"parentId":2423,"tags":{},"startTime":1764106948906,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1745,"timestamp":474303819151,"id":2435,"parentId":2423,"tags":{},"startTime":1764106948906,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":49,"timestamp":474303821260,"id":2437,"parentId":2403,"tags":{},"startTime":1764106948908,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":83,"timestamp":474303821230,"id":2436,"parentId":2403,"tags":{},"startTime":1764106948908,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7124,"timestamp":474303814918,"id":2423,"parentId":2403,"tags":{},"startTime":1764106948902,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":39566,"timestamp":474303782492,"id":2403,"parentId":2372,"tags":{"name":"client"},"startTime":1764106948869,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2812,"timestamp":474303822070,"id":2438,"parentId":2372,"tags":{},"startTime":1764106948909,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":85496,"timestamp":474303740103,"id":2372,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764106948827,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":1,"timestamp":474303826417,"id":2440,"parentId":3,"tags":{},"startTime":1764106948913,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474303828300,"id":2441,"parentId":3,"tags":{},"startTime":1764106948915,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":89000,"timestamp":474303740370,"id":2443,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder/handguard","isPageHidden":false},"startTime":1764106948921,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11408,"timestamp":474303824396,"id":2439,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-centurion-c4&_rsc=1wjnh","isTurbopack":false},"startTime":1764106948911,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474303835822,"id":2444,"parentId":2439,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-centurion-c4&_rsc=1wjnh","memory.rss":"526188544","memory.heapUsed":"198505976","memory.heapTotal":"214384640"},"startTime":1764106948923,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":95000,"timestamp":474303740800,"id":2445,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764106948924,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":12326,"timestamp":474303828812,"id":2442,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764106948916,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474303841158,"id":2447,"parentId":2442,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"526237696","memory.heapUsed":"199856008","memory.heapTotal":"214384640"},"startTime":1764106948928,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10008,"timestamp":474303836931,"id":2446,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-centurion-c4&_rsc=13zj1","isTurbopack":false},"startTime":1764106948924,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474303846956,"id":2448,"parentId":2446,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-centurion-c4&_rsc=13zj1","memory.rss":"526286848","memory.heapUsed":"188992928","memory.heapTotal":"212811776"},"startTime":1764106948934,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3817,"timestamp":474307369992,"id":2460,"parentId":2452,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106952457,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4173,"timestamp":474307369937,"id":2453,"parentId":2452,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764106952457,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4900,"timestamp":474307369990,"id":2459,"parentId":2452,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106952457,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2328,"timestamp":474307373144,"id":2464,"parentId":2463,"tags":{},"startTime":1764106952460,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2416,"timestamp":474307373059,"id":2463,"parentId":2462,"tags":{},"startTime":1764106952460,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6455,"timestamp":474307372957,"id":2462,"parentId":2451,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"app-pages-browser"},"startTime":1764106952460,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10053,"timestamp":474307369981,"id":2455,"parentId":2452,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764106952457,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10215,"timestamp":474307369985,"id":2457,"parentId":2452,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106952457,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":5781,"timestamp":474307375045,"id":2466,"parentId":2465,"tags":{},"startTime":1764106952462,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12460,"timestamp":474307369988,"id":2458,"parentId":2452,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106952457,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12490,"timestamp":474307369977,"id":2454,"parentId":2452,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764106952457,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":10900,"timestamp":474307380856,"id":2468,"parentId":2467,"tags":{},"startTime":1764106952468,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":11186,"timestamp":474307380841,"id":2467,"parentId":2465,"tags":{},"startTime":1764106952468,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2874,"timestamp":474307392047,"id":2469,"parentId":2465,"tags":{"astUsed":"true"},"startTime":1764106952479,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":20502,"timestamp":474307374980,"id":2465,"parentId":2461,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764106952462,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":25850,"timestamp":474307372711,"id":2461,"parentId":2451,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764106952460,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":12,"timestamp":474307398640,"id":2470,"parentId":2461,"tags":{},"startTime":1764106952486,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":28688,"timestamp":474307369983,"id":2456,"parentId":2452,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764106952457,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":28896,"timestamp":474307369784,"id":2452,"parentId":2451,"tags":{},"startTime":1764106952457,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":655,"timestamp":474307399586,"id":2472,"parentId":2471,"tags":{},"startTime":1764106952486,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474307400248,"id":2474,"parentId":2471,"tags":{},"startTime":1764106952487,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":17,"timestamp":474307400259,"id":2475,"parentId":2471,"tags":{},"startTime":1764106952487,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474307400282,"id":2476,"parentId":2471,"tags":{},"startTime":1764106952487,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474307400291,"id":2477,"parentId":2471,"tags":{},"startTime":1764106952487,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":264,"timestamp":474307400245,"id":2473,"parentId":2471,"tags":{},"startTime":1764106952487,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":165,"timestamp":474307400863,"id":2478,"parentId":2471,"tags":{},"startTime":1764106952488,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":525,"timestamp":474307401033,"id":2479,"parentId":2471,"tags":{},"startTime":1764106952488,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1543,"timestamp":474307402037,"id":2480,"parentId":2471,"tags":{},"startTime":1764106952489,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":61,"timestamp":474307403580,"id":2481,"parentId":2471,"tags":{},"startTime":1764106952490,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":23,"timestamp":474307403636,"id":2482,"parentId":2471,"tags":{},"startTime":1764106952491,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1395,"timestamp":474307403662,"id":2483,"parentId":2471,"tags":{},"startTime":1764106952491,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":29,"timestamp":474307405406,"id":2485,"parentId":2451,"tags":{},"startTime":1764106952492,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":56,"timestamp":474307405381,"id":2484,"parentId":2451,"tags":{},"startTime":1764106952492,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6802,"timestamp":474307399319,"id":2471,"parentId":2451,"tags":{},"startTime":1764106952486,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":36530,"timestamp":474307369602,"id":2451,"parentId":2449,"tags":{"name":"client"},"startTime":1764106952457,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1875,"timestamp":474307406141,"id":2486,"parentId":2449,"tags":{},"startTime":1764106952493,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":45459,"timestamp":474307362903,"id":2449,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764106952450,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":474307411248,"id":2489,"parentId":3,"tags":{},"startTime":1764106952498,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474307411277,"id":2490,"parentId":3,"tags":{},"startTime":1764106952498,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":52000,"timestamp":474307363375,"id":2493,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764106952502,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3799,"timestamp":474307412218,"id":2492,"parentId":2488,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764106952499,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":949,"timestamp":474307415684,"id":2496,"parentId":2495,"tags":{},"startTime":1764106952503,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1008,"timestamp":474307415628,"id":2495,"parentId":2494,"tags":{},"startTime":1764106952503,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1635,"timestamp":474307415471,"id":2494,"parentId":2487,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"rsc"},"startTime":1764106952502,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5952,"timestamp":474307412198,"id":2491,"parentId":2488,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764106952499,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":55000,"timestamp":474307362619,"id":2503,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764106952506,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1659,"timestamp":474307419144,"id":2506,"parentId":2505,"tags":{},"startTime":1764106952506,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1709,"timestamp":474307419095,"id":2505,"parentId":2504,"tags":{},"startTime":1764106952506,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4232,"timestamp":474307418999,"id":2504,"parentId":2487,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"ssr"},"startTime":1764106952506,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":15785,"timestamp":474307409412,"id":2488,"parentId":2487,"tags":{},"startTime":1764106952496,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":664,"timestamp":474307426022,"id":2508,"parentId":2507,"tags":{},"startTime":1764106952513,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474307426695,"id":2510,"parentId":2507,"tags":{},"startTime":1764106952514,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":578,"timestamp":474307426702,"id":2511,"parentId":2507,"tags":{},"startTime":1764106952514,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":7,"timestamp":474307427285,"id":2512,"parentId":2507,"tags":{},"startTime":1764106952514,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474307427296,"id":2513,"parentId":2507,"tags":{},"startTime":1764106952514,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":763,"timestamp":474307426690,"id":2509,"parentId":2507,"tags":{},"startTime":1764106952514,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":190,"timestamp":474307427840,"id":2514,"parentId":2507,"tags":{},"startTime":1764106952515,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":355,"timestamp":474307428033,"id":2515,"parentId":2507,"tags":{},"startTime":1764106952515,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":593,"timestamp":474307428737,"id":2516,"parentId":2507,"tags":{},"startTime":1764106952516,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":34,"timestamp":474307429330,"id":2517,"parentId":2507,"tags":{},"startTime":1764106952516,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":14,"timestamp":474307429362,"id":2518,"parentId":2507,"tags":{},"startTime":1764106952516,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":57,"timestamp":474307429378,"id":2519,"parentId":2507,"tags":{},"startTime":1764106952516,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":4824,"timestamp":474307425852,"id":2507,"parentId":2487,"tags":{},"startTime":1764106952513,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":22012,"timestamp":474307409262,"id":2487,"parentId":2450,"tags":{"name":"server"},"startTime":1764106952496,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":745,"timestamp":474307431286,"id":2520,"parentId":2450,"tags":{},"startTime":1764106952518,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":69354,"timestamp":474307363062,"id":2450,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764106952450,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":7492,"timestamp":474307434933,"id":2522,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764106952522,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474307442442,"id":2523,"parentId":2522,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"543981568","memory.heapUsed":"204752504","memory.heapTotal":"231489536"},"startTime":1764106952529,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7737,"timestamp":474307434756,"id":2521,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764106952522,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474307442498,"id":2524,"parentId":2521,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"543981568","memory.heapUsed":"204764200","memory.heapTotal":"231489536"},"startTime":1764106952529,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":14801,"timestamp":474487367766,"id":2525,"tags":{"url":"/gunbuilder/upper?_rsc=1acsq","isTurbopack":false},"startTime":1764107132454,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474487382613,"id":2526,"parentId":2525,"tags":{"url":"/gunbuilder/upper?_rsc=1acsq","memory.rss":"553893888","memory.heapUsed":"185355728","memory.heapTotal":"226263040"},"startTime":1764107132469,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6030,"timestamp":474487386939,"id":2527,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","isTurbopack":false},"startTime":1764107132474,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474487392988,"id":2528,"parentId":2527,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","memory.rss":"553893888","memory.heapUsed":"186196568","memory.heapTotal":"226263040"},"startTime":1764107132480,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":21666,"timestamp":474488887309,"id":2536,"parentId":2533,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107133974,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":24145,"timestamp":474488887212,"id":2534,"parentId":2533,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107133974,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":40515,"timestamp":474488887301,"id":2535,"parentId":2533,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107133974,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":48869,"timestamp":474488885752,"id":2533,"parentId":2532,"tags":{},"startTime":1764107133972,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1019,"timestamp":474488935850,"id":2547,"parentId":2546,"tags":{},"startTime":1764107134023,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474488936878,"id":2549,"parentId":2546,"tags":{},"startTime":1764107134024,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":870,"timestamp":474488936888,"id":2550,"parentId":2546,"tags":{},"startTime":1764107134024,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":474488937767,"id":2551,"parentId":2546,"tags":{},"startTime":1764107134024,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474488937779,"id":2552,"parentId":2546,"tags":{},"startTime":1764107134024,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1144,"timestamp":474488936875,"id":2548,"parentId":2546,"tags":{},"startTime":1764107134024,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":195,"timestamp":474488938486,"id":2553,"parentId":2546,"tags":{},"startTime":1764107134025,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":346,"timestamp":474488938687,"id":2554,"parentId":2546,"tags":{},"startTime":1764107134025,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":699,"timestamp":474488939679,"id":2555,"parentId":2546,"tags":{},"startTime":1764107134026,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":41,"timestamp":474488940378,"id":2556,"parentId":2546,"tags":{},"startTime":1764107134027,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":18,"timestamp":474488940416,"id":2557,"parentId":2546,"tags":{},"startTime":1764107134027,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":136,"timestamp":474488940436,"id":2558,"parentId":2546,"tags":{},"startTime":1764107134027,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5530,"timestamp":474488935670,"id":2546,"parentId":2532,"tags":{},"startTime":1764107134022,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":56882,"timestamp":474488885357,"id":2532,"parentId":2530,"tags":{"name":"server"},"startTime":1764107133972,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1332,"timestamp":474488942248,"id":2559,"parentId":2530,"tags":{},"startTime":1764107134029,"traceId":"e274ac96b05c42d4"},{"name":"compile-path","duration":62655,"timestamp":474488881336,"id":2531,"tags":{"trigger":"/gunbuilder/[categoryId]/[partId]","isTurbopack":false},"startTime":1764107133968,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":62884,"timestamp":474488881178,"id":2530,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764107133968,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":77489,"timestamp":474488876356,"id":2529,"tags":{"url":"/gunbuilder/upper/upper-bcm-m4?_rsc=1d33p","isTurbopack":false},"startTime":1764107133963,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474488953860,"id":2560,"parentId":2529,"tags":{"url":"/gunbuilder/upper/upper-bcm-m4?_rsc=1d33p","memory.rss":"557858816","memory.heapUsed":"190950680","memory.heapTotal":"209485824"},"startTime":1764107134041,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4990,"timestamp":474488959075,"id":2561,"tags":{"url":"/gunbuilder/upper/upper-bcm-m4?_rsc=fkro0","isTurbopack":false},"startTime":1764107134046,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474488964076,"id":2562,"parentId":2561,"tags":{"url":"/gunbuilder/upper/upper-bcm-m4?_rsc=fkro0","memory.rss":"557858816","memory.heapUsed":"191921424","memory.heapTotal":"209485824"},"startTime":1764107134051,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10472,"timestamp":474490803652,"id":2563,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=12xd6","isTurbopack":false},"startTime":1764107135890,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474490814184,"id":2564,"parentId":2563,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=12xd6","memory.rss":"557858816","memory.heapUsed":"191107272","memory.heapTotal":"209485824"},"startTime":1764107135901,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7543,"timestamp":474490817382,"id":2565,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=nxvwl","isTurbopack":false},"startTime":1764107135904,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474490824952,"id":2566,"parentId":2565,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=nxvwl","memory.rss":"557858816","memory.heapUsed":"191740832","memory.heapTotal":"209485824"},"startTime":1764107135912,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5407,"timestamp":474490843276,"id":2567,"tags":{"url":"/gunbuilder?_rsc=1us9o","isTurbopack":false},"startTime":1764107135930,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":6,"timestamp":474490848717,"id":2568,"parentId":2567,"tags":{"url":"/gunbuilder?_rsc=1us9o","memory.rss":"557858816","memory.heapUsed":"192279136","memory.heapTotal":"209485824"},"startTime":1764107135935,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":16823,"timestamp":474492379585,"id":2569,"tags":{"url":"/gunbuilder/barrel?_rsc=1jn8g","isTurbopack":false},"startTime":1764107137466,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474492396450,"id":2570,"parentId":2569,"tags":{"url":"/gunbuilder/barrel?_rsc=1jn8g","memory.rss":"558055424","memory.heapUsed":"193299024","memory.heapTotal":"209682432"},"startTime":1764107137483,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6060,"timestamp":474492403955,"id":2571,"tags":{"url":"/gunbuilder/barrel?_rsc=2b9yl","isTurbopack":false},"startTime":1764107137491,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474492410033,"id":2572,"parentId":2571,"tags":{"url":"/gunbuilder/barrel?_rsc=2b9yl","memory.rss":"558055424","memory.heapUsed":"194125040","memory.heapTotal":"209682432"},"startTime":1764107137497,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7735,"timestamp":474493418350,"id":2573,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-ba-13-9&_rsc=2t5kv","isTurbopack":false},"startTime":1764107138505,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474493426276,"id":2574,"parentId":2573,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-ba-13-9&_rsc=2t5kv","memory.rss":"558055424","memory.heapUsed":"194742048","memory.heapTotal":"209682432"},"startTime":1764107138513,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9929,"timestamp":474493430229,"id":2575,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-ba-13-9&_rsc=bpw29","isTurbopack":false},"startTime":1764107138517,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474493440191,"id":2576,"parentId":2575,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-ba-13-9&_rsc=bpw29","memory.rss":"558055424","memory.heapUsed":"195368032","memory.heapTotal":"209944576"},"startTime":1764107138527,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7515,"timestamp":474494970679,"id":2577,"tags":{"url":"/gunbuilder/lower?_rsc=1jn8g","isTurbopack":false},"startTime":1764107140057,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474494978231,"id":2578,"parentId":2577,"tags":{"url":"/gunbuilder/lower?_rsc=1jn8g","memory.rss":"558055424","memory.heapUsed":"196160544","memory.heapTotal":"210731008"},"startTime":1764107140065,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5679,"timestamp":474494984605,"id":2579,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","isTurbopack":false},"startTime":1764107140071,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474494990302,"id":2580,"parentId":2579,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","memory.rss":"558055424","memory.heapUsed":"196976256","memory.heapTotal":"211517440"},"startTime":1764107140077,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8334,"timestamp":474496127697,"id":2581,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=uiigs","isTurbopack":false},"startTime":1764107141214,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":474496136100,"id":2582,"parentId":2581,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=uiigs","memory.rss":"558071808","memory.heapUsed":"197634952","memory.heapTotal":"212041728"},"startTime":1764107141223,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7084,"timestamp":474496139162,"id":2583,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","isTurbopack":false},"startTime":1764107141226,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474496146279,"id":2584,"parentId":2583,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","memory.rss":"558071808","memory.heapUsed":"191985880","memory.heapTotal":"212303872"},"startTime":1764107141233,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4429,"timestamp":474613461971,"id":2595,"parentId":2587,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258549,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4810,"timestamp":474613461911,"id":2588,"parentId":2587,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107258548,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5144,"timestamp":474613461970,"id":2594,"parentId":2587,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258549,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5573,"timestamp":474613461968,"id":2593,"parentId":2587,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258549,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6861,"timestamp":474613461962,"id":2590,"parentId":2587,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107258548,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6940,"timestamp":474613461966,"id":2592,"parentId":2587,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258549,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":1259,"timestamp":474613467670,"id":2598,"parentId":2597,"tags":{},"startTime":1764107258554,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9930,"timestamp":474613461958,"id":2589,"parentId":2587,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107258548,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":10747,"timestamp":474613468976,"id":2600,"parentId":2599,"tags":{},"startTime":1764107258556,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":11085,"timestamp":474613468953,"id":2599,"parentId":2597,"tags":{},"startTime":1764107258555,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2522,"timestamp":474613480058,"id":2601,"parentId":2597,"tags":{"astUsed":"true"},"startTime":1764107258567,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":15969,"timestamp":474613467621,"id":2597,"parentId":2596,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107258554,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":19528,"timestamp":474613465540,"id":2596,"parentId":2586,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107258552,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":59,"timestamp":474613485662,"id":2602,"parentId":2596,"tags":{},"startTime":1764107258572,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":23794,"timestamp":474613461964,"id":2591,"parentId":2587,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258548,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":24044,"timestamp":474613461733,"id":2587,"parentId":2586,"tags":{},"startTime":1764107258548,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":875,"timestamp":474613491587,"id":2604,"parentId":2603,"tags":{},"startTime":1764107258578,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":10,"timestamp":474613492478,"id":2606,"parentId":2603,"tags":{},"startTime":1764107258579,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":23,"timestamp":474613492500,"id":2607,"parentId":2603,"tags":{},"startTime":1764107258579,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":4,"timestamp":474613492534,"id":2608,"parentId":2603,"tags":{},"startTime":1764107258579,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":3,"timestamp":474613492548,"id":2609,"parentId":2603,"tags":{},"startTime":1764107258579,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":331,"timestamp":474613492473,"id":2605,"parentId":2603,"tags":{},"startTime":1764107258579,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":168,"timestamp":474613493271,"id":2610,"parentId":2603,"tags":{},"startTime":1764107258580,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":502,"timestamp":474613493443,"id":2611,"parentId":2603,"tags":{},"startTime":1764107258580,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":13126,"timestamp":474613494490,"id":2612,"parentId":2603,"tags":{},"startTime":1764107258581,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":89,"timestamp":474613507615,"id":2613,"parentId":2603,"tags":{},"startTime":1764107258594,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":30,"timestamp":474613507699,"id":2614,"parentId":2603,"tags":{},"startTime":1764107258594,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1030,"timestamp":474613507732,"id":2615,"parentId":2603,"tags":{},"startTime":1764107258594,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":32,"timestamp":474613509107,"id":2617,"parentId":2586,"tags":{},"startTime":1764107258596,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":63,"timestamp":474613509077,"id":2616,"parentId":2586,"tags":{},"startTime":1764107258596,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":18522,"timestamp":474613491313,"id":2603,"parentId":2586,"tags":{},"startTime":1764107258578,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":48310,"timestamp":474613461538,"id":2586,"parentId":2585,"tags":{"name":"client"},"startTime":1764107258548,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2213,"timestamp":474613509857,"id":2618,"parentId":2585,"tags":{},"startTime":1764107258596,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":58272,"timestamp":474613454583,"id":2585,"parentId":3,"tags":{"trigger":"app/gunbuilder/build"},"startTime":1764107258541,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":6,"timestamp":474613513445,"id":2619,"parentId":3,"tags":{},"startTime":1764107258600,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474613513473,"id":2620,"parentId":3,"tags":{},"startTime":1764107258600,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":62000,"timestamp":474613454235,"id":2623,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107258607,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7357,"timestamp":474613513998,"id":2621,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107258601,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474613521367,"id":2625,"parentId":2621,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"538738688","memory.heapUsed":"193627296","memory.heapTotal":"207896576"},"startTime":1764107258608,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6533,"timestamp":474613514909,"id":2622,"tags":{"url":"/gunbuilder?_rsc=9gfev","isTurbopack":false},"startTime":1764107258601,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474613521447,"id":2626,"parentId":2622,"tags":{"url":"/gunbuilder?_rsc=9gfev","memory.rss":"538738688","memory.heapUsed":"193637496","memory.heapTotal":"207896576"},"startTime":1764107258608,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":3000,"timestamp":474613521162,"id":2627,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764107258612,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3283,"timestamp":474613526372,"id":2637,"parentId":2629,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258613,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3640,"timestamp":474613526311,"id":2630,"parentId":2629,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107258613,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3877,"timestamp":474613526371,"id":2636,"parentId":2629,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258613,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4339,"timestamp":474613526369,"id":2635,"parentId":2629,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258613,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5127,"timestamp":474613526363,"id":2632,"parentId":2629,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107258613,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5202,"timestamp":474613526367,"id":2634,"parentId":2629,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258613,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":703,"timestamp":474613530893,"id":2640,"parentId":2639,"tags":{},"startTime":1764107258617,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6745,"timestamp":474613526359,"id":2631,"parentId":2629,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107258613,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":12618,"timestamp":474613531631,"id":2642,"parentId":2641,"tags":{},"startTime":1764107258618,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":12826,"timestamp":474613531615,"id":2641,"parentId":2639,"tags":{},"startTime":1764107258618,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":1900,"timestamp":474613544453,"id":2643,"parentId":2639,"tags":{"astUsed":"true"},"startTime":1764107258631,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":16121,"timestamp":474613530809,"id":2639,"parentId":2638,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107258617,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":20303,"timestamp":474613528914,"id":2638,"parentId":2628,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107258615,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":25,"timestamp":474613549369,"id":2644,"parentId":2638,"tags":{},"startTime":1764107258636,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":23057,"timestamp":474613526365,"id":2633,"parentId":2629,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258613,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":23319,"timestamp":474613526120,"id":2629,"parentId":2628,"tags":{},"startTime":1764107258613,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":645,"timestamp":474613550443,"id":2646,"parentId":2645,"tags":{},"startTime":1764107258637,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474613551096,"id":2648,"parentId":2645,"tags":{},"startTime":1764107258638,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":19,"timestamp":474613551103,"id":2649,"parentId":2645,"tags":{},"startTime":1764107258638,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474613551130,"id":2650,"parentId":2645,"tags":{},"startTime":1764107258638,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474613551139,"id":2651,"parentId":2645,"tags":{},"startTime":1764107258638,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":191,"timestamp":474613551093,"id":2647,"parentId":2645,"tags":{},"startTime":1764107258638,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":118,"timestamp":474613551658,"id":2652,"parentId":2645,"tags":{},"startTime":1764107258638,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":374,"timestamp":474613551780,"id":2653,"parentId":2645,"tags":{},"startTime":1764107258638,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":2490,"timestamp":474613552520,"id":2654,"parentId":2645,"tags":{},"startTime":1764107258639,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":102,"timestamp":474613555005,"id":2655,"parentId":2645,"tags":{},"startTime":1764107258642,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":36,"timestamp":474613555097,"id":2656,"parentId":2645,"tags":{},"startTime":1764107258642,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1510,"timestamp":474613555140,"id":2657,"parentId":2645,"tags":{},"startTime":1764107258642,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":25,"timestamp":474613557077,"id":2659,"parentId":2628,"tags":{},"startTime":1764107258644,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":58,"timestamp":474613557048,"id":2658,"parentId":2628,"tags":{},"startTime":1764107258644,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7593,"timestamp":474613550106,"id":2645,"parentId":2628,"tags":{},"startTime":1764107258637,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":31799,"timestamp":474613525913,"id":2628,"parentId":2624,"tags":{"name":"client"},"startTime":1764107258612,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2076,"timestamp":474613557720,"id":2660,"parentId":2624,"tags":{},"startTime":1764107258644,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":39562,"timestamp":474613520758,"id":2624,"parentId":3,"tags":{"trigger":"app/gunbuilder/build/page.tsx"},"startTime":1764107258607,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":1,"timestamp":474613560986,"id":2661,"parentId":3,"tags":{},"startTime":1764107258648,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474613561012,"id":2662,"parentId":3,"tags":{},"startTime":1764107258648,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":43000,"timestamp":474613521574,"id":2665,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764107258652,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":44000,"timestamp":474613520596,"id":2666,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107258652,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6268,"timestamp":474613561521,"id":2663,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107258648,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474613567804,"id":2667,"parentId":2663,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"538787840","memory.heapUsed":"198480600","memory.heapTotal":"216809472"},"startTime":1764107258654,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7040,"timestamp":474613561734,"id":2664,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107258648,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474613568785,"id":2668,"parentId":2664,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"538787840","memory.heapUsed":"198560216","memory.heapTotal":"216809472"},"startTime":1764107258655,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3794,"timestamp":474613725445,"id":2681,"parentId":2673,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258812,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3994,"timestamp":474613725383,"id":2674,"parentId":2673,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107258812,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4226,"timestamp":474613725442,"id":2680,"parentId":2673,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258812,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4683,"timestamp":474613725439,"id":2679,"parentId":2673,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258812,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4696,"timestamp":474613725431,"id":2677,"parentId":2673,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258812,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5327,"timestamp":474613725427,"id":2676,"parentId":2673,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107258812,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5393,"timestamp":474613725434,"id":2678,"parentId":2673,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258812,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5707,"timestamp":474613725420,"id":2675,"parentId":2673,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107258812,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":5949,"timestamp":474613725193,"id":2673,"parentId":2672,"tags":{},"startTime":1764107258812,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":912,"timestamp":474613731961,"id":2685,"parentId":2684,"tags":{},"startTime":1764107258818,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474613732880,"id":2687,"parentId":2684,"tags":{},"startTime":1764107258819,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":13,"timestamp":474613732887,"id":2688,"parentId":2684,"tags":{},"startTime":1764107258819,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474613732905,"id":2689,"parentId":2684,"tags":{},"startTime":1764107258819,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474613732912,"id":2690,"parentId":2684,"tags":{},"startTime":1764107258819,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":160,"timestamp":474613732878,"id":2686,"parentId":2684,"tags":{},"startTime":1764107258819,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":119,"timestamp":474613733399,"id":2691,"parentId":2684,"tags":{},"startTime":1764107258820,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":521,"timestamp":474613733522,"id":2692,"parentId":2684,"tags":{},"startTime":1764107258820,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1585,"timestamp":474613734619,"id":2693,"parentId":2684,"tags":{},"startTime":1764107258821,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":55,"timestamp":474613736204,"id":2694,"parentId":2684,"tags":{},"startTime":1764107258823,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":23,"timestamp":474613736255,"id":2695,"parentId":2684,"tags":{},"startTime":1764107258823,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":2111,"timestamp":474613736280,"id":2696,"parentId":2684,"tags":{},"startTime":1764107258823,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":27,"timestamp":474613738577,"id":2698,"parentId":2672,"tags":{},"startTime":1764107258825,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":93,"timestamp":474613738517,"id":2697,"parentId":2672,"tags":{},"startTime":1764107258825,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7526,"timestamp":474613731661,"id":2684,"parentId":2672,"tags":{},"startTime":1764107258818,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":14272,"timestamp":474613724932,"id":2672,"parentId":2669,"tags":{"name":"client"},"startTime":1764107258811,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1414,"timestamp":474613739218,"id":2699,"parentId":2669,"tags":{},"startTime":1764107258826,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":17667,"timestamp":474613723304,"id":2669,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764107258810,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":474613742583,"id":2702,"parentId":3,"tags":{},"startTime":1764107258829,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474613742609,"id":2703,"parentId":3,"tags":{},"startTime":1764107258829,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3136,"timestamp":474613744391,"id":2705,"parentId":2701,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107258831,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3455,"timestamp":474613744371,"id":2704,"parentId":2701,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107258831,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":8315,"timestamp":474613742062,"id":2701,"parentId":2700,"tags":{},"startTime":1764107258829,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1077,"timestamp":474613755080,"id":2715,"parentId":2714,"tags":{},"startTime":1764107258842,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":474613756177,"id":2717,"parentId":2714,"tags":{},"startTime":1764107258843,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":938,"timestamp":474613756198,"id":2718,"parentId":2714,"tags":{},"startTime":1764107258843,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":4,"timestamp":474613757153,"id":2719,"parentId":2714,"tags":{},"startTime":1764107258844,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":3,"timestamp":474613757168,"id":2720,"parentId":2714,"tags":{},"startTime":1764107258844,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1245,"timestamp":474613756169,"id":2716,"parentId":2714,"tags":{},"startTime":1764107258843,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":123,"timestamp":474613757933,"id":2721,"parentId":2714,"tags":{},"startTime":1764107258844,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":417,"timestamp":474613758061,"id":2722,"parentId":2714,"tags":{},"startTime":1764107258845,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":657,"timestamp":474613758905,"id":2723,"parentId":2714,"tags":{},"startTime":1764107258845,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":44,"timestamp":474613759563,"id":2724,"parentId":2714,"tags":{},"startTime":1764107258846,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":17,"timestamp":474613759603,"id":2725,"parentId":2714,"tags":{},"startTime":1764107258846,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":130,"timestamp":474613759623,"id":2726,"parentId":2714,"tags":{},"startTime":1764107258846,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5486,"timestamp":474613754856,"id":2714,"parentId":2700,"tags":{},"startTime":1764107258841,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":19357,"timestamp":474613741890,"id":2700,"parentId":2670,"tags":{"name":"server"},"startTime":1764107258828,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1319,"timestamp":474613761277,"id":2727,"parentId":2670,"tags":{},"startTime":1764107258848,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":4,"timestamp":474613762798,"id":2728,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764107258849,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":2857,"timestamp":474613763963,"id":2730,"parentId":2729,"tags":{},"startTime":1764107258850,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":16,"timestamp":474613767184,"id":2732,"parentId":2731,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474613767211,"id":2734,"parentId":2731,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":5,"timestamp":474613767221,"id":2735,"parentId":2731,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474613767239,"id":2736,"parentId":2731,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474613767258,"id":2737,"parentId":2731,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":61,"timestamp":474613767207,"id":2733,"parentId":2731,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":3,"timestamp":474613767343,"id":2738,"parentId":2731,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":4,"timestamp":474613767351,"id":2739,"parentId":2731,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":31,"timestamp":474613767368,"id":2740,"parentId":2731,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":13,"timestamp":474613767400,"id":2741,"parentId":2731,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":6,"timestamp":474613767408,"id":2742,"parentId":2731,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":7,"timestamp":474613767416,"id":2743,"parentId":2731,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":608,"timestamp":474613767160,"id":2731,"parentId":2729,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":4359,"timestamp":474613763420,"id":2729,"parentId":2671,"tags":{"name":"edge-server"},"startTime":1764107258850,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":608,"timestamp":474613767788,"id":2744,"parentId":2671,"tags":{},"startTime":1764107258854,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-edge-server","duration":45222,"timestamp":474613723417,"id":2671,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764107258810,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2675,"timestamp":474613770359,"id":2754,"parentId":2746,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258857,"traceId":"e274ac96b05c42d4"},{"name":"next-client-pages-loader","duration":82,"timestamp":474613773382,"id":2757,"parentId":2756,"tags":{"absolutePagePath":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-error.js"},"startTime":1764107258860,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":881,"timestamp":474613773081,"id":2756,"parentId":2755,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!","layer":"app-pages-browser"},"startTime":1764107258860,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10408,"timestamp":474613770318,"id":2747,"parentId":2746,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107258857,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10879,"timestamp":474613770357,"id":2753,"parentId":2746,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258857,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11797,"timestamp":474613770355,"id":2752,"parentId":2746,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258857,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11809,"timestamp":474613770347,"id":2750,"parentId":2746,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258857,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12510,"timestamp":474613770344,"id":2749,"parentId":2746,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107258857,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12588,"timestamp":474613770349,"id":2751,"parentId":2746,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107258857,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12623,"timestamp":474613770338,"id":2748,"parentId":2746,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107258857,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1169,"timestamp":474613783295,"id":2760,"parentId":2759,"tags":{},"startTime":1764107258870,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1233,"timestamp":474613783237,"id":2759,"parentId":2758,"tags":{},"startTime":1764107258870,"traceId":"e274ac96b05c42d4"},{"name":"build-module-js","duration":3112,"timestamp":474613783164,"id":2758,"parentId":2756,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/client/components/not-found-error.js","layer":"app-pages-browser"},"startTime":1764107258870,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":65957,"timestamp":474613770361,"id":2755,"parentId":2746,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1764107258857,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":66556,"timestamp":474613769773,"id":2746,"parentId":2745,"tags":{},"startTime":1764107258856,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":612,"timestamp":474613836981,"id":2762,"parentId":2761,"tags":{},"startTime":1764107258924,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474613837600,"id":2764,"parentId":2761,"tags":{},"startTime":1764107258924,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":13,"timestamp":474613837608,"id":2765,"parentId":2761,"tags":{},"startTime":1764107258924,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474613837626,"id":2766,"parentId":2761,"tags":{},"startTime":1764107258924,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474613837636,"id":2767,"parentId":2761,"tags":{},"startTime":1764107258924,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":333,"timestamp":474613837598,"id":2763,"parentId":2761,"tags":{},"startTime":1764107258924,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":125,"timestamp":474613838271,"id":2768,"parentId":2761,"tags":{},"startTime":1764107258925,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":405,"timestamp":474613838400,"id":2769,"parentId":2761,"tags":{},"startTime":1764107258925,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":960,"timestamp":474613839294,"id":2770,"parentId":2761,"tags":{},"startTime":1764107258926,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":43,"timestamp":474613840254,"id":2771,"parentId":2761,"tags":{},"startTime":1764107258927,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":18,"timestamp":474613840294,"id":2772,"parentId":2761,"tags":{},"startTime":1764107258927,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":3145,"timestamp":474613840315,"id":2773,"parentId":2761,"tags":{},"startTime":1764107258927,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":31,"timestamp":474613843802,"id":2775,"parentId":2745,"tags":{},"startTime":1764107258930,"traceId":"e274ac96b05c42d4"}]
-[{"name":"NextJsBuildManifest-createassets","duration":150,"timestamp":474613843776,"id":2774,"parentId":2745,"tags":{},"startTime":1764107258930,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7787,"timestamp":474613836776,"id":2761,"parentId":2745,"tags":{},"startTime":1764107258923,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":75035,"timestamp":474613769543,"id":2745,"parentId":2707,"tags":{"name":"client"},"startTime":1764107258856,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2278,"timestamp":474613844591,"id":2776,"parentId":2707,"tags":{},"startTime":1764107258931,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":102629,"timestamp":474613744642,"id":2707,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764107258831,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":474613848927,"id":2779,"parentId":3,"tags":{},"startTime":1764107258935,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474613848950,"id":2780,"parentId":3,"tags":{},"startTime":1764107258935,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4202,"timestamp":474613850170,"id":2783,"parentId":2778,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107258937,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4791,"timestamp":474613850167,"id":2782,"parentId":2778,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107258937,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":111000,"timestamp":474613744412,"id":2785,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107258942,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":111000,"timestamp":474613744509,"id":2786,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764107258944,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":3870,"timestamp":474613853681,"id":2784,"parentId":2781,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!","layer":"rsc"},"startTime":1764107258940,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9518,"timestamp":474613850132,"id":2781,"parentId":2778,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107258937,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":14144,"timestamp":474613848409,"id":2778,"parentId":2777,"tags":{},"startTime":1764107258935,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":930,"timestamp":474613863563,"id":2796,"parentId":2795,"tags":{},"startTime":1764107258950,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474613864502,"id":2798,"parentId":2795,"tags":{},"startTime":1764107258951,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":993,"timestamp":474613864510,"id":2799,"parentId":2795,"tags":{},"startTime":1764107258951,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474613865512,"id":2800,"parentId":2795,"tags":{},"startTime":1764107258952,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":13,"timestamp":474613865521,"id":2801,"parentId":2795,"tags":{},"startTime":1764107258952,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1247,"timestamp":474613864498,"id":2797,"parentId":2795,"tags":{},"startTime":1764107258951,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":139,"timestamp":474613866155,"id":2802,"parentId":2795,"tags":{},"startTime":1764107258953,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":552,"timestamp":474613866297,"id":2803,"parentId":2795,"tags":{},"startTime":1764107258953,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":372,"timestamp":474613867134,"id":2804,"parentId":2795,"tags":{},"startTime":1764107258954,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":39,"timestamp":474613867506,"id":2805,"parentId":2795,"tags":{},"startTime":1764107258954,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":15,"timestamp":474613867543,"id":2806,"parentId":2795,"tags":{},"startTime":1764107258954,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":338,"timestamp":474613867560,"id":2807,"parentId":2795,"tags":{},"startTime":1764107258954,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5332,"timestamp":474613863333,"id":2795,"parentId":2777,"tags":{},"startTime":1764107258950,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":21713,"timestamp":474613848260,"id":2777,"parentId":3,"tags":{"name":"server"},"startTime":1764107258935,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1212,"timestamp":474613869994,"id":2808,"parentId":3,"tags":{},"startTime":1764107258957,"traceId":"e274ac96b05c42d4"},{"name":"compile-path","duration":126854,"timestamp":474613744631,"id":2706,"tags":{"trigger":"/_not-found","isTurbopack":false},"startTime":1764107258831,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":155762,"timestamp":474613727178,"id":2683,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107258814,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474613882960,"id":2810,"parentId":2683,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"642531328","memory.heapUsed":"221728240","memory.heapTotal":"263864320"},"startTime":1764107258969,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":155955,"timestamp":474613727109,"id":2682,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107258814,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474613883069,"id":2811,"parentId":2682,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"642564096","memory.heapUsed":"221759200","memory.heapTotal":"263864320"},"startTime":1764107258970,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4951,"timestamp":474613882596,"id":2809,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107258969,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474613887561,"id":2813,"parentId":2809,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"644038656","memory.heapUsed":"223396488","memory.heapTotal":"265404416"},"startTime":1764107258974,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6706,"timestamp":474613883656,"id":2812,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107258970,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474613890385,"id":2815,"parentId":2812,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"644431872","memory.heapUsed":"223811144","memory.heapTotal":"265666560"},"startTime":1764107258977,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":35527,"timestamp":474613889329,"id":2814,"tags":{"url":"/gunbuilder","isTurbopack":false},"startTime":1764107258976,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474613924880,"id":2817,"parentId":2814,"tags":{"url":"/gunbuilder","memory.rss":"643792896","memory.heapUsed":"204295680","memory.heapTotal":"265338880"},"startTime":1764107259011,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":30126,"timestamp":474613900815,"id":2816,"tags":{"url":"/gunbuilder","isTurbopack":false},"startTime":1764107258987,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474613930957,"id":2818,"parentId":2816,"tags":{"url":"/gunbuilder","memory.rss":"643825664","memory.heapUsed":"205613808","memory.heapTotal":"265338880"},"startTime":1764107259017,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":2,"timestamp":474614157393,"id":2819,"parentId":3,"tags":{},"startTime":1764107259244,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":474614158871,"id":2820,"parentId":3,"tags":{},"startTime":1764107259245,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":4,"timestamp":474614180628,"id":2821,"parentId":3,"tags":{},"startTime":1764107259267,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4734,"timestamp":474633170570,"id":2833,"parentId":2825,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107278257,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4745,"timestamp":474633170572,"id":2834,"parentId":2825,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1764107278257,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5153,"timestamp":474633170498,"id":2826,"parentId":2825,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107278257,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6458,"timestamp":474633170569,"id":2832,"parentId":2825,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107278257,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2726,"timestamp":474633174556,"id":2838,"parentId":2837,"tags":{},"startTime":1764107278261,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2817,"timestamp":474633174466,"id":2837,"parentId":2836,"tags":{},"startTime":1764107278261,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":9691,"timestamp":474633174380,"id":2836,"parentId":2824,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"app-pages-browser"},"startTime":1764107278261,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":14438,"timestamp":474633170560,"id":2828,"parentId":2825,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107278257,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":15000,"timestamp":474633170563,"id":2830,"parentId":2825,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107278257,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":8545,"timestamp":474633177186,"id":2840,"parentId":2839,"tags":{},"startTime":1764107278264,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":37175,"timestamp":474633170555,"id":2827,"parentId":2825,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107278257,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":33820,"timestamp":474633185762,"id":2842,"parentId":2841,"tags":{},"startTime":1764107278272,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":34137,"timestamp":474633185749,"id":2841,"parentId":2839,"tags":{},"startTime":1764107278272,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":3311,"timestamp":474633219918,"id":2843,"parentId":2839,"tags":{"astUsed":"true"},"startTime":1764107278306,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":48108,"timestamp":474633177127,"id":2839,"parentId":2835,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107278264,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":54102,"timestamp":474633174128,"id":2835,"parentId":2824,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107278261,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":16,"timestamp":474633228681,"id":2844,"parentId":2835,"tags":{},"startTime":1764107278315,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":58163,"timestamp":474633170567,"id":2831,"parentId":2825,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107278257,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":58175,"timestamp":474633170562,"id":2829,"parentId":2825,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107278257,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":59640,"timestamp":474633169108,"id":2825,"parentId":2824,"tags":{},"startTime":1764107278256,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1393,"timestamp":474633229709,"id":2846,"parentId":2845,"tags":{},"startTime":1764107278316,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474633231112,"id":2848,"parentId":2845,"tags":{},"startTime":1764107278318,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":24,"timestamp":474633231122,"id":2849,"parentId":2845,"tags":{},"startTime":1764107278318,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":474633231156,"id":2850,"parentId":2845,"tags":{},"startTime":1764107278318,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474633231167,"id":2851,"parentId":2845,"tags":{},"startTime":1764107278318,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":381,"timestamp":474633231109,"id":2847,"parentId":2845,"tags":{},"startTime":1764107278318,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":151,"timestamp":474633231870,"id":2852,"parentId":2845,"tags":{},"startTime":1764107278318,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":645,"timestamp":474633232025,"id":2853,"parentId":2845,"tags":{},"startTime":1764107278319,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1728,"timestamp":474633233077,"id":2854,"parentId":2845,"tags":{},"startTime":1764107278320,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":71,"timestamp":474633234805,"id":2855,"parentId":2845,"tags":{},"startTime":1764107278321,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":29,"timestamp":474633234868,"id":2856,"parentId":2845,"tags":{},"startTime":1764107278321,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1926,"timestamp":474633234904,"id":2857,"parentId":2845,"tags":{},"startTime":1764107278321,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":28,"timestamp":474633237176,"id":2859,"parentId":2824,"tags":{},"startTime":1764107278324,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":56,"timestamp":474633237151,"id":2858,"parentId":2824,"tags":{},"startTime":1764107278324,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8465,"timestamp":474633229428,"id":2845,"parentId":2824,"tags":{},"startTime":1764107278316,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":68973,"timestamp":474633168935,"id":2824,"parentId":2822,"tags":{"name":"client"},"startTime":1764107278255,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2616,"timestamp":474633237917,"id":2860,"parentId":2822,"tags":{},"startTime":1764107278324,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":79370,"timestamp":474633161730,"id":2822,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764107278248,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":474633243521,"id":2863,"parentId":3,"tags":{},"startTime":1764107278330,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474633243552,"id":2864,"parentId":3,"tags":{},"startTime":1764107278330,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4895,"timestamp":474633245191,"id":2867,"parentId":2862,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107278332,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5353,"timestamp":474633245164,"id":2865,"parentId":2862,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107278332,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":894,"timestamp":474633249731,"id":2870,"parentId":2869,"tags":{},"startTime":1764107278336,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":958,"timestamp":474633249667,"id":2869,"parentId":2868,"tags":{},"startTime":1764107278336,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1778,"timestamp":474633249501,"id":2868,"parentId":2861,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"rsc"},"startTime":1764107278336,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7647,"timestamp":474633245188,"id":2866,"parentId":2862,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107278332,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":90000,"timestamp":474633162653,"id":2879,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/page.tsx"],"page":"/gunbuilder","isPageHidden":false},"startTime":1764107278340,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1949,"timestamp":474633255137,"id":2882,"parentId":2881,"tags":{},"startTime":1764107278342,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2023,"timestamp":474633255067,"id":2881,"parentId":2880,"tags":{},"startTime":1764107278342,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":5870,"timestamp":474633254936,"id":2880,"parentId":2861,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"ssr"},"startTime":1764107278341,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":99000,"timestamp":474633162071,"id":2883,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/page.tsx"],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107278349,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":20850,"timestamp":474633242348,"id":2862,"parentId":2861,"tags":{},"startTime":1764107278329,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":844,"timestamp":474633264227,"id":2885,"parentId":2884,"tags":{},"startTime":1764107278351,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474633265085,"id":2887,"parentId":2884,"tags":{},"startTime":1764107278352,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1383,"timestamp":474633265097,"id":2888,"parentId":2884,"tags":{},"startTime":1764107278352,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474633266487,"id":2889,"parentId":2884,"tags":{},"startTime":1764107278353,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474633266495,"id":2890,"parentId":2884,"tags":{},"startTime":1764107278353,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1604,"timestamp":474633265081,"id":2886,"parentId":2884,"tags":{},"startTime":1764107278352,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":158,"timestamp":474633267056,"id":2891,"parentId":2884,"tags":{},"startTime":1764107278354,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":609,"timestamp":474633267217,"id":2892,"parentId":2884,"tags":{},"startTime":1764107278354,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":653,"timestamp":474633268203,"id":2893,"parentId":2884,"tags":{},"startTime":1764107278355,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":40,"timestamp":474633268856,"id":2894,"parentId":2884,"tags":{},"startTime":1764107278355,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":15,"timestamp":474633268892,"id":2895,"parentId":2884,"tags":{},"startTime":1764107278355,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":622,"timestamp":474633268910,"id":2896,"parentId":2884,"tags":{},"startTime":1764107278355,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6419,"timestamp":474633263988,"id":2884,"parentId":2861,"tags":{},"startTime":1764107278350,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":29239,"timestamp":474633242189,"id":2861,"parentId":2823,"tags":{"name":"server"},"startTime":1764107278329,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1645,"timestamp":474633271449,"id":2897,"parentId":2823,"tags":{},"startTime":1764107278358,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":111664,"timestamp":474633161919,"id":2823,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764107278248,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":8097,"timestamp":474633276460,"id":2899,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107278363,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474633284582,"id":2900,"parentId":2899,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"599523328","memory.heapUsed":"207136048","memory.heapTotal":"220348416"},"startTime":1764107278371,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9788,"timestamp":474633276225,"id":2898,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107278363,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":6,"timestamp":474633286030,"id":2901,"parentId":2898,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"599523328","memory.heapUsed":"207169088","memory.heapTotal":"220348416"},"startTime":1764107278373,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3274,"timestamp":474638289847,"id":2908,"parentId":2905,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107283376,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3670,"timestamp":474638289815,"id":2906,"parentId":2905,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107283376,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":864,"timestamp":474638292842,"id":2911,"parentId":2910,"tags":{},"startTime":1764107283379,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":909,"timestamp":474638292799,"id":2910,"parentId":2909,"tags":{},"startTime":1764107283379,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1438,"timestamp":474638292686,"id":2909,"parentId":2904,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"rsc"},"startTime":1764107283379,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5485,"timestamp":474638289845,"id":2907,"parentId":2905,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107283376,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1923,"timestamp":474638296553,"id":2922,"parentId":2921,"tags":{},"startTime":1764107283383,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1967,"timestamp":474638296511,"id":2921,"parentId":2920,"tags":{},"startTime":1764107283383,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4861,"timestamp":474638296429,"id":2920,"parentId":2904,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"ssr"},"startTime":1764107283383,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":17658,"timestamp":474638287862,"id":2905,"parentId":2904,"tags":{},"startTime":1764107283374,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":787,"timestamp":474638306302,"id":2924,"parentId":2923,"tags":{},"startTime":1764107283393,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474638307096,"id":2926,"parentId":2923,"tags":{},"startTime":1764107283394,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":819,"timestamp":474638307104,"id":2927,"parentId":2923,"tags":{},"startTime":1764107283394,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":1,"timestamp":474638307930,"id":2928,"parentId":2923,"tags":{},"startTime":1764107283394,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474638307938,"id":2929,"parentId":2923,"tags":{},"startTime":1764107283394,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":963,"timestamp":474638307094,"id":2925,"parentId":2923,"tags":{},"startTime":1764107283394,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":171,"timestamp":474638308466,"id":2930,"parentId":2923,"tags":{},"startTime":1764107283395,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":556,"timestamp":474638308647,"id":2931,"parentId":2923,"tags":{},"startTime":1764107283395,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":607,"timestamp":474638309490,"id":2932,"parentId":2923,"tags":{},"startTime":1764107283396,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":31,"timestamp":474638310097,"id":2933,"parentId":2923,"tags":{},"startTime":1764107283397,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":14,"timestamp":474638310126,"id":2934,"parentId":2923,"tags":{},"startTime":1764107283397,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":688,"timestamp":474638310142,"id":2935,"parentId":2923,"tags":{},"startTime":1764107283397,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5306,"timestamp":474638306124,"id":2923,"parentId":2904,"tags":{},"startTime":1764107283393,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":24867,"timestamp":474638287649,"id":2904,"parentId":2902,"tags":{"name":"server"},"startTime":1764107283374,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1091,"timestamp":474638312527,"id":2936,"parentId":2902,"tags":{},"startTime":1764107283399,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":33180,"timestamp":474638280584,"id":2902,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764107283367,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2480,"timestamp":474638316556,"id":2946,"parentId":2938,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107283403,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2486,"timestamp":474638316558,"id":2947,"parentId":2938,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1764107283403,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2705,"timestamp":474638316528,"id":2939,"parentId":2938,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107283403,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3312,"timestamp":474638316555,"id":2945,"parentId":2938,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107283403,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3954,"timestamp":474638316548,"id":2941,"parentId":2938,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107283403,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4014,"timestamp":474638316551,"id":2943,"parentId":2938,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107283403,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":596,"timestamp":474638319975,"id":2953,"parentId":2952,"tags":{},"startTime":1764107283406,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5054,"timestamp":474638316544,"id":2940,"parentId":2938,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107283403,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3075,"timestamp":474638318583,"id":2951,"parentId":2950,"tags":{},"startTime":1764107283405,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3127,"timestamp":474638318533,"id":2950,"parentId":2949,"tags":{},"startTime":1764107283405,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6205,"timestamp":474638318469,"id":2949,"parentId":2937,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"app-pages-browser"},"startTime":1764107283405,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":13665,"timestamp":474638320588,"id":2955,"parentId":2954,"tags":{},"startTime":1764107283407,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":13765,"timestamp":474638320581,"id":2954,"parentId":2952,"tags":{},"startTime":1764107283407,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2034,"timestamp":474638334366,"id":2956,"parentId":2952,"tags":{"astUsed":"true"},"startTime":1764107283421,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":18980,"timestamp":474638319935,"id":2952,"parentId":2948,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107283406,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":22962,"timestamp":474638316554,"id":2944,"parentId":2938,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107283403,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":22698,"timestamp":474638318296,"id":2948,"parentId":2937,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107283405,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":18,"timestamp":474638341094,"id":2957,"parentId":2948,"tags":{},"startTime":1764107283428,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":24623,"timestamp":474638316550,"id":2942,"parentId":2938,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107283403,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":26683,"timestamp":474638314501,"id":2938,"parentId":2937,"tags":{},"startTime":1764107283401,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":839,"timestamp":474638342083,"id":2959,"parentId":2958,"tags":{},"startTime":1764107283429,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":474638342933,"id":2961,"parentId":2958,"tags":{},"startTime":1764107283429,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":22,"timestamp":474638342943,"id":2962,"parentId":2958,"tags":{},"startTime":1764107283429,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474638342973,"id":2963,"parentId":2958,"tags":{},"startTime":1764107283429,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":3,"timestamp":474638342985,"id":2964,"parentId":2958,"tags":{},"startTime":1764107283429,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":222,"timestamp":474638342929,"id":2960,"parentId":2958,"tags":{},"startTime":1764107283429,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":288,"timestamp":474638343587,"id":2965,"parentId":2958,"tags":{},"startTime":1764107283430,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":915,"timestamp":474638343887,"id":2966,"parentId":2958,"tags":{},"startTime":1764107283430,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1636,"timestamp":474638345437,"id":2967,"parentId":2958,"tags":{},"startTime":1764107283432,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":71,"timestamp":474638347073,"id":2968,"parentId":2958,"tags":{},"startTime":1764107283434,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":26,"timestamp":474638347140,"id":2969,"parentId":2958,"tags":{},"startTime":1764107283434,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":2080,"timestamp":474638347169,"id":2970,"parentId":2958,"tags":{},"startTime":1764107283434,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":27,"timestamp":474638349693,"id":2972,"parentId":2937,"tags":{},"startTime":1764107283436,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":67,"timestamp":474638349656,"id":2971,"parentId":2937,"tags":{},"startTime":1764107283436,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8676,"timestamp":474638341811,"id":2958,"parentId":2937,"tags":{},"startTime":1764107283428,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":36145,"timestamp":474638314366,"id":2937,"parentId":2903,"tags":{"name":"client"},"startTime":1764107283401,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2637,"timestamp":474638350523,"id":2973,"parentId":2903,"tags":{},"startTime":1764107283437,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":73083,"timestamp":474638280641,"id":2903,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764107283367,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":2,"timestamp":474638354576,"id":2974,"parentId":3,"tags":{},"startTime":1764107283441,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474638354908,"id":2975,"parentId":3,"tags":{},"startTime":1764107283441,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":15218,"timestamp":474638355662,"id":2977,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107283442,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474638370897,"id":2978,"parentId":2977,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"625672192","memory.heapUsed":"207056488","memory.heapTotal":"246792192"},"startTime":1764107283457,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":15951,"timestamp":474638355065,"id":2976,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107283442,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474638371022,"id":2979,"parentId":2976,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"625672192","memory.heapUsed":"207082304","memory.heapTotal":"246792192"},"startTime":1764107283458,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":93000,"timestamp":474638280799,"id":2980,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/page.tsx"],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107283460,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":102000,"timestamp":474638281359,"id":2981,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/page.tsx"],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107283471,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5495,"timestamp":474657086795,"id":2993,"parentId":2985,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107302173,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5510,"timestamp":474657086800,"id":2994,"parentId":2985,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1764107302173,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7099,"timestamp":474657086740,"id":2986,"parentId":2985,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107302173,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3482,"timestamp":474657091366,"id":2998,"parentId":2997,"tags":{},"startTime":1764107302178,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3633,"timestamp":474657091218,"id":2997,"parentId":2996,"tags":{},"startTime":1764107302178,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":11824,"timestamp":474657091053,"id":2996,"parentId":2984,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"app-pages-browser"},"startTime":1764107302178,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":16422,"timestamp":474657086793,"id":2992,"parentId":2985,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107302173,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":18730,"timestamp":474657086784,"id":2988,"parentId":2985,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107302173,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":18823,"timestamp":474657086788,"id":2990,"parentId":2985,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107302173,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":19577,"timestamp":474657086791,"id":2991,"parentId":2985,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107302173,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":2787,"timestamp":474657103636,"id":3000,"parentId":2999,"tags":{},"startTime":1764107302190,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":21877,"timestamp":474657086780,"id":2987,"parentId":2985,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107302173,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":15470,"timestamp":474657106495,"id":3002,"parentId":3001,"tags":{},"startTime":1764107302193,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":15810,"timestamp":474657106461,"id":3001,"parentId":2999,"tags":{},"startTime":1764107302193,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":3227,"timestamp":474657122293,"id":3003,"parentId":2999,"tags":{"astUsed":"true"},"startTime":1764107302209,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":23585,"timestamp":474657103543,"id":2999,"parentId":2995,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107302190,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":38277,"timestamp":474657090822,"id":2995,"parentId":2984,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107302177,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":25,"timestamp":474657129231,"id":3004,"parentId":2995,"tags":{},"startTime":1764107302216,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":42493,"timestamp":474657086786,"id":2989,"parentId":2985,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107302173,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":43556,"timestamp":474657085736,"id":2985,"parentId":2984,"tags":{},"startTime":1764107302172,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":750,"timestamp":474657130322,"id":3006,"parentId":3005,"tags":{},"startTime":1764107302217,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474657131080,"id":3008,"parentId":3005,"tags":{},"startTime":1764107302218,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":21,"timestamp":474657131090,"id":3009,"parentId":3005,"tags":{},"startTime":1764107302218,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":474657131117,"id":3010,"parentId":3005,"tags":{},"startTime":1764107302218,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474657131672,"id":3011,"parentId":3005,"tags":{},"startTime":1764107302218,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":876,"timestamp":474657131078,"id":3007,"parentId":3005,"tags":{},"startTime":1764107302218,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":181,"timestamp":474657132362,"id":3012,"parentId":3005,"tags":{},"startTime":1764107302219,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":446,"timestamp":474657132548,"id":3013,"parentId":3005,"tags":{},"startTime":1764107302219,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1389,"timestamp":474657133430,"id":3014,"parentId":3005,"tags":{},"startTime":1764107302220,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":58,"timestamp":474657134819,"id":3015,"parentId":3005,"tags":{},"startTime":1764107302221,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":25,"timestamp":474657134873,"id":3016,"parentId":3005,"tags":{},"startTime":1764107302221,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1543,"timestamp":474657134900,"id":3017,"parentId":3005,"tags":{},"startTime":1764107302221,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":30,"timestamp":474657136741,"id":3019,"parentId":2984,"tags":{},"startTime":1764107302223,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":58,"timestamp":474657136715,"id":3018,"parentId":2984,"tags":{},"startTime":1764107302223,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7363,"timestamp":474657130021,"id":3005,"parentId":2984,"tags":{},"startTime":1764107302217,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":51981,"timestamp":474657085417,"id":2984,"parentId":2982,"tags":{"name":"client"},"startTime":1764107302172,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2530,"timestamp":474657137408,"id":3020,"parentId":2982,"tags":{},"startTime":1764107302224,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":63264,"timestamp":474657077224,"id":2982,"parentId":3,"tags":{"trigger":"app/gunbuilder/build/page.tsx"},"startTime":1764107302164,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":474657142464,"id":3023,"parentId":3,"tags":{},"startTime":1764107302229,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474657142493,"id":3024,"parentId":3,"tags":{},"startTime":1764107302229,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":69000,"timestamp":474657077049,"id":3028,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107302235,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":72000,"timestamp":474657077228,"id":3032,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107302237,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6214,"timestamp":474657144248,"id":3027,"parentId":3022,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107302231,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6500,"timestamp":474657144224,"id":3025,"parentId":3022,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107302231,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":889,"timestamp":474657150122,"id":3031,"parentId":3030,"tags":{},"startTime":1764107302237,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":952,"timestamp":474657150059,"id":3030,"parentId":3029,"tags":{},"startTime":1764107302237,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1874,"timestamp":474657149869,"id":3029,"parentId":3021,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"rsc"},"startTime":1764107302236,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8656,"timestamp":474657144243,"id":3026,"parentId":3022,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107302231,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1676,"timestamp":474657154319,"id":3043,"parentId":3042,"tags":{},"startTime":1764107302241,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1742,"timestamp":474657154255,"id":3042,"parentId":3041,"tags":{},"startTime":1764107302241,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":5117,"timestamp":474657154144,"id":3041,"parentId":3021,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"ssr"},"startTime":1764107302241,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":21096,"timestamp":474657141756,"id":3022,"parentId":3021,"tags":{},"startTime":1764107302228,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":816,"timestamp":474657163709,"id":3045,"parentId":3044,"tags":{},"startTime":1764107302250,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474657164532,"id":3047,"parentId":3044,"tags":{},"startTime":1764107302251,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":833,"timestamp":474657164540,"id":3048,"parentId":3044,"tags":{},"startTime":1764107302251,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":7,"timestamp":474657165379,"id":3049,"parentId":3044,"tags":{},"startTime":1764107302252,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474657165391,"id":3050,"parentId":3044,"tags":{},"startTime":1764107302252,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1088,"timestamp":474657164529,"id":3046,"parentId":3044,"tags":{},"startTime":1764107302251,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":192,"timestamp":474657166051,"id":3051,"parentId":3044,"tags":{},"startTime":1764107302253,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":1061,"timestamp":474657166247,"id":3052,"parentId":3044,"tags":{},"startTime":1764107302253,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":401,"timestamp":474657167659,"id":3053,"parentId":3044,"tags":{},"startTime":1764107302254,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":38,"timestamp":474657168059,"id":3054,"parentId":3044,"tags":{},"startTime":1764107302255,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":17,"timestamp":474657168094,"id":3055,"parentId":3044,"tags":{},"startTime":1764107302255,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":64,"timestamp":474657168114,"id":3056,"parentId":3044,"tags":{},"startTime":1764107302255,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5287,"timestamp":474657163535,"id":3044,"parentId":3021,"tags":{},"startTime":1764107302250,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":28148,"timestamp":474657141594,"id":3021,"parentId":2983,"tags":{"name":"server"},"startTime":1764107302228,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":856,"timestamp":474657169754,"id":3057,"parentId":2983,"tags":{},"startTime":1764107302256,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":93507,"timestamp":474657077474,"id":2983,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764107302164,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":9008,"timestamp":474657173411,"id":3058,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107302260,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474657182437,"id":3060,"parentId":3058,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"548093952","memory.heapUsed":"201898632","memory.heapTotal":"220217344"},"startTime":1764107302269,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8684,"timestamp":474657173825,"id":3059,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107302260,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474657182514,"id":3061,"parentId":3059,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"548093952","memory.heapUsed":"201910312","memory.heapTotal":"220217344"},"startTime":1764107302269,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11757,"timestamp":474670649625,"id":3068,"parentId":3066,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107315736,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11762,"timestamp":474670649632,"id":3069,"parentId":3066,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107315736,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":13898,"timestamp":474670649552,"id":3067,"parentId":3066,"tags":{"request":"next-app-loader?name=app%2F_not-found%2Fpage&page=%2F_not-found%2Fpage&appPaths=&pagePath=node_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107315736,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":13352,"timestamp":474670660464,"id":3071,"parentId":3070,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-app-loader.js?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!","layer":"rsc"},"startTime":1764107315747,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1436,"timestamp":474670678668,"id":3074,"parentId":3073,"tags":{},"startTime":1764107315765,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1510,"timestamp":474670678596,"id":3073,"parentId":3072,"tags":{},"startTime":1764107315765,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2192,"timestamp":474670678429,"id":3072,"parentId":3071,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page.tsx","layer":"rsc"},"startTime":1764107315765,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":41224,"timestamp":474670649639,"id":3070,"parentId":3066,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107315736,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":517,"timestamp":474670692368,"id":3087,"parentId":3065,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=true!","layer":"ssr"},"startTime":1764107315779,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2211,"timestamp":474670694855,"id":3090,"parentId":3089,"tags":{},"startTime":1764107315781,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2282,"timestamp":474670694792,"id":3089,"parentId":3088,"tags":{},"startTime":1764107315781,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6184,"timestamp":474670694663,"id":3088,"parentId":3087,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page.tsx","layer":"ssr"},"startTime":1764107315781,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":56129,"timestamp":474670647543,"id":3066,"parentId":3065,"tags":{},"startTime":1764107315734,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1172,"timestamp":474670704814,"id":3092,"parentId":3091,"tags":{},"startTime":1764107315791,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474670705994,"id":3094,"parentId":3091,"tags":{},"startTime":1764107315792,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1101,"timestamp":474670706008,"id":3095,"parentId":3091,"tags":{},"startTime":1764107315792,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":474670707117,"id":3096,"parentId":3091,"tags":{},"startTime":1764107315794,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474670707129,"id":3097,"parentId":3091,"tags":{},"startTime":1764107315794,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1367,"timestamp":474670705991,"id":3093,"parentId":3091,"tags":{},"startTime":1764107315792,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":210,"timestamp":474670707822,"id":3098,"parentId":3091,"tags":{},"startTime":1764107315794,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":1065,"timestamp":474670708036,"id":3099,"parentId":3091,"tags":{},"startTime":1764107315795,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":715,"timestamp":474670709575,"id":3100,"parentId":3091,"tags":{},"startTime":1764107315796,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":44,"timestamp":474670710291,"id":3101,"parentId":3091,"tags":{},"startTime":1764107315797,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":19,"timestamp":474670710332,"id":3102,"parentId":3091,"tags":{},"startTime":1764107315797,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":2379,"timestamp":474670710353,"id":3103,"parentId":3091,"tags":{},"startTime":1764107315797,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8994,"timestamp":474670704534,"id":3091,"parentId":3065,"tags":{},"startTime":1764107315791,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":67732,"timestamp":474670647091,"id":3065,"parentId":3063,"tags":{"name":"server"},"startTime":1764107315734,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1364,"timestamp":474670714835,"id":3104,"parentId":3063,"tags":{},"startTime":1764107315801,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":72200,"timestamp":474670644292,"id":3063,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764107315731,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":553,"timestamp":474670723330,"id":3117,"parentId":3115,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!","layer":"app-pages-browser"},"startTime":1764107315810,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2426,"timestamp":474670722004,"id":3113,"parentId":3106,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107315808,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2439,"timestamp":474670722007,"id":3114,"parentId":3106,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107315808,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2440,"timestamp":474670722011,"id":3116,"parentId":3106,"tags":{"request":"next-client-pages-loader?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!"},"startTime":1764107315808,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2843,"timestamp":474670721967,"id":3107,"parentId":3106,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107315808,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3523,"timestamp":474670722003,"id":3112,"parentId":3106,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107315808,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3529,"timestamp":474670721999,"id":3110,"parentId":3106,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107315808,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4349,"timestamp":474670721997,"id":3109,"parentId":3106,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107315808,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4428,"timestamp":474670722000,"id":3111,"parentId":3106,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107315808,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4464,"timestamp":474670721993,"id":3108,"parentId":3106,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107315808,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2533,"timestamp":474670726100,"id":3120,"parentId":3119,"tags":{},"startTime":1764107315813,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2594,"timestamp":474670726041,"id":3119,"parentId":3118,"tags":{},"startTime":1764107315813,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6555,"timestamp":474670725924,"id":3118,"parentId":3117,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/build/page.tsx","layer":"app-pages-browser"},"startTime":1764107315812,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12829,"timestamp":474670722009,"id":3115,"parentId":3106,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107315808,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":17445,"timestamp":474670717413,"id":3106,"parentId":3105,"tags":{},"startTime":1764107315804,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":680,"timestamp":474670735590,"id":3122,"parentId":3121,"tags":{},"startTime":1764107315822,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474670736278,"id":3124,"parentId":3121,"tags":{},"startTime":1764107315823,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":33,"timestamp":474670736287,"id":3125,"parentId":3121,"tags":{},"startTime":1764107315823,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474670736325,"id":3126,"parentId":3121,"tags":{},"startTime":1764107315823,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":3,"timestamp":474670736332,"id":3127,"parentId":3121,"tags":{},"startTime":1764107315823,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":336,"timestamp":474670736276,"id":3123,"parentId":3121,"tags":{},"startTime":1764107315823,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":178,"timestamp":474670737030,"id":3128,"parentId":3121,"tags":{},"startTime":1764107315823,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":812,"timestamp":474670737212,"id":3129,"parentId":3121,"tags":{},"startTime":1764107315824,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1287,"timestamp":474670738554,"id":3130,"parentId":3121,"tags":{},"startTime":1764107315825,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":1060,"timestamp":474670739842,"id":3131,"parentId":3121,"tags":{},"startTime":1764107315826,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":31,"timestamp":474670740893,"id":3132,"parentId":3121,"tags":{},"startTime":1764107315827,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1707,"timestamp":474670740927,"id":3133,"parentId":3121,"tags":{},"startTime":1764107315827,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":36,"timestamp":474670742902,"id":3135,"parentId":3105,"tags":{},"startTime":1764107315829,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":67,"timestamp":474670742874,"id":3134,"parentId":3105,"tags":{},"startTime":1764107315829,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8197,"timestamp":474670735371,"id":3121,"parentId":3105,"tags":{},"startTime":1764107315822,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":26351,"timestamp":474670717231,"id":3105,"parentId":3086,"tags":{"name":"client"},"startTime":1764107315804,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1886,"timestamp":474670743595,"id":3136,"parentId":3086,"tags":{},"startTime":1764107315830,"traceId":"e274ac96b05c42d4"},{"name":"compile-path","duration":101400,"timestamp":474670644337,"id":3064,"tags":{"trigger":"/gunbuilder/build","isTurbopack":false},"startTime":1764107315731,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":54250,"timestamp":474670691696,"id":3086,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764107315778,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":2,"timestamp":474670746787,"id":3137,"parentId":3,"tags":{},"startTime":1764107315833,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474670746809,"id":3138,"parentId":3,"tags":{},"startTime":1764107315833,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":61000,"timestamp":474670692466,"id":3139,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107315840,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":113127,"timestamp":474670640829,"id":3062,"tags":{"url":"/gunbuilder/build?_rsc=1acsq","isTurbopack":false},"startTime":1764107315727,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474670753969,"id":3140,"parentId":3062,"tags":{"url":"/gunbuilder/build?_rsc=1acsq","memory.rss":"566067200","memory.heapUsed":"214439560","memory.heapTotal":"236765184"},"startTime":1764107315840,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":66000,"timestamp":474670692490,"id":3141,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764107315845,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4863,"timestamp":474670758614,"id":3142,"tags":{"url":"/gunbuilder/build?_rsc=1bjq3","isTurbopack":false},"startTime":1764107315845,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474670763486,"id":3143,"parentId":3142,"tags":{"url":"/gunbuilder/build?_rsc=1bjq3","memory.rss":"566902784","memory.heapUsed":"215320368","memory.heapTotal":"237551616"},"startTime":1764107315850,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":37611,"timestamp":474693331047,"id":3150,"parentId":3148,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107338417,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":37615,"timestamp":474693331053,"id":3151,"parentId":3148,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107338417,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":38268,"timestamp":474693330987,"id":3149,"parentId":3148,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107338417,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":63102,"timestamp":474693331061,"id":3152,"parentId":3148,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107338418,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":69029,"timestamp":474693329280,"id":3148,"parentId":3147,"tags":{},"startTime":1764107338416,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1276,"timestamp":474693399379,"id":3166,"parentId":3165,"tags":{},"startTime":1764107338486,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":474693400667,"id":3168,"parentId":3165,"tags":{},"startTime":1764107338487,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1184,"timestamp":474693400681,"id":3169,"parentId":3165,"tags":{},"startTime":1764107338487,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":5,"timestamp":474693401876,"id":3170,"parentId":3165,"tags":{},"startTime":1764107338488,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474693401893,"id":3171,"parentId":3165,"tags":{},"startTime":1764107338488,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1456,"timestamp":474693400663,"id":3167,"parentId":3165,"tags":{},"startTime":1764107338487,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":234,"timestamp":474693402617,"id":3172,"parentId":3165,"tags":{},"startTime":1764107338489,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":474,"timestamp":474693402857,"id":3173,"parentId":3165,"tags":{},"startTime":1764107338489,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":537,"timestamp":474693403887,"id":3174,"parentId":3165,"tags":{},"startTime":1764107338490,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":52,"timestamp":474693404424,"id":3175,"parentId":3165,"tags":{},"startTime":1764107338491,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":22,"timestamp":474693404473,"id":3176,"parentId":3165,"tags":{},"startTime":1764107338491,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1474,"timestamp":474693404497,"id":3177,"parentId":3165,"tags":{},"startTime":1764107338491,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7590,"timestamp":474693399170,"id":3165,"parentId":3147,"tags":{},"startTime":1764107338486,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":79255,"timestamp":474693328853,"id":3147,"parentId":3145,"tags":{"name":"server"},"startTime":1764107338415,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2373,"timestamp":474693408123,"id":3178,"parentId":3145,"tags":{},"startTime":1764107338495,"traceId":"e274ac96b05c42d4"},{"name":"compile-path","duration":85238,"timestamp":474693325655,"id":3146,"tags":{"trigger":"/","isTurbopack":false},"startTime":1764107338412,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":85347,"timestamp":474693325618,"id":3145,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764107338412,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":137411,"timestamp":474693323462,"id":3144,"tags":{"url":"/","isTurbopack":false},"startTime":1764107338410,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474693460900,"id":3179,"parentId":3144,"tags":{"url":"/","memory.rss":"590856192","memory.heapUsed":"219506232","memory.heapTotal":"245170176"},"startTime":1764107338547,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":3,"timestamp":474693648686,"id":3180,"parentId":3,"tags":{},"startTime":1764107338735,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":2,"timestamp":474693651941,"id":3181,"parentId":3,"tags":{},"startTime":1764107338738,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":13795,"timestamp":474731900899,"id":3182,"tags":{"url":"/gunbuilder?_rsc=1wtp7","isTurbopack":false},"startTime":1764107376987,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474731914728,"id":3183,"parentId":3182,"tags":{"url":"/gunbuilder?_rsc=1wtp7","memory.rss":"594132992","memory.heapUsed":"196781328","memory.heapTotal":"246972416"},"startTime":1764107377001,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7103,"timestamp":474731923325,"id":3184,"tags":{"url":"/gunbuilder?_rsc=52fbb","isTurbopack":false},"startTime":1764107377010,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474731930452,"id":3185,"parentId":3184,"tags":{"url":"/gunbuilder?_rsc=52fbb","memory.rss":"594132992","memory.heapUsed":"197467312","memory.heapTotal":"246972416"},"startTime":1764107377017,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":15271,"timestamp":474746226404,"id":3186,"tags":{"url":"/gunbuilder/lower?_rsc=1acsq","isTurbopack":false},"startTime":1764107391313,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474746241715,"id":3187,"parentId":3186,"tags":{"url":"/gunbuilder/lower?_rsc=1acsq","memory.rss":"539639808","memory.heapUsed":"187699584","memory.heapTotal":"195936256"},"startTime":1764107391328,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6256,"timestamp":474746249674,"id":3188,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","isTurbopack":false},"startTime":1764107391336,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474746255946,"id":3189,"parentId":3188,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","memory.rss":"540229632","memory.heapUsed":"187878592","memory.heapTotal":"196984832"},"startTime":1764107391342,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":36832,"timestamp":474759949233,"id":3197,"parentId":3194,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107405036,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":36842,"timestamp":474759949237,"id":3198,"parentId":3194,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107405036,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":37094,"timestamp":474759949226,"id":3196,"parentId":3194,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107405036,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":39094,"timestamp":474759949148,"id":3195,"parentId":3194,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107405036,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":46849,"timestamp":474759949241,"id":3199,"parentId":3194,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107405036,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":66179,"timestamp":474759947073,"id":3194,"parentId":3193,"tags":{},"startTime":1764107405033,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1110,"timestamp":474760014189,"id":3216,"parentId":3215,"tags":{},"startTime":1764107405101,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474760015306,"id":3218,"parentId":3215,"tags":{},"startTime":1764107405102,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1010,"timestamp":474760015342,"id":3219,"parentId":3215,"tags":{},"startTime":1764107405102,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":474760016371,"id":3220,"parentId":3215,"tags":{},"startTime":1764107405103,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474760016393,"id":3221,"parentId":3215,"tags":{},"startTime":1764107405103,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1273,"timestamp":474760015304,"id":3217,"parentId":3215,"tags":{},"startTime":1764107405102,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":169,"timestamp":474760016995,"id":3222,"parentId":3215,"tags":{},"startTime":1764107405103,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":368,"timestamp":474760017167,"id":3223,"parentId":3215,"tags":{},"startTime":1764107405104,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":660,"timestamp":474760018103,"id":3224,"parentId":3215,"tags":{},"startTime":1764107405104,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":50,"timestamp":474760018764,"id":3225,"parentId":3215,"tags":{},"startTime":1764107405105,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":23,"timestamp":474760018811,"id":3226,"parentId":3215,"tags":{},"startTime":1764107405105,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":182,"timestamp":474760018836,"id":3227,"parentId":3215,"tags":{},"startTime":1764107405105,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6219,"timestamp":474760014030,"id":3215,"parentId":3193,"tags":{},"startTime":1764107405100,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":75278,"timestamp":474759946714,"id":3193,"parentId":3191,"tags":{"name":"server"},"startTime":1764107405033,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1393,"timestamp":474760022011,"id":3228,"parentId":3191,"tags":{},"startTime":1764107405108,"traceId":"e274ac96b05c42d4"},{"name":"compile-path","duration":79489,"timestamp":474759944404,"id":3192,"tags":{"trigger":"/gunbuilder/[categoryId]/[partId]","isTurbopack":false},"startTime":1764107405031,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":79653,"timestamp":474759944363,"id":3191,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764107405031,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":101918,"timestamp":474759938628,"id":3190,"tags":{"url":"/gunbuilder/lower/lower-aero-m4e1?_rsc=uiigs","isTurbopack":false},"startTime":1764107405025,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474760040565,"id":3229,"parentId":3190,"tags":{"url":"/gunbuilder/lower/lower-aero-m4e1?_rsc=uiigs","memory.rss":"580435968","memory.heapUsed":"195284368","memory.heapTotal":"226902016"},"startTime":1764107405127,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5133,"timestamp":474760046203,"id":3230,"tags":{"url":"/gunbuilder/lower/lower-aero-m4e1?_rsc=rksw7","isTurbopack":false},"startTime":1764107405133,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474760051347,"id":3231,"parentId":3230,"tags":{"url":"/gunbuilder/lower/lower-aero-m4e1?_rsc=rksw7","memory.rss":"580435968","memory.heapUsed":"196318648","memory.heapTotal":"226902016"},"startTime":1764107405138,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11373,"timestamp":474765155576,"id":3232,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1o8dd","isTurbopack":false},"startTime":1764107410242,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474765167012,"id":3233,"parentId":3232,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1o8dd","memory.rss":"580796416","memory.heapUsed":"197530648","memory.heapTotal":"227393536"},"startTime":1764107410253,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10567,"timestamp":474765173685,"id":3234,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","isTurbopack":false},"startTime":1764107410260,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474765184285,"id":3235,"parentId":3234,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","memory.rss":"580796416","memory.heapUsed":"198182544","memory.heapTotal":"227393536"},"startTime":1764107410271,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7130,"timestamp":474765213096,"id":3236,"tags":{"url":"/gunbuilder?_rsc=x5p1f","isTurbopack":false},"startTime":1764107410299,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474765220260,"id":3237,"parentId":3236,"tags":{"url":"/gunbuilder?_rsc=x5p1f","memory.rss":"580796416","memory.heapUsed":"198819352","memory.heapTotal":"227393536"},"startTime":1764107410307,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":13796,"timestamp":474767940119,"id":3238,"tags":{"url":"/gunbuilder/handguard?_rsc=1jn8g","isTurbopack":false},"startTime":1764107413026,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474767953955,"id":3239,"parentId":3238,"tags":{"url":"/gunbuilder/handguard?_rsc=1jn8g","memory.rss":"580993024","memory.heapUsed":"199862448","memory.heapTotal":"227590144"},"startTime":1764107413040,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5932,"timestamp":474767960708,"id":3240,"tags":{"url":"/gunbuilder/handguard?_rsc=rs5ev","isTurbopack":false},"startTime":1764107413047,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474767966660,"id":3241,"parentId":3240,"tags":{"url":"/gunbuilder/handguard?_rsc=rs5ev","memory.rss":"580993024","memory.heapUsed":"200702072","memory.heapTotal":"227590144"},"startTime":1764107413053,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9194,"timestamp":474769274008,"id":3242,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=1wjnh","isTurbopack":false},"startTime":1764107414360,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":474769283270,"id":3243,"parentId":3242,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=1wjnh","memory.rss":"580993024","memory.heapUsed":"201322784","memory.heapTotal":"227590144"},"startTime":1764107414370,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6260,"timestamp":474769286037,"id":3244,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=5xggt","isTurbopack":false},"startTime":1764107414372,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":474769292344,"id":3245,"parentId":3244,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=5xggt","memory.rss":"580993024","memory.heapUsed":"201970920","memory.heapTotal":"227590144"},"startTime":1764107414379,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9812,"timestamp":474770407313,"id":3246,"tags":{"url":"/gunbuilder/stock?_rsc=1acsq","isTurbopack":false},"startTime":1764107415494,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474770417172,"id":3247,"parentId":3246,"tags":{"url":"/gunbuilder/stock?_rsc=1acsq","memory.rss":"580993024","memory.heapUsed":"202779080","memory.heapTotal":"227590144"},"startTime":1764107415504,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5929,"timestamp":474770419215,"id":3248,"tags":{"url":"/gunbuilder/stock?_rsc=iik8j","isTurbopack":false},"startTime":1764107415506,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474770425168,"id":3249,"parentId":3248,"tags":{"url":"/gunbuilder/stock?_rsc=iik8j","memory.rss":"581615616","memory.heapUsed":"203607560","memory.heapTotal":"228114432"},"startTime":1764107415512,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":13725,"timestamp":474771383716,"id":3250,"tags":{"url":"/gunbuilder?select=stock%3Astock-b5-bravo&_rsc=g9x6a","isTurbopack":false},"startTime":1764107416470,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474771397543,"id":3251,"parentId":3250,"tags":{"url":"/gunbuilder?select=stock%3Astock-b5-bravo&_rsc=g9x6a","memory.rss":"582254592","memory.heapUsed":"204533288","memory.heapTotal":"229163008"},"startTime":1764107416484,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5827,"timestamp":474771403493,"id":3252,"tags":{"url":"/gunbuilder?select=stock%3Astock-b5-bravo&_rsc=16qd3","isTurbopack":false},"startTime":1764107416490,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474771409350,"id":3253,"parentId":3252,"tags":{"url":"/gunbuilder?select=stock%3Astock-b5-bravo&_rsc=16qd3","memory.rss":"582909952","memory.heapUsed":"204907312","memory.heapTotal":"229687296"},"startTime":1764107416496,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":13537,"timestamp":474772365861,"id":3254,"tags":{"url":"/gunbuilder/optic?_rsc=1acsq","isTurbopack":false},"startTime":1764107417452,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474772379441,"id":3255,"parentId":3254,"tags":{"url":"/gunbuilder/optic?_rsc=1acsq","memory.rss":"582385664","memory.heapUsed":"194562328","memory.heapTotal":"202653696"},"startTime":1764107417466,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6972,"timestamp":474772383132,"id":3256,"tags":{"url":"/gunbuilder/optic?_rsc=l6cyw","isTurbopack":false},"startTime":1764107417469,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474772390127,"id":3257,"parentId":3256,"tags":{"url":"/gunbuilder/optic?_rsc=l6cyw","memory.rss":"582434816","memory.heapUsed":"194666568","memory.heapTotal":"203702272"},"startTime":1764107417476,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10896,"timestamp":474773297987,"id":3258,"tags":{"url":"/gunbuilder?select=optic%3Aoptic-holosun-509t&_rsc=kbx68","isTurbopack":false},"startTime":1764107418384,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":474773308951,"id":3259,"parentId":3258,"tags":{"url":"/gunbuilder?select=optic%3Aoptic-holosun-509t&_rsc=kbx68","memory.rss":"563576832","memory.heapUsed":"195291872","memory.heapTotal":"204226560"},"startTime":1764107418395,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6180,"timestamp":474773311171,"id":3260,"tags":{"url":"/gunbuilder?select=optic%3Aoptic-holosun-509t&_rsc=tinzo","isTurbopack":false},"startTime":1764107418398,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474773317379,"id":3261,"parentId":3260,"tags":{"url":"/gunbuilder?select=optic%3Aoptic-holosun-509t&_rsc=tinzo","memory.rss":"563576832","memory.heapUsed":"195926240","memory.heapTotal":"205012992"},"startTime":1764107418404,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":12039,"timestamp":474780030566,"id":3262,"tags":{"url":"/gunbuilder/build?_rsc=1acsq","isTurbopack":false},"startTime":1764107425117,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":474780042671,"id":3263,"parentId":3262,"tags":{"url":"/gunbuilder/build?_rsc=1acsq","memory.rss":"563838976","memory.heapUsed":"196796616","memory.heapTotal":"205783040"},"startTime":1764107425129,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8207,"timestamp":474780046801,"id":3264,"tags":{"url":"/gunbuilder/build?_rsc=1bjq3","isTurbopack":false},"startTime":1764107425133,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474780055040,"id":3265,"parentId":3264,"tags":{"url":"/gunbuilder/build?_rsc=1bjq3","memory.rss":"563838976","memory.heapUsed":"197522568","memory.heapTotal":"206569472"},"startTime":1764107425141,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":45660,"timestamp":474790866408,"id":3266,"tags":{"url":"/gunbuilder/build?build=dXBwZXI6dXBwZXItYmNtLW00LGJhcnJlbDpiYXJyZWwtYmEtMTMtOSxsb3dlcjpsb3dlci1hZXJvLW00ZTEsaGFuZGd1YXJkOmhnLWdlaXNzZWxlLW1rOCxzdG9jazpzdG9jay1iNS1icmF2byxvcHRpYzpvcHRpYy1ob2xvc3VuLTUwOXQ=","isTurbopack":false},"startTime":1764107435953,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474790912098,"id":3267,"parentId":3266,"tags":{"url":"/gunbuilder/build?build=dXBwZXI6dXBwZXItYmNtLW00LGJhcnJlbDpiYXJyZWwtYmEtMTMtOSxsb3dlcjpsb3dlci1hZXJvLW00ZTEsaGFuZGd1YXJkOmhnLWdlaXNzZWxlLW1rOCxzdG9jazpzdG9jay1iNS1icmF2byxvcHRpYzpvcHRpYy1ob2xvc3VuLTUwOXQ=","memory.rss":"556793856","memory.heapUsed":"196667816","memory.heapTotal":"203849728"},"startTime":1764107435998,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":3,"timestamp":474791089015,"id":3268,"parentId":3,"tags":{},"startTime":1764107436175,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474791089094,"id":3269,"parentId":3,"tags":{},"startTime":1764107436175,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":3,"timestamp":474791112332,"id":3270,"parentId":3,"tags":{},"startTime":1764107436199,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7888,"timestamp":474800565719,"id":3271,"tags":{"url":"/gunbuilder?_rsc=1tfg7","isTurbopack":false},"startTime":1764107445652,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474800573670,"id":3272,"parentId":3271,"tags":{"url":"/gunbuilder?_rsc=1tfg7","memory.rss":"534659072","memory.heapUsed":"196517912","memory.heapTotal":"203587584"},"startTime":1764107445660,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7497,"timestamp":474800578194,"id":3273,"tags":{"url":"/gunbuilder?_rsc=x5p1f","isTurbopack":false},"startTime":1764107445665,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474800585722,"id":3274,"parentId":3273,"tags":{"url":"/gunbuilder?_rsc=x5p1f","memory.rss":"534659072","memory.heapUsed":"197154488","memory.heapTotal":"203587584"},"startTime":1764107445672,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5474,"timestamp":474816921168,"id":3280,"parentId":3278,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107462007,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5480,"timestamp":474816921171,"id":3281,"parentId":3278,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107462007,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5485,"timestamp":474816921174,"id":3283,"parentId":3278,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107462007,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5645,"timestamp":474816921173,"id":3282,"parentId":3278,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107462007,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1028,"timestamp":474816926339,"id":3286,"parentId":3285,"tags":{},"startTime":1764107462013,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1113,"timestamp":474816926256,"id":3285,"parentId":3284,"tags":{},"startTime":1764107462013,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2733,"timestamp":474816926033,"id":3284,"parentId":3277,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"rsc"},"startTime":1764107462012,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8914,"timestamp":474816921137,"id":3279,"parentId":3278,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107462007,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1610,"timestamp":474816931726,"id":3304,"parentId":3303,"tags":{},"startTime":1764107462018,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1661,"timestamp":474816931677,"id":3303,"parentId":3302,"tags":{},"startTime":1764107462018,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6194,"timestamp":474816931586,"id":3302,"parentId":3277,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"ssr"},"startTime":1764107462018,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":21567,"timestamp":474816920061,"id":3278,"parentId":3277,"tags":{},"startTime":1764107462006,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1271,"timestamp":474816942998,"id":3306,"parentId":3305,"tags":{},"startTime":1764107462029,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474816944284,"id":3308,"parentId":3305,"tags":{},"startTime":1764107462031,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1143,"timestamp":474816944295,"id":3309,"parentId":3305,"tags":{},"startTime":1764107462031,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":474816945451,"id":3310,"parentId":3305,"tags":{},"startTime":1764107462032,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474816945462,"id":3311,"parentId":3305,"tags":{},"startTime":1764107462032,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1349,"timestamp":474816944279,"id":3307,"parentId":3305,"tags":{},"startTime":1764107462031,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":174,"timestamp":474816946063,"id":3312,"parentId":3305,"tags":{},"startTime":1764107462032,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":701,"timestamp":474816946241,"id":3313,"parentId":3305,"tags":{},"startTime":1764107462033,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":662,"timestamp":474816947297,"id":3314,"parentId":3305,"tags":{},"startTime":1764107462034,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":31,"timestamp":474816947958,"id":3315,"parentId":3305,"tags":{},"startTime":1764107462034,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":23,"timestamp":474816947986,"id":3316,"parentId":3305,"tags":{},"startTime":1764107462034,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":85,"timestamp":474816948012,"id":3317,"parentId":3305,"tags":{},"startTime":1764107462034,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6488,"timestamp":474816942458,"id":3305,"parentId":3277,"tags":{},"startTime":1764107462029,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":30572,"timestamp":474816919889,"id":3277,"parentId":3275,"tags":{"name":"server"},"startTime":1764107462006,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1277,"timestamp":474816950474,"id":3318,"parentId":3275,"tags":{},"startTime":1764107462037,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":39351,"timestamp":474816912550,"id":3275,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764107461999,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3616,"timestamp":474816956101,"id":3328,"parentId":3320,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107462042,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3646,"timestamp":474816956102,"id":3329,"parentId":3320,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107462042,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3951,"timestamp":474816956069,"id":3321,"parentId":3320,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107462042,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4722,"timestamp":474816956099,"id":3327,"parentId":3320,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107462042,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2950,"timestamp":474816958683,"id":3333,"parentId":3332,"tags":{},"startTime":1764107462045,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3026,"timestamp":474816958612,"id":3332,"parentId":3331,"tags":{},"startTime":1764107462045,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":8431,"timestamp":474816958504,"id":3331,"parentId":3319,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"app-pages-browser"},"startTime":1764107462045,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11341,"timestamp":474816956093,"id":3323,"parentId":3320,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107462042,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12111,"timestamp":474816956096,"id":3325,"parentId":3320,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107462042,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":7163,"timestamp":474816961053,"id":3335,"parentId":3334,"tags":{},"startTime":1764107462047,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":14586,"timestamp":474816956089,"id":3322,"parentId":3320,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107462042,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":14613,"timestamp":474816956098,"id":3326,"parentId":3320,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107462042,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":13908,"timestamp":474816968241,"id":3337,"parentId":3336,"tags":{},"startTime":1764107462055,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":14124,"timestamp":474816968229,"id":3336,"parentId":3334,"tags":{},"startTime":1764107462055,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2532,"timestamp":474816982366,"id":3338,"parentId":3334,"tags":{"astUsed":"true"},"startTime":1764107462069,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":25271,"timestamp":474816960930,"id":3334,"parentId":3330,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107462047,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":35835,"timestamp":474816957852,"id":3330,"parentId":3319,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107462044,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":12,"timestamp":474816993772,"id":3339,"parentId":3330,"tags":{},"startTime":1764107462080,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":37699,"timestamp":474816956094,"id":3324,"parentId":3320,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107462042,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":41222,"timestamp":474816952582,"id":3320,"parentId":3319,"tags":{},"startTime":1764107462039,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":797,"timestamp":474817001181,"id":3341,"parentId":3340,"tags":{},"startTime":1764107462087,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":474817001991,"id":3343,"parentId":3340,"tags":{},"startTime":1764107462088,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":23,"timestamp":474817002034,"id":3344,"parentId":3340,"tags":{},"startTime":1764107462088,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":4,"timestamp":474817002069,"id":3345,"parentId":3340,"tags":{},"startTime":1764107462088,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474817002083,"id":3346,"parentId":3340,"tags":{},"startTime":1764107462088,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":322,"timestamp":474817001987,"id":3342,"parentId":3340,"tags":{},"startTime":1764107462088,"traceId":"e274ac96b05c42d4"}]
-[{"name":"module-hash","duration":236,"timestamp":474817002973,"id":3347,"parentId":3340,"tags":{},"startTime":1764107462089,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":540,"timestamp":474817003229,"id":3348,"parentId":3340,"tags":{},"startTime":1764107462090,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":2050,"timestamp":474817004344,"id":3349,"parentId":3340,"tags":{},"startTime":1764107462091,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":127,"timestamp":474817006393,"id":3350,"parentId":3340,"tags":{},"startTime":1764107462093,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":51,"timestamp":474817006509,"id":3351,"parentId":3340,"tags":{},"startTime":1764107462093,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1884,"timestamp":474817006564,"id":3352,"parentId":3340,"tags":{},"startTime":1764107462093,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":57,"timestamp":474817009118,"id":3354,"parentId":3319,"tags":{},"startTime":1764107462095,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":89,"timestamp":474817009091,"id":3353,"parentId":3319,"tags":{},"startTime":1764107462095,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":9201,"timestamp":474817000866,"id":3340,"parentId":3319,"tags":{},"startTime":1764107462087,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":57638,"timestamp":474816952444,"id":3319,"parentId":3276,"tags":{"name":"client"},"startTime":1764107462039,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2230,"timestamp":474817010090,"id":3355,"parentId":3276,"tags":{},"startTime":1764107462096,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":100311,"timestamp":474816912608,"id":3276,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764107461999,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":2,"timestamp":474817022153,"id":3356,"parentId":3,"tags":{},"startTime":1764107462108,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474817022198,"id":3357,"parentId":3,"tags":{},"startTime":1764107462108,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474817022237,"id":3358,"parentId":3,"tags":{},"startTime":1764107462109,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":114000,"timestamp":474816912399,"id":3362,"parentId":3,"tags":{"updatedModules":["[project]/node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!","[project]/node_modules/next/dist/client/components/not-found-error.js"],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107462119,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":121000,"timestamp":474816913616,"id":3363,"parentId":3,"tags":{"updatedModules":["[project]/node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!","[project]/node_modules/next/dist/client/components/not-found-error.js"],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107462122,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":12764,"timestamp":474817023997,"id":3361,"tags":{"url":"/gunbuilder?_rsc=9gfev","isTurbopack":false},"startTime":1764107462110,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474817036779,"id":3364,"parentId":3361,"tags":{"url":"/gunbuilder?_rsc=9gfev","memory.rss":"549978112","memory.heapUsed":"199799480","memory.heapTotal":"235225088"},"startTime":1764107462123,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":13759,"timestamp":474817023073,"id":3359,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107462109,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474817036840,"id":3365,"parentId":3359,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"549978112","memory.heapUsed":"199810608","memory.heapTotal":"235225088"},"startTime":1764107462123,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":14460,"timestamp":474817023601,"id":3360,"tags":{"url":"/gunbuilder/build?_rsc=3o5pd","isTurbopack":false},"startTime":1764107462110,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474817038076,"id":3366,"parentId":3360,"tags":{"url":"/gunbuilder/build?_rsc=3o5pd","memory.rss":"549978112","memory.heapUsed":"199890216","memory.heapTotal":"235225088"},"startTime":1764107462124,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":126000,"timestamp":474816912772,"id":3367,"parentId":3,"tags":{"updatedModules":["[project]/node_modules/next/dist/build/webpack/loaders/next-client-pages-loader.js?absolutePagePath=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-error.js&page=%2F_not-found%2Fpage!","[project]/node_modules/next/dist/client/components/not-found-error.js"],"page":"/gunbuilder/build","isPageHidden":true},"startTime":1764107462126,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3059,"timestamp":474859614314,"id":3379,"parentId":3371,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107504701,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3085,"timestamp":474859614315,"id":3380,"parentId":3371,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107504701,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3396,"timestamp":474859614262,"id":3372,"parentId":3371,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107504701,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3985,"timestamp":474859614312,"id":3378,"parentId":3371,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107504701,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4622,"timestamp":474859614304,"id":3374,"parentId":3371,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107504701,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4694,"timestamp":474859614308,"id":3376,"parentId":3371,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107504701,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2237,"timestamp":474859616853,"id":3384,"parentId":3383,"tags":{},"startTime":1764107504703,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2303,"timestamp":474859616787,"id":3383,"parentId":3382,"tags":{},"startTime":1764107504703,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6070,"timestamp":474859616717,"id":3382,"parentId":3370,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"app-pages-browser"},"startTime":1764107504703,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":4553,"timestamp":474859618426,"id":3386,"parentId":3385,"tags":{},"startTime":1764107504705,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10652,"timestamp":474859614300,"id":3373,"parentId":3371,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107504701,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":10348,"timestamp":474859622995,"id":3388,"parentId":3387,"tags":{},"startTime":1764107504709,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":10575,"timestamp":474859622987,"id":3387,"parentId":3385,"tags":{},"startTime":1764107504709,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2321,"timestamp":474859633575,"id":3389,"parentId":3385,"tags":{"astUsed":"true"},"startTime":1764107504720,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":18040,"timestamp":474859618373,"id":3385,"parentId":3381,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107504705,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":23584,"timestamp":474859614310,"id":3377,"parentId":3371,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107504701,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":22797,"timestamp":474859616556,"id":3381,"parentId":3370,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107504703,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":15,"timestamp":474859639477,"id":3390,"parentId":3381,"tags":{},"startTime":1764107504726,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":25249,"timestamp":474859614306,"id":3375,"parentId":3371,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107504701,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":25470,"timestamp":474859614095,"id":3371,"parentId":3370,"tags":{},"startTime":1764107504700,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1019,"timestamp":474859640498,"id":3392,"parentId":3391,"tags":{},"startTime":1764107504727,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474859641530,"id":3394,"parentId":3391,"tags":{},"startTime":1764107504728,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":20,"timestamp":474859641538,"id":3395,"parentId":3391,"tags":{},"startTime":1764107504728,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474859641568,"id":3396,"parentId":3391,"tags":{},"startTime":1764107504728,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474859641577,"id":3397,"parentId":3391,"tags":{},"startTime":1764107504728,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":196,"timestamp":474859641526,"id":3393,"parentId":3391,"tags":{},"startTime":1764107504728,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":181,"timestamp":474859642050,"id":3398,"parentId":3391,"tags":{},"startTime":1764107504728,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":729,"timestamp":474859642235,"id":3399,"parentId":3391,"tags":{},"startTime":1764107504728,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1414,"timestamp":474859643360,"id":3400,"parentId":3391,"tags":{},"startTime":1764107504730,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":65,"timestamp":474859644773,"id":3401,"parentId":3391,"tags":{},"startTime":1764107504731,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":25,"timestamp":474859644835,"id":3402,"parentId":3391,"tags":{},"startTime":1764107504731,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1841,"timestamp":474859644862,"id":3403,"parentId":3391,"tags":{},"startTime":1764107504731,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":23,"timestamp":474859647038,"id":3405,"parentId":3370,"tags":{},"startTime":1764107504733,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":52,"timestamp":474859647012,"id":3404,"parentId":3370,"tags":{},"startTime":1764107504733,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7460,"timestamp":474859640233,"id":3391,"parentId":3370,"tags":{},"startTime":1764107504726,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":33778,"timestamp":474859613930,"id":3370,"parentId":3368,"tags":{"name":"client"},"startTime":1764107504700,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2184,"timestamp":474859647717,"id":3406,"parentId":3368,"tags":{},"startTime":1764107504734,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":42859,"timestamp":474859607349,"id":3368,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764107504694,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":474859652619,"id":3409,"parentId":3,"tags":{},"startTime":1764107504739,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474859652644,"id":3410,"parentId":3,"tags":{},"startTime":1764107504739,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474859652655,"id":3411,"parentId":3,"tags":{},"startTime":1764107504739,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5989,"timestamp":474859653914,"id":3413,"parentId":3408,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107504740,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5998,"timestamp":474859653917,"id":3414,"parentId":3408,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107504740,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6006,"timestamp":474859653921,"id":3416,"parentId":3408,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107504740,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6175,"timestamp":474859653919,"id":3415,"parentId":3408,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107504740,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1067,"timestamp":474859659506,"id":3419,"parentId":3418,"tags":{},"startTime":1764107504746,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1129,"timestamp":474859659446,"id":3418,"parentId":3417,"tags":{},"startTime":1764107504746,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1837,"timestamp":474859659273,"id":3417,"parentId":3407,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"rsc"},"startTime":1764107504746,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":53000,"timestamp":474859607598,"id":3420,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/page.tsx"],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107504748,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9078,"timestamp":474859653895,"id":3412,"parentId":3408,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107504740,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1970,"timestamp":474859664611,"id":3438,"parentId":3437,"tags":{},"startTime":1764107504751,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2024,"timestamp":474859664561,"id":3437,"parentId":3436,"tags":{},"startTime":1764107504751,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4916,"timestamp":474859664456,"id":3436,"parentId":3407,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"ssr"},"startTime":1764107504751,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":61000,"timestamp":474859608185,"id":3439,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/page.tsx"],"page":"/gunbuilder/build","isPageHidden":true},"startTime":1764107504756,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":61000,"timestamp":474859608212,"id":3440,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/page.tsx"],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107504756,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":21186,"timestamp":474859651323,"id":3408,"parentId":3407,"tags":{},"startTime":1764107504738,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1250,"timestamp":474859673559,"id":3442,"parentId":3441,"tags":{},"startTime":1764107504760,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474859674822,"id":3444,"parentId":3441,"tags":{},"startTime":1764107504761,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1105,"timestamp":474859674831,"id":3445,"parentId":3441,"tags":{},"startTime":1764107504761,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":5,"timestamp":474859675945,"id":3446,"parentId":3441,"tags":{},"startTime":1764107504762,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474859675955,"id":3447,"parentId":3441,"tags":{},"startTime":1764107504762,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1389,"timestamp":474859674819,"id":3443,"parentId":3441,"tags":{},"startTime":1764107504761,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":183,"timestamp":474859676654,"id":3448,"parentId":3441,"tags":{},"startTime":1764107504763,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":700,"timestamp":474859676840,"id":3449,"parentId":3441,"tags":{},"startTime":1764107504763,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":487,"timestamp":474859677921,"id":3450,"parentId":3441,"tags":{},"startTime":1764107504764,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":40,"timestamp":474859678407,"id":3451,"parentId":3441,"tags":{},"startTime":1764107504765,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":22,"timestamp":474859678444,"id":3452,"parentId":3441,"tags":{},"startTime":1764107504765,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":948,"timestamp":474859678468,"id":3453,"parentId":3441,"tags":{},"startTime":1764107504765,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8006,"timestamp":474859673363,"id":3441,"parentId":3407,"tags":{},"startTime":1764107504760,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":31778,"timestamp":474859651182,"id":3407,"parentId":3369,"tags":{"name":"server"},"startTime":1764107504737,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1395,"timestamp":474859682978,"id":3454,"parentId":3369,"tags":{},"startTime":1764107504769,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":77464,"timestamp":474859607517,"id":3369,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764107504694,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":11333,"timestamp":474859688170,"id":3456,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107504774,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474859699524,"id":3458,"parentId":3456,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"550469632","memory.heapUsed":"216829608","memory.heapTotal":"241483776"},"startTime":1764107504786,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11562,"timestamp":474859688017,"id":3455,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107504774,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474859699585,"id":3459,"parentId":3455,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"550469632","memory.heapUsed":"216840728","memory.heapTotal":"241483776"},"startTime":1764107504786,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11505,"timestamp":474859688203,"id":3457,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","isTurbopack":false},"startTime":1764107504774,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474859699713,"id":3460,"parentId":3457,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","memory.rss":"550469632","memory.heapUsed":"216856024","memory.heapTotal":"241483776"},"startTime":1764107504786,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3375,"timestamp":474870842795,"id":3472,"parentId":3464,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107515929,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3404,"timestamp":474870842797,"id":3473,"parentId":3464,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107515929,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3754,"timestamp":474870842735,"id":3465,"parentId":3464,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107515929,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4444,"timestamp":474870842793,"id":3471,"parentId":3464,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107515929,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5193,"timestamp":474870842783,"id":3467,"parentId":3464,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107515929,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5271,"timestamp":474870842788,"id":3469,"parentId":3464,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107515929,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":727,"timestamp":474870847374,"id":3479,"parentId":3478,"tags":{},"startTime":1764107515934,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4051,"timestamp":474870845583,"id":3477,"parentId":3476,"tags":{},"startTime":1764107515932,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4137,"timestamp":474870845498,"id":3476,"parentId":3475,"tags":{},"startTime":1764107515932,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":8228,"timestamp":474870845423,"id":3475,"parentId":3463,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"app-pages-browser"},"startTime":1764107515932,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11124,"timestamp":474870842778,"id":3466,"parentId":3464,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107515929,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":15134,"timestamp":474870848127,"id":3481,"parentId":3480,"tags":{},"startTime":1764107515934,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":16199,"timestamp":474870848116,"id":3480,"parentId":3478,"tags":{},"startTime":1764107515934,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2292,"timestamp":474870864327,"id":3482,"parentId":3478,"tags":{"astUsed":"true"},"startTime":1764107515951,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":19784,"timestamp":474870847317,"id":3478,"parentId":3474,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107515934,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":24512,"timestamp":474870842790,"id":3470,"parentId":3464,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107515929,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":23097,"timestamp":474870845261,"id":3474,"parentId":3463,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107515931,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":8,"timestamp":474870868429,"id":3483,"parentId":3474,"tags":{},"startTime":1764107515955,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":25670,"timestamp":474870842786,"id":3468,"parentId":3464,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107515929,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":25951,"timestamp":474870842512,"id":3464,"parentId":3463,"tags":{},"startTime":1764107515929,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":694,"timestamp":474870869203,"id":3485,"parentId":3484,"tags":{},"startTime":1764107515955,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474870869903,"id":3487,"parentId":3484,"tags":{},"startTime":1764107515956,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":19,"timestamp":474870869911,"id":3488,"parentId":3484,"tags":{},"startTime":1764107515956,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":474870869936,"id":3489,"parentId":3484,"tags":{},"startTime":1764107515956,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474870869946,"id":3490,"parentId":3484,"tags":{},"startTime":1764107515956,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":271,"timestamp":474870869901,"id":3486,"parentId":3484,"tags":{},"startTime":1764107515956,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":145,"timestamp":474870870531,"id":3491,"parentId":3484,"tags":{},"startTime":1764107515957,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":429,"timestamp":474870870680,"id":3492,"parentId":3484,"tags":{},"startTime":1764107515957,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1287,"timestamp":474870871479,"id":3493,"parentId":3484,"tags":{},"startTime":1764107515958,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":47,"timestamp":474870872766,"id":3494,"parentId":3484,"tags":{},"startTime":1764107515959,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":19,"timestamp":474870872810,"id":3495,"parentId":3484,"tags":{},"startTime":1764107515959,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1068,"timestamp":474870872831,"id":3496,"parentId":3484,"tags":{},"startTime":1764107515959,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":31,"timestamp":474870874205,"id":3498,"parentId":3463,"tags":{},"startTime":1764107515960,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":60,"timestamp":474870874179,"id":3497,"parentId":3463,"tags":{},"startTime":1764107515960,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6033,"timestamp":474870868947,"id":3484,"parentId":3463,"tags":{},"startTime":1764107515955,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":32693,"timestamp":474870842299,"id":3463,"parentId":3461,"tags":{"name":"client"},"startTime":1764107515929,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1841,"timestamp":474870875000,"id":3499,"parentId":3461,"tags":{},"startTime":1764107515961,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":41542,"timestamp":474870835682,"id":3461,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764107515922,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":4,"timestamp":474870879180,"id":3502,"parentId":3,"tags":{},"startTime":1764107515965,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474870879206,"id":3503,"parentId":3,"tags":{},"startTime":1764107515965,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474870879217,"id":3504,"parentId":3,"tags":{},"startTime":1764107515965,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":49000,"timestamp":474870835732,"id":3510,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107515971,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":50000,"timestamp":474870835725,"id":3514,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764107515973,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6720,"timestamp":474870880327,"id":3507,"parentId":3501,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107515967,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6727,"timestamp":474870880328,"id":3508,"parentId":3501,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107515967,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6727,"timestamp":474870880331,"id":3509,"parentId":3501,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107515967,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2006,"timestamp":474870886641,"id":3513,"parentId":3512,"tags":{},"startTime":1764107515973,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2087,"timestamp":474870886562,"id":3512,"parentId":3511,"tags":{},"startTime":1764107515973,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2905,"timestamp":474870886386,"id":3511,"parentId":3500,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"rsc"},"startTime":1764107515973,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9161,"timestamp":474870880324,"id":3506,"parentId":3501,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107515967,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10872,"timestamp":474870880308,"id":3505,"parentId":3501,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107515967,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":55000,"timestamp":474870836183,"id":3530,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder/build","isPageHidden":true},"startTime":1764107515978,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1804,"timestamp":474870893036,"id":3533,"parentId":3532,"tags":{},"startTime":1764107515979,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1858,"timestamp":474870892985,"id":3532,"parentId":3531,"tags":{},"startTime":1764107515979,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4118,"timestamp":474870892883,"id":3531,"parentId":3500,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"ssr"},"startTime":1764107515979,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":20874,"timestamp":474870878607,"id":3501,"parentId":3500,"tags":{},"startTime":1764107515965,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1256,"timestamp":474870900548,"id":3535,"parentId":3534,"tags":{},"startTime":1764107515987,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474870901815,"id":3537,"parentId":3534,"tags":{},"startTime":1764107515988,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1220,"timestamp":474870901827,"id":3538,"parentId":3534,"tags":{},"startTime":1764107515988,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474870903062,"id":3539,"parentId":3534,"tags":{},"startTime":1764107515989,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474870903076,"id":3540,"parentId":3534,"tags":{},"startTime":1764107515989,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1540,"timestamp":474870901813,"id":3536,"parentId":3534,"tags":{},"startTime":1764107515988,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":223,"timestamp":474870903968,"id":3541,"parentId":3534,"tags":{},"startTime":1764107515990,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":472,"timestamp":474870904199,"id":3542,"parentId":3534,"tags":{},"startTime":1764107515990,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":516,"timestamp":474870905187,"id":3543,"parentId":3534,"tags":{},"startTime":1764107515991,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":36,"timestamp":474870905703,"id":3544,"parentId":3534,"tags":{},"startTime":1764107515992,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":21,"timestamp":474870905736,"id":3545,"parentId":3534,"tags":{},"startTime":1764107515992,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":79,"timestamp":474870905759,"id":3546,"parentId":3534,"tags":{},"startTime":1764107515992,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6324,"timestamp":474870900342,"id":3534,"parentId":3500,"tags":{},"startTime":1764107515987,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":29900,"timestamp":474870878461,"id":3500,"parentId":3462,"tags":{"name":"server"},"startTime":1764107515965,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1126,"timestamp":474870908375,"id":3547,"parentId":3462,"tags":{},"startTime":1764107515995,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":74183,"timestamp":474870835826,"id":3462,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764107515922,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":9253,"timestamp":474870915442,"id":3548,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107516002,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474870924714,"id":3551,"parentId":3548,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"566624256","memory.heapUsed":"199776848","memory.heapTotal":"259325952"},"startTime":1764107516011,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10774,"timestamp":474870915624,"id":3549,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","isTurbopack":false},"startTime":1764107516002,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474870926412,"id":3552,"parentId":3549,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","memory.rss":"566624256","memory.heapUsed":"199995672","memory.heapTotal":"259325952"},"startTime":1764107516013,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":12627,"timestamp":474870915655,"id":3550,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107516002,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474870928296,"id":3553,"parentId":3550,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"566624256","memory.heapUsed":"200073784","memory.heapTotal":"259325952"},"startTime":1764107516015,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5799,"timestamp":474888459690,"id":3560,"parentId":3557,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107533546,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5807,"timestamp":474888459695,"id":3561,"parentId":3557,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107533546,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5809,"timestamp":474888459697,"id":3562,"parentId":3557,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107533546,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6351,"timestamp":474888459654,"id":3558,"parentId":3557,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107533546,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1340,"timestamp":474888465108,"id":3565,"parentId":3564,"tags":{},"startTime":1764107533551,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1405,"timestamp":474888465046,"id":3564,"parentId":3563,"tags":{},"startTime":1764107533551,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2103,"timestamp":474888464865,"id":3563,"parentId":3556,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"rsc"},"startTime":1764107533551,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8538,"timestamp":474888459686,"id":3559,"parentId":3557,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107533546,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2102,"timestamp":474888470019,"id":3583,"parentId":3582,"tags":{},"startTime":1764107533556,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2152,"timestamp":474888469971,"id":3582,"parentId":3581,"tags":{},"startTime":1764107533556,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4470,"timestamp":474888469883,"id":3581,"parentId":3556,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"ssr"},"startTime":1764107533556,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":21576,"timestamp":474888458473,"id":3557,"parentId":3556,"tags":{},"startTime":1764107533545,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1129,"timestamp":474888481206,"id":3585,"parentId":3584,"tags":{},"startTime":1764107533567,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474888482343,"id":3587,"parentId":3584,"tags":{},"startTime":1764107533569,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1252,"timestamp":474888482353,"id":3588,"parentId":3584,"tags":{},"startTime":1764107533569,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474888483614,"id":3589,"parentId":3584,"tags":{},"startTime":1764107533570,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474888483624,"id":3590,"parentId":3584,"tags":{},"startTime":1764107533570,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1454,"timestamp":474888482340,"id":3586,"parentId":3584,"tags":{},"startTime":1764107533569,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":216,"timestamp":474888484309,"id":3591,"parentId":3584,"tags":{},"startTime":1764107533571,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":383,"timestamp":474888484529,"id":3592,"parentId":3584,"tags":{},"startTime":1764107533571,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":507,"timestamp":474888485313,"id":3593,"parentId":3584,"tags":{},"startTime":1764107533572,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":37,"timestamp":474888485820,"id":3594,"parentId":3584,"tags":{},"startTime":1764107533572,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":26,"timestamp":474888485854,"id":3595,"parentId":3584,"tags":{},"startTime":1764107533572,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":90,"timestamp":474888485882,"id":3596,"parentId":3584,"tags":{},"startTime":1764107533572,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5993,"timestamp":474888480976,"id":3584,"parentId":3556,"tags":{},"startTime":1764107533567,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":30428,"timestamp":474888458238,"id":3556,"parentId":3554,"tags":{"name":"server"},"startTime":1764107533544,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1231,"timestamp":474888488683,"id":3597,"parentId":3554,"tags":{},"startTime":1764107533575,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":39447,"timestamp":474888450662,"id":3554,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764107533537,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2104,"timestamp":474888494593,"id":3607,"parentId":3599,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107533581,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2127,"timestamp":474888494595,"id":3608,"parentId":3599,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107533581,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2465,"timestamp":474888494550,"id":3600,"parentId":3599,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107533581,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3149,"timestamp":474888494591,"id":3606,"parentId":3599,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107533581,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4445,"timestamp":474888494582,"id":3602,"parentId":3599,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107533581,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4528,"timestamp":474888494587,"id":3604,"parentId":3599,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107533581,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4561,"timestamp":474888494574,"id":3601,"parentId":3599,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107533581,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":1114,"timestamp":474888498028,"id":3614,"parentId":3613,"tags":{},"startTime":1764107533584,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4111,"timestamp":474888496149,"id":3612,"parentId":3611,"tags":{},"startTime":1764107533582,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4162,"timestamp":474888496100,"id":3611,"parentId":3610,"tags":{},"startTime":1764107533582,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6628,"timestamp":474888496025,"id":3610,"parentId":3598,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/page.tsx","layer":"app-pages-browser"},"startTime":1764107533582,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":12601,"timestamp":474888499178,"id":3616,"parentId":3615,"tags":{},"startTime":1764107533585,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":12683,"timestamp":474888499164,"id":3615,"parentId":3613,"tags":{},"startTime":1764107533585,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":1562,"timestamp":474888511858,"id":3617,"parentId":3613,"tags":{"astUsed":"true"},"startTime":1764107533598,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":15918,"timestamp":474888497931,"id":3613,"parentId":3609,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107533584,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":19281,"timestamp":474888494589,"id":3605,"parentId":3599,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107533581,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":19029,"timestamp":474888495885,"id":3609,"parentId":3598,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107533582,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":7,"timestamp":474888514973,"id":3618,"parentId":3609,"tags":{},"startTime":1764107533601,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":20412,"timestamp":474888494585,"id":3603,"parentId":3599,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107533581,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":24030,"timestamp":474888490973,"id":3599,"parentId":3598,"tags":{},"startTime":1764107533577,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":515,"timestamp":474888515704,"id":3620,"parentId":3619,"tags":{},"startTime":1764107533602,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474888516226,"id":3622,"parentId":3619,"tags":{},"startTime":1764107533602,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":19,"timestamp":474888516233,"id":3623,"parentId":3619,"tags":{},"startTime":1764107533602,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474888516257,"id":3624,"parentId":3619,"tags":{},"startTime":1764107533602,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474888516266,"id":3625,"parentId":3619,"tags":{},"startTime":1764107533602,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":196,"timestamp":474888516224,"id":3621,"parentId":3619,"tags":{},"startTime":1764107533602,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":166,"timestamp":474888516802,"id":3626,"parentId":3619,"tags":{},"startTime":1764107533603,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":423,"timestamp":474888516973,"id":3627,"parentId":3619,"tags":{},"startTime":1764107533603,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1128,"timestamp":474888517745,"id":3628,"parentId":3619,"tags":{},"startTime":1764107533604,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":60,"timestamp":474888518873,"id":3629,"parentId":3619,"tags":{},"startTime":1764107533605,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":27,"timestamp":474888518929,"id":3630,"parentId":3619,"tags":{},"startTime":1764107533605,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1027,"timestamp":474888518958,"id":3631,"parentId":3619,"tags":{},"startTime":1764107533605,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":22,"timestamp":474888520307,"id":3633,"parentId":3598,"tags":{},"startTime":1764107533607,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":51,"timestamp":474888520281,"id":3632,"parentId":3598,"tags":{},"startTime":1764107533606,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5528,"timestamp":474888515470,"id":3619,"parentId":3598,"tags":{},"startTime":1764107533602,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":30226,"timestamp":474888490788,"id":3598,"parentId":3555,"tags":{"name":"client"},"startTime":1764107533577,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":3414,"timestamp":474888521025,"id":3634,"parentId":3555,"tags":{},"startTime":1764107533607,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":74257,"timestamp":474888450735,"id":3555,"parentId":3,"tags":{"trigger":"app/gunbuilder/page.tsx"},"startTime":1764107533537,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":2,"timestamp":474888525787,"id":3635,"parentId":3,"tags":{},"startTime":1764107533612,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":474888526809,"id":3637,"parentId":3,"tags":{},"startTime":1764107533613,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474888527048,"id":3638,"parentId":3,"tags":{},"startTime":1764107533613,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":78000,"timestamp":474888450515,"id":3639,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107533619,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8327,"timestamp":474888526583,"id":3636,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107533613,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474888534929,"id":3642,"parentId":3636,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"566788096","memory.heapUsed":"210441600","memory.heapTotal":"259751936"},"startTime":1764107533621,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":89000,"timestamp":474888450382,"id":3643,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107533631,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":91000,"timestamp":474888450703,"id":3644,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder/build","isPageHidden":true},"startTime":1764107533631,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11998,"timestamp":474888532850,"id":3640,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","isTurbopack":false},"startTime":1764107533619,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474888544873,"id":3645,"parentId":3640,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","memory.rss":"567099392","memory.heapUsed":"192952240","memory.heapTotal":"256704512"},"startTime":1764107533631,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11164,"timestamp":474888533812,"id":3641,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107533620,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474888544981,"id":3646,"parentId":3641,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"567099392","memory.heapUsed":"192970376","memory.heapTotal":"256704512"},"startTime":1764107533631,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":15911,"timestamp":474890882414,"id":3647,"tags":{"url":"/gunbuilder/lower?_rsc=1acsq","isTurbopack":false},"startTime":1764107535969,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474890898367,"id":3648,"parentId":3647,"tags":{"url":"/gunbuilder/lower?_rsc=1acsq","memory.rss":"567345152","memory.heapUsed":"194933296","memory.heapTotal":"256901120"},"startTime":1764107535985,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4208,"timestamp":474890904073,"id":3649,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","isTurbopack":false},"startTime":1764107535990,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474890908300,"id":3650,"parentId":3649,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","memory.rss":"567345152","memory.heapUsed":"195786448","memory.heapTotal":"256901120"},"startTime":1764107535995,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":19637,"timestamp":474892326216,"id":3651,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=uiigs","isTurbopack":false},"startTime":1764107537412,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474892345902,"id":3652,"parentId":3651,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=uiigs","memory.rss":"567345152","memory.heapUsed":"196553544","memory.heapTotal":"256901120"},"startTime":1764107537432,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5528,"timestamp":474892349627,"id":3653,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","isTurbopack":false},"startTime":1764107537436,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474892355178,"id":3654,"parentId":3653,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","memory.rss":"567345152","memory.heapUsed":"197188504","memory.heapTotal":"256901120"},"startTime":1764107537441,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7190,"timestamp":474892383356,"id":3655,"tags":{"url":"/gunbuilder?_rsc=x5p1f","isTurbopack":false},"startTime":1764107537470,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":474892390585,"id":3656,"parentId":3655,"tags":{"url":"/gunbuilder?_rsc=x5p1f","memory.rss":"567345152","memory.heapUsed":"197820040","memory.heapTotal":"256901120"},"startTime":1764107537477,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6459,"timestamp":474975425822,"id":3662,"parentId":3660,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107620512,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6467,"timestamp":474975425828,"id":3663,"parentId":3660,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107620512,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6475,"timestamp":474975425831,"id":3665,"parentId":3660,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107620512,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6739,"timestamp":474975425829,"id":3664,"parentId":3660,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107620512,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":992,"timestamp":474975431933,"id":3668,"parentId":3667,"tags":{},"startTime":1764107620518,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1070,"timestamp":474975431856,"id":3667,"parentId":3666,"tags":{},"startTime":1764107620518,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2368,"timestamp":474975431654,"id":3666,"parentId":3659,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"rsc"},"startTime":1764107620518,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":29877,"timestamp":474975425784,"id":3661,"parentId":3660,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107620512,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1650,"timestamp":474975457963,"id":3686,"parentId":3685,"tags":{},"startTime":1764107620544,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1732,"timestamp":474975457884,"id":3685,"parentId":3684,"tags":{},"startTime":1764107620544,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":3901,"timestamp":474975457736,"id":3684,"parentId":3659,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"ssr"},"startTime":1764107620544,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":41031,"timestamp":474975424114,"id":3660,"parentId":3659,"tags":{},"startTime":1764107620510,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1126,"timestamp":474975466569,"id":3688,"parentId":3687,"tags":{},"startTime":1764107620553,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474975467703,"id":3690,"parentId":3687,"tags":{},"startTime":1764107620554,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1005,"timestamp":474975467711,"id":3691,"parentId":3687,"tags":{},"startTime":1764107620554,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":474975468725,"id":3692,"parentId":3687,"tags":{},"startTime":1764107620555,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":3,"timestamp":474975468740,"id":3693,"parentId":3687,"tags":{},"startTime":1764107620555,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1274,"timestamp":474975467701,"id":3689,"parentId":3687,"tags":{},"startTime":1764107620554,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":184,"timestamp":474975469408,"id":3694,"parentId":3687,"tags":{},"startTime":1764107620556,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":889,"timestamp":474975469596,"id":3695,"parentId":3687,"tags":{},"startTime":1764107620556,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":443,"timestamp":474975470951,"id":3696,"parentId":3687,"tags":{},"startTime":1764107620557,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":43,"timestamp":474975471394,"id":3697,"parentId":3687,"tags":{},"startTime":1764107620557,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":22,"timestamp":474975471433,"id":3698,"parentId":3687,"tags":{},"startTime":1764107620558,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":937,"timestamp":474975471458,"id":3699,"parentId":3687,"tags":{},"startTime":1764107620558,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7177,"timestamp":474975465977,"id":3687,"parentId":3659,"tags":{},"startTime":1764107620552,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":50700,"timestamp":474975423961,"id":3659,"parentId":3657,"tags":{"name":"server"},"startTime":1764107620510,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1413,"timestamp":474975474671,"id":3700,"parentId":3657,"tags":{},"startTime":1764107620561,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":58327,"timestamp":474975417954,"id":3657,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/page.tsx"},"startTime":1764107620504,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2025,"timestamp":474975480324,"id":3710,"parentId":3702,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107620566,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2047,"timestamp":474975480326,"id":3711,"parentId":3702,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107620566,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2335,"timestamp":474975480279,"id":3703,"parentId":3702,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107620566,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2932,"timestamp":474975480321,"id":3708,"parentId":3702,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107620566,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2709,"timestamp":474975481888,"id":3715,"parentId":3714,"tags":{},"startTime":1764107620568,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2771,"timestamp":474975481828,"id":3714,"parentId":3713,"tags":{},"startTime":1764107620568,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":5011,"timestamp":474975481758,"id":3713,"parentId":3701,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"app-pages-browser"},"startTime":1764107620568,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6776,"timestamp":474975480311,"id":3705,"parentId":3702,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107620566,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6873,"timestamp":474975480319,"id":3707,"parentId":3702,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107620566,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":3816,"timestamp":474975483382,"id":3717,"parentId":3716,"tags":{},"startTime":1764107620569,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9106,"timestamp":474975480306,"id":3704,"parentId":3702,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107620566,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":14548,"timestamp":474975487214,"id":3719,"parentId":3718,"tags":{},"startTime":1764107620573,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":14784,"timestamp":474975487208,"id":3718,"parentId":3716,"tags":{},"startTime":1764107620573,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2646,"timestamp":474975502005,"id":3720,"parentId":3716,"tags":{"astUsed":"true"},"startTime":1764107620588,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":21863,"timestamp":474975483331,"id":3716,"parentId":3712,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107620569,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":33325,"timestamp":474975481591,"id":3712,"parentId":3701,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107620568,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":27,"timestamp":474975515617,"id":3721,"parentId":3712,"tags":{},"startTime":1764107620602,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":35349,"timestamp":474975480315,"id":3706,"parentId":3702,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107620566,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":41162,"timestamp":474975480323,"id":3709,"parentId":3702,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107620566,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":44580,"timestamp":474975476920,"id":3702,"parentId":3701,"tags":{},"startTime":1764107620563,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":754,"timestamp":474975522478,"id":3723,"parentId":3722,"tags":{},"startTime":1764107620609,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":474975523244,"id":3725,"parentId":3722,"tags":{},"startTime":1764107620609,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":23,"timestamp":474975523284,"id":3726,"parentId":3722,"tags":{},"startTime":1764107620609,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":5,"timestamp":474975523317,"id":3727,"parentId":3722,"tags":{},"startTime":1764107620609,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":3,"timestamp":474975523332,"id":3728,"parentId":3722,"tags":{},"startTime":1764107620609,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":333,"timestamp":474975523240,"id":3724,"parentId":3722,"tags":{},"startTime":1764107620609,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":223,"timestamp":474975524009,"id":3729,"parentId":3722,"tags":{},"startTime":1764107620610,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":830,"timestamp":474975524237,"id":3730,"parentId":3722,"tags":{},"startTime":1764107620610,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1468,"timestamp":474975526057,"id":3731,"parentId":3722,"tags":{},"startTime":1764107620612,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":72,"timestamp":474975527525,"id":3732,"parentId":3722,"tags":{},"startTime":1764107620614,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":25,"timestamp":474975527593,"id":3733,"parentId":3722,"tags":{},"startTime":1764107620614,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":2377,"timestamp":474975527620,"id":3734,"parentId":3722,"tags":{},"startTime":1764107620614,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":63,"timestamp":474975530541,"id":3736,"parentId":3701,"tags":{},"startTime":1764107620617,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":97,"timestamp":474975530512,"id":3735,"parentId":3701,"tags":{},"startTime":1764107620617,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":9328,"timestamp":474975522203,"id":3722,"parentId":3701,"tags":{},"startTime":1764107620608,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":54755,"timestamp":474975476793,"id":3701,"parentId":3658,"tags":{"name":"client"},"startTime":1764107620563,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":13095,"timestamp":474975531557,"id":3737,"parentId":3658,"tags":{},"startTime":1764107620618,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":127563,"timestamp":474975417997,"id":3658,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/page.tsx"},"startTime":1764107620504,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":2,"timestamp":474975547054,"id":3738,"parentId":3,"tags":{},"startTime":1764107620633,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":474975547181,"id":3739,"parentId":3,"tags":{},"startTime":1764107620633,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474975547201,"id":3740,"parentId":3,"tags":{},"startTime":1764107620633,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":134000,"timestamp":474975417719,"id":3744,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107620639,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":137000,"timestamp":474975418678,"id":3745,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/[categoryId]/page.tsx"],"page":"/gunbuilder/build","isPageHidden":true},"startTime":1764107620653,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":21690,"timestamp":474975547838,"id":3741,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107620634,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474975569541,"id":3746,"parentId":3741,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"586743808","memory.heapUsed":"199723304","memory.heapTotal":"226295808"},"startTime":1764107620656,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":155000,"timestamp":474975419373,"id":3747,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/[categoryId]/page.tsx"],"page":"/gunbuilder/lower","isPageHidden":false},"startTime":1764107620660,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":26417,"timestamp":474975548151,"id":3742,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","isTurbopack":false},"startTime":1764107620634,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474975574581,"id":3748,"parentId":3742,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","memory.rss":"586940416","memory.heapUsed":"201196600","memory.heapTotal":"226754560"},"startTime":1764107620661,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":26527,"timestamp":474975549374,"id":3743,"tags":{"url":"/gunbuilder/lower?_rsc=441g4","isTurbopack":false},"startTime":1764107620635,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474975575908,"id":3749,"parentId":3743,"tags":{"url":"/gunbuilder/lower?_rsc=441g4","memory.rss":"586940416","memory.heapUsed":"201225328","memory.heapTotal":"226754560"},"startTime":1764107620662,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4741,"timestamp":474989191413,"id":3755,"parentId":3753,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107634277,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4747,"timestamp":474989191416,"id":3756,"parentId":3753,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107634278,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4755,"timestamp":474989191419,"id":3758,"parentId":3753,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107634278,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4925,"timestamp":474989191418,"id":3757,"parentId":3753,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107634278,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1463,"timestamp":474989195859,"id":3761,"parentId":3760,"tags":{},"startTime":1764107634282,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1541,"timestamp":474989195781,"id":3760,"parentId":3759,"tags":{},"startTime":1764107634282,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2411,"timestamp":474989195630,"id":3759,"parentId":3752,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"rsc"},"startTime":1764107634282,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7894,"timestamp":474989191388,"id":3754,"parentId":3753,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107634277,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1732,"timestamp":474989200891,"id":3779,"parentId":3778,"tags":{},"startTime":1764107634287,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1789,"timestamp":474989200837,"id":3778,"parentId":3777,"tags":{},"startTime":1764107634287,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":5784,"timestamp":474989200722,"id":3777,"parentId":3752,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"ssr"},"startTime":1764107634287,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":18138,"timestamp":474989190588,"id":3753,"parentId":3752,"tags":{},"startTime":1764107634277,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1241,"timestamp":474989209708,"id":3781,"parentId":3780,"tags":{},"startTime":1764107634296,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":474989210957,"id":3783,"parentId":3780,"tags":{},"startTime":1764107634297,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1148,"timestamp":474989210967,"id":3784,"parentId":3780,"tags":{},"startTime":1764107634297,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474989212127,"id":3785,"parentId":3780,"tags":{},"startTime":1764107634298,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":474989212136,"id":3786,"parentId":3780,"tags":{},"startTime":1764107634298,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1379,"timestamp":474989210954,"id":3782,"parentId":3780,"tags":{},"startTime":1764107634297,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":173,"timestamp":474989212738,"id":3787,"parentId":3780,"tags":{},"startTime":1764107634299,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":520,"timestamp":474989212914,"id":3788,"parentId":3780,"tags":{},"startTime":1764107634299,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":365,"timestamp":474989213778,"id":3789,"parentId":3780,"tags":{},"startTime":1764107634300,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":29,"timestamp":474989214143,"id":3790,"parentId":3780,"tags":{},"startTime":1764107634300,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":20,"timestamp":474989214170,"id":3791,"parentId":3780,"tags":{},"startTime":1764107634300,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1802,"timestamp":474989214193,"id":3792,"parentId":3780,"tags":{},"startTime":1764107634300,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7716,"timestamp":474989209512,"id":3780,"parentId":3752,"tags":{},"startTime":1764107634296,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":28695,"timestamp":474989190437,"id":3752,"parentId":3750,"tags":{"name":"server"},"startTime":1764107634277,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1496,"timestamp":474989219157,"id":3793,"parentId":3750,"tags":{},"startTime":1764107634305,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":37300,"timestamp":474989183554,"id":3750,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/page.tsx"},"startTime":1764107634270,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2561,"timestamp":474989225434,"id":3803,"parentId":3795,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107634312,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2585,"timestamp":474989225436,"id":3804,"parentId":3795,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107634312,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2881,"timestamp":474989225388,"id":3796,"parentId":3795,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107634311,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3563,"timestamp":474989225429,"id":3801,"parentId":3795,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107634312,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2289,"timestamp":474989227367,"id":3808,"parentId":3807,"tags":{},"startTime":1764107634313,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2357,"timestamp":474989227300,"id":3807,"parentId":3806,"tags":{},"startTime":1764107634313,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6173,"timestamp":474989227213,"id":3806,"parentId":3794,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"app-pages-browser"},"startTime":1764107634313,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8436,"timestamp":474989225420,"id":3798,"parentId":3795,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107634312,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9138,"timestamp":474989225427,"id":3800,"parentId":3795,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107634312,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9135,"timestamp":474989225432,"id":3802,"parentId":3795,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107634312,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":5423,"timestamp":474989229151,"id":3810,"parentId":3809,"tags":{},"startTime":1764107634315,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11312,"timestamp":474989225415,"id":3797,"parentId":3795,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107634312,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":21543,"timestamp":474989234597,"id":3812,"parentId":3811,"tags":{},"startTime":1764107634321,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":21785,"timestamp":474989234586,"id":3811,"parentId":3809,"tags":{},"startTime":1764107634321,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":1671,"timestamp":474989256390,"id":3813,"parentId":3809,"tags":{"astUsed":"true"},"startTime":1764107634342,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":29611,"timestamp":474989229094,"id":3809,"parentId":3805,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107634315,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":33180,"timestamp":474989227002,"id":3805,"parentId":3794,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107634313,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":9,"timestamp":474989260257,"id":3814,"parentId":3805,"tags":{},"startTime":1764107634346,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":34861,"timestamp":474989225425,"id":3799,"parentId":3795,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107634312,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":38546,"timestamp":474989221761,"id":3795,"parentId":3794,"tags":{},"startTime":1764107634308,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":652,"timestamp":474989261088,"id":3816,"parentId":3815,"tags":{},"startTime":1764107634347,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":474989261745,"id":3818,"parentId":3815,"tags":{},"startTime":1764107634348,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":17,"timestamp":474989261751,"id":3819,"parentId":3815,"tags":{},"startTime":1764107634348,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":474989261772,"id":3820,"parentId":3815,"tags":{},"startTime":1764107634348,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":474989261793,"id":3821,"parentId":3815,"tags":{},"startTime":1764107634348,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":307,"timestamp":474989261743,"id":3817,"parentId":3815,"tags":{},"startTime":1764107634348,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":135,"timestamp":474989262408,"id":3822,"parentId":3815,"tags":{},"startTime":1764107634348,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":581,"timestamp":474989262546,"id":3823,"parentId":3815,"tags":{},"startTime":1764107634349,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1180,"timestamp":474989263508,"id":3824,"parentId":3815,"tags":{},"startTime":1764107634350,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":45,"timestamp":474989264688,"id":3825,"parentId":3815,"tags":{},"startTime":1764107634351,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":21,"timestamp":474989264729,"id":3826,"parentId":3815,"tags":{},"startTime":1764107634351,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1799,"timestamp":474989264752,"id":3827,"parentId":3815,"tags":{},"startTime":1764107634351,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":49,"timestamp":474989266947,"id":3829,"parentId":3794,"tags":{},"startTime":1764107634353,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":87,"timestamp":474989266913,"id":3828,"parentId":3794,"tags":{},"startTime":1764107634353,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6893,"timestamp":474989260845,"id":3815,"parentId":3794,"tags":{},"startTime":1764107634347,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":46170,"timestamp":474989221583,"id":3794,"parentId":3751,"tags":{"name":"client"},"startTime":1764107634308,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2588,"timestamp":474989267762,"id":3830,"parentId":3751,"tags":{},"startTime":1764107634354,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":87303,"timestamp":474989183598,"id":3751,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/page.tsx"},"startTime":1764107634270,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":1,"timestamp":474989271579,"id":3831,"parentId":3,"tags":{},"startTime":1764107634358,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":474989272762,"id":3833,"parentId":3,"tags":{},"startTime":1764107634359,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":474989272780,"id":3834,"parentId":3,"tags":{},"startTime":1764107634359,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":92000,"timestamp":474989183767,"id":3837,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107634366,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9491,"timestamp":474989272055,"id":3832,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107634358,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474989281557,"id":3838,"parentId":3832,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"580059136","memory.heapUsed":"222366600","memory.heapTotal":"244203520"},"startTime":1764107634368,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11627,"timestamp":474989274200,"id":3835,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","isTurbopack":false},"startTime":1764107634360,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474989285849,"id":3839,"parentId":3835,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","memory.rss":"580304896","memory.heapUsed":"223710032","memory.heapTotal":"245235712"},"startTime":1764107634372,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":102000,"timestamp":474989184051,"id":3840,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/[categoryId]/page.tsx"],"page":"/gunbuilder/build","isPageHidden":true},"startTime":1764107634375,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":14649,"timestamp":474989275596,"id":3836,"tags":{"url":"/gunbuilder/lower?_rsc=z5mrr","isTurbopack":false},"startTime":1764107634362,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":474989290258,"id":3841,"parentId":3836,"tags":{"url":"/gunbuilder/lower?_rsc=z5mrr","memory.rss":"580517888","memory.heapUsed":"225014400","memory.heapTotal":"246235136"},"startTime":1764107634376,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":111000,"timestamp":474989183605,"id":3842,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/[categoryId]/page.tsx"],"page":"/gunbuilder/lower","isPageHidden":true},"startTime":1764107634381,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10287,"timestamp":475003547408,"id":3843,"tags":{"url":"/gunbuilder?_rsc=x5p1f","isTurbopack":false},"startTime":1764107648633,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":475003557766,"id":3844,"parentId":3843,"tags":{"url":"/gunbuilder?_rsc=x5p1f","memory.rss":"573882368","memory.heapUsed":"226128160","memory.heapTotal":"247283712"},"startTime":1764107648644,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6235,"timestamp":475004853971,"id":3856,"parentId":3848,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107649940,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6257,"timestamp":475004853972,"id":3857,"parentId":3848,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107649940,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6626,"timestamp":475004853900,"id":3849,"parentId":3848,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107649940,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7331,"timestamp":475004853967,"id":3854,"parentId":3848,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107649940,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8270,"timestamp":475004853962,"id":3851,"parentId":3848,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107649940,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2840,"timestamp":475004859506,"id":3861,"parentId":3860,"tags":{},"startTime":1764107649946,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2918,"timestamp":475004859429,"id":3860,"parentId":3859,"tags":{},"startTime":1764107649945,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":7008,"timestamp":475004859321,"id":3859,"parentId":3847,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"app-pages-browser"},"startTime":1764107649945,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12686,"timestamp":475004853965,"id":3853,"parentId":3848,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107649940,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":5167,"timestamp":475004861553,"id":3863,"parentId":3862,"tags":{},"startTime":1764107649948,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":14725,"timestamp":475004853969,"id":3855,"parentId":3848,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107649940,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":14878,"timestamp":475004853958,"id":3850,"parentId":3848,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107649940,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":10233,"timestamp":475004866743,"id":3865,"parentId":3864,"tags":{},"startTime":1764107649953,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":10351,"timestamp":475004866733,"id":3864,"parentId":3862,"tags":{},"startTime":1764107649953,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":1627,"timestamp":475004877100,"id":3866,"parentId":3862,"tags":{"astUsed":"true"},"startTime":1764107649963,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":17956,"timestamp":475004861433,"id":3862,"parentId":3858,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107649948,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":22026,"timestamp":475004859026,"id":3858,"parentId":3847,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107649945,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":13,"timestamp":475004881146,"id":3867,"parentId":3858,"tags":{},"startTime":1764107649967,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":27218,"timestamp":475004853963,"id":3852,"parentId":3848,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107649940,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":27536,"timestamp":475004853658,"id":3848,"parentId":3847,"tags":{},"startTime":1764107649940,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":872,"timestamp":475004882140,"id":3869,"parentId":3868,"tags":{},"startTime":1764107649968,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":475004883022,"id":3871,"parentId":3868,"tags":{},"startTime":1764107649969,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":21,"timestamp":475004883030,"id":3872,"parentId":3868,"tags":{},"startTime":1764107649969,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":475004883058,"id":3873,"parentId":3868,"tags":{},"startTime":1764107649969,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":475004883067,"id":3874,"parentId":3868,"tags":{},"startTime":1764107649969,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":210,"timestamp":475004883019,"id":3870,"parentId":3868,"tags":{},"startTime":1764107649969,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":212,"timestamp":475004883684,"id":3875,"parentId":3868,"tags":{},"startTime":1764107649970,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":465,"timestamp":475004883900,"id":3876,"parentId":3868,"tags":{},"startTime":1764107649970,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1640,"timestamp":475004884907,"id":3877,"parentId":3868,"tags":{},"startTime":1764107649971,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":67,"timestamp":475004886547,"id":3878,"parentId":3868,"tags":{},"startTime":1764107649973,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":27,"timestamp":475004886608,"id":3879,"parentId":3868,"tags":{},"startTime":1764107649973,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1415,"timestamp":475004886638,"id":3880,"parentId":3868,"tags":{},"startTime":1764107649973,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":30,"timestamp":475004888457,"id":3882,"parentId":3847,"tags":{},"startTime":1764107649975,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":68,"timestamp":475004888423,"id":3881,"parentId":3847,"tags":{},"startTime":1764107649974,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7371,"timestamp":475004881852,"id":3868,"parentId":3847,"tags":{},"startTime":1764107649968,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":35806,"timestamp":475004853436,"id":3847,"parentId":3845,"tags":{"name":"client"},"startTime":1764107649940,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2147,"timestamp":475004889250,"id":3883,"parentId":3845,"tags":{},"startTime":1764107649975,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":45699,"timestamp":475004846103,"id":3845,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/page.tsx"},"startTime":1764107649932,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":10,"timestamp":475004896037,"id":3886,"parentId":3,"tags":{},"startTime":1764107649982,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475004896091,"id":3887,"parentId":3,"tags":{},"startTime":1764107649982,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475004896103,"id":3888,"parentId":3,"tags":{},"startTime":1764107649982,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":55000,"timestamp":475004846944,"id":3894,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107649988,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":55000,"timestamp":475004847070,"id":3895,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder/build","isPageHidden":true},"startTime":1764107649988,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":55000,"timestamp":475004846892,"id":3896,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764107649989,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5765,"timestamp":475004897769,"id":3891,"parentId":3885,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107649984,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5771,"timestamp":475004897771,"id":3892,"parentId":3885,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107649984,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5950,"timestamp":475004897773,"id":3893,"parentId":3885,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107649984,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6125,"timestamp":475004897741,"id":3889,"parentId":3885,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107649984,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":826,"timestamp":475004903184,"id":3899,"parentId":3898,"tags":{},"startTime":1764107649989,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":891,"timestamp":475004903119,"id":3898,"parentId":3897,"tags":{},"startTime":1764107649989,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1552,"timestamp":475004902988,"id":3897,"parentId":3884,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"rsc"},"startTime":1764107649989,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8072,"timestamp":475004897767,"id":3890,"parentId":3885,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107649984,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1952,"timestamp":475004907673,"id":3917,"parentId":3916,"tags":{},"startTime":1764107649994,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2026,"timestamp":475004907603,"id":3916,"parentId":3915,"tags":{},"startTime":1764107649994,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4276,"timestamp":475004907480,"id":3915,"parentId":3884,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"ssr"},"startTime":1764107649994,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":20824,"timestamp":475004893300,"id":3885,"parentId":3884,"tags":{},"startTime":1764107649979,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1177,"timestamp":475004915034,"id":3919,"parentId":3918,"tags":{},"startTime":1764107650001,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":475004916217,"id":3921,"parentId":3918,"tags":{},"startTime":1764107650002,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":998,"timestamp":475004916225,"id":3922,"parentId":3918,"tags":{},"startTime":1764107650002,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":475004917229,"id":3923,"parentId":3918,"tags":{},"startTime":1764107650003,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":475004917236,"id":3924,"parentId":3918,"tags":{},"startTime":1764107650003,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1201,"timestamp":475004916215,"id":3920,"parentId":3918,"tags":{},"startTime":1764107650002,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":150,"timestamp":475004917793,"id":3925,"parentId":3918,"tags":{},"startTime":1764107650004,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":284,"timestamp":475004917947,"id":3926,"parentId":3918,"tags":{},"startTime":1764107650004,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":364,"timestamp":475004918530,"id":3927,"parentId":3918,"tags":{},"startTime":1764107650005,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":25,"timestamp":475004918894,"id":3928,"parentId":3918,"tags":{},"startTime":1764107650005,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":16,"timestamp":475004918917,"id":3929,"parentId":3918,"tags":{},"startTime":1764107650005,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":74,"timestamp":475004918936,"id":3930,"parentId":3918,"tags":{},"startTime":1764107650005,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":4867,"timestamp":475004914861,"id":3918,"parentId":3884,"tags":{},"startTime":1764107650001,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":28068,"timestamp":475004893127,"id":3884,"parentId":3846,"tags":{"name":"server"},"startTime":1764107649979,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1103,"timestamp":475004921204,"id":3931,"parentId":3846,"tags":{},"startTime":1764107650007,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":76221,"timestamp":475004846430,"id":3846,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/page.tsx"},"startTime":1764107649932,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":9575,"timestamp":475004928275,"id":3933,"tags":{"url":"/gunbuilder?_rsc=9gfev","isTurbopack":false},"startTime":1764107650014,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475004937872,"id":3935,"parentId":3933,"tags":{"url":"/gunbuilder?_rsc=9gfev","memory.rss":"589332480","memory.heapUsed":"217720280","memory.heapTotal":"275857408"},"startTime":1764107650024,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9836,"timestamp":475004928095,"id":3932,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107650014,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475004937935,"id":3936,"parentId":3932,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"589332480","memory.heapUsed":"217730408","memory.heapTotal":"275857408"},"startTime":1764107650024,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11005,"timestamp":475004928305,"id":3934,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","isTurbopack":false},"startTime":1764107650014,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475004939326,"id":3937,"parentId":3934,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","memory.rss":"589332480","memory.heapUsed":"217853816","memory.heapTotal":"275857408"},"startTime":1764107650025,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":12202,"timestamp":475037936813,"id":3938,"tags":{"url":"/gunbuilder/upper?_rsc=1acsq","isTurbopack":false},"startTime":1764107683023,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475037949058,"id":3939,"parentId":3938,"tags":{"url":"/gunbuilder/upper?_rsc=1acsq","memory.rss":"580812800","memory.heapUsed":"219680088","memory.heapTotal":"276070400"},"startTime":1764107683035,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6225,"timestamp":475037954450,"id":3940,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","isTurbopack":false},"startTime":1764107683040,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475037960698,"id":3941,"parentId":3940,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","memory.rss":"580829184","memory.heapUsed":"220517032","memory.heapTotal":"276070400"},"startTime":1764107683047,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5398,"timestamp":475042299259,"id":3942,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1d33p","isTurbopack":false},"startTime":1764107687385,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475042304695,"id":3943,"parentId":3942,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1d33p","memory.rss":"580845568","memory.heapUsed":"221160728","memory.heapTotal":"276070400"},"startTime":1764107687391,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4462,"timestamp":475042307574,"id":3944,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1fb4y","isTurbopack":false},"startTime":1764107687394,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475042312058,"id":3945,"parentId":3944,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1fb4y","memory.rss":"580845568","memory.heapUsed":"221797024","memory.heapTotal":"276070400"},"startTime":1764107687398,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4789,"timestamp":475042331773,"id":3946,"tags":{"url":"/gunbuilder?_rsc=x5p1f","isTurbopack":false},"startTime":1764107687418,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475042336597,"id":3947,"parentId":3946,"tags":{"url":"/gunbuilder?_rsc=x5p1f","memory.rss":"580845568","memory.heapUsed":"222429608","memory.heapTotal":"276070400"},"startTime":1764107687423,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3423,"timestamp":475078230498,"id":3958,"parentId":3951,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107723316,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3438,"timestamp":475078230499,"id":3959,"parentId":3951,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107723316,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3455,"timestamp":475078230500,"id":3960,"parentId":3951,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107723316,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4292,"timestamp":475078230454,"id":3952,"parentId":3951,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107723316,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1275,"timestamp":475078234295,"id":3964,"parentId":3963,"tags":{},"startTime":1764107723320,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1351,"timestamp":475078234221,"id":3963,"parentId":3962,"tags":{},"startTime":1764107723320,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4897,"timestamp":475078234132,"id":3962,"parentId":3950,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx","layer":"app-pages-browser"},"startTime":1764107723320,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9221,"timestamp":475078230491,"id":3954,"parentId":3951,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107723316,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9561,"timestamp":475078230494,"id":3956,"parentId":3951,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107723316,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":4664,"timestamp":475078235513,"id":3966,"parentId":3965,"tags":{},"startTime":1764107723321,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12017,"timestamp":475078230487,"id":3953,"parentId":3951,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107723316,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":11936,"timestamp":475078240209,"id":3968,"parentId":3967,"tags":{},"startTime":1764107723326,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":12215,"timestamp":475078240188,"id":3967,"parentId":3965,"tags":{},"startTime":1764107723326,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2981,"timestamp":475078252414,"id":3969,"parentId":3965,"tags":{"astUsed":"true"},"startTime":1764107723338,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":21625,"timestamp":475078235459,"id":3965,"parentId":3961,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107723321,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":33639,"timestamp":475078233306,"id":3961,"parentId":3950,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107723319,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":12,"timestamp":475078267176,"id":3970,"parentId":3961,"tags":{},"startTime":1764107723353,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":36722,"timestamp":475078230493,"id":3955,"parentId":3951,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107723316,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":40343,"timestamp":475078230496,"id":3957,"parentId":3951,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107723316,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":40557,"timestamp":475078230294,"id":3951,"parentId":3950,"tags":{},"startTime":1764107723316,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":821,"timestamp":475078271757,"id":3972,"parentId":3971,"tags":{},"startTime":1764107723358,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":475078272590,"id":3974,"parentId":3971,"tags":{},"startTime":1764107723359,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":43,"timestamp":475078272638,"id":3975,"parentId":3971,"tags":{},"startTime":1764107723359,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":5,"timestamp":475078272704,"id":3976,"parentId":3971,"tags":{},"startTime":1764107723359,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":3,"timestamp":475078272732,"id":3977,"parentId":3971,"tags":{},"startTime":1764107723359,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":497,"timestamp":475078272586,"id":3973,"parentId":3971,"tags":{},"startTime":1764107723359,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":260,"timestamp":475078273648,"id":3978,"parentId":3971,"tags":{},"startTime":1764107723360,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":724,"timestamp":475078273913,"id":3979,"parentId":3971,"tags":{},"startTime":1764107723360,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1990,"timestamp":475078275277,"id":3980,"parentId":3971,"tags":{},"startTime":1764107723361,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":111,"timestamp":475078277266,"id":3981,"parentId":3971,"tags":{},"startTime":1764107723363,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":29,"timestamp":475078277372,"id":3982,"parentId":3971,"tags":{},"startTime":1764107723363,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":2127,"timestamp":475078277404,"id":3983,"parentId":3971,"tags":{},"startTime":1764107723363,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":65,"timestamp":475078280150,"id":3985,"parentId":3950,"tags":{},"startTime":1764107723366,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":96,"timestamp":475078280120,"id":3984,"parentId":3950,"tags":{},"startTime":1764107723366,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":9703,"timestamp":475078271507,"id":3971,"parentId":3950,"tags":{},"startTime":1764107723357,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":51093,"timestamp":475078230129,"id":3950,"parentId":3948,"tags":{"name":"client"},"startTime":1764107723316,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":7566,"timestamp":475078281231,"id":3986,"parentId":3948,"tags":{},"startTime":1764107723367,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":66160,"timestamp":475078223151,"id":3948,"parentId":3,"tags":{"trigger":"components/CategoryColumn.tsx"},"startTime":1764107723309,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":4,"timestamp":475078290876,"id":3989,"parentId":3,"tags":{},"startTime":1764107723377,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475078290904,"id":3990,"parentId":3,"tags":{},"startTime":1764107723377,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475078290916,"id":3991,"parentId":3,"tags":{},"startTime":1764107723377,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":73000,"timestamp":475078222973,"id":3997,"parentId":3,"tags":{"updatedModules":["[project]/components/CategoryColumn.tsx"],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107723383,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7909,"timestamp":475078292543,"id":3993,"parentId":3988,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107723379,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7912,"timestamp":475078292546,"id":3994,"parentId":3988,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107723379,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7913,"timestamp":475078292547,"id":3995,"parentId":3988,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107723379,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8232,"timestamp":475078292549,"id":3996,"parentId":3988,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107723379,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8465,"timestamp":475078292518,"id":3992,"parentId":3988,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107723378,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":78000,"timestamp":475078224154,"id":4016,"parentId":3,"tags":{"updatedModules":["[project]/components/CategoryColumn.tsx"],"page":"/gunbuilder","isPageHidden":false},"startTime":1764107723389,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2067,"timestamp":475078303067,"id":4015,"parentId":4014,"tags":{},"startTime":1764107723389,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2127,"timestamp":475078303009,"id":4014,"parentId":4013,"tags":{},"startTime":1764107723389,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":3935,"timestamp":475078302845,"id":4013,"parentId":3987,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx","layer":"ssr"},"startTime":1764107723389,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":81000,"timestamp":475078224018,"id":4017,"parentId":3,"tags":{"updatedModules":["[project]/components/CategoryColumn.tsx"],"page":"/gunbuilder/build","isPageHidden":true},"startTime":1764107723393,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":26262,"timestamp":475078290297,"id":3988,"parentId":3987,"tags":{},"startTime":1764107723376,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1388,"timestamp":475078329476,"id":4019,"parentId":4018,"tags":{},"startTime":1764107723415,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":475078330881,"id":4021,"parentId":4018,"tags":{},"startTime":1764107723417,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1125,"timestamp":475078330958,"id":4022,"parentId":4018,"tags":{},"startTime":1764107723417,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":475078332100,"id":4023,"parentId":4018,"tags":{},"startTime":1764107723418,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":475078332113,"id":4024,"parentId":4018,"tags":{},"startTime":1764107723418,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1441,"timestamp":475078330876,"id":4020,"parentId":4018,"tags":{},"startTime":1764107723417,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":154,"timestamp":475078332734,"id":4025,"parentId":4018,"tags":{},"startTime":1764107723419,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":487,"timestamp":475078332891,"id":4026,"parentId":4018,"tags":{},"startTime":1764107723419,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":726,"timestamp":475078333982,"id":4027,"parentId":4018,"tags":{},"startTime":1764107723420,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":38,"timestamp":475078334709,"id":4028,"parentId":4018,"tags":{},"startTime":1764107723421,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":26,"timestamp":475078334744,"id":4029,"parentId":4018,"tags":{},"startTime":1764107723421,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":569,"timestamp":475078334771,"id":4030,"parentId":4018,"tags":{},"startTime":1764107723421,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7080,"timestamp":475078329218,"id":4018,"parentId":3987,"tags":{},"startTime":1764107723415,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":47784,"timestamp":475078290145,"id":3987,"parentId":3949,"tags":{"name":"server"},"startTime":1764107723376,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1377,"timestamp":475078337944,"id":4031,"parentId":3949,"tags":{},"startTime":1764107723424,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":116493,"timestamp":475078223359,"id":3949,"parentId":3,"tags":{"trigger":"components/CategoryColumn.tsx"},"startTime":1764107723309,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":19169,"timestamp":475078343955,"id":4033,"tags":{"url":"/gunbuilder?_rsc=9gfev","isTurbopack":false},"startTime":1764107723430,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475078363149,"id":4035,"parentId":4033,"tags":{"url":"/gunbuilder?_rsc=9gfev","memory.rss":"536625152","memory.heapUsed":"194713712","memory.heapTotal":"220971008"},"startTime":1764107723449,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":19712,"timestamp":475078343765,"id":4032,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107723430,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475078363483,"id":4036,"parentId":4032,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"536625152","memory.heapUsed":"194871808","memory.heapTotal":"220971008"},"startTime":1764107723449,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":20716,"timestamp":475078343983,"id":4034,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","isTurbopack":false},"startTime":1764107723430,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475078364707,"id":4037,"parentId":4034,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","memory.rss":"536625152","memory.heapUsed":"194976432","memory.heapTotal":"220971008"},"startTime":1764107723451,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3395,"timestamp":475085642294,"id":4048,"parentId":4041,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107730728,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3412,"timestamp":475085642296,"id":4049,"parentId":4041,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107730728,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3428,"timestamp":475085642298,"id":4050,"parentId":4041,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107730728,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3981,"timestamp":475085642251,"id":4042,"parentId":4041,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764107730728,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1559,"timestamp":475085646126,"id":4054,"parentId":4053,"tags":{},"startTime":1764107730732,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1661,"timestamp":475085646027,"id":4053,"parentId":4052,"tags":{},"startTime":1764107730732,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4474,"timestamp":475085645928,"id":4052,"parentId":4040,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx","layer":"app-pages-browser"},"startTime":1764107730732,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8572,"timestamp":475085642286,"id":4044,"parentId":4041,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764107730728,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8695,"timestamp":475085642291,"id":4046,"parentId":4041,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107730728,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":4177,"timestamp":475085647232,"id":4056,"parentId":4055,"tags":{},"startTime":1764107730733,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11152,"timestamp":475085642292,"id":4047,"parentId":4041,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107730728,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11281,"timestamp":475085642282,"id":4043,"parentId":4041,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764107730728,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":10691,"timestamp":475085651434,"id":4058,"parentId":4057,"tags":{},"startTime":1764107730737,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":10987,"timestamp":475085651422,"id":4057,"parentId":4055,"tags":{},"startTime":1764107730737,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":3990,"timestamp":475085662433,"id":4059,"parentId":4055,"tags":{"astUsed":"true"},"startTime":1764107730748,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":21242,"timestamp":475085647163,"id":4055,"parentId":4051,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764107730733,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":25516,"timestamp":475085644971,"id":4051,"parentId":4040,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764107730731,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":9,"timestamp":475085670578,"id":4060,"parentId":4051,"tags":{},"startTime":1764107730757,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":28319,"timestamp":475085642288,"id":4045,"parentId":4041,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764107730728,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":28543,"timestamp":475085642073,"id":4041,"parentId":4040,"tags":{},"startTime":1764107730728,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":764,"timestamp":475085671460,"id":4062,"parentId":4061,"tags":{},"startTime":1764107730757,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":475085672234,"id":4064,"parentId":4061,"tags":{},"startTime":1764107730758,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":22,"timestamp":475085672242,"id":4065,"parentId":4061,"tags":{},"startTime":1764107730758,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":475085672274,"id":4066,"parentId":4061,"tags":{},"startTime":1764107730758,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":475085672284,"id":4067,"parentId":4061,"tags":{},"startTime":1764107730758,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":305,"timestamp":475085672231,"id":4063,"parentId":4061,"tags":{},"startTime":1764107730758,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":203,"timestamp":475085672929,"id":4068,"parentId":4061,"tags":{},"startTime":1764107730759,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":585,"timestamp":475085673136,"id":4069,"parentId":4061,"tags":{},"startTime":1764107730759,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1615,"timestamp":475085674301,"id":4070,"parentId":4061,"tags":{},"startTime":1764107730760,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":68,"timestamp":475085675915,"id":4071,"parentId":4061,"tags":{},"startTime":1764107730762,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":30,"timestamp":475085675979,"id":4072,"parentId":4061,"tags":{},"startTime":1764107730762,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1080,"timestamp":475085676012,"id":4073,"parentId":4061,"tags":{},"startTime":1764107730762,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":29,"timestamp":475085677468,"id":4075,"parentId":4040,"tags":{},"startTime":1764107730763,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":63,"timestamp":475085677436,"id":4074,"parentId":4040,"tags":{},"startTime":1764107730763,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7054,"timestamp":475085671197,"id":4061,"parentId":4040,"tags":{},"startTime":1764107730757,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":36377,"timestamp":475085641889,"id":4040,"parentId":4038,"tags":{"name":"client"},"startTime":1764107730728,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2743,"timestamp":475085678276,"id":4076,"parentId":4038,"tags":{},"startTime":1764107730764,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":46414,"timestamp":475085634997,"id":4038,"parentId":3,"tags":{"trigger":"components/CategoryColumn.tsx"},"startTime":1764107730721,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":3,"timestamp":475085685330,"id":4079,"parentId":3,"tags":{},"startTime":1764107730771,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475085685379,"id":4080,"parentId":3,"tags":{},"startTime":1764107730771,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475085685393,"id":4081,"parentId":3,"tags":{},"startTime":1764107730771,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":57000,"timestamp":475085635123,"id":4087,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107730778,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":61000,"timestamp":475085635766,"id":4088,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder/build","isPageHidden":true},"startTime":1764107730784,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":63000,"timestamp":475085636411,"id":4089,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764107730785,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12968,"timestamp":475085689272,"id":4083,"parentId":4078,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107730775,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12971,"timestamp":475085689276,"id":4084,"parentId":4078,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107730775,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12967,"timestamp":475085689290,"id":4086,"parentId":4078,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107730775,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":13124,"timestamp":475085689279,"id":4085,"parentId":4078,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107730775,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":13279,"timestamp":475085689246,"id":4082,"parentId":4078,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764107730775,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1202,"timestamp":475085705216,"id":4107,"parentId":4106,"tags":{},"startTime":1764107730791,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1270,"timestamp":475085705152,"id":4106,"parentId":4105,"tags":{},"startTime":1764107730791,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2857,"timestamp":475085705003,"id":4105,"parentId":4077,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/CategoryColumn.tsx","layer":"ssr"},"startTime":1764107730791,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":35717,"timestamp":475085682952,"id":4078,"parentId":4077,"tags":{},"startTime":1764107730769,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1270,"timestamp":475085719857,"id":4109,"parentId":4108,"tags":{},"startTime":1764107730806,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":475085721136,"id":4111,"parentId":4108,"tags":{},"startTime":1764107730807,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1067,"timestamp":475085721146,"id":4112,"parentId":4108,"tags":{},"startTime":1764107730807,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":475085722222,"id":4113,"parentId":4108,"tags":{},"startTime":1764107730808,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":475085722234,"id":4114,"parentId":4108,"tags":{},"startTime":1764107730808,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1303,"timestamp":475085721133,"id":4110,"parentId":4108,"tags":{},"startTime":1764107730807,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":143,"timestamp":475085722849,"id":4115,"parentId":4108,"tags":{},"startTime":1764107730809,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":323,"timestamp":475085722996,"id":4116,"parentId":4108,"tags":{},"startTime":1764107730809,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":644,"timestamp":475085723700,"id":4117,"parentId":4108,"tags":{},"startTime":1764107730810,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":26,"timestamp":475085724344,"id":4118,"parentId":4108,"tags":{},"startTime":1764107730810,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":20,"timestamp":475085724368,"id":4119,"parentId":4108,"tags":{},"startTime":1764107730810,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":66,"timestamp":475085724389,"id":4120,"parentId":4108,"tags":{},"startTime":1764107730810,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5997,"timestamp":475085719654,"id":4108,"parentId":4077,"tags":{},"startTime":1764107730806,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":44621,"timestamp":475085682796,"id":4077,"parentId":4039,"tags":{"name":"server"},"startTime":1764107730769,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1242,"timestamp":475085727441,"id":4121,"parentId":4039,"tags":{},"startTime":1764107730813,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":94115,"timestamp":475085635182,"id":4039,"parentId":3,"tags":{"trigger":"components/CategoryColumn.tsx"},"startTime":1764107730721,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":9779,"timestamp":475085732993,"id":4123,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107730819,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475085742797,"id":4125,"parentId":4123,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"551829504","memory.heapUsed":"209371248","memory.heapTotal":"236617728"},"startTime":1764107730829,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10047,"timestamp":475085732817,"id":4122,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764107730819,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475085742870,"id":4126,"parentId":4122,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"551845888","memory.heapUsed":"209382424","memory.heapTotal":"236617728"},"startTime":1764107730829,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11008,"timestamp":475085733020,"id":4124,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","isTurbopack":false},"startTime":1764107730819,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475085744039,"id":4127,"parentId":4124,"tags":{"url":"/gunbuilder/build?_rsc=mjtk2","memory.rss":"551911424","memory.heapUsed":"209466888","memory.heapTotal":"236617728"},"startTime":1764107730830,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":12139,"timestamp":475547653761,"id":4128,"tags":{"url":"/gunbuilder?_rsc=mryck","isTurbopack":false},"startTime":1764108192741,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475547665938,"id":4129,"parentId":4128,"tags":{"url":"/gunbuilder?_rsc=mryck","memory.rss":"512131072","memory.heapUsed":"187135744","memory.heapTotal":"199344128"},"startTime":1764108192753,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":14399,"timestamp":475550641308,"id":4130,"tags":{"url":"/gunbuilder/upper?_rsc=1jn8g","isTurbopack":false},"startTime":1764108195728,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475550655739,"id":4131,"parentId":4130,"tags":{"url":"/gunbuilder/upper?_rsc=1jn8g","memory.rss":"513425408","memory.heapUsed":"185246344","memory.heapTotal":"195362816"},"startTime":1764108195743,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5335,"timestamp":475550661001,"id":4132,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","isTurbopack":false},"startTime":1764108195748,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475550666353,"id":4133,"parentId":4132,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","memory.rss":"513425408","memory.heapUsed":"185354120","memory.heapTotal":"195624960"},"startTime":1764108195753,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11859,"timestamp":475553094511,"id":4134,"tags":{"url":"/gunbuilder/upper/upper-aero-enhanced?_rsc=1d33p","isTurbopack":false},"startTime":1764108198181,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475553106397,"id":4135,"parentId":4134,"tags":{"url":"/gunbuilder/upper/upper-aero-enhanced?_rsc=1d33p","memory.rss":"513622016","memory.heapUsed":"185958440","memory.heapTotal":"195821568"},"startTime":1764108198193,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6665,"timestamp":475553109442,"id":4136,"tags":{"url":"/gunbuilder/upper/upper-aero-enhanced?_rsc=1tyby","isTurbopack":false},"startTime":1764108198196,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475553116126,"id":4137,"parentId":4136,"tags":{"url":"/gunbuilder/upper/upper-aero-enhanced?_rsc=1tyby","memory.rss":"513622016","memory.heapUsed":"186007560","memory.heapTotal":"196083712"},"startTime":1764108198203,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9354,"timestamp":475640240303,"id":4138,"tags":{"url":"/gunbuilder/upper?_rsc=1tdvv","isTurbopack":false},"startTime":1764108285327,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475640249718,"id":4139,"parentId":4138,"tags":{"url":"/gunbuilder/upper?_rsc=1tdvv","memory.rss":"513622016","memory.heapUsed":"185963944","memory.heapTotal":"195821568"},"startTime":1764108285337,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":14078,"timestamp":475641632438,"id":4140,"tags":{"url":"/gunbuilder?_rsc=x5p1f","isTurbopack":false},"startTime":1764108286719,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475641646555,"id":4141,"parentId":4140,"tags":{"url":"/gunbuilder?_rsc=x5p1f","memory.rss":"513622016","memory.heapUsed":"186630240","memory.heapTotal":"195821568"},"startTime":1764108286733,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5030,"timestamp":475653523875,"id":4151,"parentId":4144,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108298611,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5049,"timestamp":475653523877,"id":4152,"parentId":4144,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108298611,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5066,"timestamp":475653523879,"id":4153,"parentId":4144,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108298611,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6066,"timestamp":475653523816,"id":4145,"parentId":4144,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108298611,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6931,"timestamp":475653523874,"id":4150,"parentId":4144,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108298611,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8895,"timestamp":475653523867,"id":4147,"parentId":4144,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108298611,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8986,"timestamp":475653523872,"id":4149,"parentId":4144,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108298611,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":1828,"timestamp":475653531061,"id":4156,"parentId":4155,"tags":{},"startTime":1764108298618,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12025,"timestamp":475653523863,"id":4146,"parentId":4144,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108298611,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":11161,"timestamp":475653532930,"id":4158,"parentId":4157,"tags":{},"startTime":1764108298620,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":11417,"timestamp":475653532913,"id":4157,"parentId":4155,"tags":{},"startTime":1764108298620,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":3046,"timestamp":475653544343,"id":4159,"parentId":4155,"tags":{"astUsed":"true"},"startTime":1764108298631,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":18539,"timestamp":475653530919,"id":4155,"parentId":4154,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108298618,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":24013,"timestamp":475653527847,"id":4154,"parentId":4143,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108298615,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":8,"timestamp":475653551936,"id":4160,"parentId":4154,"tags":{},"startTime":1764108298639,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":28099,"timestamp":475653523868,"id":4148,"parentId":4144,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108298611,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":28479,"timestamp":475653523498,"id":4144,"parentId":4143,"tags":{},"startTime":1764108298610,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":12969,"timestamp":475653558521,"id":4162,"parentId":4161,"tags":{},"startTime":1764108298645,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":8,"timestamp":475653571514,"id":4164,"parentId":4161,"tags":{},"startTime":1764108298658,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":42,"timestamp":475653571576,"id":4165,"parentId":4161,"tags":{},"startTime":1764108298658,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":6,"timestamp":475653571650,"id":4166,"parentId":4161,"tags":{},"startTime":1764108298658,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":475653571680,"id":4167,"parentId":4161,"tags":{},"startTime":1764108298659,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":513,"timestamp":475653571507,"id":4163,"parentId":4161,"tags":{},"startTime":1764108298658,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":190,"timestamp":475653572468,"id":4168,"parentId":4161,"tags":{},"startTime":1764108298659,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":455,"timestamp":475653572663,"id":4169,"parentId":4161,"tags":{},"startTime":1764108298660,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1773,"timestamp":475653573796,"id":4170,"parentId":4161,"tags":{},"startTime":1764108298661,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":97,"timestamp":475653575568,"id":4171,"parentId":4161,"tags":{},"startTime":1764108298662,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":35,"timestamp":475653575657,"id":4172,"parentId":4161,"tags":{},"startTime":1764108298662,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1505,"timestamp":475653575697,"id":4173,"parentId":4161,"tags":{},"startTime":1764108298663,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":67,"timestamp":475653577835,"id":4175,"parentId":4143,"tags":{},"startTime":1764108298665,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":107,"timestamp":475653577797,"id":4174,"parentId":4143,"tags":{},"startTime":1764108298665,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":20723,"timestamp":475653558174,"id":4161,"parentId":4143,"tags":{},"startTime":1764108298645,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":55656,"timestamp":475653523263,"id":4143,"parentId":4142,"tags":{"name":"client"},"startTime":1764108298610,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2926,"timestamp":475653578936,"id":4176,"parentId":4142,"tags":{},"startTime":1764108298666,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":66813,"timestamp":475653516001,"id":4142,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/data.ts"},"startTime":1764108298603,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":12,"timestamp":475653583572,"id":4177,"parentId":3,"tags":{},"startTime":1764108298670,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475653583615,"id":4178,"parentId":3,"tags":{},"startTime":1764108298670,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475653584061,"id":4179,"parentId":3,"tags":{},"startTime":1764108298671,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":72000,"timestamp":475653516545,"id":4183,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108298676,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6772,"timestamp":475653586241,"id":4181,"tags":{"url":"/gunbuilder?_rsc=9gfev","isTurbopack":false},"startTime":1764108298673,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475653593042,"id":4184,"parentId":4181,"tags":{"url":"/gunbuilder?_rsc=9gfev","memory.rss":"528154624","memory.heapUsed":"190256056","memory.heapTotal":"209829888"},"startTime":1764108298680,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8706,"timestamp":475653584408,"id":4180,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108298671,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475653593119,"id":4185,"parentId":4180,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"528154624","memory.heapUsed":"190267152","memory.heapTotal":"209829888"},"startTime":1764108298680,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6755,"timestamp":475653586656,"id":4182,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108298673,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475653593424,"id":4186,"parentId":4182,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"528154624","memory.heapUsed":"190302784","memory.heapTotal":"209829888"},"startTime":1764108298680,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":81000,"timestamp":475653516468,"id":4187,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108298684,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":83000,"timestamp":475653516285,"id":4188,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108298686,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3173,"timestamp":475653625816,"id":4198,"parentId":4191,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108298713,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3188,"timestamp":475653625820,"id":4199,"parentId":4191,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108298713,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3201,"timestamp":475653625821,"id":4200,"parentId":4191,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108298713,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4196,"timestamp":475653625765,"id":4192,"parentId":4191,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108298713,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4745,"timestamp":475653625811,"id":4197,"parentId":4191,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108298713,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5316,"timestamp":475653625806,"id":4194,"parentId":4191,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108298713,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5377,"timestamp":475653625809,"id":4196,"parentId":4191,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108298713,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":536,"timestamp":475653630674,"id":4203,"parentId":4202,"tags":{},"startTime":1764108298718,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6706,"timestamp":475653625802,"id":4193,"parentId":4191,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108298713,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":9455,"timestamp":475653631233,"id":4205,"parentId":4204,"tags":{},"startTime":1764108298718,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":9670,"timestamp":475653631224,"id":4204,"parentId":4202,"tags":{},"startTime":1764108298718,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2273,"timestamp":475653640905,"id":4206,"parentId":4202,"tags":{"astUsed":"true"},"startTime":1764108298728,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":14035,"timestamp":475653630623,"id":4202,"parentId":4201,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108298717,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":18203,"timestamp":475653628287,"id":4201,"parentId":4190,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108298715,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":11,"timestamp":475653646604,"id":4207,"parentId":4201,"tags":{},"startTime":1764108298733,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":20828,"timestamp":475653625807,"id":4195,"parentId":4191,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108298713,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":21119,"timestamp":475653625524,"id":4191,"parentId":4190,"tags":{},"startTime":1764108298712,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":621,"timestamp":475653647414,"id":4209,"parentId":4208,"tags":{},"startTime":1764108298734,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":4,"timestamp":475653648040,"id":4211,"parentId":4208,"tags":{},"startTime":1764108298735,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":17,"timestamp":475653648049,"id":4212,"parentId":4208,"tags":{},"startTime":1764108298735,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":475653648071,"id":4213,"parentId":4208,"tags":{},"startTime":1764108298735,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":475653648082,"id":4214,"parentId":4208,"tags":{},"startTime":1764108298735,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":192,"timestamp":475653648038,"id":4210,"parentId":4208,"tags":{},"startTime":1764108298735,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":160,"timestamp":475653648583,"id":4215,"parentId":4208,"tags":{},"startTime":1764108298735,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":370,"timestamp":475653648746,"id":4216,"parentId":4208,"tags":{},"startTime":1764108298736,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":2122,"timestamp":475653649514,"id":4217,"parentId":4208,"tags":{},"startTime":1764108298736,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":62,"timestamp":475653651635,"id":4218,"parentId":4208,"tags":{},"startTime":1764108298738,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":25,"timestamp":475653651693,"id":4219,"parentId":4208,"tags":{},"startTime":1764108298739,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1168,"timestamp":475653651721,"id":4220,"parentId":4208,"tags":{},"startTime":1764108298739,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":41,"timestamp":475653653238,"id":4222,"parentId":4190,"tags":{},"startTime":1764108298740,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":75,"timestamp":475653653207,"id":4221,"parentId":4190,"tags":{},"startTime":1764108298740,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6781,"timestamp":475653647165,"id":4208,"parentId":4190,"tags":{},"startTime":1764108298734,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":28616,"timestamp":475653625343,"id":4190,"parentId":4189,"tags":{"name":"client"},"startTime":1764108298712,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":4859,"timestamp":475653653971,"id":4223,"parentId":4189,"tags":{},"startTime":1764108298741,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":40886,"timestamp":475653618523,"id":4189,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/data.ts"},"startTime":1764108298705,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":1,"timestamp":475653659907,"id":4224,"parentId":3,"tags":{},"startTime":1764108298747,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475653659930,"id":4225,"parentId":3,"tags":{},"startTime":1764108298747,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475653659945,"id":4226,"parentId":3,"tags":{},"startTime":1764108298747,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":45000,"timestamp":475653619289,"id":4229,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108298752,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":47000,"timestamp":475653619629,"id":4230,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108298753,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":47000,"timestamp":475653619642,"id":4231,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108298753,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6925,"timestamp":475653660473,"id":4227,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108298747,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475653667409,"id":4232,"parentId":4227,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"533544960","memory.heapUsed":"192824408","memory.heapTotal":"215597056"},"startTime":1764108298754,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9526,"timestamp":475653660775,"id":4228,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108298748,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475653670318,"id":4234,"parentId":4228,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"533544960","memory.heapUsed":"193242136","memory.heapTotal":"215597056"},"startTime":1764108298757,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4587,"timestamp":475653669453,"id":4233,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108298756,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475653674047,"id":4235,"parentId":4233,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"533561344","memory.heapUsed":"193881904","memory.heapTotal":"215597056"},"startTime":1764108298761,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3424,"timestamp":475660927070,"id":4245,"parentId":4238,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108306014,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3444,"timestamp":475660927071,"id":4246,"parentId":4238,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108306014,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3460,"timestamp":475660927074,"id":4247,"parentId":4238,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108306014,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3823,"timestamp":475660927009,"id":4239,"parentId":4238,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108306014,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4497,"timestamp":475660927068,"id":4244,"parentId":4238,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108306014,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5220,"timestamp":475660927061,"id":4241,"parentId":4238,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108306014,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5289,"timestamp":475660927065,"id":4243,"parentId":4238,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108306014,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":717,"timestamp":475660931713,"id":4250,"parentId":4249,"tags":{},"startTime":1764108306019,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":8237,"timestamp":475660932463,"id":4252,"parentId":4251,"tags":{},"startTime":1764108306019,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":8371,"timestamp":475660932451,"id":4251,"parentId":4249,"tags":{},"startTime":1764108306019,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2401,"timestamp":475660940837,"id":4253,"parentId":4249,"tags":{"astUsed":"true"},"startTime":1764108306028,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":12543,"timestamp":475660931645,"id":4249,"parentId":4248,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108306018,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":19517,"timestamp":475660927056,"id":4240,"parentId":4238,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108306014,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":17822,"timestamp":475660929842,"id":4248,"parentId":4237,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108306017,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":12,"timestamp":475660947755,"id":4254,"parentId":4248,"tags":{},"startTime":1764108306035,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":20731,"timestamp":475660927063,"id":4242,"parentId":4238,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108306014,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":20976,"timestamp":475660926830,"id":4238,"parentId":4237,"tags":{},"startTime":1764108306014,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":775,"timestamp":475660948573,"id":4256,"parentId":4255,"tags":{},"startTime":1764108306035,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":475660949357,"id":4258,"parentId":4255,"tags":{},"startTime":1764108306036,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":22,"timestamp":475660949365,"id":4259,"parentId":4255,"tags":{},"startTime":1764108306036,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":475660949395,"id":4260,"parentId":4255,"tags":{},"startTime":1764108306036,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":475660949404,"id":4261,"parentId":4255,"tags":{},"startTime":1764108306036,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":214,"timestamp":475660949354,"id":4257,"parentId":4255,"tags":{},"startTime":1764108306036,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":126,"timestamp":475660949936,"id":4262,"parentId":4255,"tags":{},"startTime":1764108306037,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":389,"timestamp":475660950066,"id":4263,"parentId":4255,"tags":{},"startTime":1764108306037,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":993,"timestamp":475660950800,"id":4264,"parentId":4255,"tags":{},"startTime":1764108306038,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":43,"timestamp":475660951793,"id":4265,"parentId":4255,"tags":{},"startTime":1764108306039,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":20,"timestamp":475660951834,"id":4266,"parentId":4255,"tags":{},"startTime":1764108306039,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1316,"timestamp":475660951856,"id":4267,"parentId":4255,"tags":{},"startTime":1764108306039,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":28,"timestamp":475660953483,"id":4269,"parentId":4237,"tags":{},"startTime":1764108306040,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":63,"timestamp":475660953451,"id":4268,"parentId":4237,"tags":{},"startTime":1764108306040,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5785,"timestamp":475660948334,"id":4255,"parentId":4237,"tags":{},"startTime":1764108306035,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":27471,"timestamp":475660926660,"id":4237,"parentId":4236,"tags":{"name":"client"},"startTime":1764108306013,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2604,"timestamp":475660954139,"id":4270,"parentId":4236,"tags":{},"startTime":1764108306041,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":37278,"timestamp":475660919890,"id":4236,"parentId":3,"tags":{"trigger":"app/gunbuilder/schema.sql"},"startTime":1764108306007,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":1,"timestamp":475660957678,"id":4271,"parentId":3,"tags":{},"startTime":1764108306045,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475660958946,"id":4273,"parentId":3,"tags":{},"startTime":1764108306046,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475660959194,"id":4274,"parentId":3,"tags":{},"startTime":1764108306046,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":42000,"timestamp":475660919875,"id":4276,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108306050,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9144,"timestamp":475660958677,"id":4272,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108306046,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475660967861,"id":4277,"parentId":4272,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"544686080","memory.heapUsed":"196532848","memory.heapTotal":"227655680"},"startTime":1764108306055,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8841,"timestamp":475660961715,"id":4275,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108306049,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475660970571,"id":4278,"parentId":4275,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"544686080","memory.heapUsed":"197098728","memory.heapTotal":"227655680"},"startTime":1764108306057,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":49000,"timestamp":475660920383,"id":4280,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108306061,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":3727,"timestamp":475660970765,"id":4279,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108306058,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475660974504,"id":4281,"parentId":4279,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"544702464","memory.heapUsed":"197974600","memory.heapTotal":"227655680"},"startTime":1764108306061,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":56000,"timestamp":475660919705,"id":4282,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108306064,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3650,"timestamp":475668678697,"id":4292,"parentId":4285,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108313766,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3678,"timestamp":475668678701,"id":4293,"parentId":4285,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108313766,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3703,"timestamp":475668678702,"id":4294,"parentId":4285,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108313766,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4115,"timestamp":475668678640,"id":4286,"parentId":4285,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108313765,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4965,"timestamp":475668678695,"id":4291,"parentId":4285,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108313766,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5989,"timestamp":475668678687,"id":4288,"parentId":4285,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108313766,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6089,"timestamp":475668678692,"id":4290,"parentId":4285,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108313766,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":966,"timestamp":475668683850,"id":4297,"parentId":4296,"tags":{},"startTime":1764108313771,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7780,"timestamp":475668678680,"id":4287,"parentId":4285,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108313766,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":7956,"timestamp":475668684853,"id":4299,"parentId":4298,"tags":{},"startTime":1764108313772,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":8074,"timestamp":475668684838,"id":4298,"parentId":4296,"tags":{},"startTime":1764108313772,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":3225,"timestamp":475668692935,"id":4300,"parentId":4296,"tags":{"astUsed":"true"},"startTime":1764108313780,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":13711,"timestamp":475668683780,"id":4296,"parentId":4295,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108313771,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":19292,"timestamp":475668681443,"id":4295,"parentId":4284,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108313768,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":18,"timestamp":475668700869,"id":4301,"parentId":4295,"tags":{},"startTime":1764108313788,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":22226,"timestamp":475668678691,"id":4289,"parentId":4285,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108313766,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":22562,"timestamp":475668678369,"id":4285,"parentId":4284,"tags":{},"startTime":1764108313765,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":718,"timestamp":475668701933,"id":4303,"parentId":4302,"tags":{},"startTime":1764108313789,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":6,"timestamp":475668702660,"id":4305,"parentId":4302,"tags":{},"startTime":1764108313789,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":27,"timestamp":475668702672,"id":4306,"parentId":4302,"tags":{},"startTime":1764108313789,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":475668702706,"id":4307,"parentId":4302,"tags":{},"startTime":1764108313790,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":475668702719,"id":4308,"parentId":4302,"tags":{},"startTime":1764108313790,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":273,"timestamp":475668702658,"id":4304,"parentId":4302,"tags":{},"startTime":1764108313789,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":181,"timestamp":475668703420,"id":4309,"parentId":4302,"tags":{},"startTime":1764108313790,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":500,"timestamp":475668703606,"id":4310,"parentId":4302,"tags":{},"startTime":1764108313790,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1405,"timestamp":475668704669,"id":4311,"parentId":4302,"tags":{},"startTime":1764108313791,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":56,"timestamp":475668706074,"id":4312,"parentId":4302,"tags":{},"startTime":1764108313793,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":33,"timestamp":475668706126,"id":4313,"parentId":4302,"tags":{},"startTime":1764108313793,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1220,"timestamp":475668706161,"id":4314,"parentId":4302,"tags":{},"startTime":1764108313793,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":31,"timestamp":475668707767,"id":4316,"parentId":4284,"tags":{},"startTime":1764108313795,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":71,"timestamp":475668707729,"id":4315,"parentId":4284,"tags":{},"startTime":1764108313795,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6924,"timestamp":475668701611,"id":4302,"parentId":4284,"tags":{},"startTime":1764108313788,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":30473,"timestamp":475668678080,"id":4284,"parentId":4283,"tags":{"name":"client"},"startTime":1764108313765,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2630,"timestamp":475668708567,"id":4317,"parentId":4283,"tags":{},"startTime":1764108313795,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":40220,"timestamp":475668671489,"id":4283,"parentId":3,"tags":{"trigger":"components/PricingHistoryGraph.tsx"},"startTime":1764108313758,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":2,"timestamp":475668712542,"id":4318,"parentId":3,"tags":{},"startTime":1764108313799,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475668713927,"id":4320,"parentId":3,"tags":{},"startTime":1764108313801,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475668714100,"id":4321,"parentId":3,"tags":{},"startTime":1764108313801,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":44000,"timestamp":475668671744,"id":4323,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108313804,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5314,"timestamp":475668713191,"id":4319,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108313800,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475668718520,"id":4324,"parentId":4319,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"550207488","memory.heapUsed":"200658832","memory.heapTotal":"233160704"},"startTime":1764108313805,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7494,"timestamp":475668715819,"id":4322,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108313803,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475668723332,"id":4326,"parentId":4322,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"550223872","memory.heapUsed":"201560832","memory.heapTotal":"233160704"},"startTime":1764108313810,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":54000,"timestamp":475668672526,"id":4327,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108313813,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":54000,"timestamp":475668671806,"id":4328,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108313814,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4295,"timestamp":475668722912,"id":4325,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108313810,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475668727219,"id":4329,"parentId":4325,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"550223872","memory.heapUsed":"202347504","memory.heapTotal":"233160704"},"startTime":1764108313814,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2498,"timestamp":475668830391,"id":4339,"parentId":4332,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108313917,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2513,"timestamp":475668830392,"id":4340,"parentId":4332,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108313917,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2528,"timestamp":475668830393,"id":4341,"parentId":4332,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108313917,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2750,"timestamp":475668830355,"id":4333,"parentId":4332,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108313917,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3313,"timestamp":475668830388,"id":4338,"parentId":4332,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108313917,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3968,"timestamp":475668830383,"id":4335,"parentId":4332,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108313917,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4032,"timestamp":475668830386,"id":4337,"parentId":4332,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108313917,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":593,"timestamp":475668833845,"id":4344,"parentId":4343,"tags":{},"startTime":1764108313921,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5383,"timestamp":475668830380,"id":4334,"parentId":4332,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108313917,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":8431,"timestamp":475668834466,"id":4346,"parentId":4345,"tags":{},"startTime":1764108313921,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":8526,"timestamp":475668834452,"id":4345,"parentId":4343,"tags":{},"startTime":1764108313921,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2367,"timestamp":475668842996,"id":4347,"parentId":4343,"tags":{"astUsed":"true"},"startTime":1764108313930,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":12503,"timestamp":475668833784,"id":4343,"parentId":4342,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108313921,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":17173,"timestamp":475668832330,"id":4342,"parentId":4331,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108313919,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":10,"timestamp":475668849579,"id":4348,"parentId":4342,"tags":{},"startTime":1764108313936,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":19257,"timestamp":475668830385,"id":4336,"parentId":4332,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108313917,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":19472,"timestamp":475668830192,"id":4332,"parentId":4331,"tags":{},"startTime":1764108313917,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":694,"timestamp":475668850503,"id":4350,"parentId":4349,"tags":{},"startTime":1764108313937,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":475668851206,"id":4352,"parentId":4349,"tags":{},"startTime":1764108313938,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":19,"timestamp":475668851215,"id":4353,"parentId":4349,"tags":{},"startTime":1764108313938,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":475668851242,"id":4354,"parentId":4349,"tags":{},"startTime":1764108313938,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":475668851253,"id":4355,"parentId":4349,"tags":{},"startTime":1764108313938,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":186,"timestamp":475668851203,"id":4351,"parentId":4349,"tags":{},"startTime":1764108313938,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":185,"timestamp":475668851807,"id":4356,"parentId":4349,"tags":{},"startTime":1764108313939,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":510,"timestamp":475668851997,"id":4357,"parentId":4349,"tags":{},"startTime":1764108313939,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1233,"timestamp":475668852957,"id":4358,"parentId":4349,"tags":{},"startTime":1764108313940,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":73,"timestamp":475668854190,"id":4359,"parentId":4349,"tags":{},"startTime":1764108313941,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":24,"timestamp":475668854259,"id":4360,"parentId":4349,"tags":{},"startTime":1764108313941,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1489,"timestamp":475668854285,"id":4361,"parentId":4349,"tags":{},"startTime":1764108313941,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":22,"timestamp":475668856104,"id":4363,"parentId":4331,"tags":{},"startTime":1764108313943,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":48,"timestamp":475668856081,"id":4362,"parentId":4331,"tags":{},"startTime":1764108313943,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6485,"timestamp":475668850261,"id":4349,"parentId":4331,"tags":{},"startTime":1764108313937,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":26831,"timestamp":475668829928,"id":4331,"parentId":4330,"tags":{"name":"client"},"startTime":1764108313917,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2349,"timestamp":475668856768,"id":4364,"parentId":4330,"tags":{},"startTime":1764108313944,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":36307,"timestamp":475668823310,"id":4330,"parentId":3,"tags":{"trigger":"components/PricingHistoryGraph.tsx"},"startTime":1764108313910,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":2,"timestamp":475668860204,"id":4365,"parentId":3,"tags":{},"startTime":1764108313947,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475668861315,"id":4367,"parentId":3,"tags":{},"startTime":1764108313948,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475668861328,"id":4368,"parentId":3,"tags":{},"startTime":1764108313948,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4727,"timestamp":475668860629,"id":4366,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108313947,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475668865371,"id":4370,"parentId":4366,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"553123840","memory.heapUsed":"215083312","memory.heapTotal":"236044288"},"startTime":1764108313952,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":44000,"timestamp":475668823165,"id":4371,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108313954,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11867,"timestamp":475668862488,"id":4369,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108313949,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475668874372,"id":4373,"parentId":4369,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"553746432","memory.heapUsed":"201531320","memory.heapTotal":"236306432"},"startTime":1764108313961,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4565,"timestamp":475668873880,"id":4372,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108313961,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475668878472,"id":4374,"parentId":4372,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"553762816","memory.heapUsed":"202313392","memory.heapTotal":"236306432"},"startTime":1764108313965,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":57000,"timestamp":475668823812,"id":4375,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108313970,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":58000,"timestamp":475668824397,"id":4376,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108313970,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4168,"timestamp":475681790383,"id":4386,"parentId":4379,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108326877,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4200,"timestamp":475681790385,"id":4387,"parentId":4379,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108326877,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4226,"timestamp":475681790386,"id":4388,"parentId":4379,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108326877,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4685,"timestamp":475681790304,"id":4380,"parentId":4379,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108326877,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5597,"timestamp":475681790381,"id":4385,"parentId":4379,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108326877,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6544,"timestamp":475681790370,"id":4382,"parentId":4379,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108326877,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6647,"timestamp":475681790375,"id":4384,"parentId":4379,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108326877,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":883,"timestamp":475681796184,"id":4391,"parentId":4390,"tags":{},"startTime":1764108326883,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8814,"timestamp":475681790363,"id":4381,"parentId":4379,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108326877,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":10702,"timestamp":475681797114,"id":4393,"parentId":4392,"tags":{},"startTime":1764108326884,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":11043,"timestamp":475681797092,"id":4392,"parentId":4390,"tags":{},"startTime":1764108326884,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2357,"timestamp":475681808156,"id":4394,"parentId":4390,"tags":{"astUsed":"true"},"startTime":1764108326895,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":15427,"timestamp":475681796102,"id":4390,"parentId":4389,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108326883,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":19830,"timestamp":475681793584,"id":4389,"parentId":4378,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108326880,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":16,"timestamp":475681813519,"id":4395,"parentId":4389,"tags":{},"startTime":1764108326900,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":23185,"timestamp":475681790373,"id":4383,"parentId":4379,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108326877,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":23560,"timestamp":475681790010,"id":4379,"parentId":4378,"tags":{},"startTime":1764108326877,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":960,"timestamp":475681814643,"id":4397,"parentId":4396,"tags":{},"startTime":1764108326901,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":475681815614,"id":4399,"parentId":4396,"tags":{},"startTime":1764108326902,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":31,"timestamp":475681815625,"id":4400,"parentId":4396,"tags":{},"startTime":1764108326902,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":4,"timestamp":475681815666,"id":4401,"parentId":4396,"tags":{},"startTime":1764108326902,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":475681815678,"id":4402,"parentId":4396,"tags":{},"startTime":1764108326902,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":278,"timestamp":475681815611,"id":4398,"parentId":4396,"tags":{},"startTime":1764108326902,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":227,"timestamp":475681816513,"id":4403,"parentId":4396,"tags":{},"startTime":1764108326903,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":579,"timestamp":475681816747,"id":4404,"parentId":4396,"tags":{},"startTime":1764108326904,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1713,"timestamp":475681818078,"id":4405,"parentId":4396,"tags":{},"startTime":1764108326905,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":97,"timestamp":475681819791,"id":4406,"parentId":4396,"tags":{},"startTime":1764108326907,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":35,"timestamp":475681819883,"id":4407,"parentId":4396,"tags":{},"startTime":1764108326907,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1723,"timestamp":475681819922,"id":4408,"parentId":4396,"tags":{},"startTime":1764108326907,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":33,"timestamp":475681822091,"id":4410,"parentId":4378,"tags":{},"startTime":1764108326909,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":73,"timestamp":475681822053,"id":4409,"parentId":4378,"tags":{},"startTime":1764108326909,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8688,"timestamp":475681814294,"id":4396,"parentId":4378,"tags":{},"startTime":1764108326901,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":33320,"timestamp":475681789684,"id":4378,"parentId":4377,"tags":{"name":"client"},"startTime":1764108326877,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2914,"timestamp":475681823017,"id":4411,"parentId":4377,"tags":{},"startTime":1764108326910,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":44454,"timestamp":475681782334,"id":4377,"parentId":3,"tags":{"trigger":"components/RetailersList.tsx"},"startTime":1764108326869,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":2,"timestamp":475681827661,"id":4412,"parentId":3,"tags":{},"startTime":1764108326914,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475681828194,"id":4413,"parentId":3,"tags":{},"startTime":1764108326915,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":475681828721,"id":4415,"parentId":3,"tags":{},"startTime":1764108326916,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":50000,"timestamp":475681783009,"id":4416,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108326920,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7038,"timestamp":475681828335,"id":4414,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108326915,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475681835398,"id":4417,"parentId":4414,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"557137920","memory.heapUsed":"226212504","memory.heapTotal":"243646464"},"startTime":1764108326922,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5655,"timestamp":475681836942,"id":4418,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108326924,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475681842619,"id":4420,"parentId":4418,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"558219264","memory.heapUsed":"227319736","memory.heapTotal":"244695040"},"startTime":1764108326929,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":61000,"timestamp":475681782701,"id":4421,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108326932,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":61000,"timestamp":475681782782,"id":4422,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764108326932,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7986,"timestamp":475681842047,"id":4419,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108326929,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475681850056,"id":4423,"parentId":4419,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"559022080","memory.heapUsed":"228098184","memory.heapTotal":"245481472"},"startTime":1764108326937,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5017,"timestamp":475681892829,"id":4433,"parentId":4426,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108326980,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5035,"timestamp":475681892830,"id":4434,"parentId":4426,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108326980,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5053,"timestamp":475681892831,"id":4435,"parentId":4426,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108326980,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5312,"timestamp":475681892784,"id":4427,"parentId":4426,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108326980,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5924,"timestamp":475681892827,"id":4432,"parentId":4426,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108326980,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6521,"timestamp":475681892820,"id":4429,"parentId":4426,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108326980,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6582,"timestamp":475681892825,"id":4431,"parentId":4426,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108326980,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":554,"timestamp":475681898879,"id":4438,"parentId":4437,"tags":{},"startTime":1764108326986,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7691,"timestamp":475681892817,"id":4428,"parentId":4426,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108326980,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":11391,"timestamp":475681899454,"id":4440,"parentId":4439,"tags":{},"startTime":1764108326986,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":11499,"timestamp":475681899446,"id":4439,"parentId":4437,"tags":{},"startTime":1764108326986,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":1974,"timestamp":475681910965,"id":4441,"parentId":4437,"tags":{"astUsed":"true"},"startTime":1764108326998,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":14770,"timestamp":475681898833,"id":4437,"parentId":4436,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108326986,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":18354,"timestamp":475681897132,"id":4436,"parentId":4425,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108326984,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":12,"timestamp":475681915586,"id":4442,"parentId":4436,"tags":{},"startTime":1764108327002,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":22799,"timestamp":475681892822,"id":4430,"parentId":4426,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108326980,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":23037,"timestamp":475681892594,"id":4426,"parentId":4425,"tags":{},"startTime":1764108326979,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":836,"timestamp":475681916528,"id":4444,"parentId":4443,"tags":{},"startTime":1764108327003,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":475681917370,"id":4446,"parentId":4443,"tags":{},"startTime":1764108327004,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":19,"timestamp":475681917378,"id":4447,"parentId":4443,"tags":{},"startTime":1764108327004,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":4,"timestamp":475681917403,"id":4448,"parentId":4443,"tags":{},"startTime":1764108327004,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":475681917415,"id":4449,"parentId":4443,"tags":{},"startTime":1764108327004,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":196,"timestamp":475681917367,"id":4445,"parentId":4443,"tags":{},"startTime":1764108327004,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":134,"timestamp":475681918090,"id":4450,"parentId":4443,"tags":{},"startTime":1764108327005,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":480,"timestamp":475681918227,"id":4451,"parentId":4443,"tags":{},"startTime":1764108327005,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1346,"timestamp":475681919136,"id":4452,"parentId":4443,"tags":{},"startTime":1764108327006,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":60,"timestamp":475681920483,"id":4453,"parentId":4443,"tags":{},"startTime":1764108327007,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":24,"timestamp":475681920539,"id":4454,"parentId":4443,"tags":{},"startTime":1764108327007,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1429,"timestamp":475681920565,"id":4455,"parentId":4443,"tags":{},"startTime":1764108327007,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":26,"timestamp":475681922337,"id":4457,"parentId":4425,"tags":{},"startTime":1764108327009,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":56,"timestamp":475681922309,"id":4456,"parentId":4425,"tags":{},"startTime":1764108327009,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6821,"timestamp":475681916225,"id":4443,"parentId":4425,"tags":{},"startTime":1764108327003,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":30740,"timestamp":475681892320,"id":4425,"parentId":4424,"tags":{"name":"client"},"startTime":1764108326979,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2031,"timestamp":475681923073,"id":4458,"parentId":4424,"tags":{},"startTime":1764108327010,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":40575,"timestamp":475681885202,"id":4424,"parentId":3,"tags":{"trigger":"components/RetailersList.tsx"},"startTime":1764108326972,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":2,"timestamp":475681929003,"id":4459,"parentId":3,"tags":{},"startTime":1764108327016,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475681929051,"id":4460,"parentId":3,"tags":{},"startTime":1764108327016,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475681929069,"id":4461,"parentId":3,"tags":{},"startTime":1764108327016,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":48000,"timestamp":475681885089,"id":4464,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108327021,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":48000,"timestamp":475681885110,"id":4465,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764108327021,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5636,"timestamp":475681929746,"id":4462,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108327017,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475681935392,"id":4467,"parentId":4462,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"578846720","memory.heapUsed":"211971032","memory.heapTotal":"265404416"},"startTime":1764108327022,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5445,"timestamp":475681930005,"id":4463,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108327017,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475681935455,"id":4468,"parentId":4463,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"578846720","memory.heapUsed":"211982136","memory.heapTotal":"265404416"},"startTime":1764108327022,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":52000,"timestamp":475681885662,"id":4469,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108327024,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5012,"timestamp":475681935183,"id":4466,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108327022,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475681940212,"id":4470,"parentId":4466,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"578863104","memory.heapUsed":"212792640","memory.heapTotal":"265404416"},"startTime":1764108327027,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3430,"timestamp":475687961982,"id":4481,"parentId":4474,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108333049,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3449,"timestamp":475687961984,"id":4483,"parentId":4474,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108333049,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3678,"timestamp":475687961946,"id":4475,"parentId":4474,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108333049,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4190,"timestamp":475687961980,"id":4480,"parentId":4474,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108333049,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1878,"timestamp":475687964840,"id":4487,"parentId":4486,"tags":{},"startTime":1764108333052,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1978,"timestamp":475687964742,"id":4486,"parentId":4485,"tags":{},"startTime":1764108333052,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6180,"timestamp":475687964673,"id":4485,"parentId":4473,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"app-pages-browser"},"startTime":1764108333051,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9289,"timestamp":475687961974,"id":4477,"parentId":4474,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108333049,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9798,"timestamp":475687961978,"id":4479,"parentId":4474,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108333049,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":5605,"timestamp":475687966298,"id":4489,"parentId":4488,"tags":{},"startTime":1764108333053,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11407,"timestamp":475687961971,"id":4476,"parentId":4474,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108333049,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":10048,"timestamp":475687971929,"id":4491,"parentId":4490,"tags":{},"startTime":1764108333059,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":10154,"timestamp":475687971918,"id":4490,"parentId":4488,"tags":{},"startTime":1764108333059,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":1971,"timestamp":475687982089,"id":4492,"parentId":4488,"tags":{"astUsed":"true"},"startTime":1764108333069,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":18329,"timestamp":475687966244,"id":4488,"parentId":4484,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108333053,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":23459,"timestamp":475687964524,"id":4484,"parentId":4473,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108333051,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":10,"timestamp":475687988844,"id":4493,"parentId":4484,"tags":{},"startTime":1764108333076,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":26876,"timestamp":475687961983,"id":4482,"parentId":4474,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108333049,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":26892,"timestamp":475687961976,"id":4478,"parentId":4474,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108333049,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":27067,"timestamp":475687961809,"id":4474,"parentId":4473,"tags":{},"startTime":1764108333049,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":711,"timestamp":475687989693,"id":4495,"parentId":4494,"tags":{},"startTime":1764108333077,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":475687990415,"id":4497,"parentId":4494,"tags":{},"startTime":1764108333077,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":18,"timestamp":475687990422,"id":4498,"parentId":4494,"tags":{},"startTime":1764108333077,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":475687990446,"id":4499,"parentId":4494,"tags":{},"startTime":1764108333077,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":475687990457,"id":4500,"parentId":4494,"tags":{},"startTime":1764108333077,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":181,"timestamp":475687990409,"id":4496,"parentId":4494,"tags":{},"startTime":1764108333077,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":348,"timestamp":475687991298,"id":4501,"parentId":4494,"tags":{},"startTime":1764108333078,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":1219,"timestamp":475687991650,"id":4502,"parentId":4494,"tags":{},"startTime":1764108333078,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1525,"timestamp":475687993509,"id":4503,"parentId":4494,"tags":{},"startTime":1764108333080,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":72,"timestamp":475687995034,"id":4504,"parentId":4494,"tags":{},"startTime":1764108333082,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":26,"timestamp":475687995101,"id":4505,"parentId":4494,"tags":{},"startTime":1764108333082,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":2443,"timestamp":475687995130,"id":4506,"parentId":4494,"tags":{},"startTime":1764108333082,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":24,"timestamp":475687997946,"id":4508,"parentId":4473,"tags":{},"startTime":1764108333085,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":54,"timestamp":475687997917,"id":4507,"parentId":4473,"tags":{},"startTime":1764108333085,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":9542,"timestamp":475687989452,"id":4494,"parentId":4473,"tags":{},"startTime":1764108333076,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":37369,"timestamp":475687961646,"id":4473,"parentId":4471,"tags":{"name":"client"},"startTime":1764108333048,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":7766,"timestamp":475687999030,"id":4509,"parentId":4471,"tags":{},"startTime":1764108333086,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":52344,"timestamp":475687954884,"id":4471,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/page.tsx"},"startTime":1764108333042,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475688009217,"id":4512,"parentId":3,"tags":{},"startTime":1764108333096,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475688009240,"id":4513,"parentId":3,"tags":{},"startTime":1764108333096,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475688009251,"id":4514,"parentId":3,"tags":{},"startTime":1764108333096,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":58000,"timestamp":475687954758,"id":4520,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108333102,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":58000,"timestamp":475687954779,"id":4521,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108333102,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6203,"timestamp":475688011141,"id":4516,"parentId":4511,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108333098,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6209,"timestamp":475688011143,"id":4517,"parentId":4511,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108333098,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6440,"timestamp":475688011144,"id":4518,"parentId":4511,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108333098,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":62000,"timestamp":475687954700,"id":4525,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/[categoryId]/[partId]/page.tsx"],"page":"/gunbuilder","isPageHidden":false},"startTime":1764108333105,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6600,"timestamp":475688011115,"id":4515,"parentId":4511,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108333098,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":854,"timestamp":475688016902,"id":4524,"parentId":4523,"tags":{},"startTime":1764108333104,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":917,"timestamp":475688016841,"id":4523,"parentId":4522,"tags":{},"startTime":1764108333104,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1927,"timestamp":475688016673,"id":4522,"parentId":4510,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"rsc"},"startTime":1764108333103,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":15581,"timestamp":475688011146,"id":4519,"parentId":4511,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108333098,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1811,"timestamp":475688029059,"id":4543,"parentId":4542,"tags":{},"startTime":1764108333116,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1891,"timestamp":475688028983,"id":4542,"parentId":4541,"tags":{},"startTime":1764108333116,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":5969,"timestamp":475688028837,"id":4541,"parentId":4510,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"ssr"},"startTime":1764108333116,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":37781,"timestamp":475688008731,"id":4511,"parentId":4510,"tags":{},"startTime":1764108333096,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1293,"timestamp":475688047742,"id":4545,"parentId":4544,"tags":{},"startTime":1764108333135,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":475688049045,"id":4547,"parentId":4544,"tags":{},"startTime":1764108333136,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1083,"timestamp":475688049109,"id":4548,"parentId":4544,"tags":{},"startTime":1764108333136,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":475688050204,"id":4549,"parentId":4544,"tags":{},"startTime":1764108333137,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":475688050217,"id":4550,"parentId":4544,"tags":{},"startTime":1764108333137,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1359,"timestamp":475688049042,"id":4546,"parentId":4544,"tags":{},"startTime":1764108333136,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":167,"timestamp":475688050807,"id":4551,"parentId":4544,"tags":{},"startTime":1764108333138,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":569,"timestamp":475688050977,"id":4552,"parentId":4544,"tags":{},"startTime":1764108333138,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":399,"timestamp":475688051963,"id":4553,"parentId":4544,"tags":{},"startTime":1764108333139,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":28,"timestamp":475688052363,"id":4554,"parentId":4544,"tags":{},"startTime":1764108333139,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":18,"timestamp":475688052389,"id":4555,"parentId":4544,"tags":{},"startTime":1764108333139,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":749,"timestamp":475688052408,"id":4556,"parentId":4544,"tags":{},"startTime":1764108333139,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6793,"timestamp":475688047507,"id":4544,"parentId":4510,"tags":{},"startTime":1764108333134,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":47555,"timestamp":475688008587,"id":4510,"parentId":4472,"tags":{"name":"server"},"startTime":1764108333095,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1825,"timestamp":475688056179,"id":4557,"parentId":4472,"tags":{},"startTime":1764108333143,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":103514,"timestamp":475687955052,"id":4472,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/page.tsx"},"startTime":1764108333042,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":16691,"timestamp":475688062312,"id":4559,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108333149,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475688079024,"id":4561,"parentId":4559,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"587464704","memory.heapUsed":"211900928","memory.heapTotal":"272809984"},"startTime":1764108333166,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":17177,"timestamp":475688062085,"id":4558,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108333149,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475688079271,"id":4562,"parentId":4558,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"587464704","memory.heapUsed":"211953696","memory.heapTotal":"272809984"},"startTime":1764108333166,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":3563,"timestamp":475688078681,"id":4560,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108333165,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475688082254,"id":4563,"parentId":4560,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"587464704","memory.heapUsed":"212757840","memory.heapTotal":"272809984"},"startTime":1764108333169,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4899,"timestamp":475690758878,"id":4569,"parentId":4567,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108335846,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4907,"timestamp":475690758882,"id":4570,"parentId":4567,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108335846,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5091,"timestamp":475690758883,"id":4571,"parentId":4567,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108335846,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5540,"timestamp":475690758856,"id":4568,"parentId":4567,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108335846,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1009,"timestamp":475690763420,"id":4575,"parentId":4574,"tags":{},"startTime":1764108335850,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1072,"timestamp":475690763359,"id":4574,"parentId":4573,"tags":{},"startTime":1764108335850,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1721,"timestamp":475690763209,"id":4573,"parentId":4566,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"rsc"},"startTime":1764108335850,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7175,"timestamp":475690758885,"id":4572,"parentId":4567,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108335846,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1785,"timestamp":475690767772,"id":4593,"parentId":4592,"tags":{},"startTime":1764108335855,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1910,"timestamp":475690767653,"id":4592,"parentId":4591,"tags":{},"startTime":1764108335854,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4596,"timestamp":475690767571,"id":4591,"parentId":4566,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"ssr"},"startTime":1764108335854,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1208,"timestamp":475690774151,"id":4596,"parentId":4595,"tags":{},"startTime":1764108335861,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1256,"timestamp":475690774106,"id":4595,"parentId":4594,"tags":{},"startTime":1764108335861,"traceId":"e274ac96b05c42d4"},{"name":"build-module-ts","duration":2371,"timestamp":475690774023,"id":4594,"parentId":4591,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/data.ts","layer":"ssr"},"startTime":1764108335861,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":18428,"timestamp":475690757983,"id":4567,"parentId":4566,"tags":{},"startTime":1764108335845,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1454,"timestamp":475690777490,"id":4598,"parentId":4597,"tags":{},"startTime":1764108335864,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":475690778953,"id":4600,"parentId":4597,"tags":{},"startTime":1764108335866,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1296,"timestamp":475690778960,"id":4601,"parentId":4597,"tags":{},"startTime":1764108335866,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":475690780264,"id":4602,"parentId":4597,"tags":{},"startTime":1764108335867,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":475690780272,"id":4603,"parentId":4597,"tags":{},"startTime":1764108335867,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1446,"timestamp":475690778951,"id":4599,"parentId":4597,"tags":{},"startTime":1764108335866,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":204,"timestamp":475690780915,"id":4604,"parentId":4597,"tags":{},"startTime":1764108335868,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":671,"timestamp":475690781123,"id":4605,"parentId":4597,"tags":{},"startTime":1764108335868,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":663,"timestamp":475690782141,"id":4606,"parentId":4597,"tags":{},"startTime":1764108335869,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":35,"timestamp":475690782805,"id":4607,"parentId":4597,"tags":{},"startTime":1764108335870,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":17,"timestamp":475690782836,"id":4608,"parentId":4597,"tags":{},"startTime":1764108335870,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":906,"timestamp":475690782855,"id":4609,"parentId":4597,"tags":{},"startTime":1764108335870,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7243,"timestamp":475690777262,"id":4597,"parentId":4566,"tags":{},"startTime":1764108335864,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":28457,"timestamp":475690757812,"id":4566,"parentId":4564,"tags":{"name":"server"},"startTime":1764108335845,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1310,"timestamp":475690786279,"id":4610,"parentId":4564,"tags":{},"startTime":1764108335873,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":37089,"timestamp":475690750682,"id":4564,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/page.tsx"},"startTime":1764108335837,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2098,"timestamp":475690791857,"id":4619,"parentId":4612,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108335879,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2119,"timestamp":475690791860,"id":4621,"parentId":4612,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108335879,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2391,"timestamp":475690791824,"id":4613,"parentId":4612,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108335879,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3032,"timestamp":475690791854,"id":4618,"parentId":4612,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108335879,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2067,"timestamp":475690793427,"id":4625,"parentId":4624,"tags":{},"startTime":1764108335880,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2138,"timestamp":475690793357,"id":4624,"parentId":4623,"tags":{},"startTime":1764108335880,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4831,"timestamp":475690793288,"id":4623,"parentId":4611,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"app-pages-browser"},"startTime":1764108335880,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6613,"timestamp":475690791850,"id":4615,"parentId":4612,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108335879,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8848,"timestamp":475690791852,"id":4617,"parentId":4612,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108335879,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":5710,"timestamp":475690795004,"id":4627,"parentId":4626,"tags":{},"startTime":1764108335882,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10024,"timestamp":475690791847,"id":4614,"parentId":4612,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108335879,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":8553,"timestamp":475690800737,"id":4629,"parentId":4628,"tags":{},"startTime":1764108335888,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":8786,"timestamp":475690800726,"id":4628,"parentId":4626,"tags":{},"startTime":1764108335888,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":1761,"timestamp":475690809519,"id":4633,"parentId":4626,"tags":{"astUsed":"true"},"startTime":1764108335896,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":16802,"timestamp":475690794958,"id":4626,"parentId":4622,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108335882,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":10054,"timestamp":475690801914,"id":4632,"parentId":4631,"tags":{},"startTime":1764108335889,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":10094,"timestamp":475690801874,"id":4631,"parentId":4630,"tags":{},"startTime":1764108335889,"traceId":"e274ac96b05c42d4"},{"name":"build-module-ts","duration":11122,"timestamp":475690801803,"id":4630,"parentId":4623,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/data.ts","layer":"app-pages-browser"},"startTime":1764108335889,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":21075,"timestamp":475690791859,"id":4620,"parentId":4612,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108335879,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":20854,"timestamp":475690793121,"id":4622,"parentId":4611,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108335880,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":7,"timestamp":475690814039,"id":4634,"parentId":4622,"tags":{},"startTime":1764108335901,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":22214,"timestamp":475690791851,"id":4616,"parentId":4612,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108335879,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":25500,"timestamp":475690788571,"id":4612,"parentId":4611,"tags":{},"startTime":1764108335875,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":652,"timestamp":475690814859,"id":4636,"parentId":4635,"tags":{},"startTime":1764108335902,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":475690815516,"id":4638,"parentId":4635,"tags":{},"startTime":1764108335902,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":16,"timestamp":475690815523,"id":4639,"parentId":4635,"tags":{},"startTime":1764108335902,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":1,"timestamp":475690815544,"id":4640,"parentId":4635,"tags":{},"startTime":1764108335902,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":475690815553,"id":4641,"parentId":4635,"tags":{},"startTime":1764108335902,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":262,"timestamp":475690815514,"id":4637,"parentId":4635,"tags":{},"startTime":1764108335902,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":166,"timestamp":475690816207,"id":4642,"parentId":4635,"tags":{},"startTime":1764108335903,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":650,"timestamp":475690816376,"id":4643,"parentId":4635,"tags":{},"startTime":1764108335903,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1111,"timestamp":475690817398,"id":4644,"parentId":4635,"tags":{},"startTime":1764108335904,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":42,"timestamp":475690818509,"id":4645,"parentId":4635,"tags":{},"startTime":1764108335905,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":17,"timestamp":475690818548,"id":4646,"parentId":4635,"tags":{},"startTime":1764108335905,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1802,"timestamp":475690818566,"id":4647,"parentId":4635,"tags":{},"startTime":1764108335905,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":22,"timestamp":475690820640,"id":4649,"parentId":4611,"tags":{},"startTime":1764108335907,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":60,"timestamp":475690820615,"id":4648,"parentId":4611,"tags":{},"startTime":1764108335907,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6654,"timestamp":475690814607,"id":4635,"parentId":4611,"tags":{},"startTime":1764108335901,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":32846,"timestamp":475690788425,"id":4611,"parentId":4565,"tags":{"name":"client"},"startTime":1764108335875,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2264,"timestamp":475690821279,"id":4650,"parentId":4565,"tags":{},"startTime":1764108335908,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":73273,"timestamp":475690750731,"id":4565,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/page.tsx"},"startTime":1764108335838,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":1,"timestamp":475690824602,"id":4651,"parentId":3,"tags":{},"startTime":1764108335911,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":76000,"timestamp":475690750765,"id":4653,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108335918,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475690830851,"id":4654,"parentId":3,"tags":{},"startTime":1764108335918,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475690830864,"id":4655,"parentId":3,"tags":{},"startTime":1764108335918,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7345,"timestamp":475690825034,"id":4652,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108335912,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475690832392,"id":4657,"parentId":4652,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"625393664","memory.heapUsed":"230301560","memory.heapTotal":"314228736"},"startTime":1764108335919,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4258,"timestamp":475690830969,"id":4656,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108335918,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475690835237,"id":4658,"parentId":4656,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"626147328","memory.heapUsed":"231070104","memory.heapTotal":"314753024"},"startTime":1764108335922,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":2713,"timestamp":475690835679,"id":4659,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108335922,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475690838400,"id":4660,"parentId":4659,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"627081216","memory.heapUsed":"232007728","memory.heapTotal":"315801600"},"startTime":1764108335925,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":91000,"timestamp":475690750712,"id":4661,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108335930,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":93000,"timestamp":475690750888,"id":4662,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/[categoryId]/[partId]/data.ts","[project]/app/gunbuilder/[categoryId]/[partId]/page.tsx"],"page":"/gunbuilder","isPageHidden":false},"startTime":1764108335932,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6002,"timestamp":475715715451,"id":4673,"parentId":4666,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108360802,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6023,"timestamp":475715715455,"id":4675,"parentId":4666,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108360802,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6308,"timestamp":475715715409,"id":4667,"parentId":4666,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108360802,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7014,"timestamp":475715715450,"id":4672,"parentId":4666,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108360802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2247,"timestamp":475715720486,"id":4679,"parentId":4678,"tags":{},"startTime":1764108360807,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2358,"timestamp":475715720376,"id":4678,"parentId":4677,"tags":{},"startTime":1764108360807,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":10202,"timestamp":475715720275,"id":4677,"parentId":4665,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"app-pages-browser"},"startTime":1764108360807,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":15985,"timestamp":475715715446,"id":4669,"parentId":4666,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108360802,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":16660,"timestamp":475715715449,"id":4671,"parentId":4666,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108360802,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":9946,"timestamp":475715722610,"id":4681,"parentId":4680,"tags":{},"startTime":1764108360809,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":19816,"timestamp":475715715441,"id":4668,"parentId":4666,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108360802,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":13838,"timestamp":475715732610,"id":4683,"parentId":4682,"tags":{},"startTime":1764108360819,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":14159,"timestamp":475715732589,"id":4682,"parentId":4680,"tags":{},"startTime":1764108360819,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2976,"timestamp":475715746768,"id":4684,"parentId":4680,"tags":{"astUsed":"true"},"startTime":1764108360834,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":28772,"timestamp":475715722560,"id":4680,"parentId":4676,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108360809,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":32899,"timestamp":475715719968,"id":4676,"parentId":4665,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108360807,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":10,"timestamp":475715752932,"id":4685,"parentId":4676,"tags":{},"startTime":1764108360840,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":37515,"timestamp":475715715448,"id":4670,"parentId":4666,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108360802,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1442,"timestamp":475715754668,"id":4689,"parentId":4688,"tags":{},"startTime":1764108360841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1495,"timestamp":475715754617,"id":4688,"parentId":4686,"tags":{},"startTime":1764108360841,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":3656,"timestamp":475715754439,"id":4686,"parentId":4677,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx","layer":"app-pages-browser"},"startTime":1764108360841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4228,"timestamp":475715754696,"id":4691,"parentId":4690,"tags":{},"startTime":1764108360841,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4255,"timestamp":475715754670,"id":4690,"parentId":4687,"tags":{},"startTime":1764108360841,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6445,"timestamp":475715754565,"id":4687,"parentId":4677,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx","layer":"app-pages-browser"},"startTime":1764108360841,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":47516,"timestamp":475715715453,"id":4674,"parentId":4666,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108360802,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":47754,"timestamp":475715715230,"id":4666,"parentId":4665,"tags":{},"startTime":1764108360802,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":815,"timestamp":475715764098,"id":4693,"parentId":4692,"tags":{},"startTime":1764108360851,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":475715764925,"id":4695,"parentId":4692,"tags":{},"startTime":1764108360852,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":21,"timestamp":475715764938,"id":4696,"parentId":4692,"tags":{},"startTime":1764108360852,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":4,"timestamp":475715764969,"id":4697,"parentId":4692,"tags":{},"startTime":1764108360852,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":475715764982,"id":4698,"parentId":4692,"tags":{},"startTime":1764108360852,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":323,"timestamp":475715764921,"id":4694,"parentId":4692,"tags":{},"startTime":1764108360852,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":322,"timestamp":475715765693,"id":4699,"parentId":4692,"tags":{},"startTime":1764108360852,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":1179,"timestamp":475715766020,"id":4700,"parentId":4692,"tags":{},"startTime":1764108360853,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1879,"timestamp":475715767883,"id":4701,"parentId":4692,"tags":{},"startTime":1764108360855,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":94,"timestamp":475715769761,"id":4702,"parentId":4692,"tags":{},"startTime":1764108360857,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":42,"timestamp":475715769847,"id":4703,"parentId":4692,"tags":{},"startTime":1764108360857,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":3499,"timestamp":475715769892,"id":4704,"parentId":4692,"tags":{},"startTime":1764108360857,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":48,"timestamp":475715788524,"id":4706,"parentId":4665,"tags":{},"startTime":1764108360875,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":81,"timestamp":475715788494,"id":4705,"parentId":4665,"tags":{},"startTime":1764108360875,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":25526,"timestamp":475715763826,"id":4692,"parentId":4665,"tags":{},"startTime":1764108360851,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":74358,"timestamp":475715715011,"id":4665,"parentId":4663,"tags":{"name":"client"},"startTime":1764108360802,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2880,"timestamp":475715789386,"id":4707,"parentId":4663,"tags":{},"startTime":1764108360876,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":85080,"timestamp":475715707681,"id":4663,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/page.tsx"},"startTime":1764108360794,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":475715794520,"id":4710,"parentId":3,"tags":{},"startTime":1764108360881,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475715794553,"id":4711,"parentId":3,"tags":{},"startTime":1764108360881,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475715794566,"id":4712,"parentId":3,"tags":{},"startTime":1764108360881,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":92000,"timestamp":475715708459,"id":4718,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108360889,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6782,"timestamp":475715796596,"id":4714,"parentId":4709,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108360883,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6784,"timestamp":475715796598,"id":4715,"parentId":4709,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108360883,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7116,"timestamp":475715796599,"id":4716,"parentId":4709,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108360883,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7263,"timestamp":475715796564,"id":4713,"parentId":4709,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108360883,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":969,"timestamp":475715803018,"id":4721,"parentId":4720,"tags":{},"startTime":1764108360890,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1047,"timestamp":475715802943,"id":4720,"parentId":4719,"tags":{},"startTime":1764108360890,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2194,"timestamp":475715802793,"id":4719,"parentId":4708,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"rsc"},"startTime":1764108360890,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":9646,"timestamp":475715796601,"id":4717,"parentId":4709,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108360883,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":98000,"timestamp":475715708198,"id":4737,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/[categoryId]/[partId]/page.tsx","[project]/components/PricingHistoryGraph.tsx","[project]/components/RetailersList.tsx"],"page":"/gunbuilder","isPageHidden":false},"startTime":1764108360894,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":97000,"timestamp":475715708466,"id":4738,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108360894,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2014,"timestamp":475715808103,"id":4741,"parentId":4740,"tags":{},"startTime":1764108360895,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2083,"timestamp":475715808038,"id":4740,"parentId":4739,"tags":{},"startTime":1764108360895,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":5752,"timestamp":475715807909,"id":4739,"parentId":4708,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"ssr"},"startTime":1764108360895,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1558,"timestamp":475715815947,"id":4747,"parentId":4746,"tags":{},"startTime":1764108360903,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1592,"timestamp":475715815919,"id":4746,"parentId":4743,"tags":{},"startTime":1764108360903,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":3255,"timestamp":475715815833,"id":4743,"parentId":4739,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx","layer":"ssr"},"startTime":1764108360903,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3222,"timestamp":475715815917,"id":4745,"parentId":4744,"tags":{},"startTime":1764108360903,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3266,"timestamp":475715815874,"id":4744,"parentId":4742,"tags":{},"startTime":1764108360903,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":5166,"timestamp":475715815757,"id":4742,"parentId":4739,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx","layer":"ssr"},"startTime":1764108360903,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":29021,"timestamp":475715793815,"id":4709,"parentId":4708,"tags":{},"startTime":1764108360881,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1277,"timestamp":475715823950,"id":4749,"parentId":4748,"tags":{},"startTime":1764108360911,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":475715825238,"id":4751,"parentId":4748,"tags":{},"startTime":1764108360912,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1166,"timestamp":475715825248,"id":4752,"parentId":4748,"tags":{},"startTime":1764108360912,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":475715826430,"id":4753,"parentId":4748,"tags":{},"startTime":1764108360913,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":475715826442,"id":4754,"parentId":4748,"tags":{},"startTime":1764108360913,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1493,"timestamp":475715825234,"id":4750,"parentId":4748,"tags":{},"startTime":1764108360912,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":222,"timestamp":475715827234,"id":4755,"parentId":4748,"tags":{},"startTime":1764108360914,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":1050,"timestamp":475715827461,"id":4756,"parentId":4748,"tags":{},"startTime":1764108360914,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":671,"timestamp":475715829040,"id":4757,"parentId":4748,"tags":{},"startTime":1764108360916,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":591,"timestamp":475715829711,"id":4758,"parentId":4748,"tags":{},"startTime":1764108360917,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":27,"timestamp":475715830300,"id":4759,"parentId":4748,"tags":{},"startTime":1764108360917,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1282,"timestamp":475715830329,"id":4760,"parentId":4748,"tags":{},"startTime":1764108360917,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8750,"timestamp":475715823735,"id":4748,"parentId":4708,"tags":{},"startTime":1764108360911,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":40462,"timestamp":475715793637,"id":4708,"parentId":4664,"tags":{"name":"server"},"startTime":1764108360880,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1775,"timestamp":475715834116,"id":4761,"parentId":4664,"tags":{},"startTime":1764108360921,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":128523,"timestamp":475715707883,"id":4664,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/page.tsx"},"startTime":1764108360795,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":10340,"timestamp":475715841331,"id":4763,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108360928,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475715851699,"id":4765,"parentId":4763,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"531234816","memory.heapUsed":"204474904","memory.heapTotal":"222609408"},"startTime":1764108360938,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10662,"timestamp":475715841111,"id":4762,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108360928,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475715851778,"id":4766,"parentId":4762,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"531234816","memory.heapUsed":"204485976","memory.heapTotal":"222609408"},"startTime":1764108360939,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4306,"timestamp":475715851033,"id":4764,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108360938,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475715855352,"id":4767,"parentId":4764,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"531234816","memory.heapUsed":"205256784","memory.heapTotal":"222609408"},"startTime":1764108360942,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7840,"timestamp":475728954212,"id":4773,"parentId":4771,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108374041,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7846,"timestamp":475728954216,"id":4774,"parentId":4771,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108374041,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8130,"timestamp":475728954222,"id":4775,"parentId":4771,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108374041,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2316,"timestamp":475728961474,"id":4779,"parentId":4778,"tags":{},"startTime":1764108374048,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2432,"timestamp":475728961361,"id":4778,"parentId":4777,"tags":{},"startTime":1764108374048,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":3173,"timestamp":475728961120,"id":4777,"parentId":4770,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"rsc"},"startTime":1764108374048,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10467,"timestamp":475728954154,"id":4772,"parentId":4771,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108374041,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":11409,"timestamp":475728954224,"id":4776,"parentId":4771,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108374041,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1810,"timestamp":475728968317,"id":4797,"parentId":4796,"tags":{},"startTime":1764108374055,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1904,"timestamp":475728968229,"id":4796,"parentId":4795,"tags":{},"startTime":1764108374055,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4424,"timestamp":475728968036,"id":4795,"parentId":4770,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"ssr"},"startTime":1764108374055,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1760,"timestamp":475728975153,"id":4800,"parentId":4799,"tags":{},"startTime":1764108374062,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1819,"timestamp":475728975098,"id":4799,"parentId":4798,"tags":{},"startTime":1764108374062,"traceId":"e274ac96b05c42d4"},{"name":"build-module-ts","duration":2972,"timestamp":475728974958,"id":4798,"parentId":4795,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/data.ts","layer":"ssr"},"startTime":1764108374062,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2073,"timestamp":475728975890,"id":4806,"parentId":4805,"tags":{},"startTime":1764108374063,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2104,"timestamp":475728975860,"id":4805,"parentId":4802,"tags":{},"startTime":1764108374063,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":3069,"timestamp":475728975778,"id":4802,"parentId":4795,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx","layer":"ssr"},"startTime":1764108374063,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3256,"timestamp":475728975858,"id":4804,"parentId":4803,"tags":{},"startTime":1764108374063,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3294,"timestamp":475728975821,"id":4803,"parentId":4801,"tags":{},"startTime":1764108374063,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4311,"timestamp":475728975718,"id":4801,"parentId":4795,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx","layer":"ssr"},"startTime":1764108374062,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":27679,"timestamp":475728953134,"id":4771,"parentId":4770,"tags":{},"startTime":1764108374040,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1382,"timestamp":475728982007,"id":4808,"parentId":4807,"tags":{},"startTime":1764108374069,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":475728983402,"id":4810,"parentId":4807,"tags":{},"startTime":1764108374070,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1092,"timestamp":475728983412,"id":4811,"parentId":4807,"tags":{},"startTime":1764108374070,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":475728984515,"id":4812,"parentId":4807,"tags":{},"startTime":1764108374071,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":475728984525,"id":4813,"parentId":4807,"tags":{},"startTime":1764108374071,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1291,"timestamp":475728983397,"id":4809,"parentId":4807,"tags":{},"startTime":1764108374070,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":189,"timestamp":475728985062,"id":4814,"parentId":4807,"tags":{},"startTime":1764108374072,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":342,"timestamp":475728985254,"id":4815,"parentId":4807,"tags":{},"startTime":1764108374072,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1256,"timestamp":475728985915,"id":4816,"parentId":4807,"tags":{},"startTime":1764108374073,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":34,"timestamp":475728987171,"id":4817,"parentId":4807,"tags":{},"startTime":1764108374074,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":20,"timestamp":475728987203,"id":4818,"parentId":4807,"tags":{},"startTime":1764108374074,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":57,"timestamp":475728987225,"id":4819,"parentId":4807,"tags":{},"startTime":1764108374074,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6346,"timestamp":475728981782,"id":4807,"parentId":4770,"tags":{},"startTime":1764108374069,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":36644,"timestamp":475728952897,"id":4770,"parentId":4769,"tags":{"name":"server"},"startTime":1764108374040,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1461,"timestamp":475728989551,"id":4820,"parentId":4769,"tags":{},"startTime":1764108374076,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":45063,"timestamp":475728946205,"id":4769,"parentId":3,"tags":{"trigger":"components/PricingHistoryGraph.tsx"},"startTime":1764108374033,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3381,"timestamp":475728994769,"id":4829,"parentId":4822,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108374082,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3403,"timestamp":475728994771,"id":4831,"parentId":4822,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108374082,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3678,"timestamp":475728994739,"id":4823,"parentId":4822,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108374082,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4365,"timestamp":475728994768,"id":4828,"parentId":4822,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108374082,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5105,"timestamp":475728994763,"id":4825,"parentId":4822,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108374082,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5178,"timestamp":475728994766,"id":4827,"parentId":4822,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108374082,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":674,"timestamp":475728999275,"id":4837,"parentId":4836,"tags":{},"startTime":1764108374086,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4765,"timestamp":475728997544,"id":4835,"parentId":4834,"tags":{},"startTime":1764108374084,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4832,"timestamp":475728997480,"id":4834,"parentId":4833,"tags":{},"startTime":1764108374084,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":7759,"timestamp":475728997400,"id":4833,"parentId":4821,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"app-pages-browser"},"startTime":1764108374084,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10857,"timestamp":475728994761,"id":4824,"parentId":4822,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108374082,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":21607,"timestamp":475728999970,"id":4839,"parentId":4838,"tags":{},"startTime":1764108374087,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":21887,"timestamp":475728999962,"id":4838,"parentId":4836,"tags":{},"startTime":1764108374087,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2695,"timestamp":475729021864,"id":4849,"parentId":4836,"tags":{"astUsed":"true"},"startTime":1764108374109,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":27799,"timestamp":475728999217,"id":4836,"parentId":4832,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108374086,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":27551,"timestamp":475729007938,"id":4844,"parentId":4843,"tags":{},"startTime":1764108374095,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":27616,"timestamp":475729007877,"id":4843,"parentId":4840,"tags":{},"startTime":1764108374095,"traceId":"e274ac96b05c42d4"},{"name":"build-module-ts","duration":29748,"timestamp":475729007477,"id":4840,"parentId":4833,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/data.ts","layer":"app-pages-browser"},"startTime":1764108374094,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":29294,"timestamp":475729007984,"id":4846,"parentId":4845,"tags":{},"startTime":1764108374095,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":29338,"timestamp":475729007941,"id":4845,"parentId":4841,"tags":{},"startTime":1764108374095,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":31249,"timestamp":475729007655,"id":4841,"parentId":4833,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/PricingHistoryGraph.tsx","layer":"app-pages-browser"},"startTime":1764108374094,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":30922,"timestamp":475729008020,"id":4848,"parentId":4847,"tags":{},"startTime":1764108374095,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":30957,"timestamp":475729007985,"id":4847,"parentId":4842,"tags":{},"startTime":1764108374095,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":33113,"timestamp":475729007814,"id":4842,"parentId":4833,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/RetailersList.tsx","layer":"app-pages-browser"},"startTime":1764108374095,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":46645,"timestamp":475728994770,"id":4830,"parentId":4822,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108374082,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":45547,"timestamp":475728997203,"id":4832,"parentId":4821,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108374084,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":9,"timestamp":475729042844,"id":4850,"parentId":4832,"tags":{},"startTime":1764108374130,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":48109,"timestamp":475728994765,"id":4826,"parentId":4822,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108374082,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":50953,"timestamp":475728991930,"id":4822,"parentId":4821,"tags":{},"startTime":1764108374079,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":783,"timestamp":475729043737,"id":4852,"parentId":4851,"tags":{},"startTime":1764108374131,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":475729044530,"id":4854,"parentId":4851,"tags":{},"startTime":1764108374131,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":20,"timestamp":475729044540,"id":4855,"parentId":4851,"tags":{},"startTime":1764108374131,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":475729044568,"id":4856,"parentId":4851,"tags":{},"startTime":1764108374131,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":475729044583,"id":4857,"parentId":4851,"tags":{},"startTime":1764108374131,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":314,"timestamp":475729044527,"id":4853,"parentId":4851,"tags":{},"startTime":1764108374131,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":209,"timestamp":475729045260,"id":4858,"parentId":4851,"tags":{},"startTime":1764108374132,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":441,"timestamp":475729045472,"id":4859,"parentId":4851,"tags":{},"startTime":1764108374132,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1808,"timestamp":475729046341,"id":4860,"parentId":4851,"tags":{},"startTime":1764108374133,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":69,"timestamp":475729048148,"id":4861,"parentId":4851,"tags":{},"startTime":1764108374135,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":30,"timestamp":475729048212,"id":4862,"parentId":4851,"tags":{},"startTime":1764108374135,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1325,"timestamp":475729048245,"id":4863,"parentId":4851,"tags":{},"startTime":1764108374135,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":36,"timestamp":475729049985,"id":4865,"parentId":4821,"tags":{},"startTime":1764108374137,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":72,"timestamp":475729049952,"id":4864,"parentId":4821,"tags":{},"startTime":1764108374137,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":7295,"timestamp":475729043487,"id":4851,"parentId":4821,"tags":{},"startTime":1764108374130,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":58998,"timestamp":475728991800,"id":4821,"parentId":4768,"tags":{"name":"client"},"startTime":1764108374079,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2771,"timestamp":475729050812,"id":4866,"parentId":4768,"tags":{},"startTime":1764108374138,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":108612,"timestamp":475728945995,"id":4768,"parentId":3,"tags":{"trigger":"components/PricingHistoryGraph.tsx"},"startTime":1764108374033,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":6,"timestamp":475729055580,"id":4867,"parentId":3,"tags":{},"startTime":1764108374142,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475729055611,"id":4868,"parentId":3,"tags":{},"startTime":1764108374142,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475729055625,"id":4869,"parentId":3,"tags":{},"startTime":1764108374142,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":113000,"timestamp":475728945768,"id":4872,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108374152,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11492,"timestamp":475729056239,"id":4870,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108374143,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475729067748,"id":4873,"parentId":4870,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"551321600","memory.heapUsed":"197366000","memory.heapTotal":"243253248"},"startTime":1764108374155,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":12731,"timestamp":475729057477,"id":4871,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108374144,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475729070232,"id":4874,"parentId":4871,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"551321600","memory.heapUsed":"197866720","memory.heapTotal":"243253248"},"startTime":1764108374157,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":123000,"timestamp":475728946253,"id":4875,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764108374158,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":130000,"timestamp":475728945845,"id":4877,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108374164,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4994,"timestamp":475729072166,"id":4876,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108374159,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475729077175,"id":4878,"parentId":4876,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"551321600","memory.heapUsed":"198759048","memory.heapTotal":"243253248"},"startTime":1764108374164,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":23315,"timestamp":475760085079,"id":4879,"tags":{"url":"/gunbuilder/upper?_rsc=1tdvv","isTurbopack":false},"startTime":1764108405172,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475760108426,"id":4880,"parentId":4879,"tags":{"url":"/gunbuilder/upper?_rsc=1tdvv","memory.rss":"500301824","memory.heapUsed":"185583488","memory.heapTotal":"195231744"},"startTime":1764108405195,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":14445,"timestamp":475760978842,"id":4881,"tags":{"url":"/gunbuilder/upper/upper-aero-enhanced?_rsc=1qtj8","isTurbopack":false},"startTime":1764108406066,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475760993327,"id":4882,"parentId":4881,"tags":{"url":"/gunbuilder/upper/upper-aero-enhanced?_rsc=1qtj8","memory.rss":"501153792","memory.heapUsed":"185960584","memory.heapTotal":"196083712"},"startTime":1764108406080,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4071,"timestamp":475815493879,"id":4893,"parentId":4886,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108460581,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4099,"timestamp":475815493882,"id":4895,"parentId":4886,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108460581,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4881,"timestamp":475815493812,"id":4887,"parentId":4886,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108460581,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5445,"timestamp":475815493872,"id":4892,"parentId":4886,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108460581,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2272,"timestamp":475815497313,"id":4899,"parentId":4898,"tags":{},"startTime":1764108460584,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2352,"timestamp":475815497235,"id":4898,"parentId":4897,"tags":{},"startTime":1764108460584,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":8745,"timestamp":475815497153,"id":4897,"parentId":4885,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"app-pages-browser"},"startTime":1764108460584,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12809,"timestamp":475815493866,"id":4889,"parentId":4886,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108460581,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":13565,"timestamp":475815493870,"id":4891,"parentId":4886,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108460581,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":8016,"timestamp":475815499466,"id":4901,"parentId":4900,"tags":{},"startTime":1764108460586,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":16340,"timestamp":475815493880,"id":4894,"parentId":4886,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108460581,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":16382,"timestamp":475815493862,"id":4888,"parentId":4886,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108460581,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":13011,"timestamp":475815507527,"id":4903,"parentId":4902,"tags":{},"startTime":1764108460594,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":13298,"timestamp":475815507494,"id":4902,"parentId":4900,"tags":{},"startTime":1764108460594,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":3027,"timestamp":475815520806,"id":4904,"parentId":4900,"tags":{"astUsed":"true"},"startTime":1764108460608,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":25818,"timestamp":475815499389,"id":4900,"parentId":4896,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108460586,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":30676,"timestamp":475815496805,"id":4896,"parentId":4885,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108460584,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":14,"timestamp":475815527568,"id":4905,"parentId":4896,"tags":{},"startTime":1764108460614,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":33733,"timestamp":475815493868,"id":4890,"parentId":4886,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108460581,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":34026,"timestamp":475815493586,"id":4886,"parentId":4885,"tags":{},"startTime":1764108460580,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1002,"timestamp":475815533730,"id":4907,"parentId":4906,"tags":{},"startTime":1764108460620,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":5,"timestamp":475815534747,"id":4909,"parentId":4906,"tags":{},"startTime":1764108460621,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":36,"timestamp":475815534788,"id":4910,"parentId":4906,"tags":{},"startTime":1764108460622,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":5,"timestamp":475815534847,"id":4911,"parentId":4906,"tags":{},"startTime":1764108460622,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":6,"timestamp":475815534874,"id":4912,"parentId":4906,"tags":{},"startTime":1764108460622,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":493,"timestamp":475815534742,"id":4908,"parentId":4906,"tags":{},"startTime":1764108460621,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":289,"timestamp":475815535984,"id":4913,"parentId":4906,"tags":{},"startTime":1764108460623,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":1103,"timestamp":475815536279,"id":4914,"parentId":4906,"tags":{},"startTime":1764108460623,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":2029,"timestamp":475815538104,"id":4915,"parentId":4906,"tags":{},"startTime":1764108460625,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":82,"timestamp":475815540133,"id":4916,"parentId":4906,"tags":{},"startTime":1764108460627,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":34,"timestamp":475815540205,"id":4917,"parentId":4906,"tags":{},"startTime":1764108460627,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":11828,"timestamp":475815540241,"id":4918,"parentId":4906,"tags":{},"startTime":1764108460627,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":59,"timestamp":475815552629,"id":4920,"parentId":4885,"tags":{},"startTime":1764108460639,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":86,"timestamp":475815552604,"id":4919,"parentId":4885,"tags":{},"startTime":1764108460639,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":20028,"timestamp":475815533395,"id":4906,"parentId":4885,"tags":{},"startTime":1764108460620,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":60032,"timestamp":475815493407,"id":4885,"parentId":4883,"tags":{"name":"client"},"startTime":1764108460580,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2588,"timestamp":475815553450,"id":4921,"parentId":4883,"tags":{},"startTime":1764108460640,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":70348,"timestamp":475815486182,"id":4883,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/page.tsx"},"startTime":1764108460573,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":475815558123,"id":4924,"parentId":3,"tags":{},"startTime":1764108460645,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475815558156,"id":4925,"parentId":3,"tags":{},"startTime":1764108460645,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475815558168,"id":4926,"parentId":3,"tags":{},"startTime":1764108460645,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":75000,"timestamp":475815486673,"id":4932,"parentId":3,"tags":{"updatedModules":["[project]/components/PricingHistoryGraph.tsx"],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108460650,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7250,"timestamp":475815559931,"id":4928,"parentId":4923,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108460647,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7259,"timestamp":475815559933,"id":4929,"parentId":4923,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108460647,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7447,"timestamp":475815559936,"id":4931,"parentId":4923,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108460647,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7626,"timestamp":475815559901,"id":4927,"parentId":4923,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108460647,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":883,"timestamp":475815566796,"id":4935,"parentId":4934,"tags":{},"startTime":1764108460654,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":981,"timestamp":475815566699,"id":4934,"parentId":4933,"tags":{},"startTime":1764108460653,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2161,"timestamp":475815566470,"id":4933,"parentId":4922,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"rsc"},"startTime":1764108460653,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":81000,"timestamp":475815485865,"id":4936,"parentId":3,"tags":{"updatedModules":["[project]/components/PricingHistoryGraph.tsx"],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108460656,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10651,"timestamp":475815559934,"id":4930,"parentId":4923,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108460647,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1630,"timestamp":475815572312,"id":4954,"parentId":4953,"tags":{},"startTime":1764108460659,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1692,"timestamp":475815572252,"id":4953,"parentId":4952,"tags":{},"startTime":1764108460659,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":5447,"timestamp":475815572146,"id":4952,"parentId":4922,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"ssr"},"startTime":1764108460659,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":88000,"timestamp":475815486343,"id":4955,"parentId":3,"tags":{"updatedModules":["[project]/components/PricingHistoryGraph.tsx","[project]/app/gunbuilder/[categoryId]/[partId]/page.tsx"],"page":"/gunbuilder/upper/upper-aero-enhanced","isPageHidden":false},"startTime":1764108460665,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":24740,"timestamp":475815557449,"id":4923,"parentId":4922,"tags":{},"startTime":1764108460644,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1363,"timestamp":475815587255,"id":4957,"parentId":4956,"tags":{},"startTime":1764108460674,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":475815588630,"id":4959,"parentId":4956,"tags":{},"startTime":1764108460675,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1189,"timestamp":475815588677,"id":4960,"parentId":4956,"tags":{},"startTime":1764108460675,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":475815589880,"id":4961,"parentId":4956,"tags":{},"startTime":1764108460677,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":475815589891,"id":4962,"parentId":4956,"tags":{},"startTime":1764108460677,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1482,"timestamp":475815588627,"id":4958,"parentId":4956,"tags":{},"startTime":1764108460675,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":278,"timestamp":475815590725,"id":4963,"parentId":4956,"tags":{},"startTime":1764108460677,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":1424,"timestamp":475815591008,"id":4964,"parentId":4956,"tags":{},"startTime":1764108460678,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":838,"timestamp":475815593345,"id":4965,"parentId":4956,"tags":{},"startTime":1764108460680,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":60,"timestamp":475815594183,"id":4966,"parentId":4956,"tags":{},"startTime":1764108460681,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":27,"timestamp":475815594237,"id":4967,"parentId":4956,"tags":{},"startTime":1764108460681,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1204,"timestamp":475815594268,"id":4968,"parentId":4956,"tags":{},"startTime":1764108460681,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":9912,"timestamp":475815587039,"id":4956,"parentId":4922,"tags":{},"startTime":1764108460674,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":41511,"timestamp":475815557313,"id":4922,"parentId":4884,"tags":{"name":"server"},"startTime":1764108460644,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1707,"timestamp":475815598845,"id":4969,"parentId":4884,"tags":{},"startTime":1764108460686,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":114646,"timestamp":475815486416,"id":4884,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/page.tsx"},"startTime":1764108460573,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":21607,"timestamp":475815610313,"id":4970,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108460697,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475815631941,"id":4973,"parentId":4970,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"553009152","memory.heapUsed":"201493552","memory.heapTotal":"232341504"},"startTime":1764108460719,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":21480,"timestamp":475815610514,"id":4971,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108460697,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475815631999,"id":4974,"parentId":4971,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"553009152","memory.heapUsed":"201504624","memory.heapTotal":"232341504"},"startTime":1764108460719,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":21316,"timestamp":475815611075,"id":4972,"tags":{"url":"/gunbuilder/upper/upper-aero-enhanced?_rsc=yngwx","isTurbopack":false},"startTime":1764108460698,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475815632400,"id":4975,"parentId":4972,"tags":{"url":"/gunbuilder/upper/upper-aero-enhanced?_rsc=yngwx","memory.rss":"553009152","memory.heapUsed":"201539016","memory.heapTotal":"232341504"},"startTime":1764108460719,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4759,"timestamp":475819265235,"id":4981,"parentId":4979,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108464352,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4766,"timestamp":475819265241,"id":4983,"parentId":4979,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108464352,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4921,"timestamp":475819265239,"id":4982,"parentId":4979,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108464352,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5227,"timestamp":475819265197,"id":4980,"parentId":4979,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108464352,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":868,"timestamp":475819269691,"id":4987,"parentId":4986,"tags":{},"startTime":1764108464356,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":950,"timestamp":475819269611,"id":4986,"parentId":4985,"tags":{},"startTime":1764108464356,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1745,"timestamp":475819269451,"id":4985,"parentId":4978,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"rsc"},"startTime":1764108464356,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7036,"timestamp":475819265244,"id":4984,"parentId":4979,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108464352,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1554,"timestamp":475819273928,"id":5005,"parentId":5004,"tags":{},"startTime":1764108464361,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1607,"timestamp":475819273879,"id":5004,"parentId":5003,"tags":{},"startTime":1764108464361,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4645,"timestamp":475819273802,"id":5003,"parentId":4978,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"ssr"},"startTime":1764108464361,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":18458,"timestamp":475819264360,"id":4979,"parentId":4978,"tags":{},"startTime":1764108464351,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1047,"timestamp":475819283697,"id":5007,"parentId":5006,"tags":{},"startTime":1764108464370,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":475819284751,"id":5009,"parentId":5006,"tags":{},"startTime":1764108464371,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1102,"timestamp":475819284758,"id":5010,"parentId":5006,"tags":{},"startTime":1764108464371,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":475819285870,"id":5011,"parentId":5006,"tags":{},"startTime":1764108464373,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":475819285880,"id":5012,"parentId":5006,"tags":{},"startTime":1764108464373,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1274,"timestamp":475819284748,"id":5008,"parentId":5006,"tags":{},"startTime":1764108464371,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":171,"timestamp":475819286434,"id":5013,"parentId":5006,"tags":{},"startTime":1764108464373,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":553,"timestamp":475819286609,"id":5014,"parentId":5006,"tags":{},"startTime":1764108464373,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":391,"timestamp":475819287524,"id":5015,"parentId":5006,"tags":{},"startTime":1764108464374,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":30,"timestamp":475819287915,"id":5016,"parentId":5006,"tags":{},"startTime":1764108464375,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":19,"timestamp":475819287942,"id":5017,"parentId":5006,"tags":{},"startTime":1764108464375,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":686,"timestamp":475819287963,"id":5018,"parentId":5006,"tags":{},"startTime":1764108464375,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5898,"timestamp":475819283509,"id":5006,"parentId":4978,"tags":{},"startTime":1764108464370,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":26562,"timestamp":475819264209,"id":4978,"parentId":4976,"tags":{"name":"server"},"startTime":1764108464351,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1229,"timestamp":475819290780,"id":5019,"parentId":4976,"tags":{},"startTime":1764108464377,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":34772,"timestamp":475819257409,"id":4976,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/page.tsx"},"startTime":1764108464344,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3079,"timestamp":475819296140,"id":5028,"parentId":5021,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108464383,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3095,"timestamp":475819296142,"id":5030,"parentId":5021,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108464383,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3351,"timestamp":475819296102,"id":5022,"parentId":5021,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108464383,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3801,"timestamp":475819296138,"id":5027,"parentId":5021,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108464383,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4351,"timestamp":475819296134,"id":5024,"parentId":5021,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108464383,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4402,"timestamp":475819296136,"id":5026,"parentId":5021,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108464383,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":499,"timestamp":475819300046,"id":5036,"parentId":5035,"tags":{},"startTime":1764108464387,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6434,"timestamp":475819296123,"id":5023,"parentId":5021,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108464383,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":3839,"timestamp":475819298792,"id":5034,"parentId":5033,"tags":{},"startTime":1764108464386,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":3889,"timestamp":475819298743,"id":5033,"parentId":5032,"tags":{},"startTime":1764108464385,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6952,"timestamp":475819298683,"id":5032,"parentId":5020,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"app-pages-browser"},"startTime":1764108464385,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":15360,"timestamp":475819300562,"id":5038,"parentId":5037,"tags":{},"startTime":1764108464387,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":15606,"timestamp":475819300554,"id":5037,"parentId":5035,"tags":{},"startTime":1764108464387,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":3032,"timestamp":475819316174,"id":5039,"parentId":5035,"tags":{"astUsed":"true"},"startTime":1764108464403,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":19860,"timestamp":475819300005,"id":5035,"parentId":5031,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108464387,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":23775,"timestamp":475819296141,"id":5029,"parentId":5021,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108464383,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":22952,"timestamp":475819298524,"id":5031,"parentId":5020,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108464385,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":17,"timestamp":475819323392,"id":5040,"parentId":5031,"tags":{},"startTime":1764108464410,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":27295,"timestamp":475819296135,"id":5025,"parentId":5021,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108464383,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":30591,"timestamp":475819292854,"id":5021,"parentId":5020,"tags":{},"startTime":1764108464380,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":545,"timestamp":475819324181,"id":5042,"parentId":5041,"tags":{},"startTime":1764108464411,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":475819324732,"id":5044,"parentId":5041,"tags":{},"startTime":1764108464411,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":15,"timestamp":475819324738,"id":5045,"parentId":5041,"tags":{},"startTime":1764108464411,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":1,"timestamp":475819324759,"id":5046,"parentId":5041,"tags":{},"startTime":1764108464411,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":475819324768,"id":5047,"parentId":5041,"tags":{},"startTime":1764108464411,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":327,"timestamp":475819324730,"id":5043,"parentId":5041,"tags":{},"startTime":1764108464411,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":175,"timestamp":475819325407,"id":5048,"parentId":5041,"tags":{},"startTime":1764108464412,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":659,"timestamp":475819325585,"id":5049,"parentId":5041,"tags":{},"startTime":1764108464412,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1218,"timestamp":475819326657,"id":5050,"parentId":5041,"tags":{},"startTime":1764108464413,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":48,"timestamp":475819327875,"id":5051,"parentId":5041,"tags":{},"startTime":1764108464415,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":22,"timestamp":475819327920,"id":5052,"parentId":5041,"tags":{},"startTime":1764108464415,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1471,"timestamp":475819327945,"id":5053,"parentId":5041,"tags":{},"startTime":1764108464415,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":26,"timestamp":475819329739,"id":5055,"parentId":5020,"tags":{},"startTime":1764108464416,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":51,"timestamp":475819329715,"id":5054,"parentId":5020,"tags":{},"startTime":1764108464416,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6469,"timestamp":475819323953,"id":5041,"parentId":5020,"tags":{},"startTime":1764108464411,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":37737,"timestamp":475819292696,"id":5020,"parentId":4977,"tags":{"name":"client"},"startTime":1764108464379,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2249,"timestamp":475819330439,"id":5056,"parentId":4977,"tags":{},"startTime":1764108464417,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":75812,"timestamp":475819257454,"id":4977,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/page.tsx"},"startTime":1764108464344,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":5,"timestamp":475819333959,"id":5057,"parentId":3,"tags":{},"startTime":1764108464421,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475819334711,"id":5059,"parentId":3,"tags":{},"startTime":1764108464421,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475819334954,"id":5060,"parentId":3,"tags":{},"startTime":1764108464422,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":80000,"timestamp":475819256913,"id":5063,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108464428,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7947,"timestamp":475819334426,"id":5058,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108464421,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475819342384,"id":5064,"parentId":5058,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"567132160","memory.heapUsed":"222378944","memory.heapTotal":"250576896"},"startTime":1764108464429,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11993,"timestamp":475819336653,"id":5061,"tags":{"url":"/gunbuilder/upper/upper-aero-enhanced?_rsc=3ya5y","isTurbopack":false},"startTime":1764108464423,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475819348661,"id":5065,"parentId":5061,"tags":{"url":"/gunbuilder/upper/upper-aero-enhanced?_rsc=3ya5y","memory.rss":"567803904","memory.heapUsed":"224598592","memory.heapTotal":"251166720"},"startTime":1764108464435,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":14126,"timestamp":475819336861,"id":5062,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108464424,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475819350999,"id":5066,"parentId":5062,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"567803904","memory.heapUsed":"224786360","memory.heapTotal":"251166720"},"startTime":1764108464438,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":101000,"timestamp":475819258374,"id":5067,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108464446,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":102000,"timestamp":475819258374,"id":5068,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/[categoryId]/[partId]/page.tsx","[project]/components/PricingHistoryGraph.tsx"],"page":"/gunbuilder/upper/upper-aero-enhanced","isPageHidden":false},"startTime":1764108464447,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7183,"timestamp":475828208952,"id":5079,"parentId":5072,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108473296,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7210,"timestamp":475828208955,"id":5081,"parentId":5072,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108473296,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7564,"timestamp":475828208887,"id":5073,"parentId":5072,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764108473296,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8239,"timestamp":475828208950,"id":5078,"parentId":5072,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108473296,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8843,"timestamp":475828208920,"id":5075,"parentId":5072,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764108473296,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2338,"timestamp":475828215533,"id":5085,"parentId":5084,"tags":{},"startTime":1764108473302,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2400,"timestamp":475828215473,"id":5084,"parentId":5083,"tags":{},"startTime":1764108473302,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":5562,"timestamp":475828215394,"id":5083,"parentId":5071,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"app-pages-browser"},"startTime":1764108473302,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":12384,"timestamp":475828208922,"id":5077,"parentId":5072,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108473296,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":4154,"timestamp":475828217329,"id":5087,"parentId":5086,"tags":{},"startTime":1764108473304,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":15097,"timestamp":475828208916,"id":5074,"parentId":5072,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764108473296,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":15108,"timestamp":475828208954,"id":5080,"parentId":5072,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108473296,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":11556,"timestamp":475828221513,"id":5089,"parentId":5088,"tags":{},"startTime":1764108473308,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":11706,"timestamp":475828221500,"id":5088,"parentId":5086,"tags":{},"startTime":1764108473308,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2033,"timestamp":475828233221,"id":5090,"parentId":5086,"tags":{"astUsed":"true"},"startTime":1764108473320,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":18502,"timestamp":475828217262,"id":5086,"parentId":5082,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764108473304,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":21948,"timestamp":475828215171,"id":5082,"parentId":5071,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764108473302,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":11,"timestamp":475828237196,"id":5091,"parentId":5082,"tags":{},"startTime":1764108473324,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":28305,"timestamp":475828208921,"id":5076,"parentId":5072,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764108473296,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":28527,"timestamp":475828208707,"id":5072,"parentId":5071,"tags":{},"startTime":1764108473295,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":785,"timestamp":475828238107,"id":5093,"parentId":5092,"tags":{},"startTime":1764108473325,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":475828238900,"id":5095,"parentId":5092,"tags":{},"startTime":1764108473326,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":19,"timestamp":475828238907,"id":5096,"parentId":5092,"tags":{},"startTime":1764108473326,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":475828238934,"id":5097,"parentId":5092,"tags":{},"startTime":1764108473326,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":475828238942,"id":5098,"parentId":5092,"tags":{},"startTime":1764108473326,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":217,"timestamp":475828238897,"id":5094,"parentId":5092,"tags":{},"startTime":1764108473326,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":206,"timestamp":475828239606,"id":5099,"parentId":5092,"tags":{},"startTime":1764108473326,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":518,"timestamp":475828239817,"id":5100,"parentId":5092,"tags":{},"startTime":1764108473327,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1557,"timestamp":475828240858,"id":5101,"parentId":5092,"tags":{},"startTime":1764108473328,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":66,"timestamp":475828242415,"id":5102,"parentId":5092,"tags":{},"startTime":1764108473329,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":29,"timestamp":475828242477,"id":5103,"parentId":5092,"tags":{},"startTime":1764108473329,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":2786,"timestamp":475828242509,"id":5104,"parentId":5092,"tags":{},"startTime":1764108473329,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":26,"timestamp":475828245640,"id":5106,"parentId":5071,"tags":{},"startTime":1764108473332,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":53,"timestamp":475828245616,"id":5105,"parentId":5071,"tags":{},"startTime":1764108473332,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8519,"timestamp":475828237855,"id":5092,"parentId":5071,"tags":{},"startTime":1764108473325,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":37895,"timestamp":475828208497,"id":5071,"parentId":5069,"tags":{"name":"client"},"startTime":1764108473295,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2787,"timestamp":475828246406,"id":5107,"parentId":5069,"tags":{},"startTime":1764108473333,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":46785,"timestamp":475828202817,"id":5069,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/page.tsx"},"startTime":1764108473290,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":1,"timestamp":475828251453,"id":5110,"parentId":3,"tags":{},"startTime":1764108473338,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475828251480,"id":5111,"parentId":3,"tags":{},"startTime":1764108473338,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":0,"timestamp":475828251493,"id":5112,"parentId":3,"tags":{},"startTime":1764108473338,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":51000,"timestamp":475828203465,"id":5118,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108473343,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":55000,"timestamp":475828203638,"id":5122,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder/upper/upper-aero-enhanced","isPageHidden":false},"startTime":1764108473346,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7182,"timestamp":475828252785,"id":5114,"parentId":5109,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108473339,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7188,"timestamp":475828252790,"id":5116,"parentId":5109,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108473339,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7545,"timestamp":475828252788,"id":5115,"parentId":5109,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108473339,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7734,"timestamp":475828252762,"id":5113,"parentId":5109,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108473339,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1081,"timestamp":475828259561,"id":5121,"parentId":5120,"tags":{},"startTime":1764108473346,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1134,"timestamp":475828259510,"id":5120,"parentId":5119,"tags":{},"startTime":1764108473346,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":1698,"timestamp":475828259344,"id":5119,"parentId":5108,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"rsc"},"startTime":1764108473346,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":58000,"timestamp":475828202884,"id":5123,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":true},"startTime":1764108473349,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":10321,"timestamp":475828252792,"id":5117,"parentId":5109,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764108473339,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":6114,"timestamp":475828265228,"id":5141,"parentId":5140,"tags":{},"startTime":1764108473352,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":6184,"timestamp":475828265161,"id":5140,"parentId":5139,"tags":{},"startTime":1764108473352,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":8393,"timestamp":475828265032,"id":5139,"parentId":5108,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx","layer":"ssr"},"startTime":1764108473352,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":26497,"timestamp":475828250905,"id":5109,"parentId":5108,"tags":{},"startTime":1764108473338,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1378,"timestamp":475828278458,"id":5143,"parentId":5142,"tags":{},"startTime":1764108473365,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":475828279850,"id":5145,"parentId":5142,"tags":{},"startTime":1764108473367,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1011,"timestamp":475828279861,"id":5146,"parentId":5142,"tags":{},"startTime":1764108473367,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":475828280881,"id":5147,"parentId":5142,"tags":{},"startTime":1764108473368,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":475828280893,"id":5148,"parentId":5142,"tags":{},"startTime":1764108473368,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1246,"timestamp":475828279846,"id":5144,"parentId":5142,"tags":{},"startTime":1764108473367,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":177,"timestamp":475828281497,"id":5149,"parentId":5142,"tags":{},"startTime":1764108473368,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":295,"timestamp":475828281678,"id":5150,"parentId":5142,"tags":{},"startTime":1764108473368,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":417,"timestamp":475828282329,"id":5151,"parentId":5142,"tags":{},"startTime":1764108473369,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":27,"timestamp":475828282746,"id":5152,"parentId":5142,"tags":{},"startTime":1764108473369,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":21,"timestamp":475828282770,"id":5153,"parentId":5142,"tags":{},"startTime":1764108473369,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":64,"timestamp":475828282794,"id":5154,"parentId":5142,"tags":{},"startTime":1764108473369,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":5910,"timestamp":475828278265,"id":5142,"parentId":5108,"tags":{},"startTime":1764108473365,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":35044,"timestamp":475828250732,"id":5108,"parentId":5070,"tags":{"name":"server"},"startTime":1764108473337,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":1289,"timestamp":475828285793,"id":5155,"parentId":5070,"tags":{},"startTime":1764108473372,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":84827,"timestamp":475828203003,"id":5070,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/[partId]/page.tsx"},"startTime":1764108473290,"traceId":"e274ac96b05c42d4"}]
-[{"name":"handle-request","duration":11330,"timestamp":475828291536,"id":5157,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108473378,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475828302885,"id":5159,"parentId":5157,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"576077824","memory.heapUsed":"219381664","memory.heapTotal":"258670592"},"startTime":1764108473390,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11735,"timestamp":475828291222,"id":5156,"tags":{"url":"/gunbuilder?_rsc=1kvbu","isTurbopack":false},"startTime":1764108473378,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475828302961,"id":5160,"parentId":5156,"tags":{"url":"/gunbuilder?_rsc=1kvbu","memory.rss":"576077824","memory.heapUsed":"219394912","memory.heapTotal":"258670592"},"startTime":1764108473390,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11375,"timestamp":475828291905,"id":5158,"tags":{"url":"/gunbuilder/upper/upper-aero-enhanced?_rsc=3ya5y","isTurbopack":false},"startTime":1764108473379,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475828303294,"id":5161,"parentId":5158,"tags":{"url":"/gunbuilder/upper/upper-aero-enhanced?_rsc=3ya5y","memory.rss":"576077824","memory.heapUsed":"219423712","memory.heapTotal":"258670592"},"startTime":1764108473390,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11295,"timestamp":475891812653,"id":5162,"tags":{"url":"/gunbuilder/upper?_rsc=soxuv","isTurbopack":false},"startTime":1764108536899,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475891823985,"id":5163,"parentId":5162,"tags":{"url":"/gunbuilder/upper?_rsc=soxuv","memory.rss":"519749632","memory.heapUsed":"190554872","memory.heapTotal":"204832768"},"startTime":1764108536911,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":12851,"timestamp":475892450120,"id":5164,"tags":{"url":"/gunbuilder?_rsc=boq32","isTurbopack":false},"startTime":1764108537537,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475892463011,"id":5165,"parentId":5164,"tags":{"url":"/gunbuilder?_rsc=boq32","memory.rss":"519749632","memory.heapUsed":"191185840","memory.heapTotal":"205094912"},"startTime":1764108537550,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6237,"timestamp":475894995583,"id":5166,"tags":{"url":"/gunbuilder/lower?_rsc=1jn8g","isTurbopack":false},"startTime":1764108540082,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475895001840,"id":5167,"parentId":5166,"tags":{"url":"/gunbuilder/lower?_rsc=1jn8g","memory.rss":"519749632","memory.heapUsed":"191996888","memory.heapTotal":"205881344"},"startTime":1764108540088,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4237,"timestamp":475896471522,"id":5168,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=uiigs","isTurbopack":false},"startTime":1764108541558,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475896475783,"id":5169,"parentId":5168,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=uiigs","memory.rss":"520175616","memory.heapUsed":"189390240","memory.heapTotal":"199589888"},"startTime":1764108541562,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":12470,"timestamp":475900275155,"id":5170,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=boq32","isTurbopack":false},"startTime":1764108545362,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475900287660,"id":5171,"parentId":5170,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=boq32","memory.rss":"520175616","memory.heapUsed":"189363704","memory.heapTotal":"199852032"},"startTime":1764108545374,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7578,"timestamp":475900292702,"id":5172,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1fb4y","isTurbopack":false},"startTime":1764108545379,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475900300302,"id":5173,"parentId":5172,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1fb4y","memory.rss":"520175616","memory.heapUsed":"190036936","memory.heapTotal":"200376320"},"startTime":1764108545387,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10296,"timestamp":475901816344,"id":5174,"tags":{"url":"/gunbuilder/barrel?_rsc=1jn8g","isTurbopack":false},"startTime":1764108546903,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475901826679,"id":5175,"parentId":5174,"tags":{"url":"/gunbuilder/barrel?_rsc=1jn8g","memory.rss":"520175616","memory.heapUsed":"190060032","memory.heapTotal":"199589888"},"startTime":1764108546913,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6698,"timestamp":475901832653,"id":5176,"tags":{"url":"/gunbuilder/barrel?_rsc=2b9yl","isTurbopack":false},"startTime":1764108546919,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475901839371,"id":5177,"parentId":5176,"tags":{"url":"/gunbuilder/barrel?_rsc=2b9yl","memory.rss":"520175616","memory.heapUsed":"190163376","memory.heapTotal":"200638464"},"startTime":1764108546926,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11385,"timestamp":475903646600,"id":5178,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-criterion-16&_rsc=2t5kv","isTurbopack":false},"startTime":1764108548733,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":475903658029,"id":5179,"parentId":5178,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-criterion-16&_rsc=2t5kv","memory.rss":"520175616","memory.heapUsed":"190032656","memory.heapTotal":"200638464"},"startTime":1764108548745,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8609,"timestamp":475903663089,"id":5180,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-criterion-16&_rsc=zfc1s","isTurbopack":false},"startTime":1764108548750,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475903671721,"id":5181,"parentId":5180,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-criterion-16&_rsc=zfc1s","memory.rss":"520175616","memory.heapUsed":"189895024","memory.heapTotal":"199589888"},"startTime":1764108548758,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10995,"timestamp":475905101980,"id":5182,"tags":{"url":"/gunbuilder/handguard?_rsc=1jn8g","isTurbopack":false},"startTime":1764108550189,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":14,"timestamp":475905113052,"id":5183,"parentId":5182,"tags":{"url":"/gunbuilder/handguard?_rsc=1jn8g","memory.rss":"520192000","memory.heapUsed":"189984048","memory.heapTotal":"199065600"},"startTime":1764108550200,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7336,"timestamp":475906428754,"id":5184,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=1wjnh","isTurbopack":false},"startTime":1764108551515,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475906436132,"id":5185,"parentId":5184,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=1wjnh","memory.rss":"520192000","memory.heapUsed":"189867040","memory.heapTotal":"199065600"},"startTime":1764108551523,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":11174,"timestamp":475907715724,"id":5186,"tags":{"url":"/gunbuilder/stock?_rsc=1jn8g","isTurbopack":false},"startTime":1764108552802,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475907726934,"id":5187,"parentId":5186,"tags":{"url":"/gunbuilder/stock?_rsc=1jn8g","memory.rss":"520192000","memory.heapUsed":"189760200","memory.heapTotal":"198803456"},"startTime":1764108552814,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8665,"timestamp":475910163655,"id":5188,"tags":{"url":"/gunbuilder/stock/stock-b5-bravo?_rsc=g9x6a","isTurbopack":false},"startTime":1764108555250,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475910172368,"id":5189,"parentId":5188,"tags":{"url":"/gunbuilder/stock/stock-b5-bravo?_rsc=g9x6a","memory.rss":"520192000","memory.heapUsed":"189744208","memory.heapTotal":"198803456"},"startTime":1764108555259,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5803,"timestamp":475910175822,"id":5190,"tags":{"url":"/gunbuilder/stock/stock-b5-bravo?_rsc=r042u","isTurbopack":false},"startTime":1764108555262,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475910181646,"id":5191,"parentId":5190,"tags":{"url":"/gunbuilder/stock/stock-b5-bravo?_rsc=r042u","memory.rss":"520192000","memory.heapUsed":"189857576","memory.heapTotal":"199852032"},"startTime":1764108555268,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10634,"timestamp":475913130506,"id":5192,"tags":{"url":"/gunbuilder?select=stock%3Astock-b5-bravo&_rsc=hsc7p","isTurbopack":false},"startTime":1764108558217,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475913141186,"id":5193,"parentId":5192,"tags":{"url":"/gunbuilder?select=stock%3Astock-b5-bravo&_rsc=hsc7p","memory.rss":"520192000","memory.heapUsed":"189759360","memory.heapTotal":"199589888"},"startTime":1764108558228,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10765,"timestamp":475915232258,"id":5194,"tags":{"url":"/gunbuilder/optic?_rsc=1jn8g","isTurbopack":false},"startTime":1764108560319,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475915243056,"id":5195,"parentId":5194,"tags":{"url":"/gunbuilder/optic?_rsc=1jn8g","memory.rss":"520192000","memory.heapUsed":"189835576","memory.heapTotal":"199852032"},"startTime":1764108560330,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10558,"timestamp":475916601224,"id":5196,"tags":{"url":"/gunbuilder?select=optic%3Aoptic-eotech-exps3&_rsc=kbx68","isTurbopack":false},"startTime":1764108561688,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":2,"timestamp":475916611870,"id":5197,"parentId":5196,"tags":{"url":"/gunbuilder?select=optic%3Aoptic-eotech-exps3&_rsc=kbx68","memory.rss":"520192000","memory.heapUsed":"190455400","memory.heapTotal":"200376320"},"startTime":1764108561699,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9577,"timestamp":475916614406,"id":5198,"tags":{"url":"/gunbuilder?select=optic%3Aoptic-eotech-exps3&_rsc=1okqm","isTurbopack":false},"startTime":1764108561701,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":475916624014,"id":5199,"parentId":5198,"tags":{"url":"/gunbuilder?select=optic%3Aoptic-eotech-exps3&_rsc=1okqm","memory.rss":"520192000","memory.heapUsed":"190346896","memory.heapTotal":"199589888"},"startTime":1764108561711,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":10440,"timestamp":475942647254,"id":5200,"tags":{"url":"/gunbuilder/build?_rsc=1jn8g","isTurbopack":false},"startTime":1764108587734,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":475942657722,"id":5201,"parentId":5200,"tags":{"url":"/gunbuilder/build?_rsc=1jn8g","memory.rss":"520585216","memory.heapUsed":"190966792","memory.heapTotal":"199720960"},"startTime":1764108587744,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":7777,"timestamp":476057075969,"id":5202,"tags":{"url":"/gunbuilder?_rsc=x5p1f","isTurbopack":false},"startTime":1764108702162,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":476057083781,"id":5203,"parentId":5202,"tags":{"url":"/gunbuilder?_rsc=x5p1f","memory.rss":"520585216","memory.heapUsed":"190645608","memory.heapTotal":"199196672"},"startTime":1764108702170,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":13093,"timestamp":476061446446,"id":5204,"tags":{"url":"/gunbuilder/lower?_rsc=fbwoq","isTurbopack":false},"startTime":1764108706533,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":476061459570,"id":5205,"parentId":5204,"tags":{"url":"/gunbuilder/lower?_rsc=fbwoq","memory.rss":"520585216","memory.heapUsed":"190711560","memory.heapTotal":"199196672"},"startTime":1764108706546,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":13042,"timestamp":476063126350,"id":5206,"tags":{"url":"/gunbuilder/lower/lower-aero-m4e1?_rsc=qs1sd","isTurbopack":false},"startTime":1764108708213,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":476063139427,"id":5207,"parentId":5206,"tags":{"url":"/gunbuilder/lower/lower-aero-m4e1?_rsc=qs1sd","memory.rss":"520585216","memory.heapUsed":"190700984","memory.heapTotal":"199196672"},"startTime":1764108708226,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9991,"timestamp":476081073668,"id":5208,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","isTurbopack":false},"startTime":1764108726160,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":476081083724,"id":5209,"parentId":5208,"tags":{"url":"/gunbuilder?select=lower%3Alower-aero-m4e1&_rsc=1kfpz","memory.rss":"520585216","memory.heapUsed":"190687952","memory.heapTotal":"199196672"},"startTime":1764108726170,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":57514,"timestamp":486240628730,"id":5210,"tags":{"url":"/gunbuilder","isTurbopack":false},"startTime":1764118885710,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":486240686285,"id":5211,"parentId":5210,"tags":{"url":"/gunbuilder","memory.rss":"521043968","memory.heapUsed":"192825976","memory.heapTotal":"202604544"},"startTime":1764118885768,"traceId":"e274ac96b05c42d4"},{"name":"client-success","duration":3,"timestamp":486240889598,"id":5212,"parentId":3,"tags":{},"startTime":1764118885971,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":13441,"timestamp":486243164918,"id":5213,"tags":{"url":"/gunbuilder/lower?_rsc=1acsq","isTurbopack":false},"startTime":1764118888247,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":486243178400,"id":5214,"parentId":5213,"tags":{"url":"/gunbuilder/lower?_rsc=1acsq","memory.rss":"521060352","memory.heapUsed":"193450328","memory.heapTotal":"202604544"},"startTime":1764118888260,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6087,"timestamp":486243185174,"id":5215,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","isTurbopack":false},"startTime":1764118888267,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":486243191281,"id":5216,"parentId":5215,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","memory.rss":"521060352","memory.heapUsed":"193599680","memory.heapTotal":"202604544"},"startTime":1764118888273,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":9619,"timestamp":486254517510,"id":5217,"tags":{"url":"/gunbuilder/upper?_rsc=1acsq","isTurbopack":false},"startTime":1764118899599,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":486254527174,"id":5218,"parentId":5217,"tags":{"url":"/gunbuilder/upper?_rsc=1acsq","memory.rss":"521060352","memory.heapUsed":"193836352","memory.heapTotal":"201555968"},"startTime":1764118899609,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6588,"timestamp":486254531843,"id":5219,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","isTurbopack":false},"startTime":1764118899613,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":486254538452,"id":5220,"parentId":5219,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","memory.rss":"521076736","memory.heapUsed":"193215216","memory.heapTotal":"202604544"},"startTime":1764118899620,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":5900,"timestamp":486269859113,"id":5221,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1d33p","isTurbopack":false},"startTime":1764118914941,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":486269865050,"id":5222,"parentId":5221,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1d33p","memory.rss":"521076736","memory.heapUsed":"193907264","memory.heapTotal":"202604544"},"startTime":1764118914947,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6390,"timestamp":486269867124,"id":5223,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1fb4y","isTurbopack":false},"startTime":1764118914949,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":486269873546,"id":5224,"parentId":5223,"tags":{"url":"/gunbuilder?select=upper%3Aupper-aero-enhanced&_rsc=1fb4y","memory.rss":"521076736","memory.heapUsed":"193771128","memory.heapTotal":"201555968"},"startTime":1764118914955,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":12018,"timestamp":486272763583,"id":5225,"tags":{"url":"/gunbuilder/stock?_rsc=1acsq","isTurbopack":false},"startTime":1764118917845,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":486272775633,"id":5226,"parentId":5225,"tags":{"url":"/gunbuilder/stock?_rsc=1acsq","memory.rss":"521076736","memory.heapUsed":"193886608","memory.heapTotal":"201293824"},"startTime":1764118917857,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6061,"timestamp":486272780804,"id":5227,"tags":{"url":"/gunbuilder/stock?_rsc=iik8j","isTurbopack":false},"startTime":1764118917862,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":486272786878,"id":5228,"parentId":5227,"tags":{"url":"/gunbuilder/stock?_rsc=iik8j","memory.rss":"521093120","memory.heapUsed":"193984656","memory.heapTotal":"202342400"},"startTime":1764118917868,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7162,"timestamp":486316587088,"id":5234,"parentId":5232,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764118961669,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7169,"timestamp":486316587091,"id":5235,"parentId":5232,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764118961669,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7317,"timestamp":486316587096,"id":5237,"parentId":5232,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764118961669,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7822,"timestamp":486316587056,"id":5233,"parentId":5232,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764118961669,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":984,"timestamp":486316593919,"id":5240,"parentId":5239,"tags":{},"startTime":1764118961676,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1062,"timestamp":486316593841,"id":5239,"parentId":5238,"tags":{},"startTime":1764118961675,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2507,"timestamp":486316593630,"id":5238,"parentId":5231,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"rsc"},"startTime":1764118961675,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":33461,"timestamp":486316587093,"id":5236,"parentId":5232,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764118961669,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2353,"timestamp":486316623266,"id":5258,"parentId":5257,"tags":{},"startTime":1764118961705,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2448,"timestamp":486316623176,"id":5257,"parentId":5256,"tags":{},"startTime":1764118961705,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":6862,"timestamp":486316623033,"id":5256,"parentId":5231,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"ssr"},"startTime":1764118961705,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":47567,"timestamp":486316585834,"id":5232,"parentId":5231,"tags":{},"startTime":1764118961667,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1173,"timestamp":486316634508,"id":5260,"parentId":5259,"tags":{},"startTime":1764118961716,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":486316635688,"id":5262,"parentId":5259,"tags":{},"startTime":1764118961717,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1721,"timestamp":486316635735,"id":5263,"parentId":5259,"tags":{},"startTime":1764118961717,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":6,"timestamp":486316637498,"id":5264,"parentId":5259,"tags":{},"startTime":1764118961719,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":486316637533,"id":5265,"parentId":5259,"tags":{},"startTime":1764118961719,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":2158,"timestamp":486316635686,"id":5261,"parentId":5259,"tags":{},"startTime":1764118961717,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":216,"timestamp":486316638368,"id":5266,"parentId":5259,"tags":{},"startTime":1764118961720,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":624,"timestamp":486316638588,"id":5267,"parentId":5259,"tags":{},"startTime":1764118961720,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":807,"timestamp":486316639778,"id":5268,"parentId":5259,"tags":{},"startTime":1764118961721,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":113,"timestamp":486316640585,"id":5269,"parentId":5259,"tags":{},"startTime":1764118961722,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":37,"timestamp":486316640688,"id":5270,"parentId":5259,"tags":{},"startTime":1764118961722,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1229,"timestamp":486316640727,"id":5271,"parentId":5259,"tags":{},"startTime":1764118961722,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":8802,"timestamp":486316634334,"id":5259,"parentId":5231,"tags":{},"startTime":1764118961716,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":59314,"timestamp":486316585671,"id":5231,"parentId":5229,"tags":{"name":"server"},"startTime":1764118961667,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2499,"timestamp":486316645002,"id":5272,"parentId":5229,"tags":{},"startTime":1764118961727,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":68177,"timestamp":486316579799,"id":5229,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/page.tsx"},"startTime":1764118961661,"traceId":"e274ac96b05c42d4"}]
-[{"name":"add-entry","duration":3581,"timestamp":486316652061,"id":5283,"parentId":5274,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764118961734,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3881,"timestamp":486316652016,"id":5275,"parentId":5274,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764118961734,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4129,"timestamp":486316652060,"id":5282,"parentId":5274,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764118961734,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4427,"timestamp":486316652057,"id":5280,"parentId":5274,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764118961734,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4981,"timestamp":486316652049,"id":5277,"parentId":5274,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764118961734,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5025,"timestamp":486316652054,"id":5279,"parentId":5274,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764118961734,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":461,"timestamp":486316656623,"id":5289,"parentId":5288,"tags":{},"startTime":1764118961738,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":7855,"timestamp":486316652044,"id":5276,"parentId":5274,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764118961734,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":4910,"timestamp":486316655068,"id":5287,"parentId":5286,"tags":{},"startTime":1764118961737,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":4973,"timestamp":486316655006,"id":5286,"parentId":5285,"tags":{},"startTime":1764118961737,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":9232,"timestamp":486316654935,"id":5285,"parentId":5273,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"app-pages-browser"},"startTime":1764118961737,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":20573,"timestamp":486316657099,"id":5291,"parentId":5290,"tags":{},"startTime":1764118961739,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":20875,"timestamp":486316657092,"id":5290,"parentId":5288,"tags":{},"startTime":1764118961739,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":3890,"timestamp":486316677980,"id":5292,"parentId":5288,"tags":{"astUsed":"true"},"startTime":1764118961760,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":27295,"timestamp":486316656546,"id":5288,"parentId":5284,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764118961738,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":31683,"timestamp":486316654504,"id":5284,"parentId":5273,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764118961736,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":30,"timestamp":486316696063,"id":5293,"parentId":5284,"tags":{},"startTime":1764118961778,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":46017,"timestamp":486316652051,"id":5278,"parentId":5274,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764118961734,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":47395,"timestamp":486316652059,"id":5281,"parentId":5274,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764118961734,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":50657,"timestamp":486316648806,"id":5274,"parentId":5273,"tags":{},"startTime":1764118961730,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":757,"timestamp":486316700421,"id":5295,"parentId":5294,"tags":{},"startTime":1764118961782,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":3,"timestamp":486316701187,"id":5297,"parentId":5294,"tags":{},"startTime":1764118961783,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":19,"timestamp":486316701225,"id":5298,"parentId":5294,"tags":{},"startTime":1764118961783,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":4,"timestamp":486316701253,"id":5299,"parentId":5294,"tags":{},"startTime":1764118961783,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":486316701266,"id":5300,"parentId":5294,"tags":{},"startTime":1764118961783,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":346,"timestamp":486316701184,"id":5296,"parentId":5294,"tags":{},"startTime":1764118961783,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":229,"timestamp":486316702085,"id":5301,"parentId":5294,"tags":{},"startTime":1764118961784,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":835,"timestamp":486316702321,"id":5302,"parentId":5294,"tags":{},"startTime":1764118961784,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":2112,"timestamp":486316703870,"id":5303,"parentId":5294,"tags":{},"startTime":1764118961785,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":95,"timestamp":486316705981,"id":5304,"parentId":5294,"tags":{},"startTime":1764118961788,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":40,"timestamp":486316706070,"id":5305,"parentId":5294,"tags":{},"startTime":1764118961788,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":2592,"timestamp":486316706113,"id":5306,"parentId":5294,"tags":{},"startTime":1764118961788,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":73,"timestamp":486316709348,"id":5308,"parentId":5273,"tags":{},"startTime":1764118961791,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":110,"timestamp":486316709314,"id":5307,"parentId":5273,"tags":{},"startTime":1764118961791,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":10285,"timestamp":486316700157,"id":5294,"parentId":5273,"tags":{},"startTime":1764118961782,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":61801,"timestamp":486316648662,"id":5273,"parentId":5230,"tags":{"name":"client"},"startTime":1764118961730,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2970,"timestamp":486316710477,"id":5309,"parentId":5230,"tags":{},"startTime":1764118961792,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":134212,"timestamp":486316579901,"id":5230,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/page.tsx"},"startTime":1764118961661,"traceId":"e274ac96b05c42d4"}]
-[{"name":"client-success","duration":14,"timestamp":486316715375,"id":5310,"parentId":3,"tags":{},"startTime":1764118961797,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":18356,"timestamp":486316726030,"id":5311,"tags":{"url":"/gunbuilder/stock?_rsc=93nfy","isTurbopack":false},"startTime":1764118961808,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":486316744404,"id":5312,"parentId":5311,"tags":{"url":"/gunbuilder/stock?_rsc=93nfy","memory.rss":"548110336","memory.heapUsed":"202088008","memory.heapTotal":"227196928"},"startTime":1764118961826,"traceId":"e274ac96b05c42d4"},{"name":"client-hmr-latency","duration":177000,"timestamp":486316580507,"id":5313,"parentId":3,"tags":{"updatedModules":["[project]/app/gunbuilder/[categoryId]/page.tsx"],"page":"/gunbuilder/stock","isPageHidden":true},"startTime":1764118961839,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":13868,"timestamp":486321691482,"id":5314,"tags":{"url":"/gunbuilder?_rsc=x5p1f","isTurbopack":false},"startTime":1764118966773,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":486321705418,"id":5315,"parentId":5314,"tags":{"url":"/gunbuilder?_rsc=x5p1f","memory.rss":"548356096","memory.heapUsed":"203636232","memory.heapTotal":"227426304"},"startTime":1764118966787,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":8379,"timestamp":486322827925,"id":5316,"tags":{"url":"/gunbuilder/handguard?_rsc=1jn8g","isTurbopack":false},"startTime":1764118967910,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":486322836335,"id":5317,"parentId":5316,"tags":{"url":"/gunbuilder/handguard?_rsc=1jn8g","memory.rss":"548356096","memory.heapUsed":"204463576","memory.heapTotal":"227426304"},"startTime":1764118967918,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":4274,"timestamp":486322839129,"id":5318,"tags":{"url":"/gunbuilder/handguard?_rsc=rs5ev","isTurbopack":false},"startTime":1764118967921,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":486322843454,"id":5319,"parentId":5318,"tags":{"url":"/gunbuilder/handguard?_rsc=rs5ev","memory.rss":"548356096","memory.heapUsed":"205313600","memory.heapTotal":"227426304"},"startTime":1764118967925,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":14555,"timestamp":486329022428,"id":5320,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=1wjnh","isTurbopack":false},"startTime":1764118974104,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":1,"timestamp":486329037065,"id":5321,"parentId":5320,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=1wjnh","memory.rss":"548356096","memory.heapUsed":"205963192","memory.heapTotal":"227426304"},"startTime":1764118974119,"traceId":"e274ac96b05c42d4"},{"name":"handle-request","duration":6854,"timestamp":486329040878,"id":5322,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=5xggt","isTurbopack":false},"startTime":1764118974122,"traceId":"e274ac96b05c42d4"},{"name":"memory-usage","duration":0,"timestamp":486329047761,"id":5323,"parentId":5322,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-geissele-mk8&_rsc=5xggt","memory.rss":"548356096","memory.heapUsed":"206610288","memory.heapTotal":"227426304"},"startTime":1764118974129,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4827,"timestamp":486332084433,"id":5330,"parentId":5327,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764118977166,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":4833,"timestamp":486332084437,"id":5332,"parentId":5327,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764118977166,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":5037,"timestamp":486332084430,"id":5329,"parentId":5327,"tags":{"request":"next-app-loader?name=app%2Fpage&page=%2Fpage&appPaths=%2Fpage&pagePath=private-next-app-dir%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764118977166,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":952,"timestamp":486332088861,"id":5335,"parentId":5334,"tags":{},"startTime":1764118977170,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":1037,"timestamp":486332088778,"id":5334,"parentId":5333,"tags":{},"startTime":1764118977170,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":2120,"timestamp":486332088576,"id":5333,"parentId":5326,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"rsc"},"startTime":1764118977170,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6612,"timestamp":486332084396,"id":5328,"parentId":5327,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764118977166,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6762,"timestamp":486332084435,"id":5331,"parentId":5327,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764118977166,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":2013,"timestamp":486332094179,"id":5353,"parentId":5352,"tags":{},"startTime":1764118977176,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2089,"timestamp":486332094107,"id":5352,"parentId":5351,"tags":{},"startTime":1764118977176,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":5572,"timestamp":486332093977,"id":5351,"parentId":5326,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"ssr"},"startTime":1764118977176,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":16939,"timestamp":486332083414,"id":5327,"parentId":5326,"tags":{},"startTime":1764118977165,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":1490,"timestamp":486332101429,"id":5355,"parentId":5354,"tags":{},"startTime":1764118977183,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":1,"timestamp":486332102928,"id":5357,"parentId":5354,"tags":{},"startTime":1764118977185,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":1311,"timestamp":486332102937,"id":5358,"parentId":5354,"tags":{},"startTime":1764118977185,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":3,"timestamp":486332104262,"id":5359,"parentId":5354,"tags":{},"startTime":1764118977186,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":1,"timestamp":486332104271,"id":5360,"parentId":5354,"tags":{},"startTime":1764118977186,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":1569,"timestamp":486332102925,"id":5356,"parentId":5354,"tags":{},"startTime":1764118977185,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":323,"timestamp":486332104956,"id":5361,"parentId":5354,"tags":{},"startTime":1764118977187,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":483,"timestamp":486332105296,"id":5362,"parentId":5354,"tags":{},"startTime":1764118977187,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":755,"timestamp":486332106257,"id":5363,"parentId":5354,"tags":{},"startTime":1764118977188,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":36,"timestamp":486332107012,"id":5364,"parentId":5354,"tags":{},"startTime":1764118977189,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":23,"timestamp":486332107045,"id":5365,"parentId":5354,"tags":{},"startTime":1764118977189,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":92,"timestamp":486332107071,"id":5366,"parentId":5354,"tags":{},"startTime":1764118977189,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6886,"timestamp":486332101239,"id":5354,"parentId":5326,"tags":{},"startTime":1764118977183,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":27057,"timestamp":486332083111,"id":5326,"parentId":5324,"tags":{"name":"server"},"startTime":1764118977165,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2215,"timestamp":486332110196,"id":5367,"parentId":5324,"tags":{},"startTime":1764118977192,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-server","duration":36259,"timestamp":486332076326,"id":5324,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/page.tsx"},"startTime":1764118977158,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2045,"timestamp":486332116446,"id":5378,"parentId":5369,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764118977198,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2349,"timestamp":486332116411,"id":5370,"parentId":5369,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764118977198,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2589,"timestamp":486332116445,"id":5377,"parentId":5369,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2F%5BpartId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764118977198,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":2911,"timestamp":486332116442,"id":5375,"parentId":5369,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764118977198,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":3429,"timestamp":486332116437,"id":5372,"parentId":5369,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Flink.js%22%2C%22ids%22%3A%5B%22*%22%5D%7D&server=false!"},"startTime":1764118977198,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-transform","duration":1992,"timestamp":486332117941,"id":5382,"parentId":5381,"tags":{},"startTime":1764118977200,"traceId":"e274ac96b05c42d4"},{"name":"next-swc-loader","duration":2052,"timestamp":486332117882,"id":5381,"parentId":5380,"tags":{},"startTime":1764118977199,"traceId":"e274ac96b05c42d4"},{"name":"build-module-tsx","duration":4868,"timestamp":486332117820,"id":5380,"parentId":5368,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/page.tsx","layer":"app-pages-browser"},"startTime":1764118977199,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":6436,"timestamp":486332116441,"id":5374,"parentId":5369,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764118977198,"traceId":"e274ac96b05c42d4"},{"name":"read-resource","duration":3414,"timestamp":486332119470,"id":5384,"parentId":5383,"tags":{},"startTime":1764118977201,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8638,"timestamp":486332116434,"id":5371,"parentId":5369,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764118977198,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":8630,"timestamp":486332116444,"id":5376,"parentId":5369,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764118977198,"traceId":"e274ac96b05c42d4"},{"name":"postcss-process","duration":13591,"timestamp":486332122900,"id":5386,"parentId":5385,"tags":{},"startTime":1764118977204,"traceId":"e274ac96b05c42d4"},{"name":"postcss-loader","duration":13839,"timestamp":486332122892,"id":5385,"parentId":5383,"tags":{},"startTime":1764118977204,"traceId":"e274ac96b05c42d4"},{"name":"css-loader","duration":2234,"timestamp":486332136747,"id":5387,"parentId":5383,"tags":{"astUsed":"true"},"startTime":1764118977218,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":20192,"timestamp":486332119416,"id":5383,"parentId":5379,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css.webpack[javascript/auto]!=!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/css-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[2]!/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/build/webpack/loaders/postcss-loader/src/index.js??ruleSet[1].rules[13].oneOf[12].use[3]!/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":null},"startTime":1764118977201,"traceId":"e274ac96b05c42d4"},{"name":"build-module-css","duration":23775,"timestamp":486332117641,"id":5379,"parentId":5368,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"app-pages-browser"},"startTime":1764118977199,"traceId":"e274ac96b05c42d4"},{"name":"build-module","duration":10,"timestamp":486332141493,"id":5388,"parentId":5379,"tags":{},"startTime":1764118977223,"traceId":"e274ac96b05c42d4"},{"name":"add-entry","duration":25142,"timestamp":486332116440,"id":5373,"parentId":5369,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764118977198,"traceId":"e274ac96b05c42d4"},{"name":"make","duration":28271,"timestamp":486332113320,"id":5369,"parentId":5368,"tags":{},"startTime":1764118977195,"traceId":"e274ac96b05c42d4"},{"name":"chunk-graph","duration":742,"timestamp":486332142474,"id":5390,"parentId":5389,"tags":{},"startTime":1764118977224,"traceId":"e274ac96b05c42d4"},{"name":"optimize-modules","duration":2,"timestamp":486332143225,"id":5392,"parentId":5389,"tags":{},"startTime":1764118977225,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunks","duration":17,"timestamp":486332143233,"id":5393,"parentId":5389,"tags":{},"startTime":1764118977225,"traceId":"e274ac96b05c42d4"},{"name":"optimize-tree","duration":2,"timestamp":486332143257,"id":5394,"parentId":5389,"tags":{},"startTime":1764118977225,"traceId":"e274ac96b05c42d4"},{"name":"optimize-chunk-modules","duration":2,"timestamp":486332143268,"id":5395,"parentId":5389,"tags":{},"startTime":1764118977225,"traceId":"e274ac96b05c42d4"},{"name":"optimize","duration":189,"timestamp":486332143222,"id":5391,"parentId":5389,"tags":{},"startTime":1764118977225,"traceId":"e274ac96b05c42d4"},{"name":"module-hash","duration":207,"timestamp":486332143837,"id":5396,"parentId":5389,"tags":{},"startTime":1764118977225,"traceId":"e274ac96b05c42d4"},{"name":"code-generation","duration":492,"timestamp":486332144049,"id":5397,"parentId":5389,"tags":{},"startTime":1764118977226,"traceId":"e274ac96b05c42d4"},{"name":"hash","duration":1266,"timestamp":486332145150,"id":5398,"parentId":5389,"tags":{},"startTime":1764118977227,"traceId":"e274ac96b05c42d4"},{"name":"code-generation-jobs","duration":56,"timestamp":486332146416,"id":5399,"parentId":5389,"tags":{},"startTime":1764118977228,"traceId":"e274ac96b05c42d4"},{"name":"module-assets","duration":27,"timestamp":486332146468,"id":5400,"parentId":5389,"tags":{},"startTime":1764118977228,"traceId":"e274ac96b05c42d4"},{"name":"create-chunk-assets","duration":1556,"timestamp":486332146498,"id":5401,"parentId":5389,"tags":{},"startTime":1764118977228,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-generateClientManifest","duration":24,"timestamp":486332148407,"id":5403,"parentId":5368,"tags":{},"startTime":1764118977230,"traceId":"e274ac96b05c42d4"},{"name":"NextJsBuildManifest-createassets","duration":53,"timestamp":486332148380,"id":5402,"parentId":5368,"tags":{},"startTime":1764118977230,"traceId":"e274ac96b05c42d4"},{"name":"seal","duration":6931,"timestamp":486332142225,"id":5389,"parentId":5368,"tags":{},"startTime":1764118977224,"traceId":"e274ac96b05c42d4"},{"name":"webpack-compilation","duration":35999,"timestamp":486332113171,"id":5368,"parentId":5325,"tags":{"name":"client"},"startTime":1764118977195,"traceId":"e274ac96b05c42d4"},{"name":"emit","duration":2216,"timestamp":486332149180,"id":5404,"parentId":5325,"tags":{},"startTime":1764118977231,"traceId":"e274ac96b05c42d4"},{"name":"webpack-invalidated-client","duration":75562,"timestamp":486332076382,"id":5325,"parentId":3,"tags":{"trigger":"app/gunbuilder/[categoryId]/page.tsx"},"startTime":1764118977158,"traceId":"e274ac96b05c42d4"}]
+[{"name":"hot-reloader","duration":23,"timestamp":704343506997,"id":3,"tags":{"version":"14.2.3","isTurbopack":false},"startTime":1764336987868,"traceId":"053a8f4924a0daf2"},{"name":"start","duration":0,"timestamp":704343507358,"id":4,"parentId":3,"tags":{},"startTime":1764336987868,"traceId":"053a8f4924a0daf2"},{"name":"get-version-info","duration":416843,"timestamp":704343507434,"id":5,"parentId":4,"tags":{},"startTime":1764336987868,"traceId":"053a8f4924a0daf2"},{"name":"clean","duration":11095,"timestamp":704343924317,"id":6,"parentId":4,"tags":{},"startTime":1764336988285,"traceId":"053a8f4924a0daf2"},{"name":"create-pages-mapping","duration":95,"timestamp":704343935978,"id":8,"parentId":7,"tags":{},"startTime":1764336988296,"traceId":"053a8f4924a0daf2"},{"name":"create-entrypoints","duration":12375,"timestamp":704343936083,"id":9,"parentId":7,"tags":{},"startTime":1764336988297,"traceId":"053a8f4924a0daf2"},{"name":"generate-webpack-config","duration":51651,"timestamp":704343948482,"id":10,"parentId":7,"tags":{},"startTime":1764336988309,"traceId":"053a8f4924a0daf2"},{"name":"get-webpack-config","duration":64212,"timestamp":704343935932,"id":7,"parentId":4,"tags":{},"startTime":1764336988296,"traceId":"053a8f4924a0daf2"},{"name":"make","duration":452,"timestamp":704344034918,"id":12,"parentId":11,"tags":{},"startTime":1764336988395,"traceId":"053a8f4924a0daf2"},{"name":"chunk-graph","duration":302,"timestamp":704344036141,"id":14,"parentId":13,"tags":{},"startTime":1764336988397,"traceId":"053a8f4924a0daf2"},{"name":"optimize-modules","duration":8,"timestamp":704344036472,"id":16,"parentId":13,"tags":{},"startTime":1764336988397,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunks","duration":55,"timestamp":704344036520,"id":17,"parentId":13,"tags":{},"startTime":1764336988397,"traceId":"053a8f4924a0daf2"},{"name":"optimize-tree","duration":8,"timestamp":704344036595,"id":18,"parentId":13,"tags":{},"startTime":1764336988397,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunk-modules","duration":4,"timestamp":704344036662,"id":19,"parentId":13,"tags":{},"startTime":1764336988397,"traceId":"053a8f4924a0daf2"},{"name":"optimize","duration":238,"timestamp":704344036463,"id":15,"parentId":13,"tags":{},"startTime":1764336988397,"traceId":"053a8f4924a0daf2"},{"name":"module-hash","duration":38,"timestamp":704344036924,"id":20,"parentId":13,"tags":{},"startTime":1764336988397,"traceId":"053a8f4924a0daf2"},{"name":"code-generation","duration":68,"timestamp":704344036970,"id":21,"parentId":13,"tags":{},"startTime":1764336988397,"traceId":"053a8f4924a0daf2"},{"name":"hash","duration":206,"timestamp":704344037161,"id":22,"parentId":13,"tags":{},"startTime":1764336988398,"traceId":"053a8f4924a0daf2"},{"name":"code-generation-jobs","duration":24,"timestamp":704344037366,"id":23,"parentId":13,"tags":{},"startTime":1764336988398,"traceId":"053a8f4924a0daf2"},{"name":"module-assets","duration":32,"timestamp":704344037380,"id":24,"parentId":13,"tags":{},"startTime":1764336988398,"traceId":"053a8f4924a0daf2"},{"name":"create-chunk-assets","duration":111,"timestamp":704344037416,"id":25,"parentId":13,"tags":{},"startTime":1764336988398,"traceId":"053a8f4924a0daf2"},{"name":"NextJsBuildManifest-generateClientManifest","duration":421,"timestamp":704344066902,"id":27,"parentId":11,"tags":{},"startTime":1764336988427,"traceId":"053a8f4924a0daf2"},{"name":"NextJsBuildManifest-createassets","duration":613,"timestamp":704344066717,"id":26,"parentId":11,"tags":{},"startTime":1764336988427,"traceId":"053a8f4924a0daf2"},{"name":"seal","duration":31825,"timestamp":704344036063,"id":13,"parentId":11,"tags":{},"startTime":1764336988397,"traceId":"053a8f4924a0daf2"},{"name":"webpack-compilation","duration":34472,"timestamp":704344033527,"id":11,"parentId":3,"tags":{"name":"client"},"startTime":1764336988394,"traceId":"053a8f4924a0daf2"},{"name":"emit","duration":1831,"timestamp":704344068177,"id":28,"parentId":3,"tags":{},"startTime":1764336988429,"traceId":"053a8f4924a0daf2"},{"name":"make","duration":704,"timestamp":704344074661,"id":30,"parentId":29,"tags":{},"startTime":1764336988435,"traceId":"053a8f4924a0daf2"},{"name":"chunk-graph","duration":16,"timestamp":704344075591,"id":32,"parentId":31,"tags":{},"startTime":1764336988436,"traceId":"053a8f4924a0daf2"},{"name":"optimize-modules","duration":2,"timestamp":704344075616,"id":34,"parentId":31,"tags":{},"startTime":1764336988436,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunks","duration":26,"timestamp":704344075670,"id":35,"parentId":31,"tags":{},"startTime":1764336988436,"traceId":"053a8f4924a0daf2"},{"name":"optimize-tree","duration":2,"timestamp":704344075702,"id":36,"parentId":31,"tags":{},"startTime":1764336988436,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunk-modules","duration":2,"timestamp":704344075717,"id":37,"parentId":31,"tags":{},"startTime":1764336988436,"traceId":"053a8f4924a0daf2"},{"name":"optimize","duration":116,"timestamp":704344075613,"id":33,"parentId":31,"tags":{},"startTime":1764336988436,"traceId":"053a8f4924a0daf2"},{"name":"module-hash","duration":4,"timestamp":704344075809,"id":38,"parentId":31,"tags":{},"startTime":1764336988436,"traceId":"053a8f4924a0daf2"},{"name":"code-generation","duration":5,"timestamp":704344075817,"id":39,"parentId":31,"tags":{},"startTime":1764336988436,"traceId":"053a8f4924a0daf2"},{"name":"hash","duration":30,"timestamp":704344075842,"id":40,"parentId":31,"tags":{},"startTime":1764336988436,"traceId":"053a8f4924a0daf2"},{"name":"code-generation-jobs","duration":18,"timestamp":704344075872,"id":41,"parentId":31,"tags":{},"startTime":1764336988436,"traceId":"053a8f4924a0daf2"},{"name":"module-assets","duration":9,"timestamp":704344075886,"id":42,"parentId":31,"tags":{},"startTime":1764336988436,"traceId":"053a8f4924a0daf2"},{"name":"create-chunk-assets","duration":8,"timestamp":704344075899,"id":43,"parentId":31,"tags":{},"startTime":1764336988436,"traceId":"053a8f4924a0daf2"},{"name":"seal","duration":717,"timestamp":704344075573,"id":31,"parentId":29,"tags":{},"startTime":1764336988436,"traceId":"053a8f4924a0daf2"},{"name":"webpack-compilation","duration":2387,"timestamp":704344073962,"id":29,"parentId":3,"tags":{"name":"server"},"startTime":1764336988434,"traceId":"053a8f4924a0daf2"},{"name":"emit","duration":2955,"timestamp":704344076371,"id":44,"parentId":3,"tags":{},"startTime":1764336988437,"traceId":"053a8f4924a0daf2"},{"name":"make","duration":104,"timestamp":704344081029,"id":46,"parentId":45,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"chunk-graph","duration":15,"timestamp":704344081401,"id":48,"parentId":47,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"optimize-modules","duration":5,"timestamp":704344081423,"id":50,"parentId":47,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunks","duration":5,"timestamp":704344081435,"id":51,"parentId":47,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"optimize-tree","duration":5,"timestamp":704344081445,"id":52,"parentId":47,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunk-modules","duration":2,"timestamp":704344081462,"id":53,"parentId":47,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"optimize","duration":55,"timestamp":704344081421,"id":49,"parentId":47,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"module-hash","duration":3,"timestamp":704344081528,"id":54,"parentId":47,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"code-generation","duration":7,"timestamp":704344081535,"id":55,"parentId":47,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"hash","duration":24,"timestamp":704344081560,"id":56,"parentId":47,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"code-generation-jobs","duration":7,"timestamp":704344081585,"id":57,"parentId":47,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"module-assets","duration":3,"timestamp":704344081590,"id":58,"parentId":47,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"create-chunk-assets","duration":5,"timestamp":704344081596,"id":59,"parentId":47,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"seal","duration":482,"timestamp":704344081384,"id":47,"parentId":45,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"},{"name":"webpack-compilation","duration":1408,"timestamp":704344080477,"id":45,"parentId":3,"tags":{"name":"edge-server"},"startTime":1764336988441,"traceId":"053a8f4924a0daf2"},{"name":"emit","duration":499,"timestamp":704344081903,"id":60,"parentId":3,"tags":{},"startTime":1764336988442,"traceId":"053a8f4924a0daf2"}]
+[{"name":"make","duration":132,"timestamp":704344298122,"id":65,"parentId":64,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"chunk-graph","duration":20,"timestamp":704344298375,"id":67,"parentId":66,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"optimize-modules","duration":3,"timestamp":704344298414,"id":69,"parentId":66,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunks","duration":5,"timestamp":704344298426,"id":70,"parentId":66,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"optimize-tree","duration":3,"timestamp":704344298440,"id":71,"parentId":66,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunk-modules","duration":3,"timestamp":704344298455,"id":72,"parentId":66,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"optimize","duration":67,"timestamp":704344298409,"id":68,"parentId":66,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"module-hash","duration":6,"timestamp":704344298540,"id":73,"parentId":66,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"code-generation","duration":4,"timestamp":704344298551,"id":74,"parentId":66,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"hash","duration":51,"timestamp":704344298577,"id":75,"parentId":66,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"code-generation-jobs","duration":13,"timestamp":704344298628,"id":76,"parentId":66,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"module-assets","duration":5,"timestamp":704344298638,"id":77,"parentId":66,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"create-chunk-assets","duration":9,"timestamp":704344298647,"id":78,"parentId":66,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"NextJsBuildManifest-generateClientManifest","duration":84,"timestamp":704344298774,"id":80,"parentId":64,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"NextJsBuildManifest-createassets","duration":118,"timestamp":704344298742,"id":79,"parentId":64,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"seal","duration":585,"timestamp":704344298352,"id":66,"parentId":64,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"webpack-compilation","duration":1323,"timestamp":704344297634,"id":64,"parentId":61,"tags":{"name":"client"},"startTime":1764336988658,"traceId":"053a8f4924a0daf2"},{"name":"setup-dev-bundler","duration":908854,"timestamp":704343417900,"id":2,"parentId":1,"tags":{},"startTime":1764336987778,"traceId":"053a8f4924a0daf2"},{"name":"run-instrumentation-hook","duration":26,"timestamp":704344342550,"id":82,"parentId":1,"tags":{},"startTime":1764336988703,"traceId":"053a8f4924a0daf2"},{"name":"emit","duration":44028,"timestamp":704344298974,"id":81,"parentId":61,"tags":{},"startTime":1764336988659,"traceId":"053a8f4924a0daf2"},{"name":"webpack-invalidated-client","duration":49352,"timestamp":704344294088,"id":61,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764336988655,"traceId":"053a8f4924a0daf2"},{"name":"make","duration":93,"timestamp":704344344361,"id":84,"parentId":83,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"chunk-graph","duration":14,"timestamp":704344344532,"id":86,"parentId":85,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"optimize-modules","duration":1,"timestamp":704344344554,"id":88,"parentId":85,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunks","duration":20,"timestamp":704344344563,"id":89,"parentId":85,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"optimize-tree","duration":2,"timestamp":704344344588,"id":90,"parentId":85,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunk-modules","duration":2,"timestamp":704344344600,"id":91,"parentId":85,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"optimize","duration":60,"timestamp":704344344551,"id":87,"parentId":85,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"module-hash","duration":3,"timestamp":704344344657,"id":92,"parentId":85,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"code-generation","duration":3,"timestamp":704344344664,"id":93,"parentId":85,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"hash","duration":17,"timestamp":704344344680,"id":94,"parentId":85,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"code-generation-jobs","duration":7,"timestamp":704344344697,"id":95,"parentId":85,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"module-assets","duration":3,"timestamp":704344344702,"id":96,"parentId":85,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"create-chunk-assets","duration":6,"timestamp":704344344708,"id":97,"parentId":85,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"seal","duration":281,"timestamp":704344344519,"id":85,"parentId":83,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"webpack-compilation","duration":738,"timestamp":704344344081,"id":83,"parentId":62,"tags":{"name":"server"},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"start-dev-server","duration":1121154,"timestamp":704343226162,"id":1,"tags":{"cpus":"16","platform":"darwin","memory.freeMem":"5136203776","memory.totalMem":"68719476736","memory.heapSizeLimit":"34561064960","isTurbopack":false,"memory.rss":"242319360","memory.heapTotal":"104235008","memory.heapUsed":"85306200"},"startTime":1764336987587,"traceId":"053a8f4924a0daf2"},{"name":"emit","duration":3217,"timestamp":704344344828,"id":98,"parentId":62,"tags":{},"startTime":1764336988705,"traceId":"053a8f4924a0daf2"},{"name":"webpack-invalidated-server","duration":54043,"timestamp":704344294225,"id":62,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764336988655,"traceId":"053a8f4924a0daf2"},{"name":"make","duration":94,"timestamp":704344349192,"id":100,"parentId":99,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"chunk-graph","duration":13,"timestamp":704344349369,"id":102,"parentId":101,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"optimize-modules","duration":2,"timestamp":704344349399,"id":104,"parentId":101,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunks","duration":4,"timestamp":704344349407,"id":105,"parentId":101,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"optimize-tree","duration":2,"timestamp":704344349417,"id":106,"parentId":101,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunk-modules","duration":2,"timestamp":704344349427,"id":107,"parentId":101,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"optimize","duration":42,"timestamp":704344349395,"id":103,"parentId":101,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"module-hash","duration":3,"timestamp":704344349478,"id":108,"parentId":101,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"code-generation","duration":3,"timestamp":704344349486,"id":109,"parentId":101,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"hash","duration":22,"timestamp":704344349501,"id":110,"parentId":101,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"code-generation-jobs","duration":7,"timestamp":704344349524,"id":111,"parentId":101,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"module-assets","duration":3,"timestamp":704344349530,"id":112,"parentId":101,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"create-chunk-assets","duration":6,"timestamp":704344349535,"id":113,"parentId":101,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"seal","duration":290,"timestamp":704344349348,"id":101,"parentId":99,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"webpack-compilation","duration":724,"timestamp":704344348927,"id":99,"parentId":63,"tags":{"name":"edge-server"},"startTime":1764336988709,"traceId":"053a8f4924a0daf2"},{"name":"emit","duration":507,"timestamp":704344349665,"id":114,"parentId":63,"tags":{},"startTime":1764336988710,"traceId":"053a8f4924a0daf2"},{"name":"webpack-invalidated-edge-server","duration":56351,"timestamp":704344294252,"id":63,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764336988655,"traceId":"053a8f4924a0daf2"}]
+[{"name":"next-swc-transform","duration":3413,"timestamp":704345927541,"id":123,"parentId":122,"tags":{},"startTime":1764336990288,"traceId":"053a8f4924a0daf2"},{"name":"next-swc-loader","duration":3904,"timestamp":704345927061,"id":122,"parentId":121,"tags":{},"startTime":1764336990288,"traceId":"053a8f4924a0daf2"},{"name":"build-module-tsx","duration":10829,"timestamp":704345924442,"id":121,"parentId":118,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/layout.tsx","layer":"rsc"},"startTime":1764336990285,"traceId":"053a8f4924a0daf2"},{"name":"read-resource","duration":2081,"timestamp":704345940815,"id":125,"parentId":124,"tags":{},"startTime":1764336990301,"traceId":"053a8f4924a0daf2"},{"name":"build-module-css","duration":3919,"timestamp":704345939885,"id":124,"parentId":121,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/app/globals.css","layer":"rsc"},"startTime":1764336990300,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":112302,"timestamp":704345845471,"id":120,"parentId":119,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764336990206,"traceId":"053a8f4924a0daf2"},{"name":"next-swc-transform","duration":5169,"timestamp":704345994457,"id":132,"parentId":131,"tags":{},"startTime":1764336990355,"traceId":"053a8f4924a0daf2"},{"name":"next-swc-loader","duration":5411,"timestamp":704345994221,"id":131,"parentId":130,"tags":{},"startTime":1764336990355,"traceId":"053a8f4924a0daf2"},{"name":"build-module-ts","duration":7983,"timestamp":704345992877,"id":130,"parentId":118,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/data/gunbuilderParts.ts","layer":"ssr"},"startTime":1764336990353,"traceId":"053a8f4924a0daf2"},{"name":"next-swc-transform","duration":1915,"timestamp":704346038738,"id":135,"parentId":134,"tags":{},"startTime":1764336990399,"traceId":"053a8f4924a0daf2"},{"name":"next-swc-loader","duration":2045,"timestamp":704346038615,"id":134,"parentId":133,"tags":{},"startTime":1764336990399,"traceId":"053a8f4924a0daf2"},{"name":"build-module-tsx","duration":4259,"timestamp":704346038476,"id":133,"parentId":118,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/PartCard.tsx","layer":"ssr"},"startTime":1764336990399,"traceId":"053a8f4924a0daf2"},{"name":"make","duration":202664,"timestamp":704345843950,"id":119,"parentId":118,"tags":{},"startTime":1764336990204,"traceId":"053a8f4924a0daf2"},{"name":"chunk-graph","duration":2510,"timestamp":704346051727,"id":137,"parentId":136,"tags":{},"startTime":1764336990412,"traceId":"053a8f4924a0daf2"},{"name":"optimize-modules","duration":6,"timestamp":704346054257,"id":139,"parentId":136,"tags":{},"startTime":1764336990415,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunks","duration":1879,"timestamp":704346054274,"id":140,"parentId":136,"tags":{},"startTime":1764336990415,"traceId":"053a8f4924a0daf2"},{"name":"optimize-tree","duration":5,"timestamp":704346056172,"id":141,"parentId":136,"tags":{},"startTime":1764336990417,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunk-modules","duration":5,"timestamp":704346056189,"id":142,"parentId":136,"tags":{},"startTime":1764336990417,"traceId":"053a8f4924a0daf2"},{"name":"optimize","duration":2232,"timestamp":704346054251,"id":138,"parentId":136,"tags":{},"startTime":1764336990415,"traceId":"053a8f4924a0daf2"},{"name":"module-hash","duration":2964,"timestamp":704346058341,"id":143,"parentId":136,"tags":{},"startTime":1764336990419,"traceId":"053a8f4924a0daf2"},{"name":"code-generation","duration":843,"timestamp":704346061322,"id":144,"parentId":136,"tags":{},"startTime":1764336990422,"traceId":"053a8f4924a0daf2"},{"name":"hash","duration":2218,"timestamp":704346063782,"id":145,"parentId":136,"tags":{},"startTime":1764336990424,"traceId":"053a8f4924a0daf2"},{"name":"code-generation-jobs","duration":90,"timestamp":704346066001,"id":146,"parentId":136,"tags":{},"startTime":1764336990427,"traceId":"053a8f4924a0daf2"},{"name":"module-assets","duration":35,"timestamp":704346066083,"id":147,"parentId":136,"tags":{},"startTime":1764336990427,"traceId":"053a8f4924a0daf2"},{"name":"create-chunk-assets","duration":11946,"timestamp":704346066122,"id":148,"parentId":136,"tags":{},"startTime":1764336990427,"traceId":"053a8f4924a0daf2"},{"name":"seal","duration":28480,"timestamp":704346051227,"id":136,"parentId":118,"tags":{},"startTime":1764336990412,"traceId":"053a8f4924a0daf2"},{"name":"webpack-compilation","duration":236949,"timestamp":704345843647,"id":118,"parentId":116,"tags":{"name":"server"},"startTime":1764336990204,"traceId":"053a8f4924a0daf2"},{"name":"emit","duration":7196,"timestamp":704346080614,"id":149,"parentId":116,"tags":{},"startTime":1764336990441,"traceId":"053a8f4924a0daf2"},{"name":"webpack-invalidated-server","duration":245475,"timestamp":704345842686,"id":116,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764336990203,"traceId":"053a8f4924a0daf2"},{"name":"next-swc-transform","duration":1954,"timestamp":704346203774,"id":159,"parentId":158,"tags":{},"startTime":1764336990564,"traceId":"053a8f4924a0daf2"},{"name":"next-swc-loader","duration":2164,"timestamp":704346203570,"id":158,"parentId":157,"tags":{},"startTime":1764336990564,"traceId":"053a8f4924a0daf2"},{"name":"build-module-ts","duration":7661,"timestamp":704346201722,"id":157,"parentId":150,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/data/gunbuilderParts.ts","layer":"app-pages-browser"},"startTime":1764336990562,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":159504,"timestamp":704346092077,"id":155,"parentId":151,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764336990453,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":161187,"timestamp":704346091988,"id":152,"parentId":151,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764336990453,"traceId":"053a8f4924a0daf2"},{"name":"next-swc-transform","duration":1255,"timestamp":704346255189,"id":162,"parentId":161,"tags":{},"startTime":1764336990616,"traceId":"053a8f4924a0daf2"},{"name":"next-swc-loader","duration":1412,"timestamp":704346255037,"id":161,"parentId":160,"tags":{},"startTime":1764336990616,"traceId":"053a8f4924a0daf2"},{"name":"build-module-tsx","duration":4010,"timestamp":704346254773,"id":160,"parentId":150,"tags":{"name":"/Users/sean/Dev/gunbuilder-prototype/components/PartCard.tsx","layer":"app-pages-browser"},"startTime":1764336990615,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":166913,"timestamp":704346092062,"id":154,"parentId":151,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764336990453,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":168002,"timestamp":704346092046,"id":153,"parentId":151,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764336990453,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":167971,"timestamp":704346092086,"id":156,"parentId":151,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764336990453,"traceId":"053a8f4924a0daf2"},{"name":"make","duration":170505,"timestamp":704346089632,"id":151,"parentId":150,"tags":{},"startTime":1764336990450,"traceId":"053a8f4924a0daf2"},{"name":"chunk-graph","duration":1279,"timestamp":704346262136,"id":164,"parentId":163,"tags":{},"startTime":1764336990623,"traceId":"053a8f4924a0daf2"},{"name":"optimize-modules","duration":3,"timestamp":704346263426,"id":166,"parentId":163,"tags":{},"startTime":1764336990624,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunks","duration":28,"timestamp":704346263460,"id":167,"parentId":163,"tags":{},"startTime":1764336990624,"traceId":"053a8f4924a0daf2"},{"name":"optimize-tree","duration":3,"timestamp":704346263497,"id":168,"parentId":163,"tags":{},"startTime":1764336990624,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunk-modules","duration":2,"timestamp":704346263506,"id":169,"parentId":163,"tags":{},"startTime":1764336990624,"traceId":"053a8f4924a0daf2"},{"name":"optimize","duration":308,"timestamp":704346263423,"id":165,"parentId":163,"tags":{},"startTime":1764336990624,"traceId":"053a8f4924a0daf2"},{"name":"module-hash","duration":2415,"timestamp":704346264782,"id":170,"parentId":163,"tags":{},"startTime":1764336990625,"traceId":"053a8f4924a0daf2"},{"name":"code-generation","duration":2722,"timestamp":704346267210,"id":171,"parentId":163,"tags":{},"startTime":1764336990628,"traceId":"053a8f4924a0daf2"},{"name":"hash","duration":4379,"timestamp":704346271947,"id":172,"parentId":163,"tags":{},"startTime":1764336990632,"traceId":"053a8f4924a0daf2"},{"name":"code-generation-jobs","duration":149,"timestamp":704346276325,"id":173,"parentId":163,"tags":{},"startTime":1764336990637,"traceId":"053a8f4924a0daf2"},{"name":"module-assets","duration":61,"timestamp":704346276460,"id":174,"parentId":163,"tags":{},"startTime":1764336990637,"traceId":"053a8f4924a0daf2"},{"name":"create-chunk-assets","duration":1268,"timestamp":704346276524,"id":175,"parentId":163,"tags":{},"startTime":1764336990637,"traceId":"053a8f4924a0daf2"},{"name":"NextJsBuildManifest-generateClientManifest","duration":266,"timestamp":704346278861,"id":177,"parentId":150,"tags":{},"startTime":1764336990639,"traceId":"053a8f4924a0daf2"},{"name":"NextJsBuildManifest-createassets","duration":567,"timestamp":704346278565,"id":176,"parentId":150,"tags":{},"startTime":1764336990639,"traceId":"053a8f4924a0daf2"},{"name":"seal","duration":19088,"timestamp":704346261890,"id":163,"parentId":150,"tags":{},"startTime":1764336990622,"traceId":"053a8f4924a0daf2"},{"name":"webpack-compilation","duration":191602,"timestamp":704346089403,"id":150,"parentId":129,"tags":{"name":"client"},"startTime":1764336990450,"traceId":"053a8f4924a0daf2"},{"name":"emit","duration":4763,"timestamp":704346281021,"id":178,"parentId":129,"tags":{},"startTime":1764336990642,"traceId":"053a8f4924a0daf2"},{"name":"compile-path","duration":444420,"timestamp":704345842720,"id":117,"tags":{"trigger":"/gunbuilder","isTurbopack":false},"startTime":1764336990203,"traceId":"053a8f4924a0daf2"},{"name":"webpack-invalidated-client","duration":322513,"timestamp":704345965230,"id":129,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764336990326,"traceId":"053a8f4924a0daf2"}]
+[{"name":"handle-request","duration":526752,"timestamp":704345835672,"id":115,"tags":{"url":"/gunbuilder","isTurbopack":false},"startTime":1764336990196,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":0,"timestamp":704346362469,"id":179,"parentId":115,"tags":{"url":"/gunbuilder","memory.rss":"488718336","memory.heapUsed":"127493240","memory.heapTotal":"220282880"},"startTime":1764336990723,"traceId":"053a8f4924a0daf2"},{"name":"client-success","duration":4,"timestamp":704346573531,"id":180,"parentId":3,"tags":{},"startTime":1764336990934,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":28762,"timestamp":704354284975,"id":187,"parentId":185,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764336998646,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":32234,"timestamp":704354284886,"id":186,"parentId":185,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764336998646,"traceId":"053a8f4924a0daf2"},{"name":"make","duration":38114,"timestamp":704354282883,"id":185,"parentId":184,"tags":{},"startTime":1764336998644,"traceId":"053a8f4924a0daf2"},{"name":"chunk-graph","duration":1025,"timestamp":704354322551,"id":196,"parentId":195,"tags":{},"startTime":1764336998683,"traceId":"053a8f4924a0daf2"},{"name":"optimize-modules","duration":3,"timestamp":704354323592,"id":198,"parentId":195,"tags":{},"startTime":1764336998684,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunks","duration":1240,"timestamp":704354323644,"id":199,"parentId":195,"tags":{},"startTime":1764336998684,"traceId":"053a8f4924a0daf2"},{"name":"optimize-tree","duration":5,"timestamp":704354324897,"id":200,"parentId":195,"tags":{},"startTime":1764336998686,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunk-modules","duration":2,"timestamp":704354324919,"id":201,"parentId":195,"tags":{},"startTime":1764336998686,"traceId":"053a8f4924a0daf2"},{"name":"optimize","duration":1586,"timestamp":704354323588,"id":197,"parentId":195,"tags":{},"startTime":1764336998684,"traceId":"053a8f4924a0daf2"},{"name":"module-hash","duration":292,"timestamp":704354325836,"id":202,"parentId":195,"tags":{},"startTime":1764336998686,"traceId":"053a8f4924a0daf2"},{"name":"code-generation","duration":426,"timestamp":704354326138,"id":203,"parentId":195,"tags":{},"startTime":1764336998687,"traceId":"053a8f4924a0daf2"},{"name":"hash","duration":1589,"timestamp":704354327405,"id":204,"parentId":195,"tags":{},"startTime":1764336998688,"traceId":"053a8f4924a0daf2"},{"name":"code-generation-jobs","duration":140,"timestamp":704354328993,"id":205,"parentId":195,"tags":{},"startTime":1764336998690,"traceId":"053a8f4924a0daf2"},{"name":"module-assets","duration":53,"timestamp":704354329126,"id":206,"parentId":195,"tags":{},"startTime":1764336998690,"traceId":"053a8f4924a0daf2"},{"name":"create-chunk-assets","duration":607,"timestamp":704354329183,"id":207,"parentId":195,"tags":{},"startTime":1764336998690,"traceId":"053a8f4924a0daf2"},{"name":"seal","duration":8709,"timestamp":704354322328,"id":195,"parentId":184,"tags":{},"startTime":1764336998683,"traceId":"053a8f4924a0daf2"},{"name":"webpack-compilation","duration":52833,"timestamp":704354279324,"id":184,"parentId":182,"tags":{"name":"server"},"startTime":1764336998640,"traceId":"053a8f4924a0daf2"},{"name":"emit","duration":1338,"timestamp":704354332347,"id":208,"parentId":182,"tags":{},"startTime":1764336998693,"traceId":"053a8f4924a0daf2"},{"name":"webpack-invalidated-server","duration":61607,"timestamp":704354272375,"id":182,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764336998633,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":2972,"timestamp":704354339103,"id":211,"parentId":210,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764336998700,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":3969,"timestamp":704354339144,"id":214,"parentId":210,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764336998700,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":8798,"timestamp":704354339147,"id":215,"parentId":210,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764336998700,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":8967,"timestamp":704354339133,"id":212,"parentId":210,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764336998700,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":8968,"timestamp":704354339140,"id":213,"parentId":210,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764336998700,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":28313,"timestamp":704354339151,"id":216,"parentId":210,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764336998700,"traceId":"053a8f4924a0daf2"},{"name":"make","duration":31021,"timestamp":704354336472,"id":210,"parentId":209,"tags":{},"startTime":1764336998697,"traceId":"053a8f4924a0daf2"},{"name":"chunk-graph","duration":666,"timestamp":704354368626,"id":218,"parentId":217,"tags":{},"startTime":1764336998729,"traceId":"053a8f4924a0daf2"},{"name":"optimize-modules","duration":2,"timestamp":704354369303,"id":220,"parentId":217,"tags":{},"startTime":1764336998730,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunks","duration":20,"timestamp":704354369313,"id":221,"parentId":217,"tags":{},"startTime":1764336998730,"traceId":"053a8f4924a0daf2"},{"name":"optimize-tree","duration":3,"timestamp":704354369340,"id":222,"parentId":217,"tags":{},"startTime":1764336998730,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunk-modules","duration":2,"timestamp":704354369353,"id":223,"parentId":217,"tags":{},"startTime":1764336998730,"traceId":"053a8f4924a0daf2"},{"name":"optimize","duration":274,"timestamp":704354369300,"id":219,"parentId":217,"tags":{},"startTime":1764336998730,"traceId":"053a8f4924a0daf2"},{"name":"module-hash","duration":226,"timestamp":704354370030,"id":224,"parentId":217,"tags":{},"startTime":1764336998731,"traceId":"053a8f4924a0daf2"},{"name":"code-generation","duration":374,"timestamp":704354370261,"id":225,"parentId":217,"tags":{},"startTime":1764336998731,"traceId":"053a8f4924a0daf2"},{"name":"hash","duration":1290,"timestamp":704354371405,"id":226,"parentId":217,"tags":{},"startTime":1764336998732,"traceId":"053a8f4924a0daf2"},{"name":"code-generation-jobs","duration":56,"timestamp":704354372695,"id":227,"parentId":217,"tags":{},"startTime":1764336998733,"traceId":"053a8f4924a0daf2"},{"name":"module-assets","duration":38,"timestamp":704354372747,"id":228,"parentId":217,"tags":{},"startTime":1764336998733,"traceId":"053a8f4924a0daf2"},{"name":"create-chunk-assets","duration":715,"timestamp":704354372787,"id":229,"parentId":217,"tags":{},"startTime":1764336998733,"traceId":"053a8f4924a0daf2"},{"name":"NextJsBuildManifest-generateClientManifest","duration":45,"timestamp":704354374192,"id":231,"parentId":209,"tags":{},"startTime":1764336998735,"traceId":"053a8f4924a0daf2"},{"name":"NextJsBuildManifest-createassets","duration":122,"timestamp":704354374117,"id":230,"parentId":209,"tags":{},"startTime":1764336998735,"traceId":"053a8f4924a0daf2"},{"name":"seal","duration":6615,"timestamp":704354368360,"id":217,"parentId":209,"tags":{},"startTime":1764336998729,"traceId":"053a8f4924a0daf2"},{"name":"webpack-compilation","duration":39154,"timestamp":704354335847,"id":209,"parentId":194,"tags":{"name":"client"},"startTime":1764336998696,"traceId":"053a8f4924a0daf2"},{"name":"emit","duration":1350,"timestamp":704354375014,"id":232,"parentId":194,"tags":{},"startTime":1764336998736,"traceId":"053a8f4924a0daf2"},{"name":"compile-path","duration":104226,"timestamp":704354272512,"id":183,"tags":{"trigger":"/gunbuilder/[categoryId]","isTurbopack":false},"startTime":1764336998633,"traceId":"053a8f4924a0daf2"},{"name":"webpack-invalidated-client","duration":58757,"timestamp":704354318251,"id":194,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764336998679,"traceId":"053a8f4924a0daf2"}]
+[{"name":"client-success","duration":4,"timestamp":704354378147,"id":233,"parentId":3,"tags":{},"startTime":1764336998739,"traceId":"053a8f4924a0daf2"},{"name":"client-hmr-latency","duration":72000,"timestamp":704354318083,"id":234,"parentId":3,"tags":{"updatedModules":[],"page":"/gunbuilder","isPageHidden":false},"startTime":1764336998752,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":232816,"timestamp":704354266899,"id":181,"tags":{"url":"/gunbuilder/lower?_rsc=1acsq","isTurbopack":false},"startTime":1764336998628,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":1,"timestamp":704354499746,"id":235,"parentId":181,"tags":{"url":"/gunbuilder/lower?_rsc=1acsq","memory.rss":"531922944","memory.heapUsed":"136704144","memory.heapTotal":"212205568"},"startTime":1764336998860,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":5683,"timestamp":704354507891,"id":236,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","isTurbopack":false},"startTime":1764336998869,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":1,"timestamp":704354513601,"id":237,"parentId":236,"tags":{"url":"/gunbuilder/lower?_rsc=1o5jb","memory.rss":"532054016","memory.heapUsed":"137975760","memory.heapTotal":"212205568"},"startTime":1764336998874,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":12434,"timestamp":704355626864,"id":238,"tags":{"url":"/gunbuilder?select=lower%3Alower-solgw&_rsc=uiigs","isTurbopack":false},"startTime":1764336999988,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":2,"timestamp":704355639400,"id":239,"parentId":238,"tags":{"url":"/gunbuilder?select=lower%3Alower-solgw&_rsc=uiigs","memory.rss":"532692992","memory.heapUsed":"139353296","memory.heapTotal":"212434944"},"startTime":1764337000000,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":8627,"timestamp":704355644028,"id":240,"tags":{"url":"/gunbuilder?select=lower%3Alower-solgw&_rsc=wh4op","isTurbopack":false},"startTime":1764337000005,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":6,"timestamp":704355652725,"id":241,"parentId":240,"tags":{"url":"/gunbuilder?select=lower%3Alower-solgw&_rsc=wh4op","memory.rss":"532774912","memory.heapUsed":"140075424","memory.heapTotal":"212697088"},"startTime":1764337000013,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":11232,"timestamp":704356644634,"id":242,"tags":{"url":"/gunbuilder/upper?_rsc=1acsq","isTurbopack":false},"startTime":1764337001005,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":1,"timestamp":704356655929,"id":243,"parentId":242,"tags":{"url":"/gunbuilder/upper?_rsc=1acsq","memory.rss":"532807680","memory.heapUsed":"140941360","memory.heapTotal":"212697088"},"startTime":1764337001017,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":6813,"timestamp":704356660794,"id":244,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","isTurbopack":false},"startTime":1764337001021,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":1,"timestamp":704356667643,"id":245,"parentId":244,"tags":{"url":"/gunbuilder/upper?_rsc=17gjd","memory.rss":"532840448","memory.heapUsed":"141829096","memory.heapTotal":"212697088"},"startTime":1764337001028,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":8755,"timestamp":704357426365,"id":246,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=1d33p","isTurbopack":false},"startTime":1764337001787,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":3,"timestamp":704357435205,"id":247,"parentId":246,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=1d33p","memory.rss":"532889600","memory.heapUsed":"142878360","memory.heapTotal":"212959232"},"startTime":1764337001796,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":9745,"timestamp":704357439121,"id":248,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=nxvwl","isTurbopack":false},"startTime":1764337001800,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":2,"timestamp":704357448923,"id":249,"parentId":248,"tags":{"url":"/gunbuilder?select=upper%3Aupper-bcm-m4&_rsc=nxvwl","memory.rss":"533135360","memory.heapUsed":"143630248","memory.heapTotal":"213221376"},"startTime":1764337001810,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":11448,"timestamp":704358160763,"id":250,"tags":{"url":"/gunbuilder/barrel?_rsc=1acsq","isTurbopack":false},"startTime":1764337002521,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":2,"timestamp":704358172280,"id":251,"parentId":250,"tags":{"url":"/gunbuilder/barrel?_rsc=1acsq","memory.rss":"533299200","memory.heapUsed":"144351288","memory.heapTotal":"213221376"},"startTime":1764337002533,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":7444,"timestamp":704358177095,"id":252,"tags":{"url":"/gunbuilder/barrel?_rsc=2b9yl","isTurbopack":false},"startTime":1764337002538,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":2,"timestamp":704358184593,"id":253,"parentId":252,"tags":{"url":"/gunbuilder/barrel?_rsc=2b9yl","memory.rss":"533364736","memory.heapUsed":"145522816","memory.heapTotal":"213221376"},"startTime":1764337002545,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":6699,"timestamp":704358784392,"id":254,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-ba-13-9&_rsc=2t5kv","isTurbopack":false},"startTime":1764337003145,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":2,"timestamp":704358791172,"id":255,"parentId":254,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-ba-13-9&_rsc=2t5kv","memory.rss":"533381120","memory.heapUsed":"145876144","memory.heapTotal":"213221376"},"startTime":1764337003152,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":7526,"timestamp":704358795145,"id":256,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-ba-13-9&_rsc=bpw29","isTurbopack":false},"startTime":1764337003156,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":1,"timestamp":704358802707,"id":257,"parentId":256,"tags":{"url":"/gunbuilder?select=barrel%3Abarrel-ba-13-9&_rsc=bpw29","memory.rss":"533495808","memory.heapUsed":"146570528","memory.heapTotal":"213745664"},"startTime":1764337003163,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":10588,"timestamp":704359611228,"id":258,"tags":{"url":"/gunbuilder/handguard?_rsc=1acsq","isTurbopack":false},"startTime":1764337003972,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":1,"timestamp":704359621872,"id":259,"parentId":258,"tags":{"url":"/gunbuilder/handguard?_rsc=1acsq","memory.rss":"533544960","memory.heapUsed":"147390520","memory.heapTotal":"213745664"},"startTime":1764337003983,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":6646,"timestamp":704359626468,"id":260,"tags":{"url":"/gunbuilder/handguard?_rsc=rs5ev","isTurbopack":false},"startTime":1764337003987,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":1,"timestamp":704359633146,"id":261,"parentId":260,"tags":{"url":"/gunbuilder/handguard?_rsc=rs5ev","memory.rss":"533626880","memory.heapUsed":"148275952","memory.heapTotal":"213745664"},"startTime":1764337003994,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":8756,"timestamp":704361076403,"id":262,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-centurion-c4&_rsc=1wjnh","isTurbopack":false},"startTime":1764337005437,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":1,"timestamp":704361085232,"id":263,"parentId":262,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-centurion-c4&_rsc=1wjnh","memory.rss":"533708800","memory.heapUsed":"148941760","memory.heapTotal":"213745664"},"startTime":1764337005446,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":7072,"timestamp":704361089644,"id":264,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-centurion-c4&_rsc=de779","isTurbopack":false},"startTime":1764337005450,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":2,"timestamp":704361096774,"id":265,"parentId":264,"tags":{"url":"/gunbuilder?select=handguard%3Ahg-centurion-c4&_rsc=de779","memory.rss":"533741568","memory.heapUsed":"149596328","memory.heapTotal":"213745664"},"startTime":1764337005457,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":8947,"timestamp":704361969321,"id":266,"tags":{"url":"/gunbuilder/stock?_rsc=1acsq","isTurbopack":false},"startTime":1764337006330,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":1,"timestamp":704361978408,"id":267,"parentId":266,"tags":{"url":"/gunbuilder/stock?_rsc=1acsq","memory.rss":"533774336","memory.heapUsed":"150420672","memory.heapTotal":"213745664"},"startTime":1764337006339,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":7033,"timestamp":704361982867,"id":268,"tags":{"url":"/gunbuilder/stock?_rsc=iik8j","isTurbopack":false},"startTime":1764337006344,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":1,"timestamp":704361989934,"id":269,"parentId":268,"tags":{"url":"/gunbuilder/stock?_rsc=iik8j","memory.rss":"533921792","memory.heapUsed":"151307504","memory.heapTotal":"213745664"},"startTime":1764337006351,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":9763,"timestamp":704362862273,"id":270,"tags":{"url":"/gunbuilder?select=stock%3Astock-magpul-sl&_rsc=g9x6a","isTurbopack":false},"startTime":1764337007223,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":2,"timestamp":704362872101,"id":271,"parentId":270,"tags":{"url":"/gunbuilder?select=stock%3Astock-magpul-sl&_rsc=g9x6a","memory.rss":"533938176","memory.heapUsed":"151938152","memory.heapTotal":"213745664"},"startTime":1764337007233,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":9786,"timestamp":704362876013,"id":272,"tags":{"url":"/gunbuilder?select=stock%3Astock-magpul-sl&_rsc=a5r2h","isTurbopack":false},"startTime":1764337007237,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":4,"timestamp":704362885866,"id":273,"parentId":272,"tags":{"url":"/gunbuilder?select=stock%3Astock-magpul-sl&_rsc=a5r2h","memory.rss":"534003712","memory.heapUsed":"152583008","memory.heapTotal":"213745664"},"startTime":1764337007247,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":8549,"timestamp":704363658914,"id":274,"tags":{"url":"/gunbuilder/optic?_rsc=1acsq","isTurbopack":false},"startTime":1764337008020,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":1,"timestamp":704363667504,"id":275,"parentId":274,"tags":{"url":"/gunbuilder/optic?_rsc=1acsq","memory.rss":"437239808","memory.heapUsed":"118641968","memory.heapTotal":"127172608"},"startTime":1764337008028,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":6831,"timestamp":704363670861,"id":276,"tags":{"url":"/gunbuilder/optic?_rsc=l6cyw","isTurbopack":false},"startTime":1764337008032,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":1,"timestamp":704363677738,"id":277,"parentId":276,"tags":{"url":"/gunbuilder/optic?_rsc=l6cyw","memory.rss":"438091776","memory.heapUsed":"119541384","memory.heapTotal":"127959040"},"startTime":1764337008038,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":8617,"timestamp":704364484770,"id":278,"tags":{"url":"/gunbuilder?select=optic%3Aoptic-eotech-exps3&_rsc=kbx68","isTurbopack":false},"startTime":1764337008845,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":2,"timestamp":704364493460,"id":279,"parentId":278,"tags":{"url":"/gunbuilder?select=optic%3Aoptic-eotech-exps3&_rsc=kbx68","memory.rss":"433815552","memory.heapUsed":"117220576","memory.heapTotal":"125337600"},"startTime":1764337008854,"traceId":"053a8f4924a0daf2"},{"name":"handle-request","duration":9058,"timestamp":704364496609,"id":280,"tags":{"url":"/gunbuilder?select=optic%3Aoptic-eotech-exps3&_rsc=1okqm","isTurbopack":false},"startTime":1764337008857,"traceId":"053a8f4924a0daf2"},{"name":"memory-usage","duration":7,"timestamp":704364505720,"id":281,"parentId":280,"tags":{"url":"/gunbuilder?select=optic%3Aoptic-eotech-exps3&_rsc=1okqm","memory.rss":"434454528","memory.heapUsed":"117866608","memory.heapTotal":"125861888"},"startTime":1764337008866,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":7674,"timestamp":704366058183,"id":288,"parentId":286,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fpage&page=%2Fgunbuilder%2Fpage&appPaths=%2Fgunbuilder%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764337010419,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":27281,"timestamp":704366058007,"id":287,"parentId":286,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&page=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&appPaths=%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764337010419,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":32235,"timestamp":704366058205,"id":289,"parentId":286,"tags":{"request":"next-app-loader?name=app%2Fgunbuilder%2Fbuild%2Fpage&page=%2Fgunbuilder%2Fbuild%2Fpage&appPaths=%2Fgunbuilder%2Fbuild%2Fpage&pagePath=private-next-app-dir%2Fgunbuilder%2Fbuild%2Fpage.tsx&appDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp&pageExtensions=tsx&pageExtensions=ts&pageExtensions=jsx&pageExtensions=js&rootDir=%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype&isDev=true&tsconfigPath=tsconfig.json&basePath=&assetPrefix=&nextConfigOutput=&preferredRegion=&middlewareConfig=e30%3D!"},"startTime":1764337010419,"traceId":"053a8f4924a0daf2"},{"name":"make","duration":42003,"timestamp":704366056574,"id":286,"parentId":285,"tags":{},"startTime":1764337010417,"traceId":"053a8f4924a0daf2"},{"name":"chunk-graph","duration":1173,"timestamp":704366099907,"id":301,"parentId":300,"tags":{},"startTime":1764337010461,"traceId":"053a8f4924a0daf2"},{"name":"optimize-modules","duration":2,"timestamp":704366101092,"id":303,"parentId":300,"tags":{},"startTime":1764337010462,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunks","duration":1361,"timestamp":704366101104,"id":304,"parentId":300,"tags":{},"startTime":1764337010462,"traceId":"053a8f4924a0daf2"},{"name":"optimize-tree","duration":8,"timestamp":704366102480,"id":305,"parentId":300,"tags":{},"startTime":1764337010463,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunk-modules","duration":3,"timestamp":704366102503,"id":306,"parentId":300,"tags":{},"startTime":1764337010463,"traceId":"053a8f4924a0daf2"},{"name":"optimize","duration":1665,"timestamp":704366101089,"id":302,"parentId":300,"tags":{},"startTime":1764337010462,"traceId":"053a8f4924a0daf2"},{"name":"module-hash","duration":243,"timestamp":704366103203,"id":307,"parentId":300,"tags":{},"startTime":1764337010464,"traceId":"053a8f4924a0daf2"},{"name":"code-generation","duration":396,"timestamp":704366103452,"id":308,"parentId":300,"tags":{},"startTime":1764337010464,"traceId":"053a8f4924a0daf2"},{"name":"hash","duration":870,"timestamp":704366104381,"id":309,"parentId":300,"tags":{},"startTime":1764337010465,"traceId":"053a8f4924a0daf2"},{"name":"code-generation-jobs","duration":62,"timestamp":704366105251,"id":310,"parentId":300,"tags":{},"startTime":1764337010466,"traceId":"053a8f4924a0daf2"},{"name":"module-assets","duration":51,"timestamp":704366105309,"id":311,"parentId":300,"tags":{},"startTime":1764337010466,"traceId":"053a8f4924a0daf2"},{"name":"create-chunk-assets","duration":280,"timestamp":704366105363,"id":312,"parentId":300,"tags":{},"startTime":1764337010466,"traceId":"053a8f4924a0daf2"},{"name":"seal","duration":7165,"timestamp":704366099673,"id":300,"parentId":285,"tags":{},"startTime":1764337010460,"traceId":"053a8f4924a0daf2"},{"name":"webpack-compilation","duration":52277,"timestamp":704366055898,"id":285,"parentId":283,"tags":{"name":"server"},"startTime":1764337010417,"traceId":"053a8f4924a0daf2"},{"name":"emit","duration":1359,"timestamp":704366108196,"id":313,"parentId":283,"tags":{},"startTime":1764337010469,"traceId":"053a8f4924a0daf2"},{"name":"webpack-invalidated-server","duration":58186,"timestamp":704366051646,"id":283,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764337010412,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":3253,"timestamp":704366114275,"id":321,"parentId":315,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2F%5BcategoryId%5D%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764337010475,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":3534,"timestamp":704366114222,"id":316,"parentId":315,"tags":{"request":"/Users/sean/Dev/gunbuilder-prototype/node_modules/next/dist/compiled/@next/react-refresh-utils/dist/runtime.js"},"startTime":1764337010475,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":4397,"timestamp":704366114268,"id":319,"parentId":315,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fglobals.css%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764337010475,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":5428,"timestamp":704366114272,"id":320,"parentId":315,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fapp-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fnot-found-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764337010475,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":5493,"timestamp":704366114261,"id":317,"parentId":315,"tags":{"request":"./node_modules/next/dist/client/app-next-dev.js"},"startTime":1764337010475,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":5491,"timestamp":704366114265,"id":318,"parentId":315,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764337010475,"traceId":"053a8f4924a0daf2"},{"name":"add-entry","duration":21941,"timestamp":704366114281,"id":322,"parentId":315,"tags":{"request":"next-flight-client-entry-loader?modules=%7B%22request%22%3A%22%2FUsers%2Fsean%2FDev%2Fgunbuilder-prototype%2Fapp%2Fgunbuilder%2Fbuild%2Fpage.tsx%22%2C%22ids%22%3A%5B%5D%7D&server=false!"},"startTime":1764337010475,"traceId":"053a8f4924a0daf2"},{"name":"make","duration":25012,"timestamp":704366111231,"id":315,"parentId":314,"tags":{},"startTime":1764337010472,"traceId":"053a8f4924a0daf2"},{"name":"chunk-graph","duration":674,"timestamp":704366137087,"id":324,"parentId":323,"tags":{},"startTime":1764337010498,"traceId":"053a8f4924a0daf2"},{"name":"optimize-modules","duration":2,"timestamp":704366137777,"id":326,"parentId":323,"tags":{},"startTime":1764337010498,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunks","duration":18,"timestamp":704366137786,"id":327,"parentId":323,"tags":{},"startTime":1764337010498,"traceId":"053a8f4924a0daf2"},{"name":"optimize-tree","duration":3,"timestamp":704366137811,"id":328,"parentId":323,"tags":{},"startTime":1764337010499,"traceId":"053a8f4924a0daf2"},{"name":"optimize-chunk-modules","duration":2,"timestamp":704366137824,"id":329,"parentId":323,"tags":{},"startTime":1764337010499,"traceId":"053a8f4924a0daf2"},{"name":"optimize","duration":334,"timestamp":704366137773,"id":325,"parentId":323,"tags":{},"startTime":1764337010498,"traceId":"053a8f4924a0daf2"},{"name":"module-hash","duration":180,"timestamp":704366138466,"id":330,"parentId":323,"tags":{},"startTime":1764337010499,"traceId":"053a8f4924a0daf2"},{"name":"code-generation","duration":363,"timestamp":704366138651,"id":331,"parentId":323,"tags":{},"startTime":1764337010499,"traceId":"053a8f4924a0daf2"},{"name":"hash","duration":1414,"timestamp":704366139660,"id":332,"parentId":323,"tags":{},"startTime":1764337010500,"traceId":"053a8f4924a0daf2"},{"name":"code-generation-jobs","duration":60,"timestamp":704366141074,"id":333,"parentId":323,"tags":{},"startTime":1764337010502,"traceId":"053a8f4924a0daf2"},{"name":"module-assets","duration":38,"timestamp":704366141129,"id":334,"parentId":323,"tags":{},"startTime":1764337010502,"traceId":"053a8f4924a0daf2"},{"name":"create-chunk-assets","duration":2314,"timestamp":704366141170,"id":335,"parentId":323,"tags":{},"startTime":1764337010502,"traceId":"053a8f4924a0daf2"},{"name":"NextJsBuildManifest-generateClientManifest","duration":59,"timestamp":704366144068,"id":337,"parentId":314,"tags":{},"startTime":1764337010505,"traceId":"053a8f4924a0daf2"},{"name":"NextJsBuildManifest-createassets","duration":101,"timestamp":704366144028,"id":336,"parentId":314,"tags":{},"startTime":1764337010505,"traceId":"053a8f4924a0daf2"},{"name":"seal","duration":8440,"timestamp":704366136876,"id":323,"parentId":314,"tags":{},"startTime":1764337010498,"traceId":"053a8f4924a0daf2"},{"name":"webpack-compilation","duration":34415,"timestamp":704366110931,"id":314,"parentId":299,"tags":{"name":"client"},"startTime":1764337010472,"traceId":"053a8f4924a0daf2"},{"name":"emit","duration":1748,"timestamp":704366145376,"id":338,"parentId":299,"tags":{},"startTime":1764337010506,"traceId":"053a8f4924a0daf2"},{"name":"compile-path","duration":95967,"timestamp":704366051700,"id":284,"tags":{"trigger":"/gunbuilder/build","isTurbopack":false},"startTime":1764337010412,"traceId":"053a8f4924a0daf2"},{"name":"webpack-invalidated-client","duration":56532,"timestamp":704366091460,"id":299,"parentId":3,"tags":{"trigger":"manual"},"startTime":1764337010452,"traceId":"053a8f4924a0daf2"}]
diff --git a/.next/types/app/gunbuilder/[categoryId]/[partId]/page.ts b/.next/types/app/gunbuilder/[categoryId]/[partId]/page.ts
deleted file mode 100644
index 80b6959..0000000
--- a/.next/types/app/gunbuilder/[categoryId]/[partId]/page.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-// File: /Users/sean/Dev/gunbuilder-prototype/app/gunbuilder/[categoryId]/[partId]/page.tsx
-import * as entry from '../../../../../../app/gunbuilder/[categoryId]/[partId]/page.js'
-import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
-
-type TEntry = typeof import('../../../../../../app/gunbuilder/[categoryId]/[partId]/page.js')
-
-// Check that the entry is a valid entry
-checkFields | false
- dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
- dynamicParams?: boolean
- fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
- preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
- runtime?: 'nodejs' | 'experimental-edge' | 'edge'
- maxDuration?: number
-
- metadata?: any
- generateMetadata?: Function
- viewport?: any
- generateViewport?: Function
-
-}, TEntry, ''>>()
-
-// Check the prop type of the entry function
-checkFields, 'default'>>()
-
-// Check the arguments and return type of the generateMetadata function
-if ('generateMetadata' in entry) {
- checkFields>, 'generateMetadata'>>()
- checkFields>, 'generateMetadata'>>()
-}
-
-// Check the arguments and return type of the generateViewport function
-if ('generateViewport' in entry) {
- checkFields>, 'generateViewport'>>()
- checkFields>, 'generateViewport'>>()
-}
-
-// Check the arguments and return type of the generateStaticParams function
-if ('generateStaticParams' in entry) {
- checkFields>, 'generateStaticParams'>>()
- checkFields }, { __tag__: 'generateStaticParams', __return_type__: ReturnType> }>>()
-}
-
-type PageParams = any
-export interface PageProps {
- params?: any
- searchParams?: any
-}
-export interface LayoutProps {
- children?: React.ReactNode
-
- params?: any
-}
-
-// =============
-// Utility types
-type RevalidateRange = T extends { revalidate: any } ? NonNegative : never
-
-// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit.
-type OmitWithTag = Omit
-type Diff = 0 extends (1 & T) ? {} : OmitWithTag
-
-type FirstArg = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
-type SecondArg = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
-type MaybeField = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
-
-
-
-function checkFields<_ extends { [k in keyof any]: never }>() {}
-
-// https://github.com/sindresorhus/type-fest
-type Numeric = number | bigint
-type Zero = 0 | 0n
-type Negative = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
-type NonNegative = T extends Zero ? T : Negative extends never ? T : '__invalid_negative_number__'
diff --git a/.next/types/app/page.ts b/.next/types/app/page.ts
deleted file mode 100644
index e272550..0000000
--- a/.next/types/app/page.ts
+++ /dev/null
@@ -1,79 +0,0 @@
-// File: /Users/sean/Dev/gunbuilder-prototype/app/page.tsx
-import * as entry from '../../../app/page.js'
-import type { ResolvingMetadata, ResolvingViewport } from 'next/dist/lib/metadata/types/metadata-interface.js'
-
-type TEntry = typeof import('../../../app/page.js')
-
-// Check that the entry is a valid entry
-checkFields | false
- dynamic?: 'auto' | 'force-dynamic' | 'error' | 'force-static'
- dynamicParams?: boolean
- fetchCache?: 'auto' | 'force-no-store' | 'only-no-store' | 'default-no-store' | 'default-cache' | 'only-cache' | 'force-cache'
- preferredRegion?: 'auto' | 'global' | 'home' | string | string[]
- runtime?: 'nodejs' | 'experimental-edge' | 'edge'
- maxDuration?: number
-
- metadata?: any
- generateMetadata?: Function
- viewport?: any
- generateViewport?: Function
-
-}, TEntry, ''>>()
-
-// Check the prop type of the entry function
-checkFields, 'default'>>()
-
-// Check the arguments and return type of the generateMetadata function
-if ('generateMetadata' in entry) {
- checkFields>, 'generateMetadata'>>()
- checkFields>, 'generateMetadata'>>()
-}
-
-// Check the arguments and return type of the generateViewport function
-if ('generateViewport' in entry) {
- checkFields>, 'generateViewport'>>()
- checkFields>, 'generateViewport'>>()
-}
-
-// Check the arguments and return type of the generateStaticParams function
-if ('generateStaticParams' in entry) {
- checkFields>, 'generateStaticParams'>>()
- checkFields }, { __tag__: 'generateStaticParams', __return_type__: ReturnType> }>>()
-}
-
-type PageParams = any
-export interface PageProps {
- params?: any
- searchParams?: any
-}
-export interface LayoutProps {
- children?: React.ReactNode
-
- params?: any
-}
-
-// =============
-// Utility types
-type RevalidateRange = T extends { revalidate: any } ? NonNegative : never
-
-// If T is unknown or any, it will be an empty {} type. Otherwise, it will be the same as Omit.
-type OmitWithTag = Omit
-type Diff = 0 extends (1 & T) ? {} : OmitWithTag
-
-type FirstArg = T extends (...args: [infer T, any]) => any ? unknown extends T ? any : T : never
-type SecondArg = T extends (...args: [any, infer T]) => any ? unknown extends T ? any : T : never
-type MaybeField = T extends { [k in K]: infer G } ? G extends Function ? G : never : never
-
-
-
-function checkFields<_ extends { [k in keyof any]: never }>() {}
-
-// https://github.com/sindresorhus/type-fest
-type Numeric = number | bigint
-type Zero = 0 | 0n
-type Negative = T extends Zero ? never : `${T}` extends `-${string}` ? T : never
-type NonNegative = T extends Zero ? T : Negative extends never ? T : '__invalid_negative_number__'