/* * 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-pages-internals"],{ /***/ "(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%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%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=false! ***! \******************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ /***/ ((__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/components/builtin/global-error.js */ \"(app-pages-browser)/./node_modules/next/dist/client/components/builtin/global-error.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-page.js */ \"(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/client-segment.js */ \"(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js */ \"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/client/components/layout-router.js */ \"(app-pages-browser)/./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/render-from-template-context.js */ \"(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/lib/framework/boundary-components.js */ \"(app-pages-browser)/./node_modules/next/dist/lib/framework/boundary-components.js\", 23));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.bind(__webpack_require__, /*! ./node_modules/next/dist/lib/metadata/generate/icon-mark.js */ \"(app-pages-browser)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\"));\n;\nPromise.resolve(/*! import() eager */).then(__webpack_require__.t.bind(__webpack_require__, /*! ./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js */ \"(app-pages-browser)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\", 23));\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvYnVpbGQvd2VicGFjay9sb2FkZXJzL25leHQtZmxpZ2h0LWNsaWVudC1lbnRyeS1sb2FkZXIuanM/bW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZwb3V5YW5tYiUyRkRlc2t0b3AlMkZnaXQtcHJvamVjdHMlMkZkaWdpa2FsYS10YWlsd2luZCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmJ1aWx0aW4lMkZnbG9iYWwtZXJyb3IuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZwb3V5YW5tYiUyRkRlc2t0b3AlMkZnaXQtcHJvamVjdHMlMkZkaWdpa2FsYS10YWlsd2luZCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGY2xpZW50JTJGY29tcG9uZW50cyUyRmNsaWVudC1wYWdlLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGcG91eWFubWIlMkZEZXNrdG9wJTJGZ2l0LXByb2plY3RzJTJGZGlnaWthbGEtdGFpbHdpbmQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmNsaWVudCUyRmNvbXBvbmVudHMlMkZjbGllbnQtc2VnbWVudC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRnBvdXlhbm1iJTJGRGVza3RvcCUyRmdpdC1wcm9qZWN0cyUyRmRpZ2lrYWxhLXRhaWx3aW5kJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGaHR0cC1hY2Nlc3MtZmFsbGJhY2slMkZlcnJvci1ib3VuZGFyeS5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRnBvdXlhbm1iJTJGRGVza3RvcCUyRmdpdC1wcm9qZWN0cyUyRmRpZ2lrYWxhLXRhaWx3aW5kJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGbGF5b3V0LXJvdXRlci5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRnBvdXlhbm1iJTJGRGVza3RvcCUyRmdpdC1wcm9qZWN0cyUyRmRpZ2lrYWxhLXRhaWx3aW5kJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZjbGllbnQlMkZjb21wb25lbnRzJTJGcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZtb2R1bGVzPSU3QiUyMnJlcXVlc3QlMjIlM0ElMjIlMkZVc2VycyUyRnBvdXlhbm1iJTJGRGVza3RvcCUyRmdpdC1wcm9qZWN0cyUyRmRpZ2lrYWxhLXRhaWx3aW5kJTJGbm9kZV9tb2R1bGVzJTJGbmV4dCUyRmRpc3QlMkZsaWIlMkZmcmFtZXdvcmslMkZib3VuZGFyeS1jb21wb25lbnRzLmpzJTIyJTJDJTIyaWRzJTIyJTNBJTVCJTVEJTdEJm1vZHVsZXM9JTdCJTIycmVxdWVzdCUyMiUzQSUyMiUyRlVzZXJzJTJGcG91eWFubWIlMkZEZXNrdG9wJTJGZ2l0LXByb2plY3RzJTJGZGlnaWthbGEtdGFpbHdpbmQlMkZub2RlX21vZHVsZXMlMkZuZXh0JTJGZGlzdCUyRmxpYiUyRm1ldGFkYXRhJTJGZ2VuZXJhdGUlMkZpY29uLW1hcmsuanMlMjIlMkMlMjJpZHMlMjIlM0ElNUIlNUQlN0QmbW9kdWxlcz0lN0IlMjJyZXF1ZXN0JTIyJTNBJTIyJTJGVXNlcnMlMkZwb3V5YW5tYiUyRkRlc2t0b3AlMkZnaXQtcHJvamVjdHMlMkZkaWdpa2FsYS10YWlsd2luZCUyRm5vZGVfbW9kdWxlcyUyRm5leHQlMkZkaXN0JTJGbmV4dC1kZXZ0b29scyUyRnVzZXJzcGFjZSUyRmFwcCUyRnNlZ21lbnQtZXhwbG9yZXItbm9kZS5qcyUyMiUyQyUyMmlkcyUyMiUzQSU1QiU1RCU3RCZzZXJ2ZXI9ZmFsc2UhIiwibWFwcGluZ3MiOiJBQUFBLG9RQUE0SjtBQUM1SjtBQUNBLGtQQUFtSjtBQUNuSjtBQUNBLHdQQUFzSjtBQUN0SjtBQUNBLGtTQUEySztBQUMzSztBQUNBLHNQQUFxSjtBQUNySjtBQUNBLG9SQUFvSztBQUNwSztBQUNBLDBQQUF1SjtBQUN2SjtBQUNBLGdQQUFxSjtBQUNySjtBQUNBLDBSQUF1SyIsInNvdXJjZXMiOlsiIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3BvdXlhbm1iL0Rlc2t0b3AvZ2l0LXByb2plY3RzL2RpZ2lrYWxhLXRhaWx3aW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvYnVpbHRpbi9nbG9iYWwtZXJyb3IuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wb3V5YW5tYi9EZXNrdG9wL2dpdC1wcm9qZWN0cy9kaWdpa2FsYS10YWlsd2luZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2NsaWVudC1wYWdlLmpzXCIpO1xuO1xuaW1wb3J0KC8qIHdlYnBhY2tNb2RlOiBcImVhZ2VyXCIgKi8gXCIvVXNlcnMvcG91eWFubWIvRGVza3RvcC9naXQtcHJvamVjdHMvZGlnaWthbGEtdGFpbHdpbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9jbGllbnQvY29tcG9uZW50cy9jbGllbnQtc2VnbWVudC5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3BvdXlhbm1iL0Rlc2t0b3AvZ2l0LXByb2plY3RzL2RpZ2lrYWxhLXRhaWx3aW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvaHR0cC1hY2Nlc3MtZmFsbGJhY2svZXJyb3ItYm91bmRhcnkuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wb3V5YW5tYi9EZXNrdG9wL2dpdC1wcm9qZWN0cy9kaWdpa2FsYS10YWlsd2luZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL2xheW91dC1yb3V0ZXIuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wb3V5YW5tYi9EZXNrdG9wL2dpdC1wcm9qZWN0cy9kaWdpa2FsYS10YWlsd2luZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQuanNcIik7XG47XG5pbXBvcnQoLyogd2VicGFja01vZGU6IFwiZWFnZXJcIiAqLyBcIi9Vc2Vycy9wb3V5YW5tYi9EZXNrdG9wL2dpdC1wcm9qZWN0cy9kaWdpa2FsYS10YWlsd2luZC9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L2xpYi9mcmFtZXdvcmsvYm91bmRhcnktY29tcG9uZW50cy5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3BvdXlhbm1iL0Rlc2t0b3AvZ2l0LXByb2plY3RzL2RpZ2lrYWxhLXRhaWx3aW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL2dlbmVyYXRlL2ljb24tbWFyay5qc1wiKTtcbjtcbmltcG9ydCgvKiB3ZWJwYWNrTW9kZTogXCJlYWdlclwiICovIFwiL1VzZXJzL3BvdXlhbm1iL0Rlc2t0b3AvZ2l0LXByb2plY3RzL2RpZ2lrYWxhLXRhaWx3aW5kL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3NlZ21lbnQtZXhwbG9yZXItbm9kZS5qc1wiKTtcbiJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\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%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/client/components/bfcache-state-manager.js": /*!***************************************************************************!*\ !*** ./node_modules/next/dist/client/components/bfcache-state-manager.js ***! \***************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"useRouterBFCache\", ({\n enumerable: true,\n get: function() {\n return useRouterBFCache;\n }\n}));\nconst _react = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\n// When the flag is disabled, only track the currently active tree\nconst MAX_BF_CACHE_ENTRIES = false ? 0 : 1;\nfunction useRouterBFCache(activeTree, activeCacheNode, activeStateKey) {\n // The currently active entry. The entries form a linked list, sorted in\n // order of most recently active. This allows us to reuse parts of the list\n // without cloning, unless there's a reordering or removal.\n // TODO: Once we start tracking back/forward history at each route level,\n // we should use the history order instead. In other words, when traversing\n // to an existing entry as a result of a popstate event, we should maintain\n // the existing order instead of moving it to the front of the list. I think\n // an initial implementation of this could be to pass an incrementing id\n // to history.pushState/replaceState, then use that here for ordering.\n const [prevActiveEntry, setPrevActiveEntry] = (0, _react.useState)(()=>{\n const initialEntry = {\n tree: activeTree,\n cacheNode: activeCacheNode,\n stateKey: activeStateKey,\n next: null\n };\n return initialEntry;\n });\n if (prevActiveEntry.tree === activeTree) {\n // Fast path. The active tree hasn't changed, so we can reuse the\n // existing state.\n return prevActiveEntry;\n }\n // The route tree changed. Note that this doesn't mean that the tree changed\n // *at this level* — the change may be due to a child route. Either way, we\n // need to either add or update the router tree in the bfcache.\n //\n // The rest of the code looks more complicated than it actually is because we\n // can't mutate the state in place; we have to copy-on-write.\n // Create a new entry for the active cache key. This is the head of the new\n // linked list.\n const newActiveEntry = {\n tree: activeTree,\n cacheNode: activeCacheNode,\n stateKey: activeStateKey,\n next: null\n };\n // We need to append the old list onto the new list. If the head of the new\n // list was already present in the cache, then we'll need to clone everything\n // that came before it. Then we can reuse the rest.\n let n = 1;\n let oldEntry = prevActiveEntry;\n let clonedEntry = newActiveEntry;\n while(oldEntry !== null && n < MAX_BF_CACHE_ENTRIES){\n if (oldEntry.stateKey === activeStateKey) {\n // Fast path. This entry in the old list that corresponds to the key that\n // is now active. We've already placed a clone of this entry at the front\n // of the new list. We can reuse the rest of the old list without cloning.\n // NOTE: We don't need to worry about eviction in this case because we\n // haven't increased the size of the cache, and we assume the max size\n // is constant across renders. If we were to change it to a dynamic limit,\n // then the implementation would need to account for that.\n clonedEntry.next = oldEntry.next;\n break;\n } else {\n // Clone the entry and append it to the list.\n n++;\n const entry = {\n tree: oldEntry.tree,\n cacheNode: oldEntry.cacheNode,\n stateKey: oldEntry.stateKey,\n next: null\n };\n clonedEntry.next = entry;\n clonedEntry = entry;\n }\n oldEntry = oldEntry.next;\n }\n setPrevActiveEntry(newActiveEntry);\n return newActiveEntry;\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=bfcache-state-manager.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 // 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvYmZjYWNoZS1zdGF0ZS1tYW5hZ2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7b0RBcUNnQkE7OztlQUFBQTs7O21DQWpDUztBQUV6QixrRUFBa0U7QUFDbEUsTUFBTUMsdUJBQXVCQyxNQUFtQyxHQUFHLENBQUMsR0FBRztBQThCaEUsU0FBU0YsaUJBQ2RLLFVBQTZCLEVBQzdCQyxlQUEwQixFQUMxQkMsY0FBc0I7SUFFdEIsd0VBQXdFO0lBQ3hFLDJFQUEyRTtJQUMzRSwyREFBMkQ7SUFDM0QseUVBQXlFO0lBQ3pFLDJFQUEyRTtJQUMzRSwyRUFBMkU7SUFDM0UsNEVBQTRFO0lBQzVFLHdFQUF3RTtJQUN4RSxzRUFBc0U7SUFDdEUsTUFBTSxDQUFDQyxpQkFBaUJDLG1CQUFtQixHQUFHQyxDQUFBQSxHQUFBQSxPQUFBQSxRQUFBQSxFQUM1QztRQUNFLE1BQU1DLGVBQW1DO1lBQ3ZDQyxNQUFNUDtZQUNOUSxXQUFXUDtZQUNYUSxVQUFVUDtZQUNWUSxNQUFNO1FBQ1I7UUFDQSxPQUFPSjtJQUNUO0lBR0YsSUFBSUgsZ0JBQWdCSSxJQUFJLEtBQUtQLFlBQVk7UUFDdkMsaUVBQWlFO1FBQ2pFLGtCQUFrQjtRQUNsQixPQUFPRztJQUNUO0lBRUEsNEVBQTRFO0lBQzVFLDJFQUEyRTtJQUMzRSwrREFBK0Q7SUFDL0QsRUFBRTtJQUNGLDZFQUE2RTtJQUM3RSw2REFBNkQ7SUFFN0QsMkVBQTJFO0lBQzNFLGVBQWU7SUFDZixNQUFNUSxpQkFBcUM7UUFDekNKLE1BQU1QO1FBQ05RLFdBQVdQO1FBQ1hRLFVBQVVQO1FBQ1ZRLE1BQU07SUFDUjtJQUVBLDJFQUEyRTtJQUMzRSw2RUFBNkU7SUFDN0UsbURBQW1EO0lBQ25ELElBQUlFLElBQUk7SUFDUixJQUFJQyxXQUFzQ1Y7SUFDMUMsSUFBSVcsY0FBa0NIO0lBQ3RDLE1BQU9FLGFBQWEsUUFBUUQsSUFBSWhCLHFCQUFzQjtRQUNwRCxJQUFJaUIsU0FBU0osUUFBUSxLQUFLUCxnQkFBZ0I7WUFDeEMseUVBQXlFO1lBQ3pFLHlFQUF5RTtZQUN6RSwwRUFBMEU7WUFDMUUsc0VBQXNFO1lBQ3RFLHNFQUFzRTtZQUN0RSwwRUFBMEU7WUFDMUUsMERBQTBEO1lBQzFEWSxZQUFZSixJQUFJLEdBQUdHLFNBQVNILElBQUk7WUFDaEM7UUFDRixPQUFPO1lBQ0wsNkNBQTZDO1lBQzdDRTtZQUNBLE1BQU1HLFFBQTRCO2dCQUNoQ1IsTUFBTU0sU0FBU04sSUFBSTtnQkFDbkJDLFdBQVdLLFNBQVNMLFNBQVM7Z0JBQzdCQyxVQUFVSSxTQUFTSixRQUFRO2dCQUMzQkMsTUFBTTtZQUNSO1lBQ0FJLFlBQVlKLElBQUksR0FBR0s7WUFDbkJELGNBQWNDO1FBQ2hCO1FBQ0FGLFdBQVdBLFNBQVNILElBQUk7SUFDMUI7SUFFQU4sbUJBQW1CTztJQUNuQixPQUFPQTtBQUNUIiwic291cmNlcyI6WyIvVXNlcnMvcG91eWFubWIvc3JjL2NsaWVudC9jb21wb25lbnRzL2JmY2FjaGUtc3RhdGUtbWFuYWdlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG4gIENhY2hlTm9kZSxcbiAgRmxpZ2h0Um91dGVyU3RhdGUsXG59IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci10eXBlcydcbmltcG9ydCB7IHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnXG5cbi8vIFdoZW4gdGhlIGZsYWcgaXMgZGlzYWJsZWQsIG9ubHkgdHJhY2sgdGhlIGN1cnJlbnRseSBhY3RpdmUgdHJlZVxuY29uc3QgTUFYX0JGX0NBQ0hFX0VOVFJJRVMgPSBwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUyA/IDMgOiAxXG5cbmV4cG9ydCB0eXBlIFJvdXRlckJGQ2FjaGVFbnRyeSA9IHtcbiAgdHJlZTogRmxpZ2h0Um91dGVyU3RhdGVcbiAgY2FjaGVOb2RlOiBDYWNoZU5vZGVcbiAgc3RhdGVLZXk6IHN0cmluZ1xuICAvLyBUaGUgZW50cmllcyBmb3JtIGEgbGlua2VkIGxpc3QsIHNvcnRlZCBpbiBvcmRlciBvZiBtb3N0IHJlY2VudGx5IGFjdGl2ZS5cbiAgbmV4dDogUm91dGVyQkZDYWNoZUVudHJ5IHwgbnVsbFxufVxuXG4vKipcbiAqIEtlZXBzIHRyYWNrIG9mIHRoZSBtb3N0IHJlY2VudCBOIHRyZWVzIChGbGlnaHRSb3V0ZXJTdGF0ZXMpIHRoYXQgd2VyZSBhY3RpdmVcbiAqIGF0IGEgY2VydGFpbiBzZWdtZW50IGxldmVsLiBFLmcuIGZvciBhIHNlZ21lbnQgXCIvYS9iL1twYXJhbV1cIiwgdGhpcyBob29rXG4gKiB0cmFja3MgdGhlIGxhc3QgTiBwYXJhbSB2YWx1ZXMgdGhhdCB0aGUgcm91dGVyIHJlbmRlcmVkIGZvciBOLlxuICpcbiAqIFRoZSByZXN1bHQgb2YgdGhpcyBob29rIHByZWNpc2VseSBkZXRlcm1pbmVzIHRoZSBudW1iZXIgYW5kIG9yZGVyIG9mXG4gKiB0cmVlcyB0aGF0IGFyZSByZW5kZXJlZCBpbiBwYXJhbGxlbCBhdCB0aGVpciBzZWdtZW50IGxldmVsLlxuICpcbiAqIFRoZSBwdXJwb3NlIG9mIHRoaXMgY2FjaGUgaXMgdG8gd2UgY2FuIHByZXNlcnZlIHRoZSBSZWFjdCBhbmQgRE9NIHN0YXRlIG9mXG4gKiBzb21lIG51bWJlciBvZiBpbmFjdGl2ZSB0cmVlcywgYnkgcmVuZGVyaW5nIHRoZW0gaW4gYW4gPEFjdGl2aXR5PiBib3VuZGFyeS5cbiAqIFRoYXQgbWVhbnMgaXQgd291bGQgbm90IG1ha2Ugc2Vuc2UgZm9yIHRoZSB0aGUgbGlmZXRpbWUgb2YgdGhlIGNhY2hlIHRvIGJlXG4gKiBhbnkgbG9uZ2VyIHRoYW4gdGhlIGxpZmV0aW1lIG9mIHRoZSBSZWFjdCB0cmVlOyBlLmcuIGlmIHRoZSBob29rIHdlcmVcbiAqIHVubW91bnRlZCwgdGhlbiB0aGUgUmVhY3QgdHJlZSB3b3VsZCBiZSwgdG9vLiBTbywgd2UgdXNlIFJlYWN0IHN0YXRlIHRvXG4gKiBtYW5hZ2UgaXQuXG4gKlxuICogTm90ZSB0aGF0IHdlIGRvbid0IHN0b3JlIHRoZSBSU0MgZGF0YSBmb3IgdGhlIGNhY2hlIGVudHJpZXMgaW4gdGhpcyBob29rIOKAlFxuICogdGhlIGRhdGEgZm9yIGluYWN0aXZlIHNlZ21lbnRzIGlzIHN0b3JlZCBpbiB0aGUgcGFyZW50IENhY2hlTm9kZSwgd2hpY2hcbiAqICpkb2VzKiBoYXZlIGEgbG9uZ2VyIGxpZmV0aW1lIHRoYW4gdGhlIFJlYWN0IHRyZWUuIFRoaXMgaG9vayBvbmx5IGRldGVybWluZXNcbiAqIHdoaWNoIG9mIHRob3NlIHRyZWVzIHNob3VsZCBoYXZlIHRoZWlyICpzdGF0ZSogcHJlc2VydmVkLCBieSA8QWN0aXZpdHk+LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdXNlUm91dGVyQkZDYWNoZShcbiAgYWN0aXZlVHJlZTogRmxpZ2h0Um91dGVyU3RhdGUsXG4gIGFjdGl2ZUNhY2hlTm9kZTogQ2FjaGVOb2RlLFxuICBhY3RpdmVTdGF0ZUtleTogc3RyaW5nXG4pOiBSb3V0ZXJCRkNhY2hlRW50cnkge1xuICAvLyBUaGUgY3VycmVudGx5IGFjdGl2ZSBlbnRyeS4gVGhlIGVudHJpZXMgZm9ybSBhIGxpbmtlZCBsaXN0LCBzb3J0ZWQgaW5cbiAgLy8gb3JkZXIgb2YgbW9zdCByZWNlbnRseSBhY3RpdmUuIFRoaXMgYWxsb3dzIHVzIHRvIHJldXNlIHBhcnRzIG9mIHRoZSBsaXN0XG4gIC8vIHdpdGhvdXQgY2xvbmluZywgdW5sZXNzIHRoZXJlJ3MgYSByZW9yZGVyaW5nIG9yIHJlbW92YWwuXG4gIC8vIFRPRE86IE9uY2Ugd2Ugc3RhcnQgdHJhY2tpbmcgYmFjay9mb3J3YXJkIGhpc3RvcnkgYXQgZWFjaCByb3V0ZSBsZXZlbCxcbiAgLy8gd2Ugc2hvdWxkIHVzZSB0aGUgaGlzdG9yeSBvcmRlciBpbnN0ZWFkLiBJbiBvdGhlciB3b3Jkcywgd2hlbiB0cmF2ZXJzaW5nXG4gIC8vIHRvIGFuIGV4aXN0aW5nIGVudHJ5IGFzIGEgcmVzdWx0IG9mIGEgcG9wc3RhdGUgZXZlbnQsIHdlIHNob3VsZCBtYWludGFpblxuICAvLyB0aGUgZXhpc3Rpbmcgb3JkZXIgaW5zdGVhZCBvZiBtb3ZpbmcgaXQgdG8gdGhlIGZyb250IG9mIHRoZSBsaXN0LiBJIHRoaW5rXG4gIC8vIGFuIGluaXRpYWwgaW1wbGVtZW50YXRpb24gb2YgdGhpcyBjb3VsZCBiZSB0byBwYXNzIGFuIGluY3JlbWVudGluZyBpZFxuICAvLyB0byBoaXN0b3J5LnB1c2hTdGF0ZS9yZXBsYWNlU3RhdGUsIHRoZW4gdXNlIHRoYXQgaGVyZSBmb3Igb3JkZXJpbmcuXG4gIGNvbnN0IFtwcmV2QWN0aXZlRW50cnksIHNldFByZXZBY3RpdmVFbnRyeV0gPSB1c2VTdGF0ZTxSb3V0ZXJCRkNhY2hlRW50cnk+KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IGluaXRpYWxFbnRyeTogUm91dGVyQkZDYWNoZUVudHJ5ID0ge1xuICAgICAgICB0cmVlOiBhY3RpdmVUcmVlLFxuICAgICAgICBjYWNoZU5vZGU6IGFjdGl2ZUNhY2hlTm9kZSxcbiAgICAgICAgc3RhdGVLZXk6IGFjdGl2ZVN0YXRlS2V5LFxuICAgICAgICBuZXh0OiBudWxsLFxuICAgICAgfVxuICAgICAgcmV0dXJuIGluaXRpYWxFbnRyeVxuICAgIH1cbiAgKVxuXG4gIGlmIChwcmV2QWN0aXZlRW50cnkudHJlZSA9PT0gYWN0aXZlVHJlZSkge1xuICAgIC8vIEZhc3QgcGF0aC4gVGhlIGFjdGl2ZSB0cmVlIGhhc24ndCBjaGFuZ2VkLCBzbyB3ZSBjYW4gcmV1c2UgdGhlXG4gICAgLy8gZXhpc3Rpbmcgc3RhdGUuXG4gICAgcmV0dXJuIHByZXZBY3RpdmVFbnRyeVxuICB9XG5cbiAgLy8gVGhlIHJvdXRlIHRyZWUgY2hhbmdlZC4gTm90ZSB0aGF0IHRoaXMgZG9lc24ndCBtZWFuIHRoYXQgdGhlIHRyZWUgY2hhbmdlZFxuICAvLyAqYXQgdGhpcyBsZXZlbCog4oCUIHRoZSBjaGFuZ2UgbWF5IGJlIGR1ZSB0byBhIGNoaWxkIHJvdXRlLiBFaXRoZXIgd2F5LCB3ZVxuICAvLyBuZWVkIHRvIGVpdGhlciBhZGQgb3IgdXBkYXRlIHRoZSByb3V0ZXIgdHJlZSBpbiB0aGUgYmZjYWNoZS5cbiAgLy9cbiAgLy8gVGhlIHJlc3Qgb2YgdGhlIGNvZGUgbG9va3MgbW9yZSBjb21wbGljYXRlZCB0aGFuIGl0IGFjdHVhbGx5IGlzIGJlY2F1c2Ugd2VcbiAgLy8gY2FuJ3QgbXV0YXRlIHRoZSBzdGF0ZSBpbiBwbGFjZTsgd2UgaGF2ZSB0byBjb3B5LW9uLXdyaXRlLlxuXG4gIC8vIENyZWF0ZSBhIG5ldyBlbnRyeSBmb3IgdGhlIGFjdGl2ZSBjYWNoZSBrZXkuIFRoaXMgaXMgdGhlIGhlYWQgb2YgdGhlIG5ld1xuICAvLyBsaW5rZWQgbGlzdC5cbiAgY29uc3QgbmV3QWN0aXZlRW50cnk6IFJvdXRlckJGQ2FjaGVFbnRyeSA9IHtcbiAgICB0cmVlOiBhY3RpdmVUcmVlLFxuICAgIGNhY2hlTm9kZTogYWN0aXZlQ2FjaGVOb2RlLFxuICAgIHN0YXRlS2V5OiBhY3RpdmVTdGF0ZUtleSxcbiAgICBuZXh0OiBudWxsLFxuICB9XG5cbiAgLy8gV2UgbmVlZCB0byBhcHBlbmQgdGhlIG9sZCBsaXN0IG9udG8gdGhlIG5ldyBsaXN0LiBJZiB0aGUgaGVhZCBvZiB0aGUgbmV3XG4gIC8vIGxpc3Qgd2FzIGFscmVhZHkgcHJlc2VudCBpbiB0aGUgY2FjaGUsIHRoZW4gd2UnbGwgbmVlZCB0byBjbG9uZSBldmVyeXRoaW5nXG4gIC8vIHRoYXQgY2FtZSBiZWZvcmUgaXQuIFRoZW4gd2UgY2FuIHJldXNlIHRoZSByZXN0LlxuICBsZXQgbiA9IDFcbiAgbGV0IG9sZEVudHJ5OiBSb3V0ZXJCRkNhY2hlRW50cnkgfCBudWxsID0gcHJldkFjdGl2ZUVudHJ5XG4gIGxldCBjbG9uZWRFbnRyeTogUm91dGVyQkZDYWNoZUVudHJ5ID0gbmV3QWN0aXZlRW50cnlcbiAgd2hpbGUgKG9sZEVudHJ5ICE9PSBudWxsICYmIG4gPCBNQVhfQkZfQ0FDSEVfRU5UUklFUykge1xuICAgIGlmIChvbGRFbnRyeS5zdGF0ZUtleSA9PT0gYWN0aXZlU3RhdGVLZXkpIHtcbiAgICAgIC8vIEZhc3QgcGF0aC4gVGhpcyBlbnRyeSBpbiB0aGUgb2xkIGxpc3QgdGhhdCBjb3JyZXNwb25kcyB0byB0aGUga2V5IHRoYXRcbiAgICAgIC8vIGlzIG5vdyBhY3RpdmUuIFdlJ3ZlIGFscmVhZHkgcGxhY2VkIGEgY2xvbmUgb2YgdGhpcyBlbnRyeSBhdCB0aGUgZnJvbnRcbiAgICAgIC8vIG9mIHRoZSBuZXcgbGlzdC4gV2UgY2FuIHJldXNlIHRoZSByZXN0IG9mIHRoZSBvbGQgbGlzdCB3aXRob3V0IGNsb25pbmcuXG4gICAgICAvLyBOT1RFOiBXZSBkb24ndCBuZWVkIHRvIHdvcnJ5IGFib3V0IGV2aWN0aW9uIGluIHRoaXMgY2FzZSBiZWNhdXNlIHdlXG4gICAgICAvLyBoYXZlbid0IGluY3JlYXNlZCB0aGUgc2l6ZSBvZiB0aGUgY2FjaGUsIGFuZCB3ZSBhc3N1bWUgdGhlIG1heCBzaXplXG4gICAgICAvLyBpcyBjb25zdGFudCBhY3Jvc3MgcmVuZGVycy4gSWYgd2Ugd2VyZSB0byBjaGFuZ2UgaXQgdG8gYSBkeW5hbWljIGxpbWl0LFxuICAgICAgLy8gdGhlbiB0aGUgaW1wbGVtZW50YXRpb24gd291bGQgbmVlZCB0byBhY2NvdW50IGZvciB0aGF0LlxuICAgICAgY2xvbmVkRW50cnkubmV4dCA9IG9sZEVudHJ5Lm5leHRcbiAgICAgIGJyZWFrXG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENsb25lIHRoZSBlbnRyeSBhbmQgYXBwZW5kIGl0IHRvIHRoZSBsaXN0LlxuICAgICAgbisrXG4gICAgICBjb25zdCBlbnRyeTogUm91dGVyQkZDYWNoZUVudHJ5ID0ge1xuICAgICAgICB0cmVlOiBvbGRFbnRyeS50cmVlLFxuICAgICAgICBjYWNoZU5vZGU6IG9sZEVudHJ5LmNhY2hlTm9kZSxcbiAgICAgICAgc3RhdGVLZXk6IG9sZEVudHJ5LnN0YXRlS2V5LFxuICAgICAgICBuZXh0OiBudWxsLFxuICAgICAgfVxuICAgICAgY2xvbmVkRW50cnkubmV4dCA9IGVudHJ5XG4gICAgICBjbG9uZWRFbnRyeSA9IGVudHJ5XG4gICAgfVxuICAgIG9sZEVudHJ5ID0gb2xkRW50cnkubmV4dFxuICB9XG5cbiAgc2V0UHJldkFjdGl2ZUVudHJ5KG5ld0FjdGl2ZUVudHJ5KVxuICByZXR1cm4gbmV3QWN0aXZlRW50cnlcbn1cbiJdLCJuYW1lcyI6WyJ1c2VSb3V0ZXJCRkNhY2hlIiwiTUFYX0JGX0NBQ0hFX0VOVFJJRVMiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0NBQ0hFX0NPTVBPTkVOVFMiLCJhY3RpdmVUcmVlIiwiYWN0aXZlQ2FjaGVOb2RlIiwiYWN0aXZlU3RhdGVLZXkiLCJwcmV2QWN0aXZlRW50cnkiLCJzZXRQcmV2QWN0aXZlRW50cnkiLCJ1c2VTdGF0ZSIsImluaXRpYWxFbnRyeSIsInRyZWUiLCJjYWNoZU5vZGUiLCJzdGF0ZUtleSIsIm5leHQiLCJuZXdBY3RpdmVFbnRyeSIsIm4iLCJvbGRFbnRyeSIsImNsb25lZEVudHJ5IiwiZW50cnkiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/bfcache-state-manager.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/client/components/client-page.js ***! \*****************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ClientPageRoot\", ({\n enumerable: true,\n get: function() {\n return ClientPageRoot;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-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 _react = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\nconst _routeparams = __webpack_require__(/*! ../route-params */ \"(app-pages-browser)/./node_modules/next/dist/client/route-params.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js\");\nfunction ClientPageRoot({ Component, serverProvidedParams }) {\n let searchParams;\n let params;\n if (serverProvidedParams !== null) {\n searchParams = serverProvidedParams.searchParams;\n params = serverProvidedParams.params;\n } else {\n // When Cache Components is enabled, the server does not pass the params as\n // props; they are parsed on the client and passed via context.\n const layoutRouterContext = (0, _react.use)(_approutercontextsharedruntime.LayoutRouterContext);\n params = layoutRouterContext !== null ? layoutRouterContext.parentParams : {};\n // This is an intentional behavior change: when Cache Components is enabled,\n // client segments receive the \"canonical\" search params, not the\n // rewritten ones. Users should either call useSearchParams directly or pass\n // the rewritten ones in from a Server Component.\n // TODO: Log a deprecation error when this object is accessed\n searchParams = (0, _routeparams.urlSearchParamsToParsedUrlQuery)((0, _react.use)(_hooksclientcontextsharedruntime.SearchParamsContext));\n }\n if (false) {} else {\n const { createRenderSearchParamsFromClient } = __webpack_require__(/*! ../request/search-params.browser */ \"(app-pages-browser)/./node_modules/next/dist/client/request/search-params.browser.js\");\n const clientSearchParams = createRenderSearchParamsFromClient(searchParams);\n const { createRenderParamsFromClient } = __webpack_require__(/*! ../request/params.browser */ \"(app-pages-browser)/./node_modules/next/dist/client/request/params.browser.js\");\n const clientParams = createRenderParamsFromClient(params);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n params: clientParams,\n searchParams: clientSearchParams\n });\n }\n}\n_c = ClientPageRoot;\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=client-page.js.map\nvar _c;\n$RefreshReg$(_c, \"ClientPageRoot\");\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 // 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXBhZ2UuanMiLCJtYXBwaW5ncyI6Ijs7OztrREFpQmdCQTs7O2VBQUFBOzs7OzJEQWJvQjttQ0FDaEI7eUNBQzRCOzZEQUNaO0FBVTdCLHdCQUF3QixFQUM3QkMsU0FBUyxFQUNUQyxvQkFBb0IsRUFRckI7SUFDQyxJQUFJQztJQUNKLElBQUlDO0lBQ0osSUFBSUYseUJBQXlCLE1BQU07UUFDakNDLGVBQWVELHFCQUFxQkMsWUFBWTtRQUNoREMsU0FBU0YscUJBQXFCRSxNQUFNO0lBQ3RDLE9BQU87UUFDTCwyRUFBMkU7UUFDM0UsK0RBQStEO1FBQy9ELE1BQU1DLHNCQUFzQkMsQ0FBQUEsR0FBQUEsT0FBQUEsR0FBQUEsRUFBSUMsK0JBQUFBLG1CQUFtQjtRQUNuREgsU0FDRUMsd0JBQXdCLE9BQU9BLG9CQUFvQkcsWUFBWSxHQUFHLENBQUM7UUFFckUsNEVBQTRFO1FBQzVFLGlFQUFpRTtRQUNqRSw0RUFBNEU7UUFDNUUsaURBQWlEO1FBQ2pELDZEQUE2RDtRQUM3REwsZUFBZU0sQ0FBQUEsR0FBQUEsYUFBQUEsK0JBQStCLEVBQUNILENBQUFBLEdBQUFBLE9BQUFBLEdBQUFBLEVBQUlJLGlDQUFBQSxtQkFBbUI7SUFDeEU7SUFFQSxJQUFJLEtBQTZCLEVBQUUsRUFhbEMsTUFBTTtRQUNMLE1BQU0sRUFBRU8sa0NBQWtDLEVBQUUsR0FDMUNGLG1CQUFPQSxDQUFDLDhIQUFrQztRQUM1QyxNQUFNSCxxQkFBcUJLLG1DQUFtQ2Q7UUFDOUQsTUFBTSxFQUFFZSw0QkFBNEIsRUFBRSxHQUNwQ0gsbUJBQU9BLENBQUMsZ0hBQTJCO1FBQ3JDLE1BQU1GLGVBQWVLLDZCQUE2QmQ7UUFFbEQscUJBQU8scUJBQUNILFdBQUFBO1lBQVVHLFFBQVFTO1lBQWNWLGNBQWNTOztJQUN4RDtBQUNGO0tBdERnQloiLCJzb3VyY2VzIjpbIi9Vc2Vycy9wb3V5YW5tYi9zcmMvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXBhZ2UudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgdHlwZSB7IFBhcnNlZFVybFF1ZXJ5IH0gZnJvbSAncXVlcnlzdHJpbmcnXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcbmltcG9ydCB7IExheW91dFJvdXRlckNvbnRleHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IHVzZSB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgdXJsU2VhcmNoUGFyYW1zVG9QYXJzZWRVcmxRdWVyeSB9IGZyb20gJy4uL3JvdXRlLXBhcmFtcydcbmltcG9ydCB7IFNlYXJjaFBhcmFtc0NvbnRleHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2hvb2tzLWNsaWVudC1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuXG4vKipcbiAqIFdoZW4gdGhlIFBhZ2UgaXMgYSBjbGllbnQgY29tcG9uZW50IHdlIHNlbmQgdGhlIHBhcmFtcyBhbmQgc2VhcmNoUGFyYW1zIHRvIHRoaXMgY2xpZW50IHdyYXBwZXJcbiAqIHdoZXJlIHRoZXkgYXJlIHR1cm5lZCBpbnRvIGR5bmFtaWNhbGx5IHRyYWNrZWQgdmFsdWVzIGJlZm9yZSBiZWluZyBwYXNzZWQgdG8gdGhlIGFjdHVhbCBQYWdlIGNvbXBvbmVudC5cbiAqXG4gKiBhZGRpdGlvbmFsbHkgd2UgbWF5IHNlbmQgcHJvbWlzZXMgcmVwcmVzZW50aW5nIHRoZSBwYXJhbXMgYW5kIHNlYXJjaFBhcmFtcy4gV2UgZG9uJ3QgZXZlciB1c2UgdGhlc2UgcGFzc2VkXG4gKiB2YWx1ZXMgYnV0IGl0IGNhbiBiZSBuZWNlc3NhcnkgZm9yIHRoZSBzZW5kZXIgdG8gc2VuZCBhIFByb21pc2UgdGhhdCBkb2Vzbid0IHJlc29sdmUgaW4gY2VydGFpbiBzaXR1YXRpb25zLlxuICogSXQgaXMgdXAgdG8gdGhlIGNhbGxlciB0byBkZWNpZGUgaWYgdGhlIHByb21pc2VzIGFyZSBuZWVkZWQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDbGllbnRQYWdlUm9vdCh7XG4gIENvbXBvbmVudCxcbiAgc2VydmVyUHJvdmlkZWRQYXJhbXMsXG59OiB7XG4gIENvbXBvbmVudDogUmVhY3QuQ29tcG9uZW50VHlwZTxhbnk+XG4gIHNlcnZlclByb3ZpZGVkUGFyYW1zOiBudWxsIHwge1xuICAgIHNlYXJjaFBhcmFtczogUGFyc2VkVXJsUXVlcnlcbiAgICBwYXJhbXM6IFBhcmFtc1xuICAgIHByb21pc2VzOiBBcnJheTxQcm9taXNlPGFueT4+IHwgbnVsbFxuICB9XG59KSB7XG4gIGxldCBzZWFyY2hQYXJhbXM6IFBhcnNlZFVybFF1ZXJ5XG4gIGxldCBwYXJhbXM6IFBhcmFtc1xuICBpZiAoc2VydmVyUHJvdmlkZWRQYXJhbXMgIT09IG51bGwpIHtcbiAgICBzZWFyY2hQYXJhbXMgPSBzZXJ2ZXJQcm92aWRlZFBhcmFtcy5zZWFyY2hQYXJhbXNcbiAgICBwYXJhbXMgPSBzZXJ2ZXJQcm92aWRlZFBhcmFtcy5wYXJhbXNcbiAgfSBlbHNlIHtcbiAgICAvLyBXaGVuIENhY2hlIENvbXBvbmVudHMgaXMgZW5hYmxlZCwgdGhlIHNlcnZlciBkb2VzIG5vdCBwYXNzIHRoZSBwYXJhbXMgYXNcbiAgICAvLyBwcm9wczsgdGhleSBhcmUgcGFyc2VkIG9uIHRoZSBjbGllbnQgYW5kIHBhc3NlZCB2aWEgY29udGV4dC5cbiAgICBjb25zdCBsYXlvdXRSb3V0ZXJDb250ZXh0ID0gdXNlKExheW91dFJvdXRlckNvbnRleHQpXG4gICAgcGFyYW1zID1cbiAgICAgIGxheW91dFJvdXRlckNvbnRleHQgIT09IG51bGwgPyBsYXlvdXRSb3V0ZXJDb250ZXh0LnBhcmVudFBhcmFtcyA6IHt9XG5cbiAgICAvLyBUaGlzIGlzIGFuIGludGVudGlvbmFsIGJlaGF2aW9yIGNoYW5nZTogd2hlbiBDYWNoZSBDb21wb25lbnRzIGlzIGVuYWJsZWQsXG4gICAgLy8gY2xpZW50IHNlZ21lbnRzIHJlY2VpdmUgdGhlIFwiY2Fub25pY2FsXCIgc2VhcmNoIHBhcmFtcywgbm90IHRoZVxuICAgIC8vIHJld3JpdHRlbiBvbmVzLiBVc2VycyBzaG91bGQgZWl0aGVyIGNhbGwgdXNlU2VhcmNoUGFyYW1zIGRpcmVjdGx5IG9yIHBhc3NcbiAgICAvLyB0aGUgcmV3cml0dGVuIG9uZXMgaW4gZnJvbSBhIFNlcnZlciBDb21wb25lbnQuXG4gICAgLy8gVE9ETzogTG9nIGEgZGVwcmVjYXRpb24gZXJyb3Igd2hlbiB0aGlzIG9iamVjdCBpcyBhY2Nlc3NlZFxuICAgIHNlYXJjaFBhcmFtcyA9IHVybFNlYXJjaFBhcmFtc1RvUGFyc2VkVXJsUXVlcnkodXNlKFNlYXJjaFBhcmFtc0NvbnRleHQpISlcbiAgfVxuXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykge1xuICAgIGxldCBjbGllbnRTZWFyY2hQYXJhbXM6IFByb21pc2U8UGFyc2VkVXJsUXVlcnk+XG4gICAgbGV0IGNsaWVudFBhcmFtczogUHJvbWlzZTxQYXJhbXM+XG5cbiAgICBjb25zdCB7IGNyZWF0ZVNlYXJjaFBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9zZWFyY2gtcGFyYW1zJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL3JlcXVlc3Qvc2VhcmNoLXBhcmFtcycpXG4gICAgY2xpZW50U2VhcmNoUGFyYW1zID0gY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudChzZWFyY2hQYXJhbXMpXG5cbiAgICBjb25zdCB7IGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnKVxuICAgIGNsaWVudFBhcmFtcyA9IGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQocGFyYW1zKVxuXG4gICAgcmV0dXJuIDxDb21wb25lbnQgcGFyYW1zPXtjbGllbnRQYXJhbXN9IHNlYXJjaFBhcmFtcz17Y2xpZW50U2VhcmNoUGFyYW1zfSAvPlxuICB9IGVsc2Uge1xuICAgIGNvbnN0IHsgY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zRnJvbUNsaWVudCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uL3JlcXVlc3Qvc2VhcmNoLXBhcmFtcy5icm93c2VyJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vcmVxdWVzdC9zZWFyY2gtcGFyYW1zLmJyb3dzZXInKVxuICAgIGNvbnN0IGNsaWVudFNlYXJjaFBhcmFtcyA9IGNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtc0Zyb21DbGllbnQoc2VhcmNoUGFyYW1zKVxuICAgIGNvbnN0IHsgY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudCB9ID1cbiAgICAgIHJlcXVpcmUoJy4uL3JlcXVlc3QvcGFyYW1zLmJyb3dzZXInKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi9yZXF1ZXN0L3BhcmFtcy5icm93c2VyJylcbiAgICBjb25zdCBjbGllbnRQYXJhbXMgPSBjcmVhdGVSZW5kZXJQYXJhbXNGcm9tQ2xpZW50KHBhcmFtcylcblxuICAgIHJldHVybiA8Q29tcG9uZW50IHBhcmFtcz17Y2xpZW50UGFyYW1zfSBzZWFyY2hQYXJhbXM9e2NsaWVudFNlYXJjaFBhcmFtc30gLz5cbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNsaWVudFBhZ2VSb290IiwiQ29tcG9uZW50Iiwic2VydmVyUHJvdmlkZWRQYXJhbXMiLCJzZWFyY2hQYXJhbXMiLCJwYXJhbXMiLCJsYXlvdXRSb3V0ZXJDb250ZXh0IiwidXNlIiwiTGF5b3V0Um91dGVyQ29udGV4dCIsInBhcmVudFBhcmFtcyIsInVybFNlYXJjaFBhcmFtc1RvUGFyc2VkVXJsUXVlcnkiLCJTZWFyY2hQYXJhbXNDb250ZXh0Iiwid2luZG93IiwiY2xpZW50U2VhcmNoUGFyYW1zIiwiY2xpZW50UGFyYW1zIiwiY3JlYXRlU2VhcmNoUGFyYW1zRnJvbUNsaWVudCIsInJlcXVpcmUiLCJjcmVhdGVQYXJhbXNGcm9tQ2xpZW50IiwiY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zRnJvbUNsaWVudCIsImNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/client-page.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js": /*!********************************************************************!*\ !*** ./node_modules/next/dist/client/components/client-segment.js ***! \********************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ClientSegmentRoot\", ({\n enumerable: true,\n get: function() {\n return ClientSegmentRoot;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-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 _react = __webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\");\nfunction ClientSegmentRoot({ Component, slots, serverProvidedParams }) {\n let params;\n if (serverProvidedParams !== null) {\n params = serverProvidedParams.params;\n } else {\n // When Cache Components is enabled, the server does not pass the params\n // as props; they are parsed on the client and passed via context.\n const layoutRouterContext = (0, _react.use)(_approutercontextsharedruntime.LayoutRouterContext);\n params = layoutRouterContext !== null ? layoutRouterContext.parentParams : {};\n }\n if (false) {} else {\n const { createRenderParamsFromClient } = __webpack_require__(/*! ../request/params.browser */ \"(app-pages-browser)/./node_modules/next/dist/client/request/params.browser.js\");\n const clientParams = createRenderParamsFromClient(params);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(Component, {\n ...slots,\n params: clientParams\n });\n }\n}\n_c = ClientSegmentRoot;\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=client-segment.js.map\nvar _c;\n$RefreshReg$(_c, \"ClientSegmentRoot\");\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 // 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXNlZ21lbnQuanMiLCJtYXBwaW5ncyI6Ijs7OztxREFjZ0JBOzs7ZUFBQUE7Ozs7MkRBWG9CO21DQUNoQjtBQVViLDJCQUEyQixFQUNoQ0MsU0FBUyxFQUNUQyxLQUFLLEVBQ0xDLG9CQUFvQixFQVFyQjtJQUNDLElBQUlDO0lBQ0osSUFBSUQseUJBQXlCLE1BQU07UUFDakNDLFNBQVNELHFCQUFxQkMsTUFBTTtJQUN0QyxPQUFPO1FBQ0wsd0VBQXdFO1FBQ3hFLGtFQUFrRTtRQUNsRSxNQUFNQyxzQkFBc0JDLENBQUFBLEdBQUFBLE9BQUFBLEdBQUFBLEVBQUlDLCtCQUFBQSxtQkFBbUI7UUFDbkRILFNBQ0VDLHdCQUF3QixPQUFPQSxvQkFBb0JHLFlBQVksR0FBRyxDQUFDO0lBQ3ZFO0lBRUEsSUFBSSxLQUE2QixFQUFFLEVBTWxDLE1BQU07UUFDTCxNQUFNLEVBQUVLLDRCQUE0QixFQUFFLEdBQ3BDRixtQkFBT0EsQ0FBQyxnSEFBMkI7UUFDckMsTUFBTUMsZUFBZUMsNkJBQTZCVDtRQUNsRCxxQkFBTyxxQkFBQ0gsV0FBQUE7WUFBVyxHQUFHQyxLQUFLO1lBQUVFLFFBQVFROztJQUN2QztBQUNGO0tBbkNnQloiLCJzb3VyY2VzIjpbIi9Vc2Vycy9wb3V5YW5tYi9zcmMvY2xpZW50L2NvbXBvbmVudHMvY2xpZW50LXNlZ21lbnQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgdHlwZSB7IFBhcmFtcyB9IGZyb20gJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3BhcmFtcydcbmltcG9ydCB7IExheW91dFJvdXRlckNvbnRleHQgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItY29udGV4dC5zaGFyZWQtcnVudGltZSdcbmltcG9ydCB7IHVzZSB9IGZyb20gJ3JlYWN0J1xuXG4vKipcbiAqIFdoZW4gdGhlIFBhZ2UgaXMgYSBjbGllbnQgY29tcG9uZW50IHdlIHNlbmQgdGhlIHBhcmFtcyB0byB0aGlzIGNsaWVudCB3cmFwcGVyXG4gKiB3aGVyZSB0aGV5IGFyZSB0dXJuZWQgaW50byBkeW5hbWljYWxseSB0cmFja2VkIHZhbHVlcyBiZWZvcmUgYmVpbmcgcGFzc2VkIHRvIHRoZSBhY3R1YWwgU2VnbWVudCBjb21wb25lbnQuXG4gKlxuICogYWRkaXRpb25hbGx5IHdlIG1heSBzZW5kIGEgcHJvbWlzZSByZXByZXNlbnRpbmcgcGFyYW1zLiBXZSBkb24ndCBldmVyIHVzZSB0aGlzIHBhc3NlZFxuICogdmFsdWUgYnV0IGl0IGNhbiBiZSBuZWNlc3NhcnkgZm9yIHRoZSBzZW5kZXIgdG8gc2VuZCBhIFByb21pc2UgdGhhdCBkb2Vzbid0IHJlc29sdmUgaW4gY2VydGFpbiBzaXR1YXRpb25zXG4gKiBzdWNoIGFzIHdoZW4gY2FjaGVDb21wb25lbnRzIGlzIGVuYWJsZWQuIEl0IGlzIHVwIHRvIHRoZSBjYWxsZXIgdG8gZGVjaWRlIGlmIHRoZSBwcm9taXNlcyBhcmUgbmVlZGVkLlxuICovXG5leHBvcnQgZnVuY3Rpb24gQ2xpZW50U2VnbWVudFJvb3Qoe1xuICBDb21wb25lbnQsXG4gIHNsb3RzLFxuICBzZXJ2ZXJQcm92aWRlZFBhcmFtcyxcbn06IHtcbiAgQ29tcG9uZW50OiBSZWFjdC5Db21wb25lbnRUeXBlPGFueT5cbiAgc2xvdHM6IHsgW2tleTogc3RyaW5nXTogUmVhY3QuUmVhY3ROb2RlIH1cbiAgc2VydmVyUHJvdmlkZWRQYXJhbXM6IG51bGwgfCB7XG4gICAgcGFyYW1zOiBQYXJhbXNcbiAgICBwcm9taXNlczogQXJyYXk8UHJvbWlzZTxhbnk+PiB8IG51bGxcbiAgfVxufSkge1xuICBsZXQgcGFyYW1zOiBQYXJhbXNcbiAgaWYgKHNlcnZlclByb3ZpZGVkUGFyYW1zICE9PSBudWxsKSB7XG4gICAgcGFyYW1zID0gc2VydmVyUHJvdmlkZWRQYXJhbXMucGFyYW1zXG4gIH0gZWxzZSB7XG4gICAgLy8gV2hlbiBDYWNoZSBDb21wb25lbnRzIGlzIGVuYWJsZWQsIHRoZSBzZXJ2ZXIgZG9lcyBub3QgcGFzcyB0aGUgcGFyYW1zXG4gICAgLy8gYXMgcHJvcHM7IHRoZXkgYXJlIHBhcnNlZCBvbiB0aGUgY2xpZW50IGFuZCBwYXNzZWQgdmlhIGNvbnRleHQuXG4gICAgY29uc3QgbGF5b3V0Um91dGVyQ29udGV4dCA9IHVzZShMYXlvdXRSb3V0ZXJDb250ZXh0KVxuICAgIHBhcmFtcyA9XG4gICAgICBsYXlvdXRSb3V0ZXJDb250ZXh0ICE9PSBudWxsID8gbGF5b3V0Um91dGVyQ29udGV4dC5wYXJlbnRQYXJhbXMgOiB7fVxuICB9XG5cbiAgaWYgKHR5cGVvZiB3aW5kb3cgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgY29uc3QgeyBjcmVhdGVQYXJhbXNGcm9tQ2xpZW50IH0gPVxuICAgICAgcmVxdWlyZSgnLi4vLi4vc2VydmVyL3JlcXVlc3QvcGFyYW1zJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vc2VydmVyL3JlcXVlc3QvcGFyYW1zJylcbiAgICBjb25zdCBjbGllbnRQYXJhbXM6IFByb21pc2U8UGFyYW1zPiA9IGNyZWF0ZVBhcmFtc0Zyb21DbGllbnQocGFyYW1zKVxuXG4gICAgcmV0dXJuIDxDb21wb25lbnQgey4uLnNsb3RzfSBwYXJhbXM9e2NsaWVudFBhcmFtc30gLz5cbiAgfSBlbHNlIHtcbiAgICBjb25zdCB7IGNyZWF0ZVJlbmRlclBhcmFtc0Zyb21DbGllbnQgfSA9XG4gICAgICByZXF1aXJlKCcuLi9yZXF1ZXN0L3BhcmFtcy5icm93c2VyJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vcmVxdWVzdC9wYXJhbXMuYnJvd3NlcicpXG4gICAgY29uc3QgY2xpZW50UGFyYW1zID0gY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudChwYXJhbXMpXG4gICAgcmV0dXJuIDxDb21wb25lbnQgey4uLnNsb3RzfSBwYXJhbXM9e2NsaWVudFBhcmFtc30gLz5cbiAgfVxufVxuIl0sIm5hbWVzIjpbIkNsaWVudFNlZ21lbnRSb290IiwiQ29tcG9uZW50Iiwic2xvdHMiLCJzZXJ2ZXJQcm92aWRlZFBhcmFtcyIsInBhcmFtcyIsImxheW91dFJvdXRlckNvbnRleHQiLCJ1c2UiLCJMYXlvdXRSb3V0ZXJDb250ZXh0IiwicGFyZW50UGFyYW1zIiwid2luZG93IiwiY3JlYXRlUGFyYW1zRnJvbUNsaWVudCIsInJlcXVpcmUiLCJjbGllbnRQYXJhbXMiLCJjcmVhdGVSZW5kZXJQYXJhbXNGcm9tQ2xpZW50Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/client-segment.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js": /*!*******************************************************************!*\ !*** ./node_modules/next/dist/client/components/layout-router.js ***! \*******************************************************************/ /***/ ((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}));\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 LoadingBoundaryProvider: function() {\n return LoadingBoundaryProvider;\n },\n /**\n * OuterLayoutRouter handles the current segment as well as rendering of other segments.\n * It can be rendered next to each other with a different `parallelRouterKey`, allowing for Parallel routes.\n */ default: function() {\n return OuterLayoutRouter;\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 _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"(app-pages-browser)/./node_modules/@swc/helpers/esm/_interop_require_wildcard.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_wildcard._(__webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.js\"));\nconst _reactdom = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! react-dom */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react-dom/index.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 _unresolvedthenable = __webpack_require__(/*! ./unresolved-thenable */ \"(app-pages-browser)/./node_modules/next/dist/client/components/unresolved-thenable.js\");\nconst _errorboundary = __webpack_require__(/*! ./error-boundary */ \"(app-pages-browser)/./node_modules/next/dist/client/components/error-boundary.js\");\nconst _disablesmoothscroll = __webpack_require__(/*! ../../shared/lib/router/utils/disable-smooth-scroll */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js\");\nconst _redirectboundary = __webpack_require__(/*! ./redirect-boundary */ \"(app-pages-browser)/./node_modules/next/dist/client/components/redirect-boundary.js\");\nconst _errorboundary1 = __webpack_require__(/*! ./http-access-fallback/error-boundary */ \"(app-pages-browser)/./node_modules/next/dist/client/components/http-access-fallback/error-boundary.js\");\nconst _createroutercachekey = __webpack_require__(/*! ./router-reducer/create-router-cache-key */ \"(app-pages-browser)/./node_modules/next/dist/client/components/router-reducer/create-router-cache-key.js\");\nconst _bfcachestatemanager = __webpack_require__(/*! ./bfcache-state-manager */ \"(app-pages-browser)/./node_modules/next/dist/client/components/bfcache-state-manager.js\");\nconst _apppaths = __webpack_require__(/*! ../../shared/lib/router/utils/app-paths */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/app-paths.js\");\nconst _hooksclientcontextsharedruntime = __webpack_require__(/*! ../../shared/lib/hooks-client-context.shared-runtime */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/hooks-client-context.shared-runtime.js\");\nconst _routeparams = __webpack_require__(/*! ../route-params */ \"(app-pages-browser)/./node_modules/next/dist/client/route-params.js\");\nconst _pprnavigations = __webpack_require__(/*! ./router-reducer/ppr-navigations */ \"(app-pages-browser)/./node_modules/next/dist/client/components/router-reducer/ppr-navigations.js\");\nconst enableNewScrollHandler = false;\nconst __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE = _reactdom.default.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n// TODO-APP: Replace with new React API for finding dom nodes without a `ref` when available\n/**\n * Wraps ReactDOM.findDOMNode with additional logic to hide React Strict Mode warning\n */ function findDOMNode(instance) {\n // Tree-shake for server bundle\n if (false) {}\n // __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode is null during module init.\n // We need to lazily reference it.\n const internal_reactDOMfindDOMNode = __DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE.findDOMNode;\n return internal_reactDOMfindDOMNode(instance);\n}\nconst rectProperties = [\n 'bottom',\n 'height',\n 'left',\n 'right',\n 'top',\n 'width',\n 'x',\n 'y'\n];\n/**\n * Check if a HTMLElement is hidden or fixed/sticky position\n */ function shouldSkipElement(element) {\n // we ignore fixed or sticky positioned elements since they'll likely pass the \"in-viewport\" check\n // and will result in a situation we bail on scroll because of something like a fixed nav,\n // even though the actual page content is offscreen\n if ([\n 'sticky',\n 'fixed'\n ].includes(getComputedStyle(element).position)) {\n return true;\n }\n // Uses `getBoundingClientRect` to check if the element is hidden instead of `offsetParent`\n // because `offsetParent` doesn't consider document/body\n const rect = element.getBoundingClientRect();\n return rectProperties.every((item)=>rect[item] === 0);\n}\n/**\n * Check if the top corner of the HTMLElement is in the viewport.\n */ function topOfElementInViewport(instance, viewportHeight) {\n const rects = instance.getClientRects();\n if (rects.length === 0) {\n // Just to be explicit.\n return false;\n }\n let elementTop = Number.POSITIVE_INFINITY;\n for(let i = 0; i < rects.length; i++){\n const rect = rects[i];\n if (rect.top < elementTop) {\n elementTop = rect.top;\n }\n }\n return elementTop >= 0 && elementTop <= viewportHeight;\n}\n/**\n * Find the DOM node for a hash fragment.\n * If `top` the page has to scroll to the top of the page. This mirrors the browser's behavior.\n * If the hash fragment is an id, the page has to scroll to the element with that id.\n * If the hash fragment is a name, the page has to scroll to the first element with that name.\n */ function getHashFragmentDomNode(hashFragment) {\n // If the hash fragment is `top` the page has to scroll to the top of the page.\n if (hashFragment === 'top') {\n return document.body;\n }\n // If the hash fragment is an id, the page has to scroll to the element with that id.\n return document.getElementById(hashFragment) ?? // If the hash fragment is a name, the page has to scroll to the first element with that name.\n document.getElementsByName(hashFragment)[0];\n}\nclass InnerScrollAndFocusHandlerOld extends _react.default.Component {\n componentDidMount() {\n this.handlePotentialScroll();\n }\n componentDidUpdate() {\n this.handlePotentialScroll();\n }\n render() {\n return this.props.children;\n }\n constructor(...args){\n super(...args), this.handlePotentialScroll = ()=>{\n // Handle scroll and focus, it's only applied once.\n const { focusAndScrollRef, cacheNode } = this.props;\n const scrollRef = focusAndScrollRef.forceScroll ? focusAndScrollRef.scrollRef : cacheNode.scrollRef;\n if (scrollRef === null || !scrollRef.current) return;\n let domNode = null;\n const hashFragment = focusAndScrollRef.hashFragment;\n if (hashFragment) {\n domNode = getHashFragmentDomNode(hashFragment);\n }\n // `findDOMNode` is tricky because it returns just the first child if the component is a fragment.\n // This already caused a bug where the first child was a in head.\n if (!domNode) {\n domNode = findDOMNode(this);\n }\n // If there is no DOM node this layout-router level is skipped. It'll be handled higher-up in the tree.\n if (!(domNode instanceof Element)) {\n return;\n }\n // Verify if the element is a HTMLElement and if we want to consider it for scroll behavior.\n // If the element is skipped, try to select the next sibling and try again.\n while(!(domNode instanceof HTMLElement) || shouldSkipElement(domNode)){\n if (true) {\n if (domNode.parentElement?.localName === 'head') {\n // We enter this state when metadata was rendered as part of the page or via Next.js.\n // This is always a bug in Next.js and caused by React hoisting metadata.\n // Fixed with `experimental.appNewScrollHandler`\n }\n }\n // No siblings found that match the criteria are found, so handle scroll higher up in the tree instead.\n if (domNode.nextElementSibling === null) {\n return;\n }\n domNode = domNode.nextElementSibling;\n }\n // Mark as scrolled so no other segment scrolls for this navigation.\n scrollRef.current = false;\n (0, _disablesmoothscroll.disableSmoothScrollDuringRouteTransition)(()=>{\n // In case of hash scroll, we only need to scroll the element into view\n if (hashFragment) {\n domNode.scrollIntoView();\n return;\n }\n // Store the current viewport height because reading `clientHeight` causes a reflow,\n // and it won't change during this function.\n const htmlElement = document.documentElement;\n const viewportHeight = htmlElement.clientHeight;\n // If the element's top edge is already in the viewport, exit early.\n if (topOfElementInViewport(domNode, viewportHeight)) {\n return;\n }\n // Otherwise, try scrolling go the top of the document to be backward compatible with pages\n // scrollIntoView() called on `` element scrolls horizontally on chrome and firefox (that shouldn't happen)\n // We could use it to scroll horizontally following RTL but that also seems to be broken - it will always scroll left\n // scrollLeft = 0 also seems to ignore RTL and manually checking for RTL is too much hassle so we will scroll just vertically\n htmlElement.scrollTop = 0;\n // Scroll to domNode if domNode is not in viewport when scrolled to top of document\n if (!topOfElementInViewport(domNode, viewportHeight)) {\n // Scroll into view doesn't scroll horizontally by default when not needed\n domNode.scrollIntoView();\n }\n }, {\n // We will force layout by querying domNode position\n dontForceLayout: true,\n onlyHashChange: focusAndScrollRef.onlyHashChange\n });\n // Mutate after scrolling so that it can be read by `disableSmoothScrollDuringRouteTransition`\n focusAndScrollRef.onlyHashChange = false;\n focusAndScrollRef.hashFragment = null;\n // Set focus on the element\n domNode.focus();\n };\n }\n}\n/**\n * Fork of InnerScrollAndFocusHandlerOld using Fragment refs for scrolling.\n * No longer focuses the first host descendant.\n */ function InnerScrollHandlerNew(props) {\n _s();\n const childrenRef = _react.default.useRef(null);\n (0, _react.useLayoutEffect)(()=>{\n const { focusAndScrollRef, cacheNode } = props;\n const scrollRef = focusAndScrollRef.forceScroll ? focusAndScrollRef.scrollRef : cacheNode.scrollRef;\n if (scrollRef === null || !scrollRef.current) return;\n let instance = null;\n const hashFragment = focusAndScrollRef.hashFragment;\n if (hashFragment) {\n instance = getHashFragmentDomNode(hashFragment);\n }\n if (!instance) {\n instance = childrenRef.current;\n }\n // If there is no DOM node this layout-router level is skipped. It'll be handled higher-up in the tree.\n if (instance === null) {\n return;\n }\n // Mark as scrolled so no other segment scrolls for this navigation.\n scrollRef.current = false;\n const activeElement = document.activeElement;\n if (activeElement !== null && 'blur' in activeElement && typeof activeElement.blur === 'function') {\n // Trying to match hard navigations.\n // Ideally we'd move the internal focus cursor either to the top\n // or at least before the segment. But there's no DOM API to do that,\n // so we just blur.\n // We could workaround this by moving focus to a temporary element in\n // the body. But adding elements might trigger layout or other effects\n // so it should be well motivated.\n activeElement.blur();\n }\n (0, _disablesmoothscroll.disableSmoothScrollDuringRouteTransition)(()=>{\n // In case of hash scroll, we only need to scroll the element into view\n if (hashFragment) {\n instance.scrollIntoView();\n return;\n }\n // Store the current viewport height because reading `clientHeight` causes a reflow,\n // and it won't change during this function.\n const htmlElement = document.documentElement;\n const viewportHeight = htmlElement.clientHeight;\n // If the element's top edge is already in the viewport, exit early.\n if (topOfElementInViewport(instance, viewportHeight)) {\n return;\n }\n // Otherwise, try scrolling go the top of the document to be backward compatible with pages\n // scrollIntoView() called on `` element scrolls horizontally on chrome and firefox (that shouldn't happen)\n // We could use it to scroll horizontally following RTL but that also seems to be broken - it will always scroll left\n // scrollLeft = 0 also seems to ignore RTL and manually checking for RTL is too much hassle so we will scroll just vertically\n htmlElement.scrollTop = 0;\n // Scroll to domNode if domNode is not in viewport when scrolled to top of document\n if (!topOfElementInViewport(instance, viewportHeight)) {\n // Scroll into view doesn't scroll horizontally by default when not needed\n instance.scrollIntoView();\n }\n }, {\n // We will force layout by querying domNode position\n dontForceLayout: true,\n onlyHashChange: focusAndScrollRef.onlyHashChange\n });\n // Mutate after scrolling so that it can be read by `disableSmoothScrollDuringRouteTransition`\n focusAndScrollRef.onlyHashChange = false;\n focusAndScrollRef.hashFragment = null;\n }, // but be prepared for lots of manual testing.\n undefined);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Fragment, {\n ref: childrenRef,\n children: props.children\n });\n}\n_s(InnerScrollHandlerNew, \"z9LCaGo55ItrojON2fGExinDJ3E=\");\n_c = InnerScrollHandlerNew;\nconst InnerScrollAndMaybeFocusHandler = enableNewScrollHandler ? InnerScrollHandlerNew : InnerScrollAndFocusHandlerOld;\nfunction ScrollAndMaybeFocusHandler({ children, cacheNode }) {\n const context = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n if (!context) {\n throw Object.defineProperty(new Error('invariant global layout router not mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E473\",\n enumerable: false,\n configurable: true\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(InnerScrollAndMaybeFocusHandler, {\n focusAndScrollRef: context.focusAndScrollRef,\n cacheNode: cacheNode,\n children: children\n });\n}\n_c1 = ScrollAndMaybeFocusHandler;\n/**\n * InnerLayoutRouter handles rendering the provided segment based on the cache.\n */ function InnerLayoutRouter({ tree, segmentPath, debugNameContext, cacheNode: maybeCacheNode, params, url, isActive }) {\n const context = (0, _react.useContext)(_approutercontextsharedruntime.GlobalLayoutRouterContext);\n const parentNavPromises = (0, _react.useContext)(_hooksclientcontextsharedruntime.NavigationPromisesContext);\n if (!context) {\n throw Object.defineProperty(new Error('invariant global layout router not mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E473\",\n enumerable: false,\n configurable: true\n });\n }\n const cacheNode = maybeCacheNode !== null ? maybeCacheNode : // This should only be reachable for inactive/hidden segments, during\n // prerendering The active segment should always be consistent with the\n // CacheNode tree. Regardless, if we don't have a matching CacheNode, we\n // must suspend rather than render nothing, to prevent showing an\n // inconsistent route.\n (0, _react.use)(_unresolvedthenable.unresolvedThenable);\n // `rsc` represents the renderable node for this segment.\n // If this segment has a `prefetchRsc`, it's the statically prefetched data.\n // We should use that on initial render instead of `rsc`. Then we'll switch\n // to `rsc` when the dynamic response streams in.\n //\n // If no prefetch data is available, then we go straight to rendering `rsc`.\n const resolvedPrefetchRsc = cacheNode.prefetchRsc !== null ? cacheNode.prefetchRsc : cacheNode.rsc;\n // We use `useDeferredValue` to handle switching between the prefetched and\n // final values. The second argument is returned on initial render, then it\n // re-renders with the first argument.\n const rsc = (0, _react.useDeferredValue)(cacheNode.rsc, resolvedPrefetchRsc);\n // `rsc` is either a React node or a promise for a React node, except we\n // special case `null` to represent that this segment's data is missing. If\n // it's a promise, we need to unwrap it so we can determine whether or not the\n // data is missing.\n let resolvedRsc;\n if ((0, _pprnavigations.isDeferredRsc)(rsc)) {\n const unwrappedRsc = (0, _react.use)(rsc);\n if (unwrappedRsc === null) {\n // If the promise was resolved to `null`, it means the data for this\n // segment was not returned by the server. Suspend indefinitely. When this\n // happens, the router is responsible for triggering a new state update to\n // un-suspend this segment.\n (0, _react.use)(_unresolvedthenable.unresolvedThenable);\n }\n resolvedRsc = unwrappedRsc;\n } else {\n // This is not a deferred RSC promise. Don't need to unwrap it.\n if (rsc === null) {\n (0, _react.use)(_unresolvedthenable.unresolvedThenable);\n }\n resolvedRsc = rsc;\n }\n // In dev, we create a NavigationPromisesContext containing the instrumented promises that provide\n // `useSelectedLayoutSegment` and `useSelectedLayoutSegments`.\n // Promises are cached outside of render to survive suspense retries.\n let navigationPromises = null;\n if (true) {\n const { createNestedLayoutNavigationPromises } = __webpack_require__(/*! ./navigation-devtools */ \"(app-pages-browser)/./node_modules/next/dist/client/components/navigation-devtools.js\");\n navigationPromises = createNestedLayoutNavigationPromises(tree, parentNavPromises);\n }\n let children = resolvedRsc;\n if (navigationPromises) {\n children = /*#__PURE__*/ (0, _jsxruntime.jsx)(_hooksclientcontextsharedruntime.NavigationPromisesContext.Provider, {\n value: navigationPromises,\n children: resolvedRsc\n });\n }\n children = /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.LayoutRouterContext.Provider, {\n value: {\n parentTree: tree,\n parentCacheNode: cacheNode,\n parentSegmentPath: segmentPath,\n parentParams: params,\n // This is always set to null as we enter a child segment. It's\n // populated by LoadingBoundaryProvider the next time we reach a\n // loading boundary.\n parentLoadingData: null,\n debugNameContext: debugNameContext,\n // TODO-APP: overriding of url for parallel routes\n url: url,\n isActive: isActive\n },\n children: children\n });\n return children;\n}\n_c2 = InnerLayoutRouter;\nfunction LoadingBoundaryProvider({ loading, children }) {\n // Provides the data needed to render a loading.tsx boundary, via context.\n //\n // loading.tsx creates a Suspense boundary around each of a layout's child\n // slots. (Might be bit confusing to think about the data flow, but: if\n // loading.tsx and layout.tsx are in the same directory, they are assigned\n // to the same CacheNode.)\n //\n // This provider component does not render the Suspense boundary directly;\n // that's handled by LoadingBoundary.\n //\n // TODO: For simplicity, we should combine this provider with LoadingBoundary\n // and render the Suspense boundary directly. The only real benefit of doing\n // it separately is so that when there are multiple parallel routes, we only\n // send the boundary data once, rather than once per child. But that's a\n // negligible benefit and can be achieved via caching instead.\n const parentContext = (0, _react.use)(_approutercontextsharedruntime.LayoutRouterContext);\n if (parentContext === null) {\n return children;\n }\n // All values except for parentLoadingData are the same as the parent context.\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_approutercontextsharedruntime.LayoutRouterContext.Provider, {\n value: {\n parentTree: parentContext.parentTree,\n parentCacheNode: parentContext.parentCacheNode,\n parentSegmentPath: parentContext.parentSegmentPath,\n parentParams: parentContext.parentParams,\n parentLoadingData: loading,\n debugNameContext: parentContext.debugNameContext,\n url: parentContext.url,\n isActive: parentContext.isActive\n },\n children: children\n });\n}\n_c3 = LoadingBoundaryProvider;\n/**\n * Renders suspense boundary with the provided \"loading\" property as the fallback.\n * If no loading property is provided it renders the children without a suspense boundary.\n */ function LoadingBoundary({ name, loading, children }) {\n // TODO: For LoadingBoundary, and the other built-in boundary types, don't\n // wrap in an extra function component if no user-defined boundary is\n // provided. In other words, inline this conditional wrapping logic into\n // the parent component. More efficient and keeps unnecessary junk out of\n // the component stack.\n if (loading !== null) {\n const loadingRsc = loading[0];\n const loadingStyles = loading[1];\n const loadingScripts = loading[2];\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_react.Suspense, {\n name: name,\n fallback: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_jsxruntime.Fragment, {\n children: [\n loadingStyles,\n loadingScripts,\n loadingRsc\n ]\n }),\n children: children\n });\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\n_c4 = LoadingBoundary;\nfunction OuterLayoutRouter({ parallelRouterKey, error, errorStyles, errorScripts, templateStyles, templateScripts, template, notFound, forbidden, unauthorized, segmentViewBoundaries }) {\n const context = (0, _react.useContext)(_approutercontextsharedruntime.LayoutRouterContext);\n if (!context) {\n throw Object.defineProperty(new Error('invariant expected layout router to be mounted'), \"__NEXT_ERROR_CODE\", {\n value: \"E56\",\n enumerable: false,\n configurable: true\n });\n }\n const { parentTree, parentCacheNode, parentSegmentPath, parentParams, parentLoadingData, url, isActive, debugNameContext } = context;\n // Get the CacheNode for this segment by reading it from the parent segment's\n // child map.\n const parentTreeSegment = parentTree[0];\n const segmentPath = parentSegmentPath === null ? // the code. We should clean this up.\n [\n parallelRouterKey\n ] : parentSegmentPath.concat([\n parentTreeSegment,\n parallelRouterKey\n ]);\n // The \"state\" key of a segment is the one passed to React — it represents the\n // identity of the UI tree. Whenever the state key changes, the tree is\n // recreated and the state is reset. In the App Router model, search params do\n // not cause state to be lost, so two segments with the same segment path but\n // different search params should have the same state key.\n //\n // The \"cache\" key of a segment, however, *does* include the search params, if\n // it's possible that the segment accessed the search params on the server.\n // (This only applies to page segments; layout segments cannot access search\n // params on the server.)\n const activeTree = parentTree[1][parallelRouterKey];\n const maybeParentSlots = parentCacheNode.slots;\n if (activeTree === undefined || maybeParentSlots === null) {\n // Could not find a matching segment. The client tree is inconsistent with\n // the server tree. Suspend indefinitely; the router will have already\n // detected the inconsistency when handling the server response, and\n // triggered a refresh of the page to recover.\n (0, _react.use)(_unresolvedthenable.unresolvedThenable);\n }\n let maybeValidationBoundaryId = null;\n if (false) {}\n const activeSegment = activeTree[0];\n const activeCacheNode = maybeParentSlots[parallelRouterKey] ?? null;\n const activeStateKey = (0, _createroutercachekey.createRouterCacheKey)(activeSegment, true) // no search params\n ;\n // At each level of the route tree, not only do we render the currently\n // active segment — we also render the last N segments that were active at\n // this level inside a hidden boundary, to preserve their state\n // if or when the user navigates to them again.\n //\n // bfcacheEntry is a linked list of FlightRouterStates.\n let bfcacheEntry = (0, _bfcachestatemanager.useRouterBFCache)(activeTree, activeCacheNode, activeStateKey);\n let children = [];\n do {\n const tree = bfcacheEntry.tree;\n const cacheNode = bfcacheEntry.cacheNode;\n const stateKey = bfcacheEntry.stateKey;\n const segment = tree[0];\n /*\n - Error boundary\n - Only renders error boundary if error component is provided.\n - Rendered for each segment to ensure they have their own error state.\n - When gracefully degrade for bots, skip rendering error boundary.\n - Loading boundary\n - Only renders suspense boundary if loading components is provided.\n - Rendered for each segment to ensure they have their own loading state.\n - Passed to the router during rendering to ensure it can be immediately rendered when suspending on a Flight fetch.\n */ let segmentBoundaryTriggerNode = null;\n let segmentViewStateNode = null;\n if (true) {\n const { SegmentBoundaryTriggerNode, SegmentViewStateNode } = __webpack_require__(/*! ../../next-devtools/userspace/app/segment-explorer-node */ \"(app-pages-browser)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\");\n const pagePrefix = (0, _apppaths.normalizeAppPath)(url);\n segmentViewStateNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentViewStateNode, {\n page: pagePrefix\n }, pagePrefix);\n segmentBoundaryTriggerNode = /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(SegmentBoundaryTriggerNode, {})\n });\n }\n let params = parentParams;\n if (Array.isArray(segment)) {\n // This segment contains a route param. Accumulate these as we traverse\n // down the router tree. The result represents the set of params that\n // the layout/page components are permitted to access below this point.\n const paramName = segment[0];\n const paramCacheKey = segment[1];\n const paramType = segment[2];\n const paramValue = (0, _routeparams.getParamValueFromCacheKey)(paramCacheKey, paramType);\n if (paramValue !== null) {\n params = {\n ...parentParams,\n [paramName]: paramValue\n };\n }\n }\n const debugName = getBoundaryDebugNameFromSegment(segment);\n // `debugNameContext` represents the nearest non-\"virtual\" parent segment.\n // `getBoundaryDebugNameFromSegment` returns undefined for virtual segments.\n // So if `debugName` is undefined, the context is passed through unchanged.\n const childDebugNameContext = debugName ?? debugNameContext;\n // In practical terms, clicking this name in the Suspense DevTools\n // should select the child slots of that layout.\n //\n // So the name we apply to the Activity boundary is actually based on\n // the nearest parent segments.\n //\n // We skip over \"virtual\" parents, i.e. ones inserted by Next.js that\n // don't correspond to application-defined code.\n const isVirtual = debugName === undefined;\n const debugNameToDisplay = isVirtual ? undefined : debugNameContext;\n let templateValue = /*#__PURE__*/ (0, _jsxruntime.jsxs)(ScrollAndMaybeFocusHandler, {\n cacheNode: cacheNode,\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary.ErrorBoundary, {\n errorComponent: error,\n errorStyles: errorStyles,\n errorScripts: errorScripts,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(LoadingBoundary, {\n name: debugNameToDisplay,\n // TODO: The loading module data for a segment is stored on the\n // parent, then applied to each of that parent segment's\n // parallel route slots. In the simple case where there's only\n // one parallel route (the `children` slot), this is no\n // different from if the loading module data were stored on the\n // child directly. But I'm not sure this actually makes sense\n // when there are multiple parallel routes. It's not a huge\n // issue because you always have the option to define a narrower\n // loading boundary for a particular slot. But this sort of\n // smells like an implementation accident to me.\n loading: parentLoadingData,\n children: /*#__PURE__*/ (0, _jsxruntime.jsx)(_errorboundary1.HTTPAccessFallbackBoundary, {\n notFound: notFound,\n forbidden: forbidden,\n unauthorized: unauthorized,\n children: /*#__PURE__*/ (0, _jsxruntime.jsxs)(_redirectboundary.RedirectBoundary, {\n children: [\n /*#__PURE__*/ (0, _jsxruntime.jsx)(InnerLayoutRouter, {\n url: url,\n tree: tree,\n params: params,\n cacheNode: cacheNode,\n segmentPath: segmentPath,\n debugNameContext: childDebugNameContext,\n isActive: isActive && stateKey === activeStateKey\n }),\n segmentBoundaryTriggerNode\n ]\n })\n })\n })\n }),\n segmentViewStateNode\n ]\n });\n if (false) {}\n let child = /*#__PURE__*/ (0, _jsxruntime.jsxs)(_approutercontextsharedruntime.TemplateContext.Provider, {\n value: templateValue,\n children: [\n templateStyles,\n templateScripts,\n template\n ]\n }, stateKey);\n if (true) {\n const { SegmentStateProvider } = __webpack_require__(/*! ../../next-devtools/userspace/app/segment-explorer-node */ \"(app-pages-browser)/./node_modules/next/dist/next-devtools/userspace/app/segment-explorer-node.js\");\n child = /*#__PURE__*/ (0, _jsxruntime.jsxs)(SegmentStateProvider, {\n children: [\n child,\n segmentViewBoundaries\n ]\n }, stateKey);\n }\n if (false) {}\n children.push(child);\n bfcacheEntry = bfcacheEntry.next;\n }while (bfcacheEntry !== null);\n return children;\n}\n_c5 = OuterLayoutRouter;\nfunction getBoundaryDebugNameFromSegment(segment) {\n if (segment === '/') {\n // Reached the root\n return '/';\n }\n if (typeof segment === 'string') {\n if (isVirtualLayout(segment)) {\n return undefined;\n } else {\n return segment + '/';\n }\n }\n const paramCacheKey = segment[1];\n return paramCacheKey + '/';\n}\nfunction isVirtualLayout(segment) {\n return(// (like __PAGE__ and __DEFAULT__) to avoid collisions with\n // user-defined route groups.\n segment === '(__SLOT__)');\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=layout-router.js.map\nvar _c, _c1, _c2, _c3, _c4, _c5;\n$RefreshReg$(_c, \"InnerScrollHandlerNew\");\n$RefreshReg$(_c1, \"ScrollAndMaybeFocusHandler\");\n$RefreshReg$(_c2, \"InnerLayoutRouter\");\n$RefreshReg$(_c3, \"LoadingBoundaryProvider\");\n$RefreshReg$(_c4, \"LoadingBoundary\");\n$RefreshReg$(_c5, \"OuterLayoutRouter\");\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 // 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvbGF5b3V0LXJvdXRlci5qcyIsIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztJQTRmZ0JBLHVCQUF1QjtlQUF2QkE7O0lBc0ZoQjs7O0NBR0MsR0FDRCxPQXFRQztlQXJRdUJDOzs7Ozs7NkVBL2pCakI7K0VBQ2M7MkRBS2Q7Z0RBQzRCOzJDQUNMO2lEQUMyQjs4Q0FDeEI7NENBQ1U7a0RBQ047aURBSTlCO3NDQUMwQjs2REFJMUI7eUNBQ21DOzRDQUVaO0FBRTlCLE1BQU1DLHlCQUF5QkMsS0FBeUM7QUFFeEUsTUFBTUcsK0RBQ0pDLFVBQUFBLE9BQVEsQ0FDUkQsNERBQTREO0FBRTlELDRGQUE0RjtBQUM1Rjs7Q0FFQyxHQUNELFNBQVNFLFlBQ1BDLFFBQWdEO0lBRWhELCtCQUErQjtJQUMvQixJQUFJLEtBQTZCLEVBQUUsRUFBTztJQUUxQyx1R0FBdUc7SUFDdkcsa0NBQWtDO0lBQ2xDLE1BQU1FLCtCQUNKTCw2REFBNkRFLFdBQVc7SUFDMUUsT0FBT0csNkJBQTZCRjtBQUN0QztBQUVBLE1BQU1HLGlCQUFpQjtJQUNyQjtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUNBO0NBQ0Q7QUFDRDs7Q0FFQyxHQUNELFNBQVNDLGtCQUFrQkMsT0FBb0I7SUFDN0Msa0dBQWtHO0lBQ2xHLDBGQUEwRjtJQUMxRixtREFBbUQ7SUFDbkQsSUFBSTtRQUFDO1FBQVU7S0FBUSxDQUFDQyxRQUFRLENBQUNDLGlCQUFpQkYsU0FBU0csUUFBUSxHQUFHO1FBQ3BFLE9BQU87SUFDVDtJQUVBLDJGQUEyRjtJQUMzRix3REFBd0Q7SUFDeEQsTUFBTUMsT0FBT0osUUFBUUsscUJBQXFCO0lBQzFDLE9BQU9QLGVBQWVRLEtBQUssQ0FBQyxDQUFDQyxPQUFTSCxJQUFJLENBQUNHLEtBQUssS0FBSztBQUN2RDtBQUVBOztDQUVDLEdBQ0QsU0FBU0MsdUJBQ1BiLFFB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Q2xDLFFBQVNwQyxpQkFBaUIsTUFBSztJQUUvQixPQUFPbkc7QUFDVDtNQXJRd0I3QztBQXVReEIsU0FBU21LLGdDQUFnQ2hCLE9BQWdCO0lBQ3ZELElBQUlBLFlBQVksS0FBSztRQUNuQixtQkFBbUI7UUFDbkIsT0FBTztJQUNUO0lBQ0EsSUFBSSxPQUFPQSxZQUFZLFVBQVU7UUFDL0IsSUFBSWtDLGdCQUFnQmxDLFVBQVU7WUFDNUIsT0FBTzFFO1FBQ1QsT0FBTztZQUNMLE9BQU8wRSxVQUFVO1FBQ25CO0lBQ0Y7SUFDQSxNQUFNVyxnQkFBZ0JYLE9BQU8sQ0FBQyxFQUFFO0lBQ2hDLE9BQU9XLGdCQUFnQjtBQUN6QjtBQUVBLFNBQVN1QixnQkFBZ0JsQyxPQUFlO0lBQ3RDLE9BQ0UsMkRBQzJEO0lBQzNELDZCQUE2QjtJQUM3QkEsWUFBWTtBQUVoQiIsInNvdXJjZXMiOlsiL1VzZXJzL3BvdXlhbm1iL3NyYy9jbGllbnQvY29tcG9uZW50cy9sYXlvdXQtcm91dGVyLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIndXNlIGNsaWVudCdcblxuaW1wb3J0IHR5cGUgeyBDYWNoZU5vZGUgfSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL2FwcC1yb3V0ZXItdHlwZXMnXG5pbXBvcnQgdHlwZSB7IExvYWRpbmdNb2R1bGVEYXRhIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9hcHAtcm91dGVyLXR5cGVzJ1xuaW1wb3J0IHR5cGUge1xuICBGbGlnaHRSb3V0ZXJTdGF0ZSxcbiAgRmxpZ2h0U2VnbWVudFBhdGgsXG4gIFNlZ21lbnQsXG59IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci10eXBlcydcbmltcG9ydCB0eXBlIHsgRXJyb3JDb21wb25lbnQgfSBmcm9tICcuL2Vycm9yLWJvdW5kYXJ5J1xuaW1wb3J0IHR5cGUgeyBGb2N1c0FuZFNjcm9sbFJlZiB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvcm91dGVyLXJlZHVjZXItdHlwZXMnXG5cbmltcG9ydCBSZWFjdCwge1xuICBBY3Rpdml0eSxcbiAgRnJhZ21lbnQsXG4gIHVzZUNvbnRleHQsXG4gIHVzZSxcbiAgU3VzcGVuc2UsXG4gIHVzZURlZmVycmVkVmFsdWUsXG4gIHVzZUxheW91dEVmZmVjdCxcbiAgdHlwZSBGcmFnbWVudEluc3RhbmNlLFxuICB0eXBlIEpTWCxcbiAgdHlwZSBBY3Rpdml0eVByb3BzLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCBSZWFjdERPTSBmcm9tICdyZWFjdC1kb20nXG5pbXBvcnQge1xuICBMYXlvdXRSb3V0ZXJDb250ZXh0LFxuICBHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0LFxuICBUZW1wbGF0ZUNvbnRleHQsXG59IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuaW1wb3J0IHsgdW5yZXNvbHZlZFRoZW5hYmxlIH0gZnJvbSAnLi91bnJlc29sdmVkLXRoZW5hYmxlJ1xuaW1wb3J0IHsgRXJyb3JCb3VuZGFyeSB9IGZyb20gJy4vZXJyb3ItYm91bmRhcnknXG5pbXBvcnQgeyBkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZGlzYWJsZS1zbW9vdGgtc2Nyb2xsJ1xuaW1wb3J0IHsgUmVkaXJlY3RCb3VuZGFyeSB9IGZyb20gJy4vcmVkaXJlY3QtYm91bmRhcnknXG5pbXBvcnQgeyBIVFRQQWNjZXNzRmFsbGJhY2tCb3VuZGFyeSB9IGZyb20gJy4vaHR0cC1hY2Nlc3MtZmFsbGJhY2svZXJyb3ItYm91bmRhcnknXG5pbXBvcnQgeyBjcmVhdGVSb3V0ZXJDYWNoZUtleSB9IGZyb20gJy4vcm91dGVyLXJlZHVjZXIvY3JlYXRlLXJvdXRlci1jYWNoZS1rZXknXG5pbXBvcnQge1xuICB1c2VSb3V0ZXJCRkNhY2hlLFxuICB0eXBlIFJvdXRlckJGQ2FjaGVFbnRyeSxcbn0gZnJvbSAnLi9iZmNhY2hlLXN0YXRlLW1hbmFnZXInXG5pbXBvcnQgeyBub3JtYWxpemVBcHBQYXRoIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvYXBwLXBhdGhzJ1xuaW1wb3J0IHtcbiAgTmF2aWdhdGlvblByb21pc2VzQ29udGV4dCxcbiAgdHlwZSBOYXZpZ2F0aW9uUHJvbWlzZXMsXG59IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvaG9va3MtY2xpZW50LWNvbnRleHQuc2hhcmVkLXJ1bnRpbWUnXG5pbXBvcnQgeyBnZXRQYXJhbVZhbHVlRnJvbUNhY2hlS2V5IH0gZnJvbSAnLi4vcm91dGUtcGFyYW1zJ1xuaW1wb3J0IHR5cGUgeyBQYXJhbXMgfSBmcm9tICcuLi8uLi9zZXJ2ZXIvcmVxdWVzdC9wYXJhbXMnXG5pbXBvcnQgeyBpc0RlZmVycmVkUnNjIH0gZnJvbSAnLi9yb3V0ZXItcmVkdWNlci9wcHItbmF2aWdhdGlvbnMnXG5cbmNvbnN0IGVuYWJsZU5ld1Njcm9sbEhhbmRsZXIgPSBwcm9jZXNzLmVudi5fX05FWFRfQVBQX05FV19TQ1JPTExfSEFORExFUlxuXG5jb25zdCBfX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUgPSAoXG4gIFJlYWN0RE9NIGFzIGFueVxuKS5fX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREVcblxuLy8gVE9ETy1BUFA6IFJlcGxhY2Ugd2l0aCBuZXcgUmVhY3QgQVBJIGZvciBmaW5kaW5nIGRvbSBub2RlcyB3aXRob3V0IGEgYHJlZmAgd2hlbiBhdmFpbGFibGVcbi8qKlxuICogV3JhcHMgUmVhY3RET00uZmluZERPTU5vZGUgd2l0aCBhZGRpdGlvbmFsIGxvZ2ljIHRvIGhpZGUgUmVhY3QgU3RyaWN0IE1vZGUgd2FybmluZ1xuICovXG5mdW5jdGlvbiBmaW5kRE9NTm9kZShcbiAgaW5zdGFuY2U6IFJlYWN0LlJlYWN0SW5zdGFuY2UgfCBudWxsIHwgdW5kZWZpbmVkXG4pOiBFbGVtZW50IHwgVGV4dCB8IG51bGwge1xuICAvLyBUcmVlLXNoYWtlIGZvciBzZXJ2ZXIgYnVuZGxlXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIG51bGxcblxuICAvLyBfX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUuZmluZERPTU5vZGUgaXMgbnVsbCBkdXJpbmcgbW9kdWxlIGluaXQuXG4gIC8vIFdlIG5lZWQgdG8gbGF6aWx5IHJlZmVyZW5jZSBpdC5cbiAgY29uc3QgaW50ZXJuYWxfcmVhY3RET01maW5kRE9NTm9kZSA9XG4gICAgX19ET01fSU5URVJOQUxTX0RPX05PVF9VU0VfT1JfV0FSTl9VU0VSU19USEVZX0NBTk5PVF9VUEdSQURFLmZpbmRET01Ob2RlXG4gIHJldHVybiBpbnRlcm5hbF9yZWFjdERPTWZpbmRET01Ob2RlKGluc3RhbmNlKVxufVxuXG5jb25zdCByZWN0UHJvcGVydGllcyA9IFtcbiAgJ2JvdHRvbScsXG4gICdoZWlnaHQnLFxuICAnbGVmdCcsXG4gICdyaWdodCcsXG4gICd0b3AnLFxuICAnd2lkdGgnLFxuICAneCcsXG4gICd5Jyxcbl0gYXMgY29uc3Rcbi8qKlxuICogQ2hlY2sgaWYgYSBIVE1MRWxlbWVudCBpcyBoaWRkZW4gb3IgZml4ZWQvc3RpY2t5IHBvc2l0aW9uXG4gKi9cbmZ1bmN0aW9uIHNob3VsZFNraXBFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KSB7XG4gIC8vIHdlIGlnbm9yZSBmaXhlZCBvciBzdGlja3kgcG9zaXRpb25lZCBlbGVtZW50cyBzaW5jZSB0aGV5J2xsIGxpa2VseSBwYXNzIHRoZSBcImluLXZpZXdwb3J0XCIgY2hlY2tcbiAgLy8gYW5kIHdpbGwgcmVzdWx0IGluIGEgc2l0dWF0aW9uIHdlIGJhaWwgb24gc2Nyb2xsIGJlY2F1c2Ugb2Ygc29tZXRoaW5nIGxpa2UgYSBmaXhlZCBuYXYsXG4gIC8vIGV2ZW4gdGhvdWdoIHRoZSBhY3R1YWwgcGFnZSBjb250ZW50IGlzIG9mZnNjcmVlblxuICBpZiAoWydzdGlja3knLCAnZml4ZWQnXS5pbmNsdWRlcyhnZXRDb21wdXRlZFN0eWxlKGVsZW1lbnQpLnBvc2l0aW9uKSkge1xuICAgIHJldHVybiB0cnVlXG4gIH1cblxuICAvLyBVc2VzIGBnZXRCb3VuZGluZ0NsaWVudFJlY3RgIHRvIGNoZWNrIGlmIHRoZSBlbGVtZW50IGlzIGhpZGRlbiBpbnN0ZWFkIG9mIGBvZmZzZXRQYXJlbnRgXG4gIC8vIGJlY2F1c2UgYG9mZnNldFBhcmVudGAgZG9lc24ndCBjb25zaWRlciBkb2N1bWVudC9ib2R5XG4gIGNvbnN0IHJlY3QgPSBlbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpXG4gIHJldHVybiByZWN0UHJvcGVydGllcy5ldmVyeSgoaXRlbSkgPT4gcmVjdFtpdGVtXSA9PT0gMClcbn1cblxuLyoqXG4gKiBDaGVjayBpZiB0aGUgdG9wIGNvcm5lciBvZiB0aGUgSFRNTEVsZW1lbnQgaXMgaW4gdGhlIHZpZXdwb3J0LlxuICovXG5mdW5jdGlvbiB0b3BPZkVsZW1lbnRJblZpZXdwb3J0KFxuICBpbnN0YW5jZTogSFRNTEVsZW1lbnQgfCBGcmFnbWVudEluc3RhbmNlLFxuICB2aWV3cG9ydEhlaWdodDogbnVtYmVyXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcmVjdHMgPSBpbnN0YW5jZS5nZXRDbGllbnRSZWN0cygpXG4gIGlmIChyZWN0cy5sZW5ndGggPT09IDApIHtcbiAgICAvLyBKdXN0IHRvIGJlIGV4cGxpY2l0LlxuICAgIHJldHVybiBmYWxzZVxuICB9XG4gIGxldCBlbGVtZW50VG9wID0gTnVtYmVyLlBPU0lUSVZFX0lORklOSVRZXG4gIGZvciAobGV0IGkgPSAwOyBpIDwgcmVjdHMubGVuZ3RoOyBpKyspIHtcbiAgICBjb25zdCByZWN0ID0gcmVjdHNbaV1cbiAgICBpZiAocmVjdC50b3AgPCBlbGVtZW50VG9wKSB7XG4gICAgICBlbGVtZW50VG9wID0gcmVjdC50b3BcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGVsZW1lbnRUb3AgPj0gMCAmJiBlbGVtZW50VG9wIDw9IHZpZXdwb3J0SGVpZ2h0XG59XG5cbi8qKlxuICogRmluZCB0aGUgRE9NIG5vZGUgZm9yIGEgaGFzaCBmcmFnbWVudC5cbiAqIElmIGB0b3BgIHRoZSBwYWdlIGhhcyB0byBzY3JvbGwgdG8gdGhlIHRvcCBvZiB0aGUgcGFnZS4gVGhpcyBtaXJyb3JzIHRoZSBicm93c2VyJ3MgYmVoYXZpb3IuXG4gKiBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhbiBpZCwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZWxlbWVudCB3aXRoIHRoYXQgaWQuXG4gKiBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhIG5hbWUsIHRoZSBwYWdlIGhhcyB0byBzY3JvbGwgdG8gdGhlIGZpcnN0IGVsZW1lbnQgd2l0aCB0aGF0IG5hbWUuXG4gKi9cbmZ1bmN0aW9uIGdldEhhc2hGcmFnbWVudERvbU5vZGUoaGFzaEZyYWdtZW50OiBzdHJpbmcpIHtcbiAgLy8gSWYgdGhlIGhhc2ggZnJhZ21lbnQgaXMgYHRvcGAgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgdG9wIG9mIHRoZSBwYWdlLlxuICBpZiAoaGFzaEZyYWdtZW50ID09PSAndG9wJykge1xuICAgIHJldHVybiBkb2N1bWVudC5ib2R5XG4gIH1cblxuICAvLyBJZiB0aGUgaGFzaCBmcmFnbWVudCBpcyBhbiBpZCwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZWxlbWVudCB3aXRoIHRoYXQgaWQuXG4gIHJldHVybiAoXG4gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoaGFzaEZyYWdtZW50KSA/P1xuICAgIC8vIElmIHRoZSBoYXNoIGZyYWdtZW50IGlzIGEgbmFtZSwgdGhlIHBhZ2UgaGFzIHRvIHNjcm9sbCB0byB0aGUgZmlyc3QgZWxlbWVudCB3aXRoIHRoYXQgbmFtZS5cbiAgICBkb2N1bWVudC5nZXRFbGVtZW50c0J5TmFtZShoYXNoRnJhZ21lbnQpWzBdXG4gIClcbn1cbmludGVyZmFjZSBTY3JvbGxBbmRNYXliZUZvY3VzSGFuZGxlclByb3BzIHtcbiAgZm9jdXNBbmRTY3JvbGxSZWY6IEZvY3VzQW5kU2Nyb2xsUmVmXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbiAgY2FjaGVOb2RlOiBDYWNoZU5vZGVcbn1cbmNsYXNzIElubmVyU2Nyb2xsQW5kRm9jdXNIYW5kbGVyT2xkIGV4dGVuZHMgUmVhY3QuQ29tcG9uZW50PFNjcm9sbEFuZE1heWJlRm9jdXNIYW5kbGVyUHJvcHM+IHtcbiAgaGFuZGxlUG90ZW50aWFsU2Nyb2xsID0gKCkgPT4ge1xuICAgIC8vIEhhbmRsZSBzY3JvbGwgYW5kIGZvY3VzLCBpdCdzIG9ubHkgYXBwbGllZCBvbmNlLlxuICAgIGNvbnN0IHsgZm9jdXNBbmRTY3JvbGxSZWYsIGNhY2hlTm9kZSB9ID0gdGhpcy5wcm9wc1xuXG4gICAgY29uc3Qgc2Nyb2xsUmVmID0gZm9jdXNBbmRTY3JvbGxSZWYuZm9yY2VTY3JvbGxcbiAgICAgID8gZm9jdXNBbmRTY3JvbGxSZWYuc2Nyb2xsUmVmXG4gICAgICA6IGNhY2hlTm9kZS5zY3JvbGxSZWZcbiAgICBpZiAoc2Nyb2xsUmVmID09PSBudWxsIHx8ICFzY3JvbGxSZWYuY3VycmVudCkgcmV0dXJuXG5cbiAgICBsZXQgZG9tTm9kZTpcbiAgICAgIHwgUmV0dXJuVHlwZTx0eXBlb2YgZ2V0SGFzaEZyYWdtZW50RG9tTm9kZT5cbiAgICAgIHwgUmV0dXJuVHlwZTx0eXBlb2YgZmluZERPTU5vZGU+ID0gbnVsbFxuICAgIGNvbnN0IGhhc2hGcmFnbWVudCA9IGZvY3VzQW5kU2Nyb2xsUmVmLmhhc2hGcmFnbWVudFxuXG4gICAgaWYgKGhhc2hGcmFnbWVudCkge1xuICAgICAgZG9tTm9kZSA9IGdldEhhc2hGcmFnbWVudERvbU5vZGUoaGFzaEZyYWdtZW50KVxuICAgIH1cblxuICAgIC8vIGBmaW5kRE9NTm9kZWAgaXMgdHJpY2t5IGJlY2F1c2UgaXQgcmV0dXJucyBqdXN0IHRoZSBmaXJzdCBjaGlsZCBpZiB0aGUgY29tcG9uZW50IGlzIGEgZnJhZ21lbnQuXG4gICAgLy8gVGhpcyBhbHJlYWR5IGNhdXNlZCBhIGJ1ZyB3aGVyZSB0aGUgZmlyc3QgY2hpbGQgd2FzIGEgPGxpbmsvPiBpbiBoZWFkLlxuICAgIGlmICghZG9tTm9kZSkge1xuICAgICAgZG9tTm9kZSA9IGZpbmRET01Ob2RlKHRoaXMpXG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgaXMgbm8gRE9NIG5vZGUgdGhpcyBsYXlvdXQtcm91dGVyIGxldmVsIGlzIHNraXBwZWQuIEl0J2xsIGJlIGhhbmRsZWQgaGlnaGVyLXVwIGluIHRoZSB0cmVlLlxuICAgIGlmICghKGRvbU5vZGUgaW5zdGFuY2VvZiBFbGVtZW50KSkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuXG4gICAgLy8gVmVyaWZ5IGlmIHRoZSBlbGVtZW50IGlzIGEgSFRNTEVsZW1lbnQgYW5kIGlmIHdlIHdhbnQgdG8gY29uc2lkZXIgaXQgZm9yIHNjcm9sbCBiZWhhdmlvci5cbiAgICAvLyBJZiB0aGUgZWxlbWVudCBpcyBza2lwcGVkLCB0cnkgdG8gc2VsZWN0IHRoZSBuZXh0IHNpYmxpbmcgYW5kIHRyeSBhZ2Fpbi5cbiAgICB3aGlsZSAoIShkb21Ob2RlIGluc3RhbmNlb2YgSFRNTEVsZW1lbnQpIHx8IHNob3VsZFNraXBFbGVtZW50KGRvbU5vZGUpKSB7XG4gICAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgICBpZiAoZG9tTm9kZS5wYXJlbnRFbGVtZW50Py5sb2NhbE5hbWUgPT09ICdoZWFkJykge1xuICAgICAgICAgIC8vIFdlIGVudGVyIHRoaXMgc3RhdGUgd2hlbiBtZXRhZGF0YSB3YXMgcmVuZGVyZWQgYXMgcGFydCBvZiB0aGUgcGFnZSBvciB2aWEgTmV4dC5qcy5cbiAgICAgICAgICAvLyBUaGlzIGlzIGFsd2F5cyBhIGJ1ZyBpbiBOZXh0LmpzIGFuZCBjYXVzZWQgYnkgUmVhY3QgaG9pc3RpbmcgbWV0YWRhdGEuXG4gICAgICAgICAgLy8gRml4ZWQgd2l0aCBgZXhwZXJpbWVudGFsLmFwcE5ld1Njcm9sbEhhbmRsZXJgXG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgLy8gTm8gc2libGluZ3MgZm91bmQgdGhhdCBtYXRjaCB0aGUgY3JpdGVyaWEgYXJlIGZvdW5kLCBzbyBoYW5kbGUgc2Nyb2xsIGhpZ2hlciB1cCBpbiB0aGUgdHJlZSBpbnN0ZWFkLlxuICAgICAgaWYgKGRvbU5vZGUubmV4dEVsZW1lbnRTaWJsaW5nID09PSBudWxsKSB7XG4gICAgICAgIHJldHVyblxuICAgICAgfVxuICAgICAgZG9tTm9kZSA9IGRvbU5vZGUubmV4dEVsZW1lbnRTaWJsaW5nXG4gICAgfVxuXG4gICAgLy8gTWFyayBhcyBzY3JvbGxlZCBzbyBubyBvdGhlciBzZWdtZW50IHNjcm9sbHMgZm9yIHRoaXMgbmF2aWdhdGlvbi5cbiAgICBzY3JvbGxSZWYuY3VycmVudCA9IGZhbHNlXG5cbiAgICBkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uKFxuICAgICAgKCkgPT4ge1xuICAgICAgICAvLyBJbiBjYXNlIG9mIGhhc2ggc2Nyb2xsLCB3ZSBvbmx5IG5lZWQgdG8gc2Nyb2xsIHRoZSBlbGVtZW50IGludG8gdmlld1xuICAgICAgICBpZiAoaGFzaEZyYWdtZW50KSB7XG4gICAgICAgICAgZG9tTm9kZS5zY3JvbGxJbnRvVmlldygpXG5cbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuICAgICAgICAvLyBTdG9yZSB0aGUgY3VycmVudCB2aWV3cG9ydCBoZWlnaHQgYmVjYXVzZSByZWFkaW5nIGBjbGllbnRIZWlnaHRgIGNhdXNlcyBhIHJlZmxvdyxcbiAgICAgICAgLy8gYW5kIGl0IHdvbid0IGNoYW5nZSBkdXJpbmcgdGhpcyBmdW5jdGlvbi5cbiAgICAgICAgY29uc3QgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgICAgICAgY29uc3Qgdmlld3BvcnRIZWlnaHQgPSBodG1sRWxlbWVudC5jbGllbnRIZWlnaHRcblxuICAgICAgICAvLyBJZiB0aGUgZWxlbWVudCdzIHRvcCBlZGdlIGlzIGFscmVhZHkgaW4gdGhlIHZpZXdwb3J0LCBleGl0IGVhcmx5LlxuICAgICAgICBpZiAodG9wT2ZFbGVtZW50SW5WaWV3cG9ydChkb21Ob2RlLCB2aWV3cG9ydEhlaWdodCkpIHtcbiAgICAgICAgICByZXR1cm5cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE90aGVyd2lzZSwgdHJ5IHNjcm9sbGluZyBnbyB0aGUgdG9wIG9mIHRoZSBkb2N1bWVudCB0byBiZSBiYWNrd2FyZCBjb21wYXRpYmxlIHdpdGggcGFnZXNcbiAgICAgICAgLy8gc2Nyb2xsSW50b1ZpZXcoKSBjYWxsZWQgb24gYDxodG1sLz5gIGVsZW1lbnQgc2Nyb2xscyBob3Jpem9udGFsbHkgb24gY2hyb21lIGFuZCBmaXJlZm94ICh0aGF0IHNob3VsZG4ndCBoYXBwZW4pXG4gICAgICAgIC8vIFdlIGNvdWxkIHVzZSBpdCB0byBzY3JvbGwgaG9yaXpvbnRhbGx5IGZvbGxvd2luZyBSVEwgYnV0IHRoYXQgYWxzbyBzZWVtcyB0byBiZSBicm9rZW4gLSBpdCB3aWxsIGFsd2F5cyBzY3JvbGwgbGVmdFxuICAgICAgICAvLyBzY3JvbGxMZWZ0ID0gMCBhbHNvIHNlZW1zIHRvIGlnbm9yZSBSVEwgYW5kIG1hbnVhbGx5IGNoZWNraW5nIGZvciBSVEwgaXMgdG9vIG11Y2ggaGFzc2xlIHNvIHdlIHdpbGwgc2Nyb2xsIGp1c3QgdmVydGljYWxseVxuICAgICAgICBodG1sRWxlbWVudC5zY3JvbGxUb3AgPSAwXG5cbiAgICAgICAgLy8gU2Nyb2xsIHRvIGRvbU5vZGUgaWYgZG9tTm9kZSBpcyBub3QgaW4gdmlld3BvcnQgd2hlbiBzY3JvbGxlZCB0byB0b3Agb2YgZG9jdW1lbnRcbiAgICAgICAgaWYgKCF0b3BPZkVsZW1lbnRJblZpZXdwb3J0KGRvbU5vZGUsIHZpZXdwb3J0SGVpZ2h0KSkge1xuICAgICAgICAgIC8vIFNjcm9sbCBpbnRvIHZpZXcgZG9lc24ndCBzY3JvbGwgaG9yaXpvbnRhbGx5IGJ5IGRlZmF1bHQgd2hlbiBub3QgbmVlZGVkXG4gICAgICAgICAgZG9tTm9kZS5zY3JvbGxJbnRvVmlldygpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIC8vIFdlIHdpbGwgZm9yY2UgbGF5b3V0IGJ5IHF1ZXJ5aW5nIGRvbU5vZGUgcG9zaXRpb25cbiAgICAgICAgZG9udEZvcmNlTGF5b3V0OiB0cnVlLFxuICAgICAgICBvbmx5SGFzaENoYW5nZTogZm9jdXNBbmRTY3JvbGxSZWYub25seUhhc2hDaGFuZ2UsXG4gICAgICB9XG4gICAgKVxuXG4gICAgLy8gTXV0YXRlIGFmdGVyIHNjcm9sbGluZyBzbyB0aGF0IGl0IGNhbiBiZSByZWFkIGJ5IGBkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uYFxuICAgIGZvY3VzQW5kU2Nyb2xsUmVmLm9ubHlIYXNoQ2hhbmdlID0gZmFsc2VcbiAgICBmb2N1c0FuZFNjcm9sbFJlZi5oYXNoRnJhZ21lbnQgPSBudWxsXG5cbiAgICAvLyBTZXQgZm9jdXMgb24gdGhlIGVsZW1lbnRcbiAgICBkb21Ob2RlLmZvY3VzKClcbiAgfVxuXG4gIGNvbXBvbmVudERpZE1vdW50KCkge1xuICAgIHRoaXMuaGFuZGxlUG90ZW50aWFsU2Nyb2xsKClcbiAgfVxuXG4gIGNvbXBvbmVudERpZFVwZGF0ZSgpIHtcbiAgICB0aGlzLmhhbmRsZVBvdGVudGlhbFNjcm9sbCgpXG4gIH1cblxuICByZW5kZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMucHJvcHMuY2hpbGRyZW5cbiAgfVxufVxuXG4vKipcbiAqIEZvcmsgb2YgSW5uZXJTY3JvbGxBbmRGb2N1c0hhbmRsZXJPbGQgdXNpbmcgRnJhZ21lbnQgcmVmcyBmb3Igc2Nyb2xsaW5nLlxuICogTm8gbG9uZ2VyIGZvY3VzZXMgdGhlIGZpcnN0IGhvc3QgZGVzY2VuZGFudC5cbiAqL1xuZnVuY3Rpb24gSW5uZXJTY3JvbGxIYW5kbGVyTmV3KHByb3BzOiBTY3JvbGxBbmRNYXliZUZvY3VzSGFuZGxlclByb3BzKSB7XG4gIGNvbnN0IGNoaWxkcmVuUmVmID0gUmVhY3QudXNlUmVmPEZyYWdtZW50SW5zdGFuY2U+KG51bGwpXG5cbiAgdXNlTGF5b3V0RWZmZWN0KFxuICAgICgpID0+IHtcbiAgICAgIGNvbnN0IHsgZm9jdXNBbmRTY3JvbGxSZWYsIGNhY2hlTm9kZSB9ID0gcHJvcHNcblxuICAgICAgY29uc3Qgc2Nyb2xsUmVmID0gZm9jdXNBbmRTY3JvbGxSZWYuZm9yY2VTY3JvbGxcbiAgICAgICAgPyBmb2N1c0FuZFNjcm9sbFJlZi5zY3JvbGxSZWZcbiAgICAgICAgOiBjYWNoZU5vZGUuc2Nyb2xsUmVmXG4gICAgICBpZiAoc2Nyb2xsUmVmID09PSBudWxsIHx8ICFzY3JvbGxSZWYuY3VycmVudCkgcmV0dXJuXG5cbiAgICAgIGxldCBpbnN0YW5jZTogRnJhZ21lbnRJbnN0YW5jZSB8IEhUTUxFbGVtZW50IHwgbnVsbCA9IG51bGxcbiAgICAgIGNvbnN0IGhhc2hGcmFnbWVudCA9IGZvY3VzQW5kU2Nyb2xsUmVmLmhhc2hGcmFnbWVudFxuXG4gICAgICBpZiAoaGFzaEZyYWdtZW50KSB7XG4gICAgICAgIGluc3RhbmNlID0gZ2V0SGFzaEZyYWdtZW50RG9tTm9kZShoYXNoRnJhZ21lbnQpXG4gICAgICB9XG5cbiAgICAgIGlmICghaW5zdGFuY2UpIHtcbiAgICAgICAgaW5zdGFuY2UgPSBjaGlsZHJlblJlZi5jdXJyZW50XG4gICAgICB9XG5cbiAgICAgIC8vIElmIHRoZXJlIGlzIG5vIERPTSBub2RlIHRoaXMgbGF5b3V0LXJvdXRlciBsZXZlbCBpcyBza2lwcGVkLiBJdCdsbCBiZSBoYW5kbGVkIGhpZ2hlci11cCBpbiB0aGUgdHJlZS5cbiAgICAgIGlmIChpbnN0YW5jZSA9PT0gbnVsbCkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgLy8gTWFyayBhcyBzY3JvbGxlZCBzbyBubyBvdGhlciBzZWdtZW50IHNjcm9sbHMgZm9yIHRoaXMgbmF2aWdhdGlvbi5cbiAgICAgIHNjcm9sbFJlZi5jdXJyZW50ID0gZmFsc2VcblxuICAgICAgY29uc3QgYWN0aXZlRWxlbWVudCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnRcbiAgICAgIGlmIChcbiAgICAgICAgYWN0aXZlRWxlbWVudCAhPT0gbnVsbCAmJlxuICAgICAgICAnYmx1cicgaW4gYWN0aXZlRWxlbWVudCAmJlxuICAgICAgICB0eXBlb2YgYWN0aXZlRWxlbWVudC5ibHVyID09PSAnZnVuY3Rpb24nXG4gICAgICApIHtcbiAgICAgICAgLy8gVHJ5aW5nIHRvIG1hdGNoIGhhcmQgbmF2aWdhdGlvbnMuXG4gICAgICAgIC8vIElkZWFsbHkgd2UnZCBtb3ZlIHRoZSBpbnRlcm5hbCBmb2N1cyBjdXJzb3IgZWl0aGVyIHRvIHRoZSB0b3BcbiAgICAgICAgLy8gb3IgYXQgbGVhc3QgYmVmb3JlIHRoZSBzZWdtZW50LiBCdXQgdGhlcmUncyBubyBET00gQVBJIHRvIGRvIHRoYXQsXG4gICAgICAgIC8vIHNvIHdlIGp1c3QgYmx1ci5cbiAgICAgICAgLy8gV2UgY291bGQgd29ya2Fyb3VuZCB0aGlzIGJ5IG1vdmluZyBmb2N1cyB0byBhIHRlbXBvcmFyeSBlbGVtZW50IGluXG4gICAgICAgIC8vIHRoZSBib2R5LiBCdXQgYWRkaW5nIGVsZW1lbnRzIG1pZ2h0IHRyaWdnZXIgbGF5b3V0IG9yIG90aGVyIGVmZmVjdHNcbiAgICAgICAgLy8gc28gaXQgc2hvdWxkIGJlIHdlbGwgbW90aXZhdGVkLlxuICAgICAgICBhY3RpdmVFbGVtZW50LmJsdXIoKVxuICAgICAgfVxuXG4gICAgICBkaXNhYmxlU21vb3RoU2Nyb2xsRHVyaW5nUm91dGVUcmFuc2l0aW9uKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgLy8gSW4gY2FzZSBvZiBoYXNoIHNjcm9sbCwgd2Ugb25seSBuZWVkIHRvIHNjcm9sbCB0aGUgZWxlbWVudCBpbnRvIHZpZXdcbiAgICAgICAgICBpZiAoaGFzaEZyYWdtZW50KSB7XG4gICAgICAgICAgICBpbnN0YW5jZS5zY3JvbGxJbnRvVmlldygpXG5cbiAgICAgICAgICAgIHJldHVyblxuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBTdG9yZSB0aGUgY3VycmVudCB2aWV3cG9ydCBoZWlnaHQgYmVjYXVzZSByZWFkaW5nIGBjbGllbnRIZWlnaHRgIGNhdXNlcyBhIHJlZmxvdyxcbiAgICAgICAgICAvLyBhbmQgaXQgd29uJ3QgY2hhbmdlIGR1cmluZyB0aGlzIGZ1bmN0aW9uLlxuICAgICAgICAgIGNvbnN0IGh0bWxFbGVtZW50ID0gZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50XG4gICAgICAgICAgY29uc3Qgdmlld3BvcnRIZWlnaHQgPSBodG1sRWxlbWVudC5jbGllbnRIZWlnaHRcblxuICAgICAgICAgIC8vIElmIHRoZSBlbGVtZW50J3MgdG9wIGVkZ2UgaXMgYWxyZWFkeSBpbiB0aGUgdmlld3BvcnQsIGV4aXQgZWFybHkuXG4gICAgICAgICAgaWYgKHRvcE9mRWxlbWVudEluVmlld3BvcnQoaW5zdGFuY2UsIHZpZXdwb3J0SGVpZ2h0KSkge1xuICAgICAgICAgICAgcmV0dXJuXG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gT3RoZXJ3aXNlLCB0cnkgc2Nyb2xsaW5nIGdvIHRoZSB0b3Agb2YgdGhlIGRvY3VtZW50IHRvIGJlIGJhY2t3YXJkIGNvbXBhdGlibGUgd2l0aCBwYWdlc1xuICAgICAgICAgIC8vIHNjcm9sbEludG9WaWV3KCkgY2FsbGVkIG9uIGA8aHRtbC8+YCBlbGVtZW50IHNjcm9sbHMgaG9yaXpvbnRhbGx5IG9uIGNocm9tZSBhbmQgZmlyZWZveCAodGhhdCBzaG91bGRuJ3QgaGFwcGVuKVxuICAgICAgICAgIC8vIFdlIGNvdWxkIHVzZSBpdCB0byBzY3JvbGwgaG9yaXpvbnRhbGx5IGZvbGxvd2luZyBSVEwgYnV0IHRoYXQgYWxzbyBzZWVtcyB0byBiZSBicm9rZW4gLSBpdCB3aWxsIGFsd2F5cyBzY3JvbGwgbGVmdFxuICAgICAgICAgIC8vIHNjcm9sbExlZnQgPSAwIGFsc28gc2VlbXMgdG8gaWdub3JlIFJUTCBhbmQgbWFudWFsbHkgY2hlY2tpbmcgZm9yIFJUTCBpcyB0b28gbXVjaCBoYXNzbGUgc28gd2Ugd2lsbCBzY3JvbGwganVzdCB2ZXJ0aWNhbGx5XG4gICAgICAgICAgaHRtbEVsZW1lbnQuc2Nyb2xsVG9wID0gMFxuXG4gICAgICAgICAgLy8gU2Nyb2xsIHRvIGRvbU5vZGUgaWYgZG9tTm9kZSBpcyBub3QgaW4gdmlld3BvcnQgd2hlbiBzY3JvbGxlZCB0byB0b3Agb2YgZG9jdW1lbnRcbiAgICAgICAgICBpZiAoIXRvcE9mRWxlbWVudEluVmlld3BvcnQoaW5zdGFuY2UsIHZpZXdwb3J0SGVpZ2h0KSkge1xuICAgICAgICAgICAgLy8gU2Nyb2xsIGludG8gdmlldyBkb2Vzbid0IHNjcm9sbCBob3Jpem9udGFsbHkgYnkgZGVmYXVsdCB3aGVuIG5vdCBuZWVkZWRcbiAgICAgICAgICAgIGluc3RhbmNlLnNjcm9sbEludG9WaWV3KClcbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICAvLyBXZSB3aWxsIGZvcmNlIGxheW91dCBieSBxdWVyeWluZyBkb21Ob2RlIHBvc2l0aW9uXG4gICAgICAgICAgZG9udEZvcmNlTGF5b3V0OiB0cnVlLFxuICAgICAgICAgIG9ubHlIYXNoQ2hhbmdlOiBmb2N1c0FuZFNjcm9sbFJlZi5vbmx5SGFzaENoYW5nZSxcbiAgICAgICAgfVxuICAgICAgKVxuXG4gICAgICAvLyBNdXRhdGUgYWZ0ZXIgc2Nyb2xsaW5nIHNvIHRoYXQgaXQgY2FuIGJlIHJlYWQgYnkgYGRpc2FibGVTbW9vdGhTY3JvbGxEdXJpbmdSb3V0ZVRyYW5zaXRpb25gXG4gICAgICBmb2N1c0FuZFNjcm9sbFJlZi5vbmx5SGFzaENoYW5nZSA9IGZhbHNlXG4gICAgICBmb2N1c0FuZFNjcm9sbFJlZi5oYXNoRnJhZ21lbnQgPSBudWxsXG4gICAgfSxcbiAgICAvLyBVc2VkIHRvIHJ1biBvbiBldmVyeSBjb21taXQuIFdlIG1heSBiZSBhYmxlIHRvIGJlIHNtYXJ0ZXIgYWJvdXQgdGhpc1xuICAgIC8vIGJ1dCBiZSBwcmVwYXJlZCBmb3IgbG90cyBvZiBtYW51YWwgdGVzdGluZy5cbiAgICB1bmRlZmluZWRcbiAgKVxuXG4gIHJldHVybiA8RnJhZ21lbnQgcmVmPXtjaGlsZHJlblJlZn0+e3Byb3BzLmNoaWxkcmVufTwvRnJhZ21lbnQ+XG59XG5cbmNvbnN0IElubmVyU2Nyb2xsQW5kTWF5YmVGb2N1c0hhbmRsZXIgPSBlbmFibGVOZXdTY3JvbGxIYW5kbGVyXG4gID8gSW5uZXJTY3JvbGxIYW5kbGVyTmV3XG4gIDogSW5uZXJTY3JvbGxBbmRGb2N1c0hhbmRsZXJPbGRcblxuZnVuY3Rpb24gU2Nyb2xsQW5kTWF5YmVGb2N1c0hhbmRsZXIoe1xuICBjaGlsZHJlbixcbiAgY2FjaGVOb2RlLFxufToge1xuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG4gIGNhY2hlTm9kZTogQ2FjaGVOb2RlXG59KSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KEdsb2JhbExheW91dFJvdXRlckNvbnRleHQpXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YXJpYW50IGdsb2JhbCBsYXlvdXQgcm91dGVyIG5vdCBtb3VudGVkJylcbiAgfVxuXG4gIHJldHVybiAoXG4gICAgPElubmVyU2Nyb2xsQW5kTWF5YmVGb2N1c0hhbmRsZXJcbiAgICAgIGZvY3VzQW5kU2Nyb2xsUmVmPXtjb250ZXh0LmZvY3VzQW5kU2Nyb2xsUmVmfVxuICAgICAgY2FjaGVOb2RlPXtjYWNoZU5vZGV9XG4gICAgPlxuICAgICAge2NoaWxkcmVufVxuICAgIDwvSW5uZXJTY3JvbGxBbmRNYXliZUZvY3VzSGFuZGxlcj5cbiAgKVxufVxuXG4vKipcbiAqIElubmVyTGF5b3V0Um91dGVyIGhhbmRsZXMgcmVuZGVyaW5nIHRoZSBwcm92aWRlZCBzZWdtZW50IGJhc2VkIG9uIHRoZSBjYWNoZS5cbiAqL1xuZnVuY3Rpb24gSW5uZXJMYXlvdXRSb3V0ZXIoe1xuICB0cmVlLFxuICBzZWdtZW50UGF0aCxcbiAgZGVidWdOYW1lQ29udGV4dCxcbiAgY2FjaGVOb2RlOiBtYXliZUNhY2hlTm9kZSxcbiAgcGFyYW1zLFxuICB1cmwsXG4gIGlzQWN0aXZlLFxufToge1xuICB0cmVlOiBGbGlnaHRSb3V0ZXJTdGF0ZVxuICBzZWdtZW50UGF0aDogRmxpZ2h0U2VnbWVudFBhdGhcbiAgZGVidWdOYW1lQ29udGV4dDogc3RyaW5nXG4gIGNhY2hlTm9kZTogQ2FjaGVOb2RlIHwgbnVsbFxuICBwYXJhbXM6IFBhcmFtc1xuICB1cmw6IHN0cmluZ1xuICBpc0FjdGl2ZTogYm9vbGVhblxufSkge1xuICBjb25zdCBjb250ZXh0ID0gdXNlQ29udGV4dChHbG9iYWxMYXlvdXRSb3V0ZXJDb250ZXh0KVxuICBjb25zdCBwYXJlbnROYXZQcm9taXNlcyA9IHVzZUNvbnRleHQoTmF2aWdhdGlvblByb21pc2VzQ29udGV4dClcblxuICBpZiAoIWNvbnRleHQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ2ludmFyaWFudCBnbG9iYWwgbGF5b3V0IHJvdXRlciBub3QgbW91bnRlZCcpXG4gIH1cblxuICBjb25zdCBjYWNoZU5vZGUgPVxuICAgIG1heWJlQ2FjaGVOb2RlICE9PSBudWxsXG4gICAgICA/IG1heWJlQ2FjaGVOb2RlXG4gICAgICA6IC8vIFRoaXMgc2VnbWVudCBpcyBub3QgaW4gdGhlIGNhY2hlLiBTdXNwZW5kIGluZGVmaW5pdGVseS5cbiAgICAgICAgLy9cbiAgICAgICAgLy8gVGhpcyBzaG91bGQgb25seSBiZSByZWFjaGFibGUgZm9yIGluYWN0aXZlL2hpZGRlbiBzZWdtZW50cywgZHVyaW5nXG4gICAgICAgIC8vIHByZXJlbmRlcmluZyBUaGUgYWN0aXZlIHNlZ21lbnQgc2hvdWxkIGFsd2F5cyBiZSBjb25zaXN0ZW50IHdpdGggdGhlXG4gICAgICAgIC8vIENhY2hlTm9kZSB0cmVlLiBSZWdhcmRsZXNzLCBpZiB3ZSBkb24ndCBoYXZlIGEgbWF0Y2hpbmcgQ2FjaGVOb2RlLCB3ZVxuICAgICAgICAvLyBtdXN0IHN1c3BlbmQgcmF0aGVyIHRoYW4gcmVuZGVyIG5vdGhpbmcsIHRvIHByZXZlbnQgc2hvd2luZyBhblxuICAgICAgICAvLyBpbmNvbnNpc3RlbnQgcm91dGUuXG5cbiAgICAgICAgKHVzZSh1bnJlc29sdmVkVGhlbmFibGUpIGFzIG5ldmVyKVxuXG4gIC8vIGByc2NgIHJlcHJlc2VudHMgdGhlIHJlbmRlcmFibGUgbm9kZSBmb3IgdGhpcyBzZWdtZW50LlxuXG4gIC8vIElmIHRoaXMgc2VnbWVudCBoYXMgYSBgcHJlZmV0Y2hSc2NgLCBpdCdzIHRoZSBzdGF0aWNhbGx5IHByZWZldGNoZWQgZGF0YS5cbiAgLy8gV2Ugc2hvdWxkIHVzZSB0aGF0IG9uIGluaXRpYWwgcmVuZGVyIGluc3RlYWQgb2YgYHJzY2AuIFRoZW4gd2UnbGwgc3dpdGNoXG4gIC8vIHRvIGByc2NgIHdoZW4gdGhlIGR5bmFtaWMgcmVzcG9uc2Ugc3RyZWFtcyBpbi5cbiAgLy9cbiAgLy8gSWYgbm8gcHJlZmV0Y2ggZGF0YSBpcyBhdmFpbGFibGUsIHRoZW4gd2UgZ28gc3RyYWlnaHQgdG8gcmVuZGVyaW5nIGByc2NgLlxuICBjb25zdCByZXNvbHZlZFByZWZldGNoUnNjID1cbiAgICBjYWNoZU5vZGUucHJlZmV0Y2hSc2MgIT09IG51bGwgPyBjYWNoZU5vZGUucHJlZmV0Y2hSc2MgOiBjYWNoZU5vZGUucnNjXG5cbiAgLy8gV2UgdXNlIGB1c2VEZWZlcnJlZFZhbHVlYCB0byBoYW5kbGUgc3dpdGNoaW5nIGJldHdlZW4gdGhlIHByZWZldGNoZWQgYW5kXG4gIC8vIGZpbmFsIHZhbHVlcy4gVGhlIHNlY29uZCBhcmd1bWVudCBpcyByZXR1cm5lZCBvbiBpbml0aWFsIHJlbmRlciwgdGhlbiBpdFxuICAvLyByZS1yZW5kZXJzIHdpdGggdGhlIGZpcnN0IGFyZ3VtZW50LlxuICBjb25zdCByc2M6IGFueSA9IHVzZURlZmVycmVkVmFsdWUoY2FjaGVOb2RlLnJzYywgcmVzb2x2ZWRQcmVmZXRjaFJzYylcblxuICAvLyBgcnNjYCBpcyBlaXRoZXIgYSBSZWFjdCBub2RlIG9yIGEgcHJvbWlzZSBmb3IgYSBSZWFjdCBub2RlLCBleGNlcHQgd2VcbiAgLy8gc3BlY2lhbCBjYXNlIGBudWxsYCB0byByZXByZXNlbnQgdGhhdCB0aGlzIHNlZ21lbnQncyBkYXRhIGlzIG1pc3NpbmcuIElmXG4gIC8vIGl0J3MgYSBwcm9taXNlLCB3ZSBuZWVkIHRvIHVud3JhcCBpdCBzbyB3ZSBjYW4gZGV0ZXJtaW5lIHdoZXRoZXIgb3Igbm90IHRoZVxuICAvLyBkYXRhIGlzIG1pc3NpbmcuXG4gIGxldCByZXNvbHZlZFJzYzogUmVhY3QuUmVhY3ROb2RlXG4gIGlmIChpc0RlZmVycmVkUnNjKHJzYykpIHtcbiAgICBjb25zdCB1bndyYXBwZWRSc2MgPSB1c2UocnNjKVxuICAgIGlmICh1bndyYXBwZWRSc2MgPT09IG51bGwpIHtcbiAgICAgIC8vIElmIHRoZSBwcm9taXNlIHdhcyByZXNvbHZlZCB0byBgbnVsbGAsIGl0IG1lYW5zIHRoZSBkYXRhIGZvciB0aGlzXG4gICAgICAvLyBzZWdtZW50IHdhcyBub3QgcmV0dXJuZWQgYnkgdGhlIHNlcnZlci4gU3VzcGVuZCBpbmRlZmluaXRlbHkuIFdoZW4gdGhpc1xuICAgICAgLy8gaGFwcGVucywgdGhlIHJvdXRlciBpcyByZXNwb25zaWJsZSBmb3IgdHJpZ2dlcmluZyBhIG5ldyBzdGF0ZSB1cGRhdGUgdG9cbiAgICAgIC8vIHVuLXN1c3BlbmQgdGhpcyBzZWdtZW50LlxuICAgICAgdXNlKHVucmVzb2x2ZWRUaGVuYWJsZSkgYXMgbmV2ZXJcbiAgICB9XG4gICAgcmVzb2x2ZWRSc2MgPSB1bndyYXBwZWRSc2NcbiAgfSBlbHNlIHtcbiAgICAvLyBUaGlzIGlzIG5vdCBhIGRlZmVycmVkIFJTQyBwcm9taXNlLiBEb24ndCBuZWVkIHRvIHVud3JhcCBpdC5cbiAgICBpZiAocnNjID09PSBudWxsKSB7XG4gICAgICB1c2UodW5yZXNvbHZlZFRoZW5hYmxlKSBhcyBuZXZlclxuICAgIH1cbiAgICByZXNvbHZlZFJzYyA9IHJzY1xuICB9XG5cbiAgLy8gSW4gZGV2LCB3ZSBjcmVhdGUgYSBOYXZpZ2F0aW9uUHJvbWlzZXNDb250ZXh0IGNvbnRhaW5pbmcgdGhlIGluc3RydW1lbnRlZCBwcm9taXNlcyB0aGF0IHByb3ZpZGVcbiAgLy8gYHVzZVNlbGVjdGVkTGF5b3V0U2VnbWVudGAgYW5kIGB1c2VTZWxlY3RlZExheW91dFNlZ21lbnRzYC5cbiAgLy8gUHJvbWlzZXMgYXJlIGNhY2hlZCBvdXRzaWRlIG9mIHJlbmRlciB0byBzdXJ2aXZlIHN1c3BlbnNlIHJldHJpZXMuXG4gIGxldCBuYXZpZ2F0aW9uUHJvbWlzZXM6IE5hdmlnYXRpb25Qcm9taXNlcyB8IG51bGwgPSBudWxsXG4gIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgY29uc3QgeyBjcmVhdGVOZXN0ZWRMYXlvdXROYXZpZ2F0aW9uUHJvbWlzZXMgfSA9XG4gICAgICByZXF1aXJlKCcuL25hdmlnYXRpb24tZGV2dG9vbHMnKSBhcyB0eXBlb2YgaW1wb3J0KCcuL25hdmlnYXRpb24tZGV2dG9vbHMnKVxuXG4gICAgbmF2aWdhdGlvblByb21pc2VzID0gY3JlYXRlTmVzdGVkTGF5b3V0TmF2aWdhdGlvblByb21pc2VzKFxuICAgICAgdHJlZSxcbiAgICAgIHBhcmVudE5hdlByb21pc2VzXG4gICAgKVxuICB9XG5cbiAgbGV0IGNoaWxkcmVuID0gcmVzb2x2ZWRSc2NcblxuICBpZiAobmF2aWdhdGlvblByb21pc2VzKSB7XG4gICAgY2hpbGRyZW4gPSAoXG4gICAgICA8TmF2aWdhdGlvblByb21pc2VzQ29udGV4dC5Qcm92aWRlciB2YWx1ZT17bmF2aWdhdGlvblByb21pc2VzfT5cbiAgICAgICAge3Jlc29sdmVkUnNjfVxuICAgICAgPC9OYXZpZ2F0aW9uUHJvbWlzZXNDb250ZXh0LlByb3ZpZGVyPlxuICAgIClcbiAgfVxuXG4gIGNoaWxkcmVuID0gKFxuICAgIC8vIFRoZSBsYXlvdXQgcm91dGVyIGNvbnRleHQgbmFycm93cyBkb3duIHRyZWUgYW5kIGNoaWxkTm9kZXMgYXQgZWFjaCBsZXZlbC5cbiAgICA8TGF5b3V0Um91dGVyQ29udGV4dC5Qcm92aWRlclxuICAgICAgdmFsdWU9e3tcbiAgICAgICAgcGFyZW50VHJlZTogdHJlZSxcbiAgICAgICAgcGFyZW50Q2FjaGVOb2RlOiBjYWNoZU5vZGUsXG4gICAgICAgIHBhcmVudFNlZ21lbnRQYXRoOiBzZWdtZW50UGF0aCxcbiAgICAgICAgcGFyZW50UGFyYW1zOiBwYXJhbXMsXG4gICAgICAgIC8vIFRoaXMgaXMgYWx3YXlzIHNldCB0byBudWxsIGFzIHdlIGVudGVyIGEgY2hpbGQgc2VnbWVudC4gSXQnc1xuICAgICAgICAvLyBwb3B1bGF0ZWQgYnkgTG9hZGluZ0JvdW5kYXJ5UHJvdmlkZXIgdGhlIG5leHQgdGltZSB3ZSByZWFjaCBhXG4gICAgICAgIC8vIGxvYWRpbmcgYm91bmRhcnkuXG4gICAgICAgIHBhcmVudExvYWRpbmdEYXRhOiBudWxsLFxuICAgICAgICBkZWJ1Z05hbWVDb250ZXh0OiBkZWJ1Z05hbWVDb250ZXh0LFxuXG4gICAgICAgIC8vIFRPRE8tQVBQOiBvdmVycmlkaW5nIG9mIHVybCBmb3IgcGFyYWxsZWwgcm91dGVzXG4gICAgICAgIHVybDogdXJsLFxuICAgICAgICBpc0FjdGl2ZTogaXNBY3RpdmUsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0xheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXI+XG4gIClcblxuICByZXR1cm4gY2hpbGRyZW5cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIExvYWRpbmdCb3VuZGFyeVByb3ZpZGVyKHtcbiAgbG9hZGluZyxcbiAgY2hpbGRyZW4sXG59OiB7XG4gIGxvYWRpbmc6IExvYWRpbmdNb2R1bGVEYXRhXG4gIGNoaWxkcmVuOiBSZWFjdC5SZWFjdE5vZGVcbn0pIHtcbiAgLy8gUHJvdmlkZXMgdGhlIGRhdGEgbmVlZGVkIHRvIHJlbmRlciBhIGxvYWRpbmcudHN4IGJvdW5kYXJ5LCB2aWEgY29udGV4dC5cbiAgLy9cbiAgLy8gbG9hZGluZy50c3ggY3JlYXRlcyBhIFN1c3BlbnNlIGJvdW5kYXJ5IGFyb3VuZCBlYWNoIG9mIGEgbGF5b3V0J3MgY2hpbGRcbiAgLy8gc2xvdHMuIChNaWdodCBiZSBiaXQgY29uZnVzaW5nIHRvIHRoaW5rIGFib3V0IHRoZSBkYXRhIGZsb3csIGJ1dDogaWZcbiAgLy8gbG9hZGluZy50c3ggYW5kIGxheW91dC50c3ggYXJlIGluIHRoZSBzYW1lIGRpcmVjdG9yeSwgdGhleSBhcmUgYXNzaWduZWRcbiAgLy8gdG8gdGhlIHNhbWUgQ2FjaGVOb2RlLilcbiAgLy9cbiAgLy8gVGhpcyBwcm92aWRlciBjb21wb25lbnQgZG9lcyBub3QgcmVuZGVyIHRoZSBTdXNwZW5zZSBib3VuZGFyeSBkaXJlY3RseTtcbiAgLy8gdGhhdCdzIGhhbmRsZWQgYnkgTG9hZGluZ0JvdW5kYXJ5LlxuICAvL1xuICAvLyBUT0RPOiBGb3Igc2ltcGxpY2l0eSwgd2Ugc2hvdWxkIGNvbWJpbmUgdGhpcyBwcm92aWRlciB3aXRoIExvYWRpbmdCb3VuZGFyeVxuICAvLyBhbmQgcmVuZGVyIHRoZSBTdXNwZW5zZSBib3VuZGFyeSBkaXJlY3RseS4gVGhlIG9ubHkgcmVhbCBiZW5lZml0IG9mIGRvaW5nXG4gIC8vIGl0IHNlcGFyYXRlbHkgaXMgc28gdGhhdCB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBwYXJhbGxlbCByb3V0ZXMsIHdlIG9ubHlcbiAgLy8gc2VuZCB0aGUgYm91bmRhcnkgZGF0YSBvbmNlLCByYXRoZXIgdGhhbiBvbmNlIHBlciBjaGlsZC4gQnV0IHRoYXQncyBhXG4gIC8vIG5lZ2xpZ2libGUgYmVuZWZpdCBhbmQgY2FuIGJlIGFjaGlldmVkIHZpYSBjYWNoaW5nIGluc3RlYWQuXG4gIGNvbnN0IHBhcmVudENvbnRleHQgPSB1c2UoTGF5b3V0Um91dGVyQ29udGV4dClcbiAgaWYgKHBhcmVudENvbnRleHQgPT09IG51bGwpIHtcbiAgICByZXR1cm4gY2hpbGRyZW5cbiAgfVxuICAvLyBBbGwgdmFsdWVzIGV4Y2VwdCBmb3IgcGFyZW50TG9hZGluZ0RhdGEgYXJlIHRoZSBzYW1lIGFzIHRoZSBwYXJlbnQgY29udGV4dC5cbiAgcmV0dXJuIChcbiAgICA8TGF5b3V0Um91dGVyQ29udGV4dC5Qcm92aWRlclxuICAgICAgdmFsdWU9e3tcbiAgICAgICAgcGFyZW50VHJlZTogcGFyZW50Q29udGV4dC5wYXJlbnRUcmVlLFxuICAgICAgICBwYXJlbnRDYWNoZU5vZGU6IHBhcmVudENvbnRleHQucGFyZW50Q2FjaGVOb2RlLFxuICAgICAgICBwYXJlbnRTZWdtZW50UGF0aDogcGFyZW50Q29udGV4dC5wYXJlbnRTZWdtZW50UGF0aCxcbiAgICAgICAgcGFyZW50UGFyYW1zOiBwYXJlbnRDb250ZXh0LnBhcmVudFBhcmFtcyxcbiAgICAgICAgcGFyZW50TG9hZGluZ0RhdGE6IGxvYWRpbmcsXG4gICAgICAgIGRlYnVnTmFtZUNvbnRleHQ6IHBhcmVudENvbnRleHQuZGVidWdOYW1lQ29udGV4dCxcbiAgICAgICAgdXJsOiBwYXJlbnRDb250ZXh0LnVybCxcbiAgICAgICAgaXNBY3RpdmU6IHBhcmVudENvbnRleHQuaXNBY3RpdmUsXG4gICAgICB9fVxuICAgID5cbiAgICAgIHtjaGlsZHJlbn1cbiAgICA8L0xheW91dFJvdXRlckNvbnRleHQuUHJvdmlkZXI+XG4gIClcbn1cblxuLyoqXG4gKiBSZW5kZXJzIHN1c3BlbnNlIGJvdW5kYXJ5IHdpdGggdGhlIHByb3ZpZGVkIFwibG9hZGluZ1wiIHByb3BlcnR5IGFzIHRoZSBmYWxsYmFjay5cbiAqIElmIG5vIGxvYWRpbmcgcHJvcGVydHkgaXMgcHJvdmlkZWQgaXQgcmVuZGVycyB0aGUgY2hpbGRyZW4gd2l0aG91dCBhIHN1c3BlbnNlIGJvdW5kYXJ5LlxuICovXG5mdW5jdGlvbiBMb2FkaW5nQm91bmRhcnkoe1xuICBuYW1lLFxuICBsb2FkaW5nLFxuICBjaGlsZHJlbixcbn06IHtcbiAgbmFtZTogQWN0aXZpdHlQcm9wc1snbmFtZSddXG4gIGxvYWRpbmc6IExvYWRpbmdNb2R1bGVEYXRhIHwgbnVsbFxuICBjaGlsZHJlbjogUmVhY3QuUmVhY3ROb2RlXG59KTogSlNYLkVsZW1lbnQge1xuICAvLyBUT0RPOiBGb3IgTG9hZGluZ0JvdW5kYXJ5LCBhbmQgdGhlIG90aGVyIGJ1aWx0LWluIGJvdW5kYXJ5IHR5cGVzLCBkb24ndFxuICAvLyB3cmFwIGluIGFuIGV4dHJhIGZ1bmN0aW9uIGNvbXBvbmVudCBpZiBubyB1c2VyLWRlZmluZWQgYm91bmRhcnkgaXNcbiAgLy8gcHJvdmlkZWQuIEluIG90aGVyIHdvcmRzLCBpbmxpbmUgdGhpcyBjb25kaXRpb25hbCB3cmFwcGluZyBsb2dpYyBpbnRvXG4gIC8vIHRoZSBwYXJlbnQgY29tcG9uZW50LiBNb3JlIGVmZmljaWVudCBhbmQga2VlcHMgdW5uZWNlc3NhcnkganVuayBvdXQgb2ZcbiAgLy8gdGhlIGNvbXBvbmVudCBzdGFjay5cbiAgaWYgKGxvYWRpbmcgIT09IG51bGwpIHtcbiAgICBjb25zdCBsb2FkaW5nUnNjID0gbG9hZGluZ1swXVxuICAgIGNvbnN0IGxvYWRpbmdTdHlsZXMgPSBsb2FkaW5nWzFdXG4gICAgY29uc3QgbG9hZGluZ1NjcmlwdHMgPSBsb2FkaW5nWzJdXG4gICAgcmV0dXJuIChcbiAgICAgIDxTdXNwZW5zZVxuICAgICAgICBuYW1lPXtuYW1lfVxuICAgICAgICBmYWxsYmFjaz17XG4gICAgICAgICAgPD5cbiAgICAgICAgICAgIHtsb2FkaW5nU3R5bGVzfVxuICAgICAgICAgICAge2xvYWRpbmdTY3JpcHRzfVxuICAgICAgICAgICAge2xvYWRpbmdSc2N9XG4gICAgICAgICAgPC8+XG4gICAgICAgIH1cbiAgICAgID5cbiAgICAgICAge2NoaWxkcmVufVxuICAgICAgPC9TdXNwZW5zZT5cbiAgICApXG4gIH1cblxuICByZXR1cm4gPD57Y2hpbGRyZW59PC8+XG59XG5cbi8qKlxuICogT3V0ZXJMYXlvdXRSb3V0ZXIgaGFuZGxlcyB0aGUgY3VycmVudCBzZWdtZW50IGFzIHdlbGwgYXMgPE9mZnNjcmVlbj4gcmVuZGVyaW5nIG9mIG90aGVyIHNlZ21lbnRzLlxuICogSXQgY2FuIGJlIHJlbmRlcmVkIG5leHQgdG8gZWFjaCBvdGhlciB3aXRoIGEgZGlmZmVyZW50IGBwYXJhbGxlbFJvdXRlcktleWAsIGFsbG93aW5nIGZvciBQYXJhbGxlbCByb3V0ZXMuXG4gKi9cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIE91dGVyTGF5b3V0Um91dGVyKHtcbiAgcGFyYWxsZWxSb3V0ZXJLZXksXG4gIGVycm9yLFxuICBlcnJvclN0eWxlcyxcbiAgZXJyb3JTY3JpcHRzLFxuICB0ZW1wbGF0ZVN0eWxlcyxcbiAgdGVtcGxhdGVTY3JpcHRzLFxuICB0ZW1wbGF0ZSxcbiAgbm90Rm91bmQsXG4gIGZvcmJpZGRlbixcbiAgdW5hdXRob3JpemVkLFxuICBzZWdtZW50Vmlld0JvdW5kYXJpZXMsXG59OiB7XG4gIHBhcmFsbGVsUm91dGVyS2V5OiBzdHJpbmdcbiAgZXJyb3I6IEVycm9yQ29tcG9uZW50IHwgdW5kZWZpbmVkXG4gIGVycm9yU3R5bGVzOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgZXJyb3JTY3JpcHRzOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgdGVtcGxhdGVTdHlsZXM6IFJlYWN0LlJlYWN0Tm9kZSB8IHVuZGVmaW5lZFxuICB0ZW1wbGF0ZVNjcmlwdHM6IFJlYWN0LlJlYWN0Tm9kZSB8IHVuZGVmaW5lZFxuICB0ZW1wbGF0ZTogUmVhY3QuUmVhY3ROb2RlXG4gIG5vdEZvdW5kOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgZm9yYmlkZGVuOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgdW5hdXRob3JpemVkOiBSZWFjdC5SZWFjdE5vZGUgfCB1bmRlZmluZWRcbiAgc2VnbWVudFZpZXdCb3VuZGFyaWVzPzogUmVhY3QuUmVhY3ROb2RlXG59KSB7XG4gIGNvbnN0IGNvbnRleHQgPSB1c2VDb250ZXh0KExheW91dFJvdXRlckNvbnRleHQpXG4gIGlmICghY29udGV4dCkge1xuICAgIHRocm93IG5ldyBFcnJvcignaW52YXJpYW50IGV4cGVjdGVkIGxheW91dCByb3V0ZXIgdG8gYmUgbW91bnRlZCcpXG4gIH1cblxuICBjb25zdCB7XG4gICAgcGFyZW50VHJlZSxcbiAgICBwYXJlbnRDYWNoZU5vZGUsXG4gICAgcGFyZW50U2VnbWVudFBhdGgsXG4gICAgcGFyZW50UGFyYW1zLFxuICAgIHBhcmVudExvYWRpbmdEYXRhLFxuICAgIHVybCxcbiAgICBpc0FjdGl2ZSxcbiAgICBkZWJ1Z05hbWVDb250ZXh0LFxuICB9ID0gY29udGV4dFxuXG4gIC8vIEdldCB0aGUgQ2FjaGVOb2RlIGZvciB0aGlzIHNlZ21lbnQgYnkgcmVhZGluZyBpdCBmcm9tIHRoZSBwYXJlbnQgc2VnbWVudCdzXG4gIC8vIGNoaWxkIG1hcC5cbiAgY29uc3QgcGFyZW50VHJlZVNlZ21lbnQgPSBwYXJlbnRUcmVlWzBdXG4gIGNvbnN0IHNlZ21lbnRQYXRoID1cbiAgICBwYXJlbnRTZWdtZW50UGF0aCA9PT0gbnVsbFxuICAgICAgPyAvLyBUT0RPOiBUaGUgcm9vdCBzZWdtZW50IHZhbHVlIGlzIGN1cnJlbnRseSBvbWl0dGVkIGZyb20gdGhlIHNlZ21lbnRcbiAgICAgICAgLy8gcGF0aC4gVGhpcyBoYXMgbGVkIHRvIGEgYnVuY2ggb2Ygc3BlY2lhbCBjYXNlcyBzY2F0dGVyZWQgdGhyb3VnaG91dFxuICAgICAgICAvLyB0aGUgY29kZS4gV2Ugc2hvdWxkIGNsZWFuIHRoaXMgdXAuXG4gICAgICAgIFtwYXJhbGxlbFJvdXRlcktleV1cbiAgICAgIDogcGFyZW50U2VnbWVudFBhdGguY29uY2F0KFtwYXJlbnRUcmVlU2VnbWVudCwgcGFyYWxsZWxSb3V0ZXJLZXldKVxuXG4gIC8vIFRoZSBcInN0YXRlXCIga2V5IG9mIGEgc2VnbWVudCBpcyB0aGUgb25lIHBhc3NlZCB0byBSZWFjdCDigJQgaXQgcmVwcmVzZW50cyB0aGVcbiAgLy8gaWRlbnRpdHkgb2YgdGhlIFVJIHRyZWUuIFdoZW5ldmVyIHRoZSBzdGF0ZSBrZXkgY2hhbmdlcywgdGhlIHRyZWUgaXNcbiAgLy8gcmVjcmVhdGVkIGFuZCB0aGUgc3RhdGUgaXMgcmVzZXQuIEluIHRoZSBBcHAgUm91dGVyIG1vZGVsLCBzZWFyY2ggcGFyYW1zIGRvXG4gIC8vIG5vdCBjYXVzZSBzdGF0ZSB0byBiZSBsb3N0LCBzbyB0d28gc2VnbWVudHMgd2l0aCB0aGUgc2FtZSBzZWdtZW50IHBhdGggYnV0XG4gIC8vIGRpZmZlcmVudCBzZWFyY2ggcGFyYW1zIHNob3VsZCBoYXZlIHRoZSBzYW1lIHN0YXRlIGtleS5cbiAgLy9cbiAgLy8gVGhlIFwiY2FjaGVcIiBrZXkgb2YgYSBzZWdtZW50LCBob3dldmVyLCAqZG9lcyogaW5jbHVkZSB0aGUgc2VhcmNoIHBhcmFtcywgaWZcbiAgLy8gaXQncyBwb3NzaWJsZSB0aGF0IHRoZSBzZWdtZW50IGFjY2Vzc2VkIHRoZSBzZWFyY2ggcGFyYW1zIG9uIHRoZSBzZXJ2ZXIuXG4gIC8vIChUaGlzIG9ubHkgYXBwbGllcyB0byBwYWdlIHNlZ21lbnRzOyBsYXlvdXQgc2VnbWVudHMgY2Fubm90IGFjY2VzcyBzZWFyY2hcbiAgLy8gcGFyYW1zIG9uIHRoZSBzZXJ2ZXIuKVxuICBjb25zdCBhY3RpdmVUcmVlID0gcGFyZW50VHJlZVsxXVtwYXJhbGxlbFJvdXRlcktleV1cbiAgY29uc3QgbWF5YmVQYXJlbnRTbG90cyA9IHBhcmVudENhY2hlTm9kZS5zbG90c1xuICBpZiAoYWN0aXZlVHJlZSA9PT0gdW5kZWZpbmVkIHx8IG1heWJlUGFyZW50U2xvdHMgPT09IG51bGwpIHtcbiAgICAvLyBDb3VsZCBub3QgZmluZCBhIG1hdGNoaW5nIHNlZ21lbnQuIFRoZSBjbGllbnQgdHJlZSBpcyBpbmNvbnNpc3RlbnQgd2l0aFxuICAgIC8vIHRoZSBzZXJ2ZXIgdHJlZS4gU3VzcGVuZCBpbmRlZmluaXRlbHk7IHRoZSByb3V0ZXIgd2lsbCBoYXZlIGFscmVhZHlcbiAgICAvLyBkZXRlY3RlZCB0aGUgaW5jb25zaXN0ZW5jeSB3aGVuIGhhbmRsaW5nIHRoZSBzZXJ2ZXIgcmVzcG9uc2UsIGFuZFxuICAgIC8vIHRyaWdnZXJlZCBhIHJlZnJlc2ggb2YgdGhlIHBhZ2UgdG8gcmVjb3Zlci5cbiAgICB1c2UodW5yZXNvbHZlZFRoZW5hYmxlKSBhcyBuZXZlclxuICB9XG5cbiAgbGV0IG1heWJlVmFsaWRhdGlvbkJvdW5kYXJ5SWQ6IHN0cmluZyB8IG51bGwgPSBudWxsXG4gIGlmICh0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyAmJiBwcm9jZXNzLmVudi5fX05FWFRfQ0FDSEVfQ09NUE9ORU5UUykge1xuICAgIGNvbnN0IHsgSW5zdGFudFZhbGlkYXRpb25Cb3VuZGFyeUNvbnRleHQgfSA9XG4gICAgICByZXF1aXJlKCcuL2luc3RhbnQtdmFsaWRhdGlvbi9ib3VuZGFyeScpIGFzIHR5cGVvZiBpbXBvcnQoJy4vaW5zdGFudC12YWxpZGF0aW9uL2JvdW5kYXJ5JylcbiAgICBtYXliZVZhbGlkYXRpb25Cb3VuZGFyeUlkID0gdXNlKEluc3RhbnRWYWxpZGF0aW9uQm91bmRhcnlDb250ZXh0KVxuICB9XG5cbiAgY29uc3QgYWN0aXZlU2VnbWVudCA9IGFjdGl2ZVRyZWVbMF1cbiAgY29uc3QgYWN0aXZlQ2FjaGVOb2RlID0gbWF5YmVQYXJlbnRTbG90cyFbcGFyYWxsZWxSb3V0ZXJLZXldID8/IG51bGxcbiAgY29uc3QgYWN0aXZlU3RhdGVLZXkgPSBjcmVhdGVSb3V0ZXJDYWNoZUtleShhY3RpdmVTZWdtZW50LCB0cnVlKSAvLyBubyBzZWFyY2ggcGFyYW1zXG5cbiAgLy8gQXQgZWFjaCBsZXZlbCBvZiB0aGUgcm91dGUgdHJlZSwgbm90IG9ubHkgZG8gd2UgcmVuZGVyIHRoZSBjdXJyZW50bHlcbiAgLy8gYWN0aXZlIHNlZ21lbnQg4oCUIHdlIGFsc28gcmVuZGVyIHRoZSBsYXN0IE4gc2VnbWVudHMgdGhhdCB3ZXJlIGFjdGl2ZSBhdFxuICAvLyB0aGlzIGxldmVsIGluc2lkZSBhIGhpZGRlbiA8QWN0aXZpdHk+IGJvdW5kYXJ5LCB0byBwcmVzZXJ2ZSB0aGVpciBzdGF0ZVxuICAvLyBpZiBvciB3aGVuIHRoZSB1c2VyIG5hdmlnYXRlcyB0byB0aGVtIGFnYWluLlxuICAvL1xuICAvLyBiZmNhY2hlRW50cnkgaXMgYSBsaW5rZWQgbGlzdCBvZiBGbGlnaHRSb3V0ZXJTdGF0ZXMuXG4gIGxldCBiZmNhY2hlRW50cnk6IFJvdXRlckJGQ2FjaGVFbnRyeSB8IG51bGwgPSB1c2VSb3V0ZXJCRkNhY2hlKFxuICAgIGFjdGl2ZVRyZWUsXG4gICAgYWN0aXZlQ2FjaGVOb2RlLFxuICAgIGFjdGl2ZVN0YXRlS2V5XG4gIClcbiAgbGV0IGNoaWxkcmVuOiBBcnJheTxSZWFjdC5SZWFjdE5vZGU+ID0gW11cbiAgZG8ge1xuICAgIGNvbnN0IHRyZWUgPSBiZmNhY2hlRW50cnkudHJlZVxuICAgIGNvbnN0IGNhY2hlTm9kZSA9IGJmY2FjaGVFbnRyeS5jYWNoZU5vZGVcbiAgICBjb25zdCBzdGF0ZUtleSA9IGJmY2FjaGVFbnRyeS5zdGF0ZUtleVxuICAgIGNvbnN0IHNlZ21lbnQgPSB0cmVlWzBdXG5cbiAgICAvKlxuICAgIC0gRXJyb3IgYm91bmRhcnlcbiAgICAgIC0gT25seSByZW5kZXJzIGVycm9yIGJvdW5kYXJ5IGlmIGVycm9yIGNvbXBvbmVudCBpcyBwcm92aWRlZC5cbiAgICAgIC0gUmVuZGVyZWQgZm9yIGVhY2ggc2VnbWVudCB0byBlbnN1cmUgdGhleSBoYXZlIHRoZWlyIG93biBlcnJvciBzdGF0ZS5cbiAgICAgIC0gV2hlbiBncmFjZWZ1bGx5IGRlZ3JhZGUgZm9yIGJvdHMsIHNraXAgcmVuZGVyaW5nIGVycm9yIGJvdW5kYXJ5LlxuICAgIC0gTG9hZGluZyBib3VuZGFyeVxuICAgICAgLSBPbmx5IHJlbmRlcnMgc3VzcGVuc2UgYm91bmRhcnkgaWYgbG9hZGluZyBjb21wb25lbnRzIGlzIHByb3ZpZGVkLlxuICAgICAgLSBSZW5kZXJlZCBmb3IgZWFjaCBzZWdtZW50IHRvIGVuc3VyZSB0aGV5IGhhdmUgdGhlaXIgb3duIGxvYWRpbmcgc3RhdGUuXG4gICAgICAtIFBhc3NlZCB0byB0aGUgcm91dGVyIGR1cmluZyByZW5kZXJpbmcgdG8gZW5zdXJlIGl0IGNhbiBiZSBpbW1lZGlhdGVseSByZW5kZXJlZCB3aGVuIHN1c3BlbmRpbmcgb24gYSBGbGlnaHQgZmV0Y2guXG4gICovXG5cbiAgICBsZXQgc2VnbWVudEJvdW5kYXJ5VHJpZ2dlck5vZGU6IFJlYWN0LlJlYWN0Tm9kZSA9IG51bGxcbiAgICBsZXQgc2VnbWVudFZpZXdTdGF0ZU5vZGU6IFJlYWN0LlJlYWN0Tm9kZSA9IG51bGxcbiAgICBpZiAocHJvY2Vzcy5lbnYuTk9ERV9FTlYgIT09ICdwcm9kdWN0aW9uJykge1xuICAgICAgY29uc3QgeyBTZWdtZW50Qm91bmRhcnlUcmlnZ2VyTm9kZSwgU2VnbWVudFZpZXdTdGF0ZU5vZGUgfSA9XG4gICAgICAgIHJlcXVpcmUoJy4uLy4uL25leHQtZGV2dG9vbHMvdXNlcnNwYWNlL2FwcC9zZWdtZW50LWV4cGxvcmVyLW5vZGUnKSBhcyB0eXBlb2YgaW1wb3J0KCcuLi8uLi9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvc2VnbWVudC1leHBsb3Jlci1ub2RlJylcblxuICAgICAgY29uc3QgcGFnZVByZWZpeCA9IG5vcm1hbGl6ZUFwcFBhdGgodXJsKVxuICAgICAgc2VnbWVudFZpZXdTdGF0ZU5vZGUgPSAoXG4gICAgICAgIDxTZWdtZW50Vmlld1N0YXRlTm9kZSBrZXk9e3BhZ2VQcmVmaXh9IHBhZ2U9e3BhZ2VQcmVmaXh9IC8+XG4gICAgICApXG5cbiAgICAgIHNlZ21lbnRCb3VuZGFyeVRyaWdnZXJOb2RlID0gKFxuICAgICAgICA8PlxuICAgICAgICAgIDxTZWdtZW50Qm91bmRhcnlUcmlnZ2VyTm9kZSAvPlxuICAgICAgICA8Lz5cbiAgICAgIClcbiAgICB9XG5cbiAgICBsZXQgcGFyYW1zID0gcGFyZW50UGFyYW1zXG4gICAgaWYgKEFycmF5LmlzQXJyYXkoc2VnbWVudCkpIHtcbiAgICAgIC8vIFRoaXMgc2VnbWVudCBjb250YWlucyBhIHJvdXRlIHBhcmFtLiBBY2N1bXVsYXRlIHRoZXNlIGFzIHdlIHRyYXZlcnNlXG4gICAgICAvLyBkb3duIHRoZSByb3V0ZXIgdHJlZS4gVGhlIHJlc3VsdCByZXByZXNlbnRzIHRoZSBzZXQgb2YgcGFyYW1zIHRoYXRcbiAgICAgIC8vIHRoZSBsYXlvdXQvcGFnZSBjb21wb25lbnRzIGFyZSBwZXJtaXR0ZWQgdG8gYWNjZXNzIGJlbG93IHRoaXMgcG9pbnQuXG4gICAgICBjb25zdCBwYXJhbU5hbWUgPSBzZWdtZW50WzBdXG4gICAgICBjb25zdCBwYXJhbUNhY2hlS2V5ID0gc2VnbWVudFsxXVxuICAgICAgY29uc3QgcGFyYW1UeXBlID0gc2VnbWVudFsyXVxuICAgICAgY29uc3QgcGFyYW1WYWx1ZSA9IGdldFBhcmFtVmFsdWVGcm9tQ2FjaGVLZXkocGFyYW1DYWNoZUtleSwgcGFyYW1UeXBlKVxuICAgICAgaWYgKHBhcmFtVmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgcGFyYW1zID0ge1xuICAgICAgICAgIC4uLnBhcmVudFBhcmFtcyxcbiAgICAgICAgICBbcGFyYW1OYW1lXTogcGFyYW1WYWx1ZSxcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGRlYnVnTmFtZSA9IGdldEJvdW5kYXJ5RGVidWdOYW1lRnJvbVNlZ21lbnQoc2VnbWVudClcbiAgICAvLyBgZGVidWdOYW1lQ29udGV4dGAgcmVwcmVzZW50cyB0aGUgbmVhcmVzdCBub24tXCJ2aXJ0dWFsXCIgcGFyZW50IHNlZ21lbnQuXG4gICAgLy8gYGdldEJvdW5kYXJ5RGVidWdOYW1lRnJvbVNlZ21lbnRgIHJldHVybnMgdW5kZWZpbmVkIGZvciB2aXJ0dWFsIHNlZ21lbnRzLlxuICAgIC8vIFNvIGlmIGBkZWJ1Z05hbWVgIGlzIHVuZGVmaW5lZCwgdGhlIGNvbnRleHQgaXMgcGFzc2VkIHRocm91Z2ggdW5jaGFuZ2VkLlxuICAgIGNvbnN0IGNoaWxkRGVidWdOYW1lQ29udGV4dCA9IGRlYnVnTmFtZSA/PyBkZWJ1Z05hbWVDb250ZXh0XG5cbiAgICAvLyBJbiBwcmFjdGljYWwgdGVybXMsIGNsaWNraW5nIHRoaXMgbmFtZSBpbiB0aGUgU3VzcGVuc2UgRGV2VG9vbHNcbiAgICAvLyBzaG91bGQgc2VsZWN0IHRoZSBjaGlsZCBzbG90cyBvZiB0aGF0IGxheW91dC5cbiAgICAvL1xuICAgIC8vIFNvIHRoZSBuYW1lIHdlIGFwcGx5IHRvIHRoZSBBY3Rpdml0eSBib3VuZGFyeSBpcyBhY3R1YWxseSBiYXNlZCBvblxuICAgIC8vIHRoZSBuZWFyZXN0IHBhcmVudCBzZWdtZW50cy5cbiAgICAvL1xuICAgIC8vIFdlIHNraXAgb3ZlciBcInZpcnR1YWxcIiBwYXJlbnRzLCBpLmUuIG9uZXMgaW5zZXJ0ZWQgYnkgTmV4dC5qcyB0aGF0XG4gICAgLy8gZG9uJ3QgY29ycmVzcG9uZCB0byBhcHBsaWNhdGlvbi1kZWZpbmVkIGNvZGUuXG4gICAgY29uc3QgaXNWaXJ0dWFsID0gZGVidWdOYW1lID09PSB1bmRlZmluZWRcbiAgICBjb25zdCBkZWJ1Z05hbWVUb0Rpc3BsYXkgPSBpc1ZpcnR1YWwgPyB1bmRlZmluZWQgOiBkZWJ1Z05hbWVDb250ZXh0XG5cbiAgICBsZXQgdGVtcGxhdGVWYWx1ZSA9IChcbiAgICAgIDxTY3JvbGxBbmRNYXliZUZvY3VzSGFuZGxlciBjYWNoZU5vZGU9e2NhY2hlTm9kZX0+XG4gICAgICAgIDxFcnJvckJvdW5kYXJ5XG4gICAgICAgICAgZXJyb3JDb21wb25lbnQ9e2Vycm9yfVxuICAgICAgICAgIGVycm9yU3R5bGVzPXtlcnJvclN0eWxlc31cbiAgICAgICAgICBlcnJvclNjcmlwdHM9e2Vycm9yU2NyaXB0c31cbiAgICAgICAgPlxuICAgICAgICAgIDxMb2FkaW5nQm91bmRhcnlcbiAgICAgICAgICAgIG5hbWU9e2RlYnVnTmFtZVRvRGlzcGxheX1cbiAgICAgICAgICAgIC8vIFRPRE86IFRoZSBsb2FkaW5nIG1vZHVsZSBkYXRhIGZvciBhIHNlZ21lbnQgaXMgc3RvcmVkIG9uIHRoZVxuICAgICAgICAgICAgLy8gcGFyZW50LCB0aGVuIGFwcGxpZWQgdG8gZWFjaCBvZiB0aGF0IHBhcmVudCBzZWdtZW50J3NcbiAgICAgICAgICAgIC8vIHBhcmFsbGVsIHJvdXRlIHNsb3RzLiBJbiB0aGUgc2ltcGxlIGNhc2Ugd2hlcmUgdGhlcmUncyBvbmx5XG4gICAgICAgICAgICAvLyBvbmUgcGFyYWxsZWwgcm91dGUgKHRoZSBgY2hpbGRyZW5gIHNsb3QpLCB0aGlzIGlzIG5vXG4gICAgICAgICAgICAvLyBkaWZmZXJlbnQgZnJvbSBpZiB0aGUgbG9hZGluZyBtb2R1bGUgZGF0YSB3ZXJlIHN0b3JlZCBvbiB0aGVcbiAgICAgICAgICAgIC8vIGNoaWxkIGRpcmVjdGx5LiBCdXQgSSdtIG5vdCBzdXJlIHRoaXMgYWN0dWFsbHkgbWFrZXMgc2Vuc2VcbiAgICAgICAgICAgIC8vIHdoZW4gdGhlcmUgYXJlIG11bHRpcGxlIHBhcmFsbGVsIHJvdXRlcy4gSXQncyBub3QgYSBodWdlXG4gICAgICAgICAgICAvLyBpc3N1ZSBiZWNhdXNlIHlvdSBhbHdheXMgaGF2ZSB0aGUgb3B0aW9uIHRvIGRlZmluZSBhIG5hcnJvd2VyXG4gICAgICAgICAgICAvLyBsb2FkaW5nIGJvdW5kYXJ5IGZvciBhIHBhcnRpY3VsYXIgc2xvdC4gQnV0IHRoaXMgc29ydCBvZlxuICAgICAgICAgICAgLy8gc21lbGxzIGxpa2UgYW4gaW1wbGVtZW50YXRpb24gYWNjaWRlbnQgdG8gbWUuXG4gICAgICAgICAgICBsb2FkaW5nPXtwYXJlbnRMb2FkaW5nRGF0YX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8SFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnlcbiAgICAgICAgICAgICAgbm90Rm91bmQ9e25vdEZvdW5kfVxuICAgICAgICAgICAgICBmb3JiaWRkZW49e2ZvcmJpZGRlbn1cbiAgICAgICAgICAgICAgdW5hdXRob3JpemVkPXt1bmF1dGhvcml6ZWR9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxSZWRpcmVjdEJvdW5kYXJ5PlxuICAgICAgICAgICAgICAgIDxJbm5lckxheW91dFJvdXRlclxuICAgICAgICAgICAgICAgICAgdXJsPXt1cmx9XG4gICAgICAgICAgICAgICAgICB0cmVlPXt0cmVlfVxuICAgICAgICAgICAgICAgICAgcGFyYW1zPXtwYXJhbXN9XG4gICAgICAgICAgICAgICAgICBjYWNoZU5vZGU9e2NhY2hlTm9kZX1cbiAgICAgICAgICAgICAgICAgIHNlZ21lbnRQYXRoPXtzZWdtZW50UGF0aH1cbiAgICAgICAgICAgICAgICAgIGRlYnVnTmFtZUNvbnRleHQ9e2NoaWxkRGVidWdOYW1lQ29udGV4dH1cbiAgICAgICAgICAgICAgICAgIGlzQWN0aXZlPXtpc0FjdGl2ZSAmJiBzdGF0ZUtleSA9PT0gYWN0aXZlU3RhdGVLZXl9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7c2VnbWVudEJvdW5kYXJ5VHJpZ2dlck5vZGV9XG4gICAgICAgICAgICAgIDwvUmVkaXJlY3RCb3VuZGFyeT5cbiAgICAgICAgICAgIDwvSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnk+XG4gICAgICAgICAgPC9Mb2FkaW5nQm91bmRhcnk+XG4gICAgICAgIDwvRXJyb3JCb3VuZGFyeT5cbiAgICAgICAge3NlZ21lbnRWaWV3U3RhdGVOb2RlfVxuICAgICAgPC9TY3JvbGxBbmRNYXliZUZvY3VzSGFuZGxlcj5cbiAgICApXG5cbiAgICBpZiAoXG4gICAgICB0eXBlb2Ygd2luZG93ID09PSAndW5kZWZpbmVkJyAmJlxuICAgICAgcHJvY2Vzcy5lbnYuX19ORVhUX0NBQ0hFX0NPTVBPTkVOVFMgJiZcbiAgICAgIHR5cGVvZiBtYXliZVZhbGlkYXRpb25Cb3VuZGFyeUlkID09PSAnc3RyaW5nJ1xuICAgICkge1xuICAgICAgY29uc3QgeyBSZW5kZXJWYWxpZGF0aW9uQm91bmRhcnlBdFRoaXNMZXZlbCB9ID1cbiAgICAgICAgcmVxdWlyZSgnLi9pbnN0YW50LXZhbGlkYXRpb24vYm91bmRhcnknKSBhcyB0eXBlb2YgaW1wb3J0KCcuL2luc3RhbnQtdmFsaWRhdGlvbi9ib3VuZGFyeScpXG4gICAgICB0ZW1wbGF0ZVZhbHVlID0gKFxuICAgICAgICA8UmVuZGVyVmFsaWRhdGlvbkJvdW5kYXJ5QXRUaGlzTGV2ZWwgaWQ9e21heWJlVmFsaWRhdGlvbkJvdW5kYXJ5SWR9PlxuICAgICAgICAgIHt0ZW1wbGF0ZVZhbHVlfVxuICAgICAgICA8L1JlbmRlclZhbGlkYXRpb25Cb3VuZGFyeUF0VGhpc0xldmVsPlxuICAgICAgKVxuICAgIH1cblxuICAgIGxldCBjaGlsZCA9IChcbiAgICAgIDxUZW1wbGF0ZUNvbnRleHQuUHJvdmlkZXIga2V5PXtzdGF0ZUtleX0gdmFsdWU9e3RlbXBsYXRlVmFsdWV9PlxuICAgICAgICB7dGVtcGxhdGVTdHlsZXN9XG4gICAgICAgIHt0ZW1wbGF0ZVNjcmlwdHN9XG4gICAgICAgIHt0ZW1wbGF0ZX1cbiAgICAgIDwvVGVtcGxhdGVDb250ZXh0LlByb3ZpZGVyPlxuICAgIClcblxuICAgIGlmIChwcm9jZXNzLmVudi5OT0RFX0VOViAhPT0gJ3Byb2R1Y3Rpb24nKSB7XG4gICAgICBjb25zdCB7IFNlZ21lbnRTdGF0ZVByb3ZpZGVyIH0gPVxuICAgICAgICByZXF1aXJlKCcuLi8uLi9uZXh0LWRldnRvb2xzL3VzZXJzcGFjZS9hcHAvc2VnbWVudC1leHBsb3Jlci1ub2RlJykgYXMgdHlwZW9mIGltcG9ydCgnLi4vLi4vbmV4dC1kZXZ0b29scy91c2Vyc3BhY2UvYXBwL3NlZ21lbnQtZXhwbG9yZXItbm9kZScpXG5cbiAgICAgIGNoaWxkID0gKFxuICAgICAgICA8U2VnbWVudFN0YXRlUHJvdmlkZXIga2V5PXtzdGF0ZUtleX0+XG4gICAgICAgICAge2NoaWxkfVxuICAgICAgICAgIHtzZWdtZW50Vmlld0JvdW5kYXJpZXN9XG4gICAgICAgIDwvU2VnbWVudFN0YXRlUHJvdmlkZXI+XG4gICAgICApXG4gICAgfVxuXG4gICAgaWYgKHByb2Nlc3MuZW52Ll9fTkVYVF9DQUNIRV9DT01QT05FTlRTKSB7XG4gICAgICBjaGlsZCA9IChcbiAgICAgICAgPEFjdGl2aXR5XG4gICAgICAgICAgbmFtZT17ZGVidWdOYW1lVG9EaXNwbGF5fVxuICAgICAgICAgIGtleT17c3RhdGVLZXl9XG4gICAgICAgICAgbW9kZT17c3RhdGVLZXkgPT09IGFjdGl2ZVN0YXRlS2V5ID8gJ3Zpc2libGUnIDogJ2hpZGRlbid9XG4gICAgICAgID5cbiAgICAgICAgICB7Y2hpbGR9XG4gICAgICAgIDwvQWN0aXZpdHk+XG4gICAgICApXG4gICAgfVxuXG4gICAgY2hpbGRyZW4ucHVzaChjaGlsZClcblxuICAgIGJmY2FjaGVFbnRyeSA9IGJmY2FjaGVFbnRyeS5uZXh0XG4gIH0gd2hpbGUgKGJmY2FjaGVFbnRyeSAhPT0gbnVsbClcblxuICByZXR1cm4gY2hpbGRyZW5cbn1cblxuZnVuY3Rpb24gZ2V0Qm91bmRhcnlEZWJ1Z05hbWVGcm9tU2VnbWVudChzZWdtZW50OiBTZWdtZW50KTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHNlZ21lbnQgPT09ICcvJykge1xuICAgIC8vIFJlYWNoZWQgdGhlIHJvb3RcbiAgICByZXR1cm4gJy8nXG4gIH1cbiAgaWYgKHR5cGVvZiBzZWdtZW50ID09PSAnc3RyaW5nJykge1xuICAgIGlmIChpc1ZpcnR1YWxMYXlvdXQoc2VnbWVudCkpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHNlZ21lbnQgKyAnLydcbiAgICB9XG4gIH1cbiAgY29uc3QgcGFyYW1DYWNoZUtleSA9IHNlZ21lbnRbMV1cbiAgcmV0dXJuIHBhcmFtQ2FjaGVLZXkgKyAnLydcbn1cblxuZnVuY3Rpb24gaXNWaXJ0dWFsTGF5b3V0KHNlZ21lbnQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgIC8vIFRoaXMgaXMgaW5zZXJ0ZWQgYnkgdGhlIGxvYWRlci4gVXNlcyBkb3VibGUtdW5kZXJzY29yZSBjb252ZW50aW9uXG4gICAgLy8gKGxpa2UgX19QQUdFX18gYW5kIF9fREVGQVVMVF9fKSB0byBhdm9pZCBjb2xsaXNpb25zIHdpdGhcbiAgICAvLyB1c2VyLWRlZmluZWQgcm91dGUgZ3JvdXBzLlxuICAgIHNlZ21lbnQgPT09ICcoX19TTE9UX18pJ1xuICApXG59XG4iXSwibmFtZXMiOlsiTG9hZGluZ0JvdW5kYXJ5UHJvdmlkZXIiLCJPdXRlckxheW91dFJvdXRlciIsImVuYWJsZU5ld1Njcm9sbEhhbmRsZXIiLCJwcm9jZXNzIiwiZW52IiwiX19ORVhUX0FQUF9ORVdfU0NST0xMX0hBTkRMRVIiLCJfX0RPTV9JTlRFUk5BTFNfRE9fTk9UX1VTRV9PUl9XQVJOX1VTRVJTX1RIRVlfQ0FOTk9UX1VQR1JBREUiLCJSZWFjdERPTSIsImZpbmRET01Ob2RlIiwiaW5zdGFuY2UiLCJ3aW5kb3ciLCJpbnRlcm5hbF9yZWFjdERPTWZpbmRET01Ob2RlIiwicmVjdFByb3BlcnRpZXMiLCJzaG91bGRTa2lwRWxlbWVudCIsImVsZW1lbnQiLCJpbmNsdWRlcyIsImdldENvbXB1dGVkU3R5bGUiLCJwb3NpdGlvbiIsInJlY3QiLCJnZXRCb3VuZGluZ0NsaWVudFJlY3QiLCJldmVyeSIsIml0ZW0iLCJ0b3BPZkVsZW1lbnRJblZpZXdwb3J0Iiwidmlld3BvcnRIZWlnaHQiLCJyZWN0cyIsImdldENsaWVudFJlY3RzIiwibGVuZ3RoIiwiZWxlbWVudFRvcCIsIk51bWJlciIsIlBPU0lUSVZFX0lORklOSVRZIiwiaSIsInRvcCIsImdldEhhc2hGcmFnbWVudERvbU5vZGUiLCJoYXNoRnJhZ21lbnQiLCJkb2N1bWVudCIsImJvZHkiLCJnZXRFbGVtZW50QnlJZCIsImdldEVsZW1lbnRzQnlOYW1lIiwiSW5uZXJTY3JvbGxBbmRGb2N1c0hhbmRsZXJPbGQiLCJSZWFjdCIsIkNvbXBvbmVudCIsImNvbXBvbmVudERpZE1vdW50IiwiaGFuZGxlUG90ZW50aWFsU2Nyb2xsIiwiY29tcG9uZW50RGlkVXBkYXRlIiwicmVuZGVyIiwicHJvcHMiLCJjaGlsZHJlbiIsImZvY3VzQW5kU2Nyb2xsUmVmIiwiY2FjaGVOb2RlIiwic2Nyb2xsUmVmIiwiZm9yY2VTY3JvbGwiLCJjdXJyZW50IiwiZG9tTm9kZSIsIkVsZW1lbnQiLCJIVE1MRWxlbWVudCIsIk5PREVfRU5WIiwicGFyZW50RWxlbWVudCIsImxvY2FsTmFtZSIsIm5leHRFbGVtZW50U2libGluZyIsImRpc2FibGVTbW9vdGhTY3JvbGxEdXJpbmdSb3V0ZVRyYW5zaXRpb24iLCJzY3JvbGxJbnRvVmlldyIsImh0bWxFbGVtZW50IiwiZG9jdW1lbnRFbGVtZW50IiwiY2xpZW50SGVpZ2h0Iiwic2Nyb2xsVG9wIiwiZG9udEZvcmNlTGF5b3V0Iiwib25seUhhc2hDaGFuZ2UiLCJmb2N1cyIsIklubmVyU2Nyb2xsSGFuZGxlck5ldyIsImNoaWxkcmVuUmVmIiwidXNlUmVmIiwidXNlTGF5b3V0RWZmZWN0IiwiYWN0aXZlRWxlbWVudCIsImJsdXIiLCJ1bmRlZmluZWQiLCJGcmFnbWVudCIsInJlZiIsIklubmVyU2Nyb2xsQW5kTWF5YmVGb2N1c0hhbmRsZXIiLCJTY3JvbGxBbmRNYXliZUZvY3VzSGFuZGxlciIsImNvbnRleHQiLCJ1c2VDb250ZXh0IiwiR2xvYmFsTGF5b3V0Um91dGVyQ29udGV4dCIsIkVycm9yIiwiSW5uZXJMYXlvdXRSb3V0ZXIiLCJ0cmVlIiwic2VnbWVudFBhdGgiLCJkZWJ1Z05hbWVDb250ZXh0IiwibWF5YmVDYWNoZU5vZGUiLCJwYXJhbXMiLCJ1cmwiLCJpc0FjdGl2ZSIsInBhcmVudE5hdlByb21pc2VzIiwiTmF2aWdhdGlvblByb21pc2VzQ29udGV4dCIsInVzZSIsInVucmVzb2x2ZWRUaGVuYWJsZSIsInJlc29sdmVkUHJlZmV0Y2hSc2MiLCJwcmVmZXRjaFJzYyIsInJzYyIsInVzZURlZmVycmVkVmFsdWUiLCJyZXNvbHZlZFJzYyIsImlzRGVmZXJyZWRSc2MiLCJ1bndyYXBwZWRSc2MiLCJuYXZpZ2F0aW9uUHJvbWlzZXMiLCJjcmVhdGVOZXN0ZWRMYXlvdXROYXZpZ2F0aW9uUHJvbWlzZXMiLCJyZXF1aXJlIiwiUHJvdmlkZXIiLCJ2YWx1ZSIsIkxheW91dFJvdXRlckNvbnRleHQiLCJwYXJlbnRUcmVlIiwicGFyZW50Q2FjaGVOb2RlIiwicGFyZW50U2VnbWVudFBhdGgiLCJwYXJlbnRQYXJhbXMiLCJwYXJlbnRMb2FkaW5nRGF0YSIsImxvYWRpbmciLCJwYXJlbnRDb250ZXh0IiwiTG9hZGluZ0JvdW5kYXJ5IiwibmFtZSIsImxvYWRpbmdSc2MiLCJsb2FkaW5nU3R5bGVzIiwibG9hZGluZ1NjcmlwdHMiLCJTdXNwZW5zZSIsImZhbGxiYWNrIiwicGFyYWxsZWxSb3V0ZXJLZXkiLCJlcnJvciIsImVycm9yU3R5bGVzIiwiZXJyb3JTY3JpcHRzIiwidGVtcGxhdGVTdHlsZXMiLCJ0ZW1wbGF0ZVNjcmlwdHMiLCJ0ZW1wbGF0ZSIsIm5vdEZvdW5kIiwiZm9yYmlkZGVuIiwidW5hdXRob3JpemVkIiwic2VnbWVudFZpZXdCb3VuZGFyaWVzIiwicGFyZW50VHJlZVNlZ21lbnQiLCJjb25jYXQiLCJhY3RpdmVUcmVlIiwibWF5YmVQYXJlbnRTbG90cyIsInNsb3RzIiwibWF5YmVWYWxpZGF0aW9uQm91bmRhcnlJZCIsIl9fTkVYVF9DQUNIRV9DT01QT05FTlRTIiwiSW5zdGFudFZhbGlkYXRpb25Cb3VuZGFyeUNvbnRleHQiLCJhY3RpdmVTZWdtZW50IiwiYWN0aXZlQ2FjaGVOb2RlIiwiYWN0aXZlU3RhdGVLZXkiLCJjcmVhdGVSb3V0ZXJDYWNoZUtleSIsImJmY2FjaGVFbnRyeSIsInVzZVJvdXRlckJGQ2FjaGUiLCJzdGF0ZUtleSIsInNlZ21lbnQiLCJzZWdtZW50Qm91bmRhcnlUcmlnZ2VyTm9kZSIsInNlZ21lbnRWaWV3U3RhdGVOb2RlIiwiU2VnbWVudEJvdW5kYXJ5VHJpZ2dlck5vZGUiLCJTZWdtZW50Vmlld1N0YXRlTm9kZSIsInBhZ2VQcmVmaXgiLCJub3JtYWxpemVBcHBQYXRoIiwicGFnZSIsIkFycmF5IiwiaXNBcnJheSIsInBhcmFtTmFtZSIsInBhcmFtQ2FjaGVLZXkiLCJwYXJhbVR5cGUiLCJwYXJhbVZhbHVlIiwiZ2V0UGFyYW1WYWx1ZUZyb21DYWNoZUtleSIsImRlYnVnTmFtZSIsImdldEJvdW5kYXJ5RGVidWdOYW1lRnJvbVNlZ21lbnQiLCJjaGlsZERlYnVnTmFtZUNvbnRleHQiLCJpc1ZpcnR1YWwiLCJkZWJ1Z05hbWVUb0Rpc3BsYXkiLCJ0ZW1wbGF0ZVZhbHVlIiwiRXJyb3JCb3VuZGFyeSIsImVycm9yQ29tcG9uZW50IiwiSFRUUEFjY2Vzc0ZhbGxiYWNrQm91bmRhcnkiLCJSZWRpcmVjdEJvdW5kYXJ5IiwiUmVuZGVyVmFsaWRhdGlvbkJvdW5kYXJ5QXRUaGlzTGV2ZWwiLCJpZCIsImNoaWxkIiwiVGVtcGxhdGVDb250ZXh0IiwiU2VnbWVudFN0YXRlUHJvdmlkZXIiLCJBY3Rpdml0eSIsIm1vZGUiLCJwdXNoIiwibmV4dCIsImlzVmlydHVhbExheW91dCJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/layout-router.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js": /*!**********************************************************************************!*\ !*** ./node_modules/next/dist/client/components/render-from-template-context.js ***! \**********************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"default\", ({\n enumerable: true,\n get: function() {\n return RenderFromTemplateContext;\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 _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\nconst _react = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! react */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/index.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\");\nfunction RenderFromTemplateContext() {\n const children = (0, _react.useContext)(_approutercontextsharedruntime.TemplateContext);\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(_jsxruntime.Fragment, {\n children: children\n });\n}\n_c = RenderFromTemplateContext;\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=render-from-template-context.js.map\nvar _c;\n$RefreshReg$(_c, \"RenderFromTemplateContext\");\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 // 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L2NvbXBvbmVudHMvcmVuZGVyLWZyb20tdGVtcGxhdGUtY29udGV4dC5qcyIsIm1hcHBpbmdzIjoiOzs7OzJDQUtBOzs7ZUFBd0JBOzs7Ozs2RUFIb0I7MkRBQ1o7QUFFakI7SUFDYixNQUFNQyxXQUFXQyxDQUFBQSxHQUFBQSxPQUFBQSxVQUFBQSxFQUFXQywrQkFBQUEsZUFBZTtJQUMzQyxxQkFBTztrQkFBR0Y7O0FBQ1o7S0FId0JEIiwic291cmNlcyI6WyIvVXNlcnMvcG91eWFubWIvc3JjL2NsaWVudC9jb21wb25lbnRzL3JlbmRlci1mcm9tLXRlbXBsYXRlLWNvbnRleHQudHN4Il0sInNvdXJjZXNDb250ZW50IjpbIid1c2UgY2xpZW50J1xuXG5pbXBvcnQgUmVhY3QsIHsgdXNlQ29udGV4dCwgdHlwZSBKU1ggfSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IFRlbXBsYXRlQ29udGV4dCB9IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvYXBwLXJvdXRlci1jb250ZXh0LnNoYXJlZC1ydW50aW1lJ1xuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBSZW5kZXJGcm9tVGVtcGxhdGVDb250ZXh0KCk6IEpTWC5FbGVtZW50IHtcbiAgY29uc3QgY2hpbGRyZW4gPSB1c2VDb250ZXh0KFRlbXBsYXRlQ29udGV4dClcbiAgcmV0dXJuIDw+e2NoaWxkcmVufTwvPlxufVxuIl0sIm5hbWVzIjpbIlJlbmRlckZyb21UZW1wbGF0ZUNvbnRleHQiLCJjaGlsZHJlbiIsInVzZUNvbnRleHQiLCJUZW1wbGF0ZUNvbnRleHQiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/components/render-from-template-context.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/client/request/params.browser.dev.js": /*!*********************************************************************!*\ !*** ./node_modules/next/dist/client/request/params.browser.dev.js ***! \*********************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createRenderParamsFromClient\", ({\n enumerable: true,\n get: function() {\n return createRenderParamsFromClient;\n }\n}));\nconst _reflect = __webpack_require__(/*! ../../server/web/spec-extension/adapters/reflect */ \"(app-pages-browser)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst CachedParams = new WeakMap();\nfunction makeDynamicallyTrackedParamsWithDevWarnings(underlyingParams) {\n const cachedParams = CachedParams.get(underlyingParams);\n if (cachedParams) {\n return cachedParams;\n }\n // We don't use makeResolvedReactPromise here because params\n // supports copying with spread and we don't want to unnecessarily\n // instrument the promise with spreadable properties of ReactPromise.\n const promise = Promise.resolve(underlyingParams);\n const proxiedProperties = new Set();\n Object.keys(underlyingParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (proxiedProperties.has(prop)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('params', prop);\n warnForSyncAccess(expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return _reflect.ReflectAdapter.set(target, prop, value, receiver);\n },\n ownKeys (target) {\n warnForEnumeration();\n return Reflect.ownKeys(target);\n }\n });\n CachedParams.set(underlyingParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction warnForSyncAccess(expression) {\n console.error(`A param property was accessed directly with ${expression}. ` + `\\`params\\` is a Promise and must be unwrapped with \\`React.use()\\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);\n}\nfunction warnForEnumeration() {\n console.error(`params are being enumerated. ` + `\\`params\\` is a Promise and must be unwrapped with \\`React.use()\\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);\n}\nfunction createRenderParamsFromClient(clientParams) {\n return makeDynamicallyTrackedParamsWithDevWarnings(clientParams);\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=params.browser.dev.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 // 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3QvcGFyYW1zLmJyb3dzZXIuZGV2LmpzIiwibWFwcGluZ3MiOiI7Ozs7Z0VBZ0ZnQkE7OztlQUFBQTs7O3FDQTlFZTswQ0FJeEI7QUFHUCxNQUFNQyxlQUFlLElBQUlDO0FBRXpCLFNBQVNDLDRDQUNQQyxnQkFBd0I7SUFFeEIsTUFBTUMsZUFBZUosYUFBYUssR0FBRyxDQUFDRjtJQUN0QyxJQUFJQyxjQUFjO1FBQ2hCLE9BQU9BO0lBQ1Q7SUFFQSw0REFBNEQ7SUFDNUQsa0VBQWtFO0lBQ2xFLHFFQUFxRTtJQUNyRSxNQUFNRSxVQUFVQyxRQUFRQyxPQUFPLENBQUNMO0lBRWhDLE1BQU1NLG9CQUFvQixJQUFJQztJQUU5QkMsT0FBT0MsSUFBSSxDQUFDVCxrQkFBa0JVLE9BQU8sQ0FBQyxDQUFDQztRQUNyQyxJQUFJQyxjQUFBQSxtQkFBbUIsQ0FBQ0MsR0FBRyxDQUFDRixPQUFPO1FBQ2pDLGtFQUFrRTtRQUNsRSxrRUFBa0U7UUFDcEUsT0FBTztZQUNMTCxrQkFBa0JRLEdBQUcsQ0FBQ0g7UUFDeEI7SUFDRjtJQUVBLE1BQU1JLGlCQUFpQixJQUFJQyxNQUFNYixTQUFTO1FBQ3hDRCxLQUFJZSxNQUFNLEVBQUVOLElBQUksRUFBRU8sUUFBUTtZQUN4QixJQUFJLE9BQU9QLFNBQVMsVUFBVTtnQkFDNUIsSUFDRSxrQkFDa0JFLEdBQUcsQ0FBQ0YsT0FDdEI7b0JBQ0EsTUFBTVEsYUFBYUMsQ0FBQUEsR0FBQUEsY0FBQUEsNEJBQUFBLEVBQTZCLFVBQVVUO29CQUMxRFUsa0JBQWtCRjtnQkFDcEI7WUFDRjtZQUNBLE9BQU9HLFNBQUFBLGNBQWMsQ0FBQ3BCLEdBQUcsQ0FBQ2UsUUFBUU4sTUFBTU87UUFDMUM7UUFDQUssS0FBSU4sTUFBTSxFQUFFTixJQUFJLEVBQUVhLEtBQUssRUFBRU4sUUFBUTtZQUMvQixJQUFJLE9BQU9QLFNBQVMsVUFBVTtnQkFDNUJMLGtCQUFrQm1CLE1BQU0sQ0FBQ2Q7WUFDM0I7WUFDQSxPQUFPVyxTQUFBQSxjQUFjLENBQUNDLEdBQUcsQ0FBQ04sUUFBUU4sTUFBTWEsT0FBT047UUFDakQ7UUFDQVEsU0FBUVQsTUFBTTtZQUNaVTtZQUNBLE9BQU9DLFFBQVFGLE9BQU8sQ0FBQ1Q7UUFDekI7SUFDRjtJQUVBcEIsYUFBYTBCLEdBQUcsQ0FBQ3ZCLGtCQUFrQmU7SUFDbkMsT0FBT0E7QUFDVDtBQUVBLFNBQVNNLGtCQUFrQkYsVUFBa0I7SUFDM0NVLFFBQVFDLEtBQUssQ0FDWCxDQUFDLDRDQUE0QyxFQUFFWCxXQUFXLEVBQUUsQ0FBQyxHQUMzRCxDQUFDLG9HQUFvRyxDQUFDLEdBQ3RHLENBQUMsOERBQThELENBQUM7QUFFdEU7QUFFQSxTQUFTUTtJQUNQRSxRQUFRQyxLQUFLLENBQ1gsQ0FBQyw2QkFBNkIsQ0FBQyxHQUM3QixDQUFDLG9HQUFvRyxDQUFDLEdBQ3RHLENBQUMsOERBQThELENBQUM7QUFFdEU7QUFFTyxTQUFTbEMsNkJBQ2RtQyxZQUFvQjtJQUVwQixPQUFPaEMsNENBQTRDZ0M7QUFDckQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9wb3V5YW5tYi9zcmMvY2xpZW50L3JlcXVlc3QvcGFyYW1zLmJyb3dzZXIuZGV2LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUGFyYW1zIH0gZnJvbSAnLi4vLi4vc2VydmVyL3JlcXVlc3QvcGFyYW1zJ1xuXG5pbXBvcnQgeyBSZWZsZWN0QWRhcHRlciB9IGZyb20gJy4uLy4uL3NlcnZlci93ZWIvc3BlYy1leHRlbnNpb24vYWRhcHRlcnMvcmVmbGVjdCdcbmltcG9ydCB7XG4gIGRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MsXG4gIHdlbGxLbm93blByb3BlcnRpZXMsXG59IGZyb20gJy4uLy4uL3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlscydcblxuaW50ZXJmYWNlIENhY2hlTGlmZXRpbWUge31cbmNvbnN0IENhY2hlZFBhcmFtcyA9IG5ldyBXZWFrTWFwPENhY2hlTGlmZXRpbWUsIFByb21pc2U8UGFyYW1zPj4oKVxuXG5mdW5jdGlvbiBtYWtlRHluYW1pY2FsbHlUcmFja2VkUGFyYW1zV2l0aERldldhcm5pbmdzKFxuICB1bmRlcmx5aW5nUGFyYW1zOiBQYXJhbXNcbik6IFByb21pc2U8UGFyYW1zPiB7XG4gIGNvbnN0IGNhY2hlZFBhcmFtcyA9IENhY2hlZFBhcmFtcy5nZXQodW5kZXJseWluZ1BhcmFtcylcbiAgaWYgKGNhY2hlZFBhcmFtcykge1xuICAgIHJldHVybiBjYWNoZWRQYXJhbXNcbiAgfVxuXG4gIC8vIFdlIGRvbid0IHVzZSBtYWtlUmVzb2x2ZWRSZWFjdFByb21pc2UgaGVyZSBiZWNhdXNlIHBhcmFtc1xuICAvLyBzdXBwb3J0cyBjb3B5aW5nIHdpdGggc3ByZWFkIGFuZCB3ZSBkb24ndCB3YW50IHRvIHVubmVjZXNzYXJpbHlcbiAgLy8gaW5zdHJ1bWVudCB0aGUgcHJvbWlzZSB3aXRoIHNwcmVhZGFibGUgcHJvcGVydGllcyBvZiBSZWFjdFByb21pc2UuXG4gIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1BhcmFtcylcblxuICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQ8c3RyaW5nPigpXG5cbiAgT2JqZWN0LmtleXModW5kZXJseWluZ1BhcmFtcykuZm9yRWFjaCgocHJvcCkgPT4ge1xuICAgIGlmICh3ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSkge1xuICAgICAgLy8gVGhlc2UgcHJvcGVydGllcyBjYW5ub3QgYmUgc2hhZG93ZWQgYmVjYXVzZSB0aGV5IG5lZWQgdG8gYmUgdGhlXG4gICAgICAvLyB0cnVlIHVuZGVybHlpbmcgdmFsdWUgZm9yIFByb21pc2VzIHRvIHdvcmsgY29ycmVjdGx5IGF0IHJ1bnRpbWVcbiAgICB9IGVsc2Uge1xuICAgICAgcHJveGllZFByb3BlcnRpZXMuYWRkKHByb3ApXG4gICAgfVxuICB9KVxuXG4gIGNvbnN0IHByb3hpZWRQcm9taXNlID0gbmV3IFByb3h5KHByb21pc2UsIHtcbiAgICBnZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcikge1xuICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgLy8gV2UgYXJlIGFjY2Vzc2luZyBhIHByb3BlcnR5IHRoYXQgd2FzIHByb3hpZWQgdG8gdGhlIHByb21pc2UgaW5zdGFuY2VcbiAgICAgICAgICBwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcClcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MoJ3BhcmFtcycsIHByb3ApXG4gICAgICAgICAgd2FybkZvclN5bmNBY2Nlc3MoZXhwcmVzc2lvbilcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLmdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKVxuICAgIH0sXG4gICAgc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIHByb3hpZWRQcm9wZXJ0aWVzLmRlbGV0ZShwcm9wKVxuICAgICAgfVxuICAgICAgcmV0dXJuIFJlZmxlY3RBZGFwdGVyLnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcilcbiAgICB9LFxuICAgIG93bktleXModGFyZ2V0KSB7XG4gICAgICB3YXJuRm9yRW51bWVyYXRpb24oKVxuICAgICAgcmV0dXJuIFJlZmxlY3Qub3duS2V5cyh0YXJnZXQpXG4gICAgfSxcbiAgfSlcblxuICBDYWNoZWRQYXJhbXMuc2V0KHVuZGVybHlpbmdQYXJhbXMsIHByb3hpZWRQcm9taXNlKVxuICByZXR1cm4gcHJveGllZFByb21pc2Vcbn1cblxuZnVuY3Rpb24gd2FybkZvclN5bmNBY2Nlc3MoZXhwcmVzc2lvbjogc3RyaW5nKSB7XG4gIGNvbnNvbGUuZXJyb3IoXG4gICAgYEEgcGFyYW0gcHJvcGVydHkgd2FzIGFjY2Vzc2VkIGRpcmVjdGx5IHdpdGggJHtleHByZXNzaW9ufS4gYCArXG4gICAgICBgXFxgcGFyYW1zXFxgIGlzIGEgUHJvbWlzZSBhbmQgbXVzdCBiZSB1bndyYXBwZWQgd2l0aCBcXGBSZWFjdC51c2UoKVxcYCBiZWZvcmUgYWNjZXNzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICtcbiAgICAgIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2BcbiAgKVxufVxuXG5mdW5jdGlvbiB3YXJuRm9yRW51bWVyYXRpb24oKSB7XG4gIGNvbnNvbGUuZXJyb3IoXG4gICAgYHBhcmFtcyBhcmUgYmVpbmcgZW51bWVyYXRlZC4gYCArXG4gICAgICBgXFxgcGFyYW1zXFxgIGlzIGEgUHJvbWlzZSBhbmQgbXVzdCBiZSB1bndyYXBwZWQgd2l0aCBcXGBSZWFjdC51c2UoKVxcYCBiZWZvcmUgYWNjZXNzaW5nIGl0cyBwcm9wZXJ0aWVzLiBgICtcbiAgICAgIGBMZWFybiBtb3JlOiBodHRwczovL25leHRqcy5vcmcvZG9jcy9tZXNzYWdlcy9zeW5jLWR5bmFtaWMtYXBpc2BcbiAgKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudChcbiAgY2xpZW50UGFyYW1zOiBQYXJhbXNcbik6IFByb21pc2U8UGFyYW1zPiB7XG4gIHJldHVybiBtYWtlRHluYW1pY2FsbHlUcmFja2VkUGFyYW1zV2l0aERldldhcm5pbmdzKGNsaWVudFBhcmFtcylcbn1cbiJdLCJuYW1lcyI6WyJjcmVhdGVSZW5kZXJQYXJhbXNGcm9tQ2xpZW50IiwiQ2FjaGVkUGFyYW1zIiwiV2Vha01hcCIsIm1ha2VEeW5hbWljYWxseVRyYWNrZWRQYXJhbXNXaXRoRGV2V2FybmluZ3MiLCJ1bmRlcmx5aW5nUGFyYW1zIiwiY2FjaGVkUGFyYW1zIiwiZ2V0IiwicHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwicHJveGllZFByb3BlcnRpZXMiLCJTZXQiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInByb3AiLCJ3ZWxsS25vd25Qcm9wZXJ0aWVzIiwiaGFzIiwiYWRkIiwicHJveGllZFByb21pc2UiLCJQcm94eSIsInRhcmdldCIsInJlY2VpdmVyIiwiZXhwcmVzc2lvbiIsImRlc2NyaWJlU3RyaW5nUHJvcGVydHlBY2Nlc3MiLCJ3YXJuRm9yU3luY0FjY2VzcyIsIlJlZmxlY3RBZGFwdGVyIiwic2V0IiwidmFsdWUiLCJkZWxldGUiLCJvd25LZXlzIiwid2FybkZvckVudW1lcmF0aW9uIiwiUmVmbGVjdCIsImNvbnNvbGUiLCJlcnJvciIsImNsaWVudFBhcmFtcyJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/request/params.browser.dev.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/client/request/params.browser.js": /*!*****************************************************************!*\ !*** ./node_modules/next/dist/client/request/params.browser.js ***! \*****************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createRenderParamsFromClient\", ({\n enumerable: true,\n get: function() {\n return createRenderParamsFromClient;\n }\n}));\nconst createRenderParamsFromClient = true ? (__webpack_require__(/*! ./params.browser.dev */ \"(app-pages-browser)/./node_modules/next/dist/client/request/params.browser.dev.js\").createRenderParamsFromClient) : 0;\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=params.browser.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 // 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3QvcGFyYW1zLmJyb3dzZXIuanMiLCJtYXBwaW5ncyI6Ijs7OztnRUFBYUE7OztlQUFBQTs7O01BQUFBLCtCQUFOLEtBQ2UsR0FDZkksbUtBQzhCLEdBRTdCQSxDQUM0QiIsInNvdXJjZXMiOlsiL1VzZXJzL3BvdXlhbm1iL3NyYy9jbGllbnQvcmVxdWVzdC9wYXJhbXMuYnJvd3Nlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgY29uc3QgY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudCA9XG4gIHByb2Nlc3MuZW52Lk5PREVfRU5WID09PSAnZGV2ZWxvcG1lbnQnXG4gICAgPyAocmVxdWlyZSgnLi9wYXJhbXMuYnJvd3Nlci5kZXYnKSBhcyB0eXBlb2YgaW1wb3J0KCcuL3BhcmFtcy5icm93c2VyLmRldicpKVxuICAgICAgICAuY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudFxuICAgIDogKFxuICAgICAgICByZXF1aXJlKCcuL3BhcmFtcy5icm93c2VyLnByb2QnKSBhcyB0eXBlb2YgaW1wb3J0KCcuL3BhcmFtcy5icm93c2VyLnByb2QnKVxuICAgICAgKS5jcmVhdGVSZW5kZXJQYXJhbXNGcm9tQ2xpZW50XG4iXSwibmFtZXMiOlsiY3JlYXRlUmVuZGVyUGFyYW1zRnJvbUNsaWVudCIsInByb2Nlc3MiLCJlbnYiLCJOT0RFX0VOViIsInJlcXVpcmUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/request/params.browser.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/client/request/search-params.browser.dev.js": /*!****************************************************************************!*\ !*** ./node_modules/next/dist/client/request/search-params.browser.dev.js ***! \****************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createRenderSearchParamsFromClient\", ({\n enumerable: true,\n get: function() {\n return createRenderSearchParamsFromClient;\n }\n}));\nconst _reflect = __webpack_require__(/*! ../../server/web/spec-extension/adapters/reflect */ \"(app-pages-browser)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\");\nconst _reflectutils = __webpack_require__(/*! ../../shared/lib/utils/reflect-utils */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\");\nconst CachedSearchParams = new WeakMap();\nfunction makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams) {\n const cachedSearchParams = CachedSearchParams.get(underlyingSearchParams);\n if (cachedSearchParams) {\n return cachedSearchParams;\n }\n const proxiedProperties = new Set();\n const promise = Promise.resolve(underlyingSearchParams);\n Object.keys(underlyingSearchParams).forEach((prop)=>{\n if (_reflectutils.wellKnownProperties.has(prop)) {\n // These properties cannot be shadowed because they need to be the\n // true underlying value for Promises to work correctly at runtime\n } else {\n proxiedProperties.add(prop);\n }\n });\n const proxiedPromise = new Proxy(promise, {\n get (target, prop, receiver) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeStringPropertyAccess)('searchParams', prop);\n warnForSyncAccess(expression);\n }\n }\n return _reflect.ReflectAdapter.get(target, prop, receiver);\n },\n set (target, prop, value, receiver) {\n if (typeof prop === 'string') {\n proxiedProperties.delete(prop);\n }\n return Reflect.set(target, prop, value, receiver);\n },\n has (target, prop) {\n if (typeof prop === 'string') {\n if (!_reflectutils.wellKnownProperties.has(prop) && (proxiedProperties.has(prop) || // We are accessing a property that doesn't exist on the promise nor\n // the underlying searchParams.\n Reflect.has(target, prop) === false)) {\n const expression = (0, _reflectutils.describeHasCheckingStringProperty)('searchParams', prop);\n warnForSyncAccess(expression);\n }\n }\n return Reflect.has(target, prop);\n },\n ownKeys (target) {\n warnForSyncSpread();\n return Reflect.ownKeys(target);\n }\n });\n CachedSearchParams.set(underlyingSearchParams, proxiedPromise);\n return proxiedPromise;\n}\nfunction warnForSyncAccess(expression) {\n console.error(`A searchParam property was accessed directly with ${expression}. ` + `\\`searchParams\\` is a Promise and must be unwrapped with \\`React.use()\\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);\n}\nfunction warnForSyncSpread() {\n console.error(`The keys of \\`searchParams\\` were accessed directly. ` + `\\`searchParams\\` is a Promise and must be unwrapped with \\`React.use()\\` before accessing its properties. ` + `Learn more: https://nextjs.org/docs/messages/sync-dynamic-apis`);\n}\nfunction createRenderSearchParamsFromClient(underlyingSearchParams) {\n return makeUntrackedSearchParamsWithDevWarnings(underlyingSearchParams);\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=search-params.browser.dev.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 // 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3Qvc2VhcmNoLXBhcmFtcy5icm93c2VyLmRldi5qcyIsIm1hcHBpbmdzIjoiOzs7O3NFQWtHZ0JBOzs7ZUFBQUE7OztxQ0FoR2U7MENBS3hCO0FBR1AsTUFBTUMscUJBQXFCLElBQUlDO0FBRS9CLFNBQVNDLHlDQUNQQyxzQkFBb0M7SUFFcEMsTUFBTUMscUJBQXFCSixtQkFBbUJLLEdBQUcsQ0FBQ0Y7SUFDbEQsSUFBSUMsb0JBQW9CO1FBQ3RCLE9BQU9BO0lBQ1Q7SUFFQSxNQUFNRSxvQkFBb0IsSUFBSUM7SUFDOUIsTUFBTUMsVUFBVUMsUUFBUUMsT0FBTyxDQUFDUDtJQUVoQ1EsT0FBT0MsSUFBSSxDQUFDVCx3QkFBd0JVLE9BQU8sQ0FBQyxDQUFDQztRQUMzQyxJQUFJQyxjQUFBQSxtQkFBbUIsQ0FBQ0MsR0FBRyxDQUFDRixPQUFPO1FBQ2pDLGtFQUFrRTtRQUNsRSxrRUFBa0U7UUFDcEUsT0FBTztZQUNMUixrQkFBa0JXLEdBQUcsQ0FBQ0g7UUFDeEI7SUFDRjtJQUVBLE1BQU1JLGlCQUFpQixJQUFJQyxNQUFNWCxTQUFTO1FBQ3hDSCxLQUFJZSxNQUFNLEVBQUVOLElBQUksRUFBRU8sUUFBUTtZQUN4QixJQUFJLE9BQU9QLFNBQVMsVUFBVTtnQkFDNUIsSUFDRSxDQUFDQyxjQUFBQSxtQkFBbUIsQ0FBQ0MsR0FBRyxDQUFDRixTQUN4QlIsbUJBQWtCVSxHQUFHLENBQUNGLFNBQ3JCLG9FQUFvRTtnQkFDcEUsK0JBQStCO2dCQUMvQlEsUUFBUU4sR0FBRyxDQUFDSSxRQUFRTixVQUFVLE1BQUksRUFDcEM7b0JBQ0EsTUFBTVMsYUFBYUMsQ0FBQUEsR0FBQUEsY0FBQUEsNEJBQUFBLEVBQTZCLGdCQUFnQlY7b0JBQ2hFVyxrQkFBa0JGO2dCQUNwQjtZQUNGO1lBQ0EsT0FBT0csU0FBQUEsY0FBYyxDQUFDckIsR0FBRyxDQUFDZSxRQUFRTixNQUFNTztRQUMxQztRQUNBTSxLQUFJUCxNQUFNLEVBQUVOLElBQUksRUFBRWMsS0FBSyxFQUFFUCxRQUFRO1lBQy9CLElBQUksT0FBT1AsU0FBUyxVQUFVO2dCQUM1QlIsa0JBQWtCdUIsTUFBTSxDQUFDZjtZQUMzQjtZQUNBLE9BQU9RLFFBQVFLLEdBQUcsQ0FBQ1AsUUFBUU4sTUFBTWMsT0FBT1A7UUFDMUM7UUFDQUwsS0FBSUksTUFBTSxFQUFFTixJQUFJO1lBQ2QsSUFBSSxPQUFPQSxTQUFTLFVBQVU7Z0JBQzVCLElBQ0UsQ0FBQ0MsY0FBQUEsbUJBQW1CLENBQUNDLEdBQUcsQ0FBQ0YsU0FDeEJSLENBQUFBLGtCQUFrQlUsR0FBRyxDQUFDRixTQUNyQixvRUFBb0U7Z0JBQ3BFLCtCQUErQjtnQkFDL0JRLFFBQVFOLEdBQUcsQ0FBQ0ksUUFBUU4sVUFBVSxNQUFJLEVBQ3BDO29CQUNBLE1BQU1TLGFBQWFPLENBQUFBLEdBQUFBLGNBQUFBLGlDQUFBQSxFQUNqQixnQkFDQWhCO29CQUVGVyxrQkFBa0JGO2dCQUNwQjtZQUNGO1lBQ0EsT0FBT0QsUUFBUU4sR0FBRyxDQUFDSSxRQUFRTjtRQUM3QjtRQUNBaUIsU0FBUVgsTUFBTTtZQUNaWTtZQUNBLE9BQU9WLFFBQVFTLE9BQU8sQ0FBQ1g7UUFDekI7SUFDRjtJQUVBcEIsbUJBQW1CMkIsR0FBRyxDQUFDeEIsd0JBQXdCZTtJQUMvQyxPQUFPQTtBQUNUO0FBRUEsU0FBU08sa0JBQWtCRixVQUFrQjtJQUMzQ1UsUUFBUUMsS0FBSyxDQUNYLENBQUMsa0RBQWtELEVBQUVYLFdBQVcsRUFBRSxDQUFDLEdBQ2pFLENBQUMsMEdBQTBHLENBQUMsR0FDNUcsQ0FBQyw4REFBOEQsQ0FBQztBQUV0RTtBQUVBLFNBQVNTO0lBQ1BDLFFBQVFDLEtBQUssQ0FDWCxDQUFDLHFEQUFxRCxDQUFDLEdBQ3JELENBQUMsMEdBQTBHLENBQUMsR0FDNUcsQ0FBQyw4REFBOEQsQ0FBQztBQUV0RTtBQUVPLFNBQVNuQyxtQ0FDZEksc0JBQW9DO0lBRXBDLE9BQU9ELHlDQUF5Q0M7QUFDbEQiLCJzb3VyY2VzIjpbIi9Vc2Vycy9wb3V5YW5tYi9zcmMvY2xpZW50L3JlcXVlc3Qvc2VhcmNoLXBhcmFtcy5icm93c2VyLmRldi50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFNlYXJjaFBhcmFtcyB9IGZyb20gJy4uLy4uL3NlcnZlci9yZXF1ZXN0L3NlYXJjaC1wYXJhbXMnXG5cbmltcG9ydCB7IFJlZmxlY3RBZGFwdGVyIH0gZnJvbSAnLi4vLi4vc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0J1xuaW1wb3J0IHtcbiAgZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcyxcbiAgZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5LFxuICB3ZWxsS25vd25Qcm9wZXJ0aWVzLFxufSBmcm9tICcuLi8uLi9zaGFyZWQvbGliL3V0aWxzL3JlZmxlY3QtdXRpbHMnXG5cbmludGVyZmFjZSBDYWNoZUxpZmV0aW1lIHt9XG5jb25zdCBDYWNoZWRTZWFyY2hQYXJhbXMgPSBuZXcgV2Vha01hcDxDYWNoZUxpZmV0aW1lLCBQcm9taXNlPFNlYXJjaFBhcmFtcz4+KClcblxuZnVuY3Rpb24gbWFrZVVudHJhY2tlZFNlYXJjaFBhcmFtc1dpdGhEZXZXYXJuaW5ncyhcbiAgdW5kZXJseWluZ1NlYXJjaFBhcmFtczogU2VhcmNoUGFyYW1zXG4pOiBQcm9taXNlPFNlYXJjaFBhcmFtcz4ge1xuICBjb25zdCBjYWNoZWRTZWFyY2hQYXJhbXMgPSBDYWNoZWRTZWFyY2hQYXJhbXMuZ2V0KHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpXG4gIGlmIChjYWNoZWRTZWFyY2hQYXJhbXMpIHtcbiAgICByZXR1cm4gY2FjaGVkU2VhcmNoUGFyYW1zXG4gIH1cblxuICBjb25zdCBwcm94aWVkUHJvcGVydGllcyA9IG5ldyBTZXQ8c3RyaW5nPigpXG4gIGNvbnN0IHByb21pc2UgPSBQcm9taXNlLnJlc29sdmUodW5kZXJseWluZ1NlYXJjaFBhcmFtcylcblxuICBPYmplY3Qua2V5cyh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zKS5mb3JFYWNoKChwcm9wKSA9PiB7XG4gICAgaWYgKHdlbGxLbm93blByb3BlcnRpZXMuaGFzKHByb3ApKSB7XG4gICAgICAvLyBUaGVzZSBwcm9wZXJ0aWVzIGNhbm5vdCBiZSBzaGFkb3dlZCBiZWNhdXNlIHRoZXkgbmVlZCB0byBiZSB0aGVcbiAgICAgIC8vIHRydWUgdW5kZXJseWluZyB2YWx1ZSBmb3IgUHJvbWlzZXMgdG8gd29yayBjb3JyZWN0bHkgYXQgcnVudGltZVxuICAgIH0gZWxzZSB7XG4gICAgICBwcm94aWVkUHJvcGVydGllcy5hZGQocHJvcClcbiAgICB9XG4gIH0pXG5cbiAgY29uc3QgcHJveGllZFByb21pc2UgPSBuZXcgUHJveHkocHJvbWlzZSwge1xuICAgIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICBpZiAodHlwZW9mIHByb3AgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAhd2VsbEtub3duUHJvcGVydGllcy5oYXMocHJvcCkgJiZcbiAgICAgICAgICAocHJveGllZFByb3BlcnRpZXMuaGFzKHByb3ApIHx8XG4gICAgICAgICAgICAvLyBXZSBhcmUgYWNjZXNzaW5nIGEgcHJvcGVydHkgdGhhdCBkb2Vzbid0IGV4aXN0IG9uIHRoZSBwcm9taXNlIG5vclxuICAgICAgICAgICAgLy8gdGhlIHVuZGVybHlpbmcgc2VhcmNoUGFyYW1zLlxuICAgICAgICAgICAgUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKSA9PT0gZmFsc2UpXG4gICAgICAgICkge1xuICAgICAgICAgIGNvbnN0IGV4cHJlc3Npb24gPSBkZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKCdzZWFyY2hQYXJhbXMnLCBwcm9wKVxuICAgICAgICAgIHdhcm5Gb3JTeW5jQWNjZXNzKGV4cHJlc3Npb24pXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBSZWZsZWN0QWRhcHRlci5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcilcbiAgICB9LFxuICAgIHNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcikge1xuICAgICAgaWYgKHR5cGVvZiBwcm9wID09PSAnc3RyaW5nJykge1xuICAgICAgICBwcm94aWVkUHJvcGVydGllcy5kZWxldGUocHJvcClcbiAgICAgIH1cbiAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcilcbiAgICB9LFxuICAgIGhhcyh0YXJnZXQsIHByb3ApIHtcbiAgICAgIGlmICh0eXBlb2YgcHJvcCA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICF3ZWxsS25vd25Qcm9wZXJ0aWVzLmhhcyhwcm9wKSAmJlxuICAgICAgICAgIChwcm94aWVkUHJvcGVydGllcy5oYXMocHJvcCkgfHxcbiAgICAgICAgICAgIC8vIFdlIGFyZSBhY2Nlc3NpbmcgYSBwcm9wZXJ0eSB0aGF0IGRvZXNuJ3QgZXhpc3Qgb24gdGhlIHByb21pc2Ugbm9yXG4gICAgICAgICAgICAvLyB0aGUgdW5kZXJseWluZyBzZWFyY2hQYXJhbXMuXG4gICAgICAgICAgICBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApID09PSBmYWxzZSlcbiAgICAgICAgKSB7XG4gICAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IGRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eShcbiAgICAgICAgICAgICdzZWFyY2hQYXJhbXMnLFxuICAgICAgICAgICAgcHJvcFxuICAgICAgICAgIClcbiAgICAgICAgICB3YXJuRm9yU3luY0FjY2VzcyhleHByZXNzaW9uKVxuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gUmVmbGVjdC5oYXModGFyZ2V0LCBwcm9wKVxuICAgIH0sXG4gICAgb3duS2V5cyh0YXJnZXQpIHtcbiAgICAgIHdhcm5Gb3JTeW5jU3ByZWFkKClcbiAgICAgIHJldHVybiBSZWZsZWN0Lm93bktleXModGFyZ2V0KVxuICAgIH0sXG4gIH0pXG5cbiAgQ2FjaGVkU2VhcmNoUGFyYW1zLnNldCh1bmRlcmx5aW5nU2VhcmNoUGFyYW1zLCBwcm94aWVkUHJvbWlzZSlcbiAgcmV0dXJuIHByb3hpZWRQcm9taXNlXG59XG5cbmZ1bmN0aW9uIHdhcm5Gb3JTeW5jQWNjZXNzKGV4cHJlc3Npb246IHN0cmluZykge1xuICBjb25zb2xlLmVycm9yKFxuICAgIGBBIHNlYXJjaFBhcmFtIHByb3BlcnR5IHdhcyBhY2Nlc3NlZCBkaXJlY3RseSB3aXRoICR7ZXhwcmVzc2lvbn0uIGAgK1xuICAgICAgYFxcYHNlYXJjaFBhcmFtc1xcYCBpcyBhIFByb21pc2UgYW5kIG11c3QgYmUgdW53cmFwcGVkIHdpdGggXFxgUmVhY3QudXNlKClcXGAgYmVmb3JlIGFjY2Vzc2luZyBpdHMgcHJvcGVydGllcy4gYCArXG4gICAgICBgTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvc3luYy1keW5hbWljLWFwaXNgXG4gIClcbn1cblxuZnVuY3Rpb24gd2FybkZvclN5bmNTcHJlYWQoKSB7XG4gIGNvbnNvbGUuZXJyb3IoXG4gICAgYFRoZSBrZXlzIG9mIFxcYHNlYXJjaFBhcmFtc1xcYCB3ZXJlIGFjY2Vzc2VkIGRpcmVjdGx5LiBgICtcbiAgICAgIGBcXGBzZWFyY2hQYXJhbXNcXGAgaXMgYSBQcm9taXNlIGFuZCBtdXN0IGJlIHVud3JhcHBlZCB3aXRoIFxcYFJlYWN0LnVzZSgpXFxgIGJlZm9yZSBhY2Nlc3NpbmcgaXRzIHByb3BlcnRpZXMuIGAgK1xuICAgICAgYExlYXJuIG1vcmU6IGh0dHBzOi8vbmV4dGpzLm9yZy9kb2NzL21lc3NhZ2VzL3N5bmMtZHluYW1pYy1hcGlzYFxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXNGcm9tQ2xpZW50KFxuICB1bmRlcmx5aW5nU2VhcmNoUGFyYW1zOiBTZWFyY2hQYXJhbXNcbik6IFByb21pc2U8U2VhcmNoUGFyYW1zPiB7XG4gIHJldHVybiBtYWtlVW50cmFja2VkU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzKHVuZGVybHlpbmdTZWFyY2hQYXJhbXMpXG59XG4iXSwibmFtZXMiOlsiY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zRnJvbUNsaWVudCIsIkNhY2hlZFNlYXJjaFBhcmFtcyIsIldlYWtNYXAiLCJtYWtlVW50cmFja2VkU2VhcmNoUGFyYW1zV2l0aERldldhcm5pbmdzIiwidW5kZXJseWluZ1NlYXJjaFBhcmFtcyIsImNhY2hlZFNlYXJjaFBhcmFtcyIsImdldCIsInByb3hpZWRQcm9wZXJ0aWVzIiwiU2V0IiwicHJvbWlzZSIsIlByb21pc2UiLCJyZXNvbHZlIiwiT2JqZWN0Iiwia2V5cyIsImZvckVhY2giLCJwcm9wIiwid2VsbEtub3duUHJvcGVydGllcyIsImhhcyIsImFkZCIsInByb3hpZWRQcm9taXNlIiwiUHJveHkiLCJ0YXJnZXQiLCJyZWNlaXZlciIsIlJlZmxlY3QiLCJleHByZXNzaW9uIiwiZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcyIsIndhcm5Gb3JTeW5jQWNjZXNzIiwiUmVmbGVjdEFkYXB0ZXIiLCJzZXQiLCJ2YWx1ZSIsImRlbGV0ZSIsImRlc2NyaWJlSGFzQ2hlY2tpbmdTdHJpbmdQcm9wZXJ0eSIsIm93bktleXMiLCJ3YXJuRm9yU3luY1NwcmVhZCIsImNvbnNvbGUiLCJlcnJvciJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/request/search-params.browser.dev.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/client/request/search-params.browser.js": /*!************************************************************************!*\ !*** ./node_modules/next/dist/client/request/search-params.browser.js ***! \************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"createRenderSearchParamsFromClient\", ({\n enumerable: true,\n get: function() {\n return createRenderSearchParamsFromClient;\n }\n}));\nconst createRenderSearchParamsFromClient = true ? (__webpack_require__(/*! ./search-params.browser.dev */ \"(app-pages-browser)/./node_modules/next/dist/client/request/search-params.browser.dev.js\").createRenderSearchParamsFromClient) : 0;\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=search-params.browser.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 // 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvY2xpZW50L3JlcXVlc3Qvc2VhcmNoLXBhcmFtcy5icm93c2VyLmpzIiwibWFwcGluZ3MiOiI7Ozs7c0VBQWFBOzs7ZUFBQUE7OztBQUFOLE1BQU1BLHFDQUFBQSxLQUNTLEdBRWRJLHVMQUNrQyxHQUVsQ0EsQ0FDa0MiLCJzb3VyY2VzIjpbIi9Vc2Vycy9wb3V5YW5tYi9zcmMvY2xpZW50L3JlcXVlc3Qvc2VhcmNoLXBhcmFtcy5icm93c2VyLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXNGcm9tQ2xpZW50ID1cbiAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCdcbiAgICA/IChcbiAgICAgICAgcmVxdWlyZSgnLi9zZWFyY2gtcGFyYW1zLmJyb3dzZXIuZGV2JykgYXMgdHlwZW9mIGltcG9ydCgnLi9zZWFyY2gtcGFyYW1zLmJyb3dzZXIuZGV2JylcbiAgICAgICkuY3JlYXRlUmVuZGVyU2VhcmNoUGFyYW1zRnJvbUNsaWVudFxuICAgIDogKFxuICAgICAgICByZXF1aXJlKCcuL3NlYXJjaC1wYXJhbXMuYnJvd3Nlci5wcm9kJykgYXMgdHlwZW9mIGltcG9ydCgnLi9zZWFyY2gtcGFyYW1zLmJyb3dzZXIucHJvZCcpXG4gICAgICApLmNyZWF0ZVJlbmRlclNlYXJjaFBhcmFtc0Zyb21DbGllbnRcbiJdLCJuYW1lcyI6WyJjcmVhdGVSZW5kZXJTZWFyY2hQYXJhbXNGcm9tQ2xpZW50IiwicHJvY2VzcyIsImVudiIsIk5PREVfRU5WIiwicmVxdWlyZSJdLCJpZ25vcmVMaXN0IjpbXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/client/request/search-params.browser.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js": /*!*******************************************************************!*\ !*** ./node_modules/next/dist/lib/metadata/generate/icon-mark.js ***! \*******************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("/* __next_internal_client_entry_do_not_use__ cjs */ \nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"IconMark\", ({\n enumerable: true,\n get: function() {\n return IconMark;\n }\n}));\nconst _jsxruntime = __webpack_require__(/*! react/jsx-runtime */ \"(app-pages-browser)/./node_modules/next/dist/compiled/react/jsx-runtime.js\");\nconst IconMark = ()=>{\n if (true) {\n return null;\n }\n return /*#__PURE__*/ (0, _jsxruntime.jsx)(\"meta\", {\n name: \"\\xabnxt-icon\\xbb\"\n });\n}; //# sourceMappingURL=icon-mark.js.map\n_c = IconMark;\nvar _c;\n$RefreshReg$(_c, \"IconMark\");\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3QvbGliL21ldGFkYXRhL2dlbmVyYXRlL2ljb24tbWFyay5qcyIsIm1hcHBpbmdzIjoiOzs7OzRDQVFhQTs7O2VBQUFBOzs7O0FBQU4saUJBQWlCO0lBQ3RCLElBQUksSUFBNkIsRUFBRTtRQUNqQyxPQUFPO0lBQ1Q7SUFDQSxxQkFBTyxxQkFBQ0UsUUFBQUE7UUFBS0MsTUFBSzs7QUFDcEI7S0FMYUgiLCJzb3VyY2VzIjpbIi9Vc2Vycy9zcmMvbGliL21ldGFkYXRhL2dlbmVyYXRlL2ljb24tbWFyay50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbi8vIFRoaXMgaXMgYSBjbGllbnQgY29tcG9uZW50IHRoYXQgb25seSByZW5kZXJzIGR1cmluZyBTU1IsXG4vLyBidXQgd2lsbCBiZSByZXBsYWNlZCBkdXJpbmcgc3RyZWFtaW5nIHdpdGggYW4gaWNvbiBpbnNlcnRpb24gc2NyaXB0IHRhZy5cbi8vIFdlIGRvbid0IHdhbnQgaXQgdG8gYmUgcHJlc2VudGVkIGFueXdoZXJlIHNvIGl0J3Mgb25seSB2aXNpYmxlIGR1cmluZyBzdHJlYW1pbmcsXG4vLyByaWdodCBhZnRlciB0aGUgaWNvbiBtZXRhIHRhZ3Mgc28gdGhhdCBicm93c2VyIGNhbiBwaWNrIGl0IHVwIGFzIHNvb24gYXMgaXQncyByZW5kZXJlZC5cbi8vIE5vdGU6IHdlIGRvbid0IGp1c3QgZW1pdCB0aGUgc2NyaXB0IGhlcmUgYmVjYXVzZSB3ZSBvbmx5IG5lZWQgdGhlIHNjcmlwdCBpZiBpdCdzIG5vdCBpbiB0aGUgaGVhZCxcbi8vIGFuZCB3ZSBuZWVkIGl0IHRvIGJlIGhvaXN0YWJsZSBhbG9uZ3NpZGUgdGhlIG90aGVyIG1ldGFkYXRhIGJ1dCBzeW5jIHNjcmlwdHMgYXJlIG5vdCBob2lzdGFibGUuXG5leHBvcnQgY29uc3QgSWNvbk1hcmsgPSAoKSA9PiB7XG4gIGlmICh0eXBlb2Ygd2luZG93ICE9PSAndW5kZWZpbmVkJykge1xuICAgIHJldHVybiBudWxsXG4gIH1cbiAgcmV0dXJuIDxtZXRhIG5hbWU9XCLCq254dC1pY29uwrtcIiAvPlxufVxuIl0sIm5hbWVzIjpbIkljb25NYXJrIiwid2luZG93IiwibWV0YSIsIm5hbWUiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/lib/metadata/generate/icon-mark.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js": /*!******************************************************************************!*\ !*** ./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js ***! \******************************************************************************/ /***/ ((__unused_webpack_module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"ReflectAdapter\", ({\n enumerable: true,\n get: function() {\n return ReflectAdapter;\n }\n}));\nclass ReflectAdapter {\n static get(target, prop, receiver) {\n const value = Reflect.get(target, prop, receiver);\n if (typeof value === 'function') {\n return value.bind(target);\n }\n return value;\n }\n static set(target, prop, value, receiver) {\n return Reflect.set(target, prop, value, receiver);\n }\n static has(target, prop) {\n return Reflect.has(target, prop);\n }\n static deleteProperty(target, prop) {\n return Reflect.deleteProperty(target, prop);\n }\n}\n\n//# sourceMappingURL=reflect.js.map//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2VydmVyL3dlYi9zcGVjLWV4dGVuc2lvbi9hZGFwdGVycy9yZWZsZWN0LmpzIiwibWFwcGluZ3MiOiJBQUFhO0FBQ2IsOENBQTZDO0FBQzdDO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Ysa0RBQWlEO0FBQ2pEO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsQ0FBQyxFQUFDO0FBQ0Y7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBOztBQUVBIiwic291cmNlcyI6WyIvVXNlcnMvcG91eWFubWIvRGVza3RvcC9naXQtcHJvamVjdHMvZGlnaWthbGEtdGFpbHdpbmQvbm9kZV9tb2R1bGVzL25leHQvZGlzdC9zZXJ2ZXIvd2ViL3NwZWMtZXh0ZW5zaW9uL2FkYXB0ZXJzL3JlZmxlY3QuanMiXSwic291cmNlc0NvbnRlbnQiOlsiXCJ1c2Ugc3RyaWN0XCI7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJfX2VzTW9kdWxlXCIsIHtcbiAgICB2YWx1ZTogdHJ1ZVxufSk7XG5PYmplY3QuZGVmaW5lUHJvcGVydHkoZXhwb3J0cywgXCJSZWZsZWN0QWRhcHRlclwiLCB7XG4gICAgZW51bWVyYWJsZTogdHJ1ZSxcbiAgICBnZXQ6IGZ1bmN0aW9uKCkge1xuICAgICAgICByZXR1cm4gUmVmbGVjdEFkYXB0ZXI7XG4gICAgfVxufSk7XG5jbGFzcyBSZWZsZWN0QWRhcHRlciB7XG4gICAgc3RhdGljIGdldCh0YXJnZXQsIHByb3AsIHJlY2VpdmVyKSB7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gUmVmbGVjdC5nZXQodGFyZ2V0LCBwcm9wLCByZWNlaXZlcik7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZS5iaW5kKHRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICBzdGF0aWMgc2V0KHRhcmdldCwgcHJvcCwgdmFsdWUsIHJlY2VpdmVyKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LnNldCh0YXJnZXQsIHByb3AsIHZhbHVlLCByZWNlaXZlcik7XG4gICAgfVxuICAgIHN0YXRpYyBoYXModGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0Lmhhcyh0YXJnZXQsIHByb3ApO1xuICAgIH1cbiAgICBzdGF0aWMgZGVsZXRlUHJvcGVydHkodGFyZ2V0LCBwcm9wKSB7XG4gICAgICAgIHJldHVybiBSZWZsZWN0LmRlbGV0ZVByb3BlcnR5KHRhcmdldCwgcHJvcCk7XG4gICAgfVxufVxuXG4vLyMgc291cmNlTWFwcGluZ1VSTD1yZWZsZWN0LmpzLm1hcCJdLCJuYW1lcyI6W10sImlnbm9yZUxpc3QiOlswXSwic291cmNlUm9vdCI6IiJ9\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/server/web/spec-extension/adapters/reflect.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js": /*!*********************************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js ***! \*********************************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("\nObject.defineProperty(exports, \"__esModule\", ({\n value: true\n}));\nObject.defineProperty(exports, \"disableSmoothScrollDuringRouteTransition\", ({\n enumerable: true,\n get: function() {\n return disableSmoothScrollDuringRouteTransition;\n }\n}));\nconst _warnonce = __webpack_require__(/*! ../../utils/warn-once */ \"(app-pages-browser)/./node_modules/next/dist/shared/lib/utils/warn-once.js\");\nfunction disableSmoothScrollDuringRouteTransition(fn, options = {}) {\n // if only the hash is changed, we don't need to disable smooth scrolling\n // we only care to prevent smooth scrolling when navigating to a new page to avoid jarring UX\n if (options.onlyHashChange) {\n fn();\n return;\n }\n const htmlElement = document.documentElement;\n const hasDataAttribute = htmlElement.dataset.scrollBehavior === 'smooth';\n if (!hasDataAttribute) {\n // Warn if smooth scrolling is detected but no data attribute is present\n if ( true && getComputedStyle(htmlElement).scrollBehavior === 'smooth') {\n (0, _warnonce.warnOnce)('Detected `scroll-behavior: smooth` on the `` element. To disable smooth scrolling during route transitions, ' + 'add `data-scroll-behavior=\"smooth\"` to your element. ' + 'Learn more: https://nextjs.org/docs/messages/missing-data-scroll-behavior');\n }\n // No smooth scrolling configured, run directly without style manipulation\n fn();\n return;\n }\n // Proceed with temporarily disabling smooth scrolling\n const existing = htmlElement.style.scrollBehavior;\n htmlElement.style.scrollBehavior = 'auto';\n if (!options.dontForceLayout) {\n // In Chrome-based browsers we need to force reflow before calling `scrollTo`.\n // Otherwise it will not pickup the change in scrollBehavior\n // More info here: https://github.com/vercel/next.js/issues/40719#issuecomment-1336248042\n htmlElement.getClientRects();\n }\n fn();\n htmlElement.style.scrollBehavior = existing;\n} //# sourceMappingURL=disable-smooth-scroll.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 // 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZGlzYWJsZS1zbW9vdGgtc2Nyb2xsLmpzIiwibWFwcGluZ3MiOiI7Ozs7NEVBTWdCQTs7O2VBQUFBOzs7c0NBTlM7QUFNbEIsU0FBU0EseUNBQ2RDLEVBQWMsRUFDZEMsVUFBbUUsQ0FBQyxDQUFDO0lBRXJFLHlFQUF5RTtJQUN6RSw2RkFBNkY7SUFDN0YsSUFBSUEsUUFBUUMsY0FBYyxFQUFFO1FBQzFCRjtRQUNBO0lBQ0Y7SUFFQSxNQUFNRyxjQUFjQyxTQUFTQyxlQUFlO0lBQzVDLE1BQU1DLG1CQUFtQkgsWUFBWUksT0FBTyxDQUFDQyxjQUFjLEtBQUs7SUFFaEUsSUFBSSxDQUFDRixrQkFBa0I7UUFDckIsd0VBQXdFO1FBQ3hFLElBQ0VHLEtBQW9CLElBQ3BCRyxpQkFBaUJULGFBQWFLLGNBQWMsS0FBSyxVQUNqRDtZQUNBSyxDQUFBQSxHQUFBQSxVQUFBQSxRQUFBQSxFQUNFLHVIQUNFLGlFQUNBO1FBRU47UUFDQSwwRUFBMEU7UUFDMUViO1FBQ0E7SUFDRjtJQUVBLHNEQUFzRDtJQUN0RCxNQUFNYyxXQUFXWCxZQUFZWSxLQUFLLENBQUNQLGNBQWM7SUFDakRMLFlBQVlZLEtBQUssQ0FBQ1AsY0FBYyxHQUFHO0lBQ25DLElBQUksQ0FBQ1AsUUFBUWUsZUFBZSxFQUFFO1FBQzVCLDhFQUE4RTtRQUM5RSw0REFBNEQ7UUFDNUQseUZBQXlGO1FBQ3pGYixZQUFZYyxjQUFjO0lBQzVCO0lBQ0FqQjtJQUNBRyxZQUFZWSxLQUFLLENBQUNQLGNBQWMsR0FBR007QUFDckMiLCJzb3VyY2VzIjpbIi9zcmMvc2hhcmVkL2xpYi9yb3V0ZXIvdXRpbHMvZGlzYWJsZS1zbW9vdGgtc2Nyb2xsLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHdhcm5PbmNlIH0gZnJvbSAnLi4vLi4vdXRpbHMvd2Fybi1vbmNlJ1xuXG4vKipcbiAqIFJ1biBmdW5jdGlvbiB3aXRoIGBzY3JvbGwtYmVoYXZpb3I6IGF1dG9gIGFwcGxpZWQgdG8gYDxodG1sLz5gLlxuICogVGhpcyBjc3MgY2hhbmdlIHdpbGwgYmUgcmV2ZXJ0ZWQgYWZ0ZXIgdGhlIGZ1bmN0aW9uIGZpbmlzaGVzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGlzYWJsZVNtb290aFNjcm9sbER1cmluZ1JvdXRlVHJhbnNpdGlvbihcbiAgZm46ICgpID0+IHZvaWQsXG4gIG9wdGlvbnM6IHsgZG9udEZvcmNlTGF5b3V0PzogYm9vbGVhbjsgb25seUhhc2hDaGFuZ2U/OiBib29sZWFuIH0gPSB7fVxuKSB7XG4gIC8vIGlmIG9ubHkgdGhlIGhhc2ggaXMgY2hhbmdlZCwgd2UgZG9uJ3QgbmVlZCB0byBkaXNhYmxlIHNtb290aCBzY3JvbGxpbmdcbiAgLy8gd2Ugb25seSBjYXJlIHRvIHByZXZlbnQgc21vb3RoIHNjcm9sbGluZyB3aGVuIG5hdmlnYXRpbmcgdG8gYSBuZXcgcGFnZSB0byBhdm9pZCBqYXJyaW5nIFVYXG4gIGlmIChvcHRpb25zLm9ubHlIYXNoQ2hhbmdlKSB7XG4gICAgZm4oKVxuICAgIHJldHVyblxuICB9XG5cbiAgY29uc3QgaHRtbEVsZW1lbnQgPSBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnRcbiAgY29uc3QgaGFzRGF0YUF0dHJpYnV0ZSA9IGh0bWxFbGVtZW50LmRhdGFzZXQuc2Nyb2xsQmVoYXZpb3IgPT09ICdzbW9vdGgnXG5cbiAgaWYgKCFoYXNEYXRhQXR0cmlidXRlKSB7XG4gICAgLy8gV2FybiBpZiBzbW9vdGggc2Nyb2xsaW5nIGlzIGRldGVjdGVkIGJ1dCBubyBkYXRhIGF0dHJpYnV0ZSBpcyBwcmVzZW50XG4gICAgaWYgKFxuICAgICAgcHJvY2Vzcy5lbnYuTk9ERV9FTlYgPT09ICdkZXZlbG9wbWVudCcgJiZcbiAgICAgIGdldENvbXB1dGVkU3R5bGUoaHRtbEVsZW1lbnQpLnNjcm9sbEJlaGF2aW9yID09PSAnc21vb3RoJ1xuICAgICkge1xuICAgICAgd2Fybk9uY2UoXG4gICAgICAgICdEZXRlY3RlZCBgc2Nyb2xsLWJlaGF2aW9yOiBzbW9vdGhgIG9uIHRoZSBgPGh0bWw+YCBlbGVtZW50LiBUbyBkaXNhYmxlIHNtb290aCBzY3JvbGxpbmcgZHVyaW5nIHJvdXRlIHRyYW5zaXRpb25zLCAnICtcbiAgICAgICAgICAnYWRkIGBkYXRhLXNjcm9sbC1iZWhhdmlvcj1cInNtb290aFwiYCB0byB5b3VyIDxodG1sPiBlbGVtZW50LiAnICtcbiAgICAgICAgICAnTGVhcm4gbW9yZTogaHR0cHM6Ly9uZXh0anMub3JnL2RvY3MvbWVzc2FnZXMvbWlzc2luZy1kYXRhLXNjcm9sbC1iZWhhdmlvcidcbiAgICAgIClcbiAgICB9XG4gICAgLy8gTm8gc21vb3RoIHNjcm9sbGluZyBjb25maWd1cmVkLCBydW4gZGlyZWN0bHkgd2l0aG91dCBzdHlsZSBtYW5pcHVsYXRpb25cbiAgICBmbigpXG4gICAgcmV0dXJuXG4gIH1cblxuICAvLyBQcm9jZWVkIHdpdGggdGVtcG9yYXJpbHkgZGlzYWJsaW5nIHNtb290aCBzY3JvbGxpbmdcbiAgY29uc3QgZXhpc3RpbmcgPSBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvclxuICBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9ICdhdXRvJ1xuICBpZiAoIW9wdGlvbnMuZG9udEZvcmNlTGF5b3V0KSB7XG4gICAgLy8gSW4gQ2hyb21lLWJhc2VkIGJyb3dzZXJzIHdlIG5lZWQgdG8gZm9yY2UgcmVmbG93IGJlZm9yZSBjYWxsaW5nIGBzY3JvbGxUb2AuXG4gICAgLy8gT3RoZXJ3aXNlIGl0IHdpbGwgbm90IHBpY2t1cCB0aGUgY2hhbmdlIGluIHNjcm9sbEJlaGF2aW9yXG4gICAgLy8gTW9yZSBpbmZvIGhlcmU6IGh0dHBzOi8vZ2l0aHViLmNvbS92ZXJjZWwvbmV4dC5qcy9pc3N1ZXMvNDA3MTkjaXNzdWVjb21tZW50LTEzMzYyNDgwNDJcbiAgICBodG1sRWxlbWVudC5nZXRDbGllbnRSZWN0cygpXG4gIH1cbiAgZm4oKVxuICBodG1sRWxlbWVudC5zdHlsZS5zY3JvbGxCZWhhdmlvciA9IGV4aXN0aW5nXG59XG4iXSwibmFtZXMiOlsiZGlzYWJsZVNtb290aFNjcm9sbER1cmluZ1JvdXRlVHJhbnNpdGlvbiIsImZuIiwib3B0aW9ucyIsIm9ubHlIYXNoQ2hhbmdlIiwiaHRtbEVsZW1lbnQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImhhc0RhdGFBdHRyaWJ1dGUiLCJkYXRhc2V0Iiwic2Nyb2xsQmVoYXZpb3IiLCJwcm9jZXNzIiwiZW52IiwiTk9ERV9FTlYiLCJnZXRDb21wdXRlZFN0eWxlIiwid2Fybk9uY2UiLCJleGlzdGluZyIsInN0eWxlIiwiZG9udEZvcmNlTGF5b3V0IiwiZ2V0Q2xpZW50UmVjdHMiXSwiaWdub3JlTGlzdCI6W10sInNvdXJjZVJvb3QiOiIifQ==\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/router/utils/disable-smooth-scroll.js\n")); /***/ }), /***/ "(app-pages-browser)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js": /*!******************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/utils/reflect-utils.js ***! \******************************************************************/ /***/ ((module, exports, __webpack_require__) => { "use strict"; eval(__webpack_require__.ts("// This regex will have fast negatives meaning valid identifiers may not pass\n// this test. However this is only used during static generation to provide hints\n// about why a page bailed out of some or all prerendering and we can use bracket notation\n// for example while `ಠ_ಠ` is a valid identifier it's ok to print `searchParams['ಠ_ಠ']`\n// even if this would have been fine too `searchParams.ಠ_ಠ`\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 describeHasCheckingStringProperty: function() {\n return describeHasCheckingStringProperty;\n },\n describeStringPropertyAccess: function() {\n return describeStringPropertyAccess;\n },\n wellKnownProperties: function() {\n return wellKnownProperties;\n }\n});\nconst isDefinitelyAValidIdentifier = /^[A-Za-z_$][A-Za-z0-9_$]*$/;\nfunction describeStringPropertyAccess(target, prop) {\n if (isDefinitelyAValidIdentifier.test(prop)) {\n return `\\`${target}.${prop}\\``;\n }\n return `\\`${target}[${JSON.stringify(prop)}]\\``;\n}\nfunction describeHasCheckingStringProperty(target, prop) {\n const stringifiedProp = JSON.stringify(prop);\n return `\\`Reflect.has(${target}, ${stringifiedProp})\\`, \\`${stringifiedProp} in ${target}\\`, or similar`;\n}\nconst wellKnownProperties = new Set([\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toString',\n 'valueOf',\n 'toLocaleString',\n // Promise prototype\n 'then',\n 'catch',\n 'finally',\n // React Promise extension\n 'status',\n // 'value',\n // 'error',\n // React introspection\n 'displayName',\n '_debugInfo',\n // Common tested properties\n 'toJSON',\n '$$typeof',\n '__esModule',\n // Tested by flight when checking for iterables\n '@@iterator'\n]); //# sourceMappingURL=reflect-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 // 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiKGFwcC1wYWdlcy1icm93c2VyKS8uL25vZGVfbW9kdWxlcy9uZXh0L2Rpc3Qvc2hhcmVkL2xpYi91dGlscy9yZWZsZWN0LXV0aWxzLmpzIiwibWFwcGluZ3MiOiJBQUFBLDZFQUE2RTtBQUM3RSxpRkFBaUY7QUFDakYsMEZBQTBGO0FBQzFGLHVGQUF1RjtBQUN2RiwyREFBMkQ7Ozs7Ozs7Ozs7Ozs7SUFVM0NBLGlDQUFpQztlQUFqQ0E7O0lBUEFDLDRCQUE0QjtlQUE1QkE7O0lBZUhDLG1CQUFtQjtlQUFuQkE7OztBQWpCYixNQUFNQywrQkFBK0I7QUFFOUIsU0FBU0YsNkJBQTZCRyxNQUFjLEVBQUVDLElBQVk7SUFDdkUsSUFBSUYsNkJBQTZCRyxJQUFJLENBQUNELE9BQU87UUFDM0MsT0FBTyxDQUFDLEVBQUUsRUFBRUQsT0FBTyxDQUFDLEVBQUVDLEtBQUssRUFBRSxDQUFDO0lBQ2hDO0lBQ0EsT0FBTyxDQUFDLEVBQUUsRUFBRUQsT0FBTyxDQUFDLEVBQUVHLEtBQUtDLFNBQVMsQ0FBQ0gsTUFBTSxHQUFHLENBQUM7QUFDakQ7QUFFTyxTQUFTTCxrQ0FDZEksTUFBYyxFQUNkQyxJQUFZO0lBRVosTUFBTUksa0JBQWtCRixLQUFLQyxTQUFTLENBQUNIO0lBQ3ZDLE9BQU8sQ0FBQyxjQUFjLEVBQUVELE9BQU8sRUFBRSxFQUFFSyxnQkFBZ0IsT0FBTyxFQUFFQSxnQkFBZ0IsSUFBSSxFQUFFTCxPQUFPLGNBQWMsQ0FBQztBQUMxRztBQUVPLE1BQU1GLHNCQUFzQixJQUFJUSxJQUFJO0lBQ3pDO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQTtJQUVBLG9CQUFvQjtJQUNwQjtJQUNBO0lBQ0E7SUFFQSwwQkFBMEI7SUFDMUI7SUFDQSxXQUFXO0lBQ1gsV0FBVztJQUVYLHNCQUFzQjtJQUN0QjtJQUNBO0lBRUEsMkJBQTJCO0lBQzNCO0lBQ0E7SUFDQTtJQUVBLCtDQUErQztJQUMvQztDQUNEIiwic291cmNlcyI6WyIvVXNlcnMvc3JjL3NoYXJlZC9saWIvdXRpbHMvcmVmbGVjdC11dGlscy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUaGlzIHJlZ2V4IHdpbGwgaGF2ZSBmYXN0IG5lZ2F0aXZlcyBtZWFuaW5nIHZhbGlkIGlkZW50aWZpZXJzIG1heSBub3QgcGFzc1xuLy8gdGhpcyB0ZXN0LiBIb3dldmVyIHRoaXMgaXMgb25seSB1c2VkIGR1cmluZyBzdGF0aWMgZ2VuZXJhdGlvbiB0byBwcm92aWRlIGhpbnRzXG4vLyBhYm91dCB3aHkgYSBwYWdlIGJhaWxlZCBvdXQgb2Ygc29tZSBvciBhbGwgcHJlcmVuZGVyaW5nIGFuZCB3ZSBjYW4gdXNlIGJyYWNrZXQgbm90YXRpb25cbi8vIGZvciBleGFtcGxlIHdoaWxlIGDgsqBf4LKgYCBpcyBhIHZhbGlkIGlkZW50aWZpZXIgaXQncyBvayB0byBwcmludCBgc2VhcmNoUGFyYW1zWyfgsqBf4LKgJ11gXG4vLyBldmVuIGlmIHRoaXMgd291bGQgaGF2ZSBiZWVuIGZpbmUgdG9vIGBzZWFyY2hQYXJhbXMu4LKgX+CyoGBcbmNvbnN0IGlzRGVmaW5pdGVseUFWYWxpZElkZW50aWZpZXIgPSAvXltBLVphLXpfJF1bQS1aYS16MC05XyRdKiQvXG5cbmV4cG9ydCBmdW5jdGlvbiBkZXNjcmliZVN0cmluZ1Byb3BlcnR5QWNjZXNzKHRhcmdldDogc3RyaW5nLCBwcm9wOiBzdHJpbmcpIHtcbiAgaWYgKGlzRGVmaW5pdGVseUFWYWxpZElkZW50aWZpZXIudGVzdChwcm9wKSkge1xuICAgIHJldHVybiBgXFxgJHt0YXJnZXR9LiR7cHJvcH1cXGBgXG4gIH1cbiAgcmV0dXJuIGBcXGAke3RhcmdldH1bJHtKU09OLnN0cmluZ2lmeShwcm9wKX1dXFxgYFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5KFxuICB0YXJnZXQ6IHN0cmluZyxcbiAgcHJvcDogc3RyaW5nXG4pIHtcbiAgY29uc3Qgc3RyaW5naWZpZWRQcm9wID0gSlNPTi5zdHJpbmdpZnkocHJvcClcbiAgcmV0dXJuIGBcXGBSZWZsZWN0Lmhhcygke3RhcmdldH0sICR7c3RyaW5naWZpZWRQcm9wfSlcXGAsIFxcYCR7c3RyaW5naWZpZWRQcm9wfSBpbiAke3RhcmdldH1cXGAsIG9yIHNpbWlsYXJgXG59XG5cbmV4cG9ydCBjb25zdCB3ZWxsS25vd25Qcm9wZXJ0aWVzID0gbmV3IFNldChbXG4gICdoYXNPd25Qcm9wZXJ0eScsXG4gICdpc1Byb3RvdHlwZU9mJyxcbiAgJ3Byb3BlcnR5SXNFbnVtZXJhYmxlJyxcbiAgJ3RvU3RyaW5nJyxcbiAgJ3ZhbHVlT2YnLFxuICAndG9Mb2NhbGVTdHJpbmcnLFxuXG4gIC8vIFByb21pc2UgcHJvdG90eXBlXG4gICd0aGVuJyxcbiAgJ2NhdGNoJyxcbiAgJ2ZpbmFsbHknLFxuXG4gIC8vIFJlYWN0IFByb21pc2UgZXh0ZW5zaW9uXG4gICdzdGF0dXMnLFxuICAvLyAndmFsdWUnLFxuICAvLyAnZXJyb3InLFxuXG4gIC8vIFJlYWN0IGludHJvc3BlY3Rpb25cbiAgJ2Rpc3BsYXlOYW1lJyxcbiAgJ19kZWJ1Z0luZm8nLFxuXG4gIC8vIENvbW1vbiB0ZXN0ZWQgcHJvcGVydGllc1xuICAndG9KU09OJyxcbiAgJyQkdHlwZW9mJyxcbiAgJ19fZXNNb2R1bGUnLFxuXG4gIC8vIFRlc3RlZCBieSBmbGlnaHQgd2hlbiBjaGVja2luZyBmb3IgaXRlcmFibGVzXG4gICdAQGl0ZXJhdG9yJyxcbl0pXG4iXSwibmFtZXMiOlsiZGVzY3JpYmVIYXNDaGVja2luZ1N0cmluZ1Byb3BlcnR5IiwiZGVzY3JpYmVTdHJpbmdQcm9wZXJ0eUFjY2VzcyIsIndlbGxLbm93blByb3BlcnRpZXMiLCJpc0RlZmluaXRlbHlBVmFsaWRJZGVudGlmaWVyIiwidGFyZ2V0IiwicHJvcCIsInRlc3QiLCJKU09OIiwic3RyaW5naWZ5Iiwic3RyaW5naWZpZWRQcm9wIiwiU2V0Il0sImlnbm9yZUxpc3QiOltdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///(app-pages-browser)/./node_modules/next/dist/shared/lib/utils/reflect-utils.js\n")); /***/ }) }, /******/ __webpack_require__ => { // webpackRuntimeModules /******/ var __webpack_exec__ = (moduleId) => (__webpack_require__(__webpack_require__.s = moduleId)) /******/ __webpack_require__.O(0, ["main-app"], () => (__webpack_exec__("(app-pages-browser)/./node_modules/next/dist/build/webpack/loaders/next-flight-client-entry-loader.js?modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fbuiltin%2Fglobal-error.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-page.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fclient-segment.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Fhttp-access-fallback%2Ferror-boundary.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Flayout-router.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fclient%2Fcomponents%2Frender-from-template-context.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fframework%2Fboundary-components.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Flib%2Fmetadata%2Fgenerate%2Ficon-mark.js%22%2C%22ids%22%3A%5B%5D%7D&modules=%7B%22request%22%3A%22%2FUsers%2Fpouyanmb%2FDesktop%2Fgit-projects%2Fdigikala-tailwind%2Fnode_modules%2Fnext%2Fdist%2Fnext-devtools%2Fuserspace%2Fapp%2Fsegment-explorer-node.js%22%2C%22ids%22%3A%5B%5D%7D&server=false!"))); /******/ var __webpack_exports__ = __webpack_require__.O(); /******/ _N_E = __webpack_exports__; /******/ } ]);