"use strict"; /* * ATTENTION: An "eval-source-map" devtool has been used. * This devtool is neither made for production nor for readable output files. * It uses "eval()" calls to create a separate source file with attached SourceMaps in the browser devtools. * If you are trying to read the output file, select a different devtool (https://webpack.js.org/configuration/devtool/) * or disable the default devtool with "devtool: false". * If you are looking for production-ready output files, see mode: "production" (https://webpack.js.org/configuration/mode/). */ self["webpackHotUpdate_N_E"]("main",{ /***/ "./node_modules/next/dist/shared/lib/router/router.js": /*!************************************************************!*\ !*** ./node_modules/next/dist/shared/lib/router/router.js ***! \************************************************************/ /***/ (function(module, exports, __webpack_require__) { eval(__webpack_require__.ts("// tslint:disable:no-console\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 createKey: function() {\n return createKey;\n },\n default: function() {\n return Router;\n },\n matchesMiddleware: function() {\n return matchesMiddleware;\n }\n});\nconst _interop_require_default = __webpack_require__(/*! @swc/helpers/_/_interop_require_default */ \"./node_modules/@swc/helpers/esm/_interop_require_default.js\");\nconst _interop_require_wildcard = __webpack_require__(/*! @swc/helpers/_/_interop_require_wildcard */ \"./node_modules/@swc/helpers/esm/_interop_require_wildcard.js\");\nconst _removetrailingslash = __webpack_require__(/*! ./utils/remove-trailing-slash */ \"./node_modules/next/dist/shared/lib/router/utils/remove-trailing-slash.js\");\nconst _routeloader = __webpack_require__(/*! ../../../client/route-loader */ \"./node_modules/next/dist/client/route-loader.js\");\nconst _script = __webpack_require__(/*! ../../../client/script */ \"./node_modules/next/dist/client/script.js\");\nconst _iserror = /*#__PURE__*/ _interop_require_wildcard._(__webpack_require__(/*! ../../../lib/is-error */ \"./node_modules/next/dist/lib/is-error.js\"));\nconst _denormalizepagepath = __webpack_require__(/*! ../page-path/denormalize-page-path */ \"./node_modules/next/dist/shared/lib/page-path/denormalize-page-path.js\");\nconst _normalizelocalepath = __webpack_require__(/*! ../i18n/normalize-locale-path */ \"./node_modules/next/dist/shared/lib/i18n/normalize-locale-path.js\");\nconst _mitt = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ../mitt */ \"./node_modules/next/dist/shared/lib/mitt.js\"));\nconst _utils = __webpack_require__(/*! ../utils */ \"./node_modules/next/dist/shared/lib/utils.js\");\nconst _isdynamic = __webpack_require__(/*! ./utils/is-dynamic */ \"./node_modules/next/dist/shared/lib/router/utils/is-dynamic.js\");\nconst _parserelativeurl = __webpack_require__(/*! ./utils/parse-relative-url */ \"./node_modules/next/dist/shared/lib/router/utils/parse-relative-url.js\");\nconst _resolverewrites = /*#__PURE__*/ _interop_require_default._(__webpack_require__(/*! ./utils/resolve-rewrites */ \"?506d\"));\nconst _routematcher = __webpack_require__(/*! ./utils/route-matcher */ \"./node_modules/next/dist/shared/lib/router/utils/route-matcher.js\");\nconst _routeregex = __webpack_require__(/*! ./utils/route-regex */ \"./node_modules/next/dist/shared/lib/router/utils/route-regex.js\");\nconst _formaturl = __webpack_require__(/*! ./utils/format-url */ \"./node_modules/next/dist/shared/lib/router/utils/format-url.js\");\nconst _detectdomainlocale = __webpack_require__(/*! ../../../client/detect-domain-locale */ \"./node_modules/next/dist/client/detect-domain-locale.js\");\nconst _parsepath = __webpack_require__(/*! ./utils/parse-path */ \"./node_modules/next/dist/shared/lib/router/utils/parse-path.js\");\nconst _addlocale = __webpack_require__(/*! ../../../client/add-locale */ \"./node_modules/next/dist/client/add-locale.js\");\nconst _removelocale = __webpack_require__(/*! ../../../client/remove-locale */ \"./node_modules/next/dist/client/remove-locale.js\");\nconst _removebasepath = __webpack_require__(/*! ../../../client/remove-base-path */ \"./node_modules/next/dist/client/remove-base-path.js\");\nconst _addbasepath = __webpack_require__(/*! ../../../client/add-base-path */ \"./node_modules/next/dist/client/add-base-path.js\");\nconst _hasbasepath = __webpack_require__(/*! ../../../client/has-base-path */ \"./node_modules/next/dist/client/has-base-path.js\");\nconst _resolvehref = __webpack_require__(/*! ../../../client/resolve-href */ \"./node_modules/next/dist/client/resolve-href.js\");\nconst _isapiroute = __webpack_require__(/*! ../../../lib/is-api-route */ \"./node_modules/next/dist/lib/is-api-route.js\");\nconst _getnextpathnameinfo = __webpack_require__(/*! ./utils/get-next-pathname-info */ \"./node_modules/next/dist/shared/lib/router/utils/get-next-pathname-info.js\");\nconst _formatnextpathnameinfo = __webpack_require__(/*! ./utils/format-next-pathname-info */ \"./node_modules/next/dist/shared/lib/router/utils/format-next-pathname-info.js\");\nconst _comparestates = __webpack_require__(/*! ./utils/compare-states */ \"./node_modules/next/dist/shared/lib/router/utils/compare-states.js\");\nconst _islocalurl = __webpack_require__(/*! ./utils/is-local-url */ \"./node_modules/next/dist/shared/lib/router/utils/is-local-url.js\");\nconst _isbot = __webpack_require__(/*! ./utils/is-bot */ \"./node_modules/next/dist/shared/lib/router/utils/is-bot.js\");\nconst _omit = __webpack_require__(/*! ./utils/omit */ \"./node_modules/next/dist/shared/lib/router/utils/omit.js\");\nconst _interpolateas = __webpack_require__(/*! ./utils/interpolate-as */ \"./node_modules/next/dist/shared/lib/router/utils/interpolate-as.js\");\nconst _handlesmoothscroll = __webpack_require__(/*! ./utils/handle-smooth-scroll */ \"./node_modules/next/dist/shared/lib/router/utils/handle-smooth-scroll.js\");\nfunction buildCancellationError() {\n return Object.assign(new Error(\"Route Cancelled\"), {\n cancelled: true\n });\n}\nasync function matchesMiddleware(options) {\n const matchers = await Promise.resolve(options.router.pageLoader.getMiddleware());\n if (!matchers) return false;\n const { pathname: asPathname } = (0, _parsepath.parsePath)(options.asPath);\n // remove basePath first since path prefix has to be in the order of `/${basePath}/${locale}`\n const cleanedAs = (0, _hasbasepath.hasBasePath)(asPathname) ? (0, _removebasepath.removeBasePath)(asPathname) : asPathname;\n const asWithBasePathAndLocale = (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(cleanedAs, options.locale));\n // Check only path match on client. Matching \"has\" should be done on server\n // where we can access more info such as headers, HttpOnly cookie, etc.\n return matchers.some((m)=>new RegExp(m.regexp).test(asWithBasePathAndLocale));\n}\nfunction stripOrigin(url) {\n const origin = (0, _utils.getLocationOrigin)();\n return url.startsWith(origin) ? url.substring(origin.length) : url;\n}\nfunction prepareUrlAs(router, url, as) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n let [resolvedHref, resolvedAs] = (0, _resolvehref.resolveHref)(router, url, true);\n const origin = (0, _utils.getLocationOrigin)();\n const hrefWasAbsolute = resolvedHref.startsWith(origin);\n const asWasAbsolute = resolvedAs && resolvedAs.startsWith(origin);\n resolvedHref = stripOrigin(resolvedHref);\n resolvedAs = resolvedAs ? stripOrigin(resolvedAs) : resolvedAs;\n const preparedUrl = hrefWasAbsolute ? resolvedHref : (0, _addbasepath.addBasePath)(resolvedHref);\n const preparedAs = as ? stripOrigin((0, _resolvehref.resolveHref)(router, as)) : resolvedAs || resolvedHref;\n return {\n url: preparedUrl,\n as: asWasAbsolute ? preparedAs : (0, _addbasepath.addBasePath)(preparedAs)\n };\n}\nfunction resolveDynamicRoute(pathname, pages) {\n const cleanPathname = (0, _removetrailingslash.removeTrailingSlash)((0, _denormalizepagepath.denormalizePagePath)(pathname));\n if (cleanPathname === \"/404\" || cleanPathname === \"/_error\") {\n return pathname;\n }\n // handle resolving href for dynamic routes\n if (!pages.includes(cleanPathname)) {\n // eslint-disable-next-line array-callback-return\n pages.some((page)=>{\n if ((0, _isdynamic.isDynamicRoute)(page) && (0, _routeregex.getRouteRegex)(page).re.test(cleanPathname)) {\n pathname = page;\n return true;\n }\n });\n }\n return (0, _removetrailingslash.removeTrailingSlash)(pathname);\n}\nfunction getMiddlewareData(source, response, options) {\n const nextConfig = {\n basePath: options.router.basePath,\n i18n: {\n locales: options.router.locales\n },\n trailingSlash: Boolean(false)\n };\n const rewriteHeader = response.headers.get(\"x-nextjs-rewrite\");\n let rewriteTarget = rewriteHeader || response.headers.get(\"x-nextjs-matched-path\");\n const matchedPath = response.headers.get(\"x-matched-path\");\n if (matchedPath && !rewriteTarget && !matchedPath.includes(\"__next_data_catchall\") && !matchedPath.includes(\"/_error\") && !matchedPath.includes(\"/404\")) {\n // leverage x-matched-path to detect next.config.js rewrites\n rewriteTarget = matchedPath;\n }\n if (rewriteTarget) {\n if (rewriteTarget.startsWith(\"/\") || false) {\n const parsedRewriteTarget = (0, _parserelativeurl.parseRelativeUrl)(rewriteTarget);\n const pathnameInfo = (0, _getnextpathnameinfo.getNextPathnameInfo)(parsedRewriteTarget.pathname, {\n nextConfig,\n parseData: true\n });\n let fsPathname = (0, _removetrailingslash.removeTrailingSlash)(pathnameInfo.pathname);\n return Promise.all([\n options.router.pageLoader.getPageList(),\n (0, _routeloader.getClientBuildManifest)()\n ]).then((param)=>{\n let [pages, { __rewrites: rewrites }] = param;\n let as = (0, _addlocale.addLocale)(pathnameInfo.pathname, pathnameInfo.locale);\n if ((0, _isdynamic.isDynamicRoute)(as) || !rewriteHeader && pages.includes((0, _normalizelocalepath.normalizeLocalePath)((0, _removebasepath.removeBasePath)(as), options.router.locales).pathname)) {\n const parsedSource = (0, _getnextpathnameinfo.getNextPathnameInfo)((0, _parserelativeurl.parseRelativeUrl)(source).pathname, {\n nextConfig: false ? 0 : nextConfig,\n parseData: true\n });\n as = (0, _addbasepath.addBasePath)(parsedSource.pathname);\n parsedRewriteTarget.pathname = as;\n }\n if (false) {} else if (!pages.includes(fsPathname)) {\n const resolvedPathname = resolveDynamicRoute(fsPathname, pages);\n if (resolvedPathname !== fsPathname) {\n fsPathname = resolvedPathname;\n }\n }\n const resolvedHref = !pages.includes(fsPathname) ? resolveDynamicRoute((0, _normalizelocalepath.normalizeLocalePath)((0, _removebasepath.removeBasePath)(parsedRewriteTarget.pathname), options.router.locales).pathname, pages) : fsPathname;\n if ((0, _isdynamic.isDynamicRoute)(resolvedHref)) {\n const matches = (0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(resolvedHref))(as);\n Object.assign(parsedRewriteTarget.query, matches || {});\n }\n return {\n type: \"rewrite\",\n parsedAs: parsedRewriteTarget,\n resolvedHref\n };\n });\n }\n const src = (0, _parsepath.parsePath)(source);\n const pathname = (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n ...(0, _getnextpathnameinfo.getNextPathnameInfo)(src.pathname, {\n nextConfig,\n parseData: true\n }),\n defaultLocale: options.router.defaultLocale,\n buildId: \"\"\n });\n return Promise.resolve({\n type: \"redirect-external\",\n destination: \"\" + pathname + src.query + src.hash\n });\n }\n const redirectTarget = response.headers.get(\"x-nextjs-redirect\");\n if (redirectTarget) {\n if (redirectTarget.startsWith(\"/\")) {\n const src = (0, _parsepath.parsePath)(redirectTarget);\n const pathname = (0, _formatnextpathnameinfo.formatNextPathnameInfo)({\n ...(0, _getnextpathnameinfo.getNextPathnameInfo)(src.pathname, {\n nextConfig,\n parseData: true\n }),\n defaultLocale: options.router.defaultLocale,\n buildId: \"\"\n });\n return Promise.resolve({\n type: \"redirect-internal\",\n newAs: \"\" + pathname + src.query + src.hash,\n newUrl: \"\" + pathname + src.query + src.hash\n });\n }\n return Promise.resolve({\n type: \"redirect-external\",\n destination: redirectTarget\n });\n }\n return Promise.resolve({\n type: \"next\"\n });\n}\nasync function withMiddlewareEffects(options) {\n const matches = await matchesMiddleware(options);\n if (!matches || !options.fetchData) {\n return null;\n }\n const data = await options.fetchData();\n const effect = await getMiddlewareData(data.dataHref, data.response, options);\n return {\n dataHref: data.dataHref,\n json: data.json,\n response: data.response,\n text: data.text,\n cacheKey: data.cacheKey,\n effect\n };\n}\nconst manualScrollRestoration = false && 0;\nconst SSG_DATA_NOT_FOUND = Symbol(\"SSG_DATA_NOT_FOUND\");\nfunction fetchRetry(url, attempts, options) {\n return fetch(url, {\n // Cookies are required to be present for Next.js' SSG \"Preview Mode\".\n // Cookies may also be required for `getServerSideProps`.\n //\n // > `fetch` won’t send cookies, unless you set the credentials init\n // > option.\n // https://developer.mozilla.org/docs/Web/API/Fetch_API/Using_Fetch\n //\n // > For maximum browser compatibility when it comes to sending &\n // > receiving cookies, always supply the `credentials: 'same-origin'`\n // > option instead of relying on the default.\n // https://github.com/github/fetch#caveats\n credentials: \"same-origin\",\n method: options.method || \"GET\",\n headers: Object.assign({}, options.headers, {\n \"x-nextjs-data\": \"1\"\n })\n }).then((response)=>{\n return !response.ok && attempts > 1 && response.status >= 500 ? fetchRetry(url, attempts - 1, options) : response;\n });\n}\nfunction tryToParseAsJSON(text) {\n try {\n return JSON.parse(text);\n } catch (error) {\n return null;\n }\n}\nfunction fetchNextData(param) {\n let { dataHref, inflightCache, isPrefetch, hasMiddleware, isServerRender, parseJSON, persistCache, isBackground, unstable_skipClientCache } = param;\n const { href: cacheKey } = new URL(dataHref, window.location.href);\n const getData = (params)=>{\n var _params_method;\n return fetchRetry(dataHref, isServerRender ? 3 : 1, {\n headers: Object.assign({}, isPrefetch ? {\n purpose: \"prefetch\"\n } : {}, isPrefetch && hasMiddleware ? {\n \"x-middleware-prefetch\": \"1\"\n } : {}),\n method: (_params_method = params == null ? void 0 : params.method) != null ? _params_method : \"GET\"\n }).then((response)=>{\n if (response.ok && (params == null ? void 0 : params.method) === \"HEAD\") {\n return {\n dataHref,\n response,\n text: \"\",\n json: {},\n cacheKey\n };\n }\n return response.text().then((text)=>{\n if (!response.ok) {\n /**\n * When the data response is a redirect because of a middleware\n * we do not consider it an error. The headers must bring the\n * mapped location.\n * TODO: Change the status code in the handler.\n */ if (hasMiddleware && [\n 301,\n 302,\n 307,\n 308\n ].includes(response.status)) {\n return {\n dataHref,\n response,\n text,\n json: {},\n cacheKey\n };\n }\n if (response.status === 404) {\n var _tryToParseAsJSON;\n if ((_tryToParseAsJSON = tryToParseAsJSON(text)) == null ? void 0 : _tryToParseAsJSON.notFound) {\n return {\n dataHref,\n json: {\n notFound: SSG_DATA_NOT_FOUND\n },\n response,\n text,\n cacheKey\n };\n }\n }\n const error = new Error(\"Failed to load static props\");\n /**\n * We should only trigger a server-side transition if this was\n * caused on a client-side transition. Otherwise, we'd get into\n * an infinite loop.\n */ if (!isServerRender) {\n (0, _routeloader.markAssetError)(error);\n }\n throw error;\n }\n return {\n dataHref,\n json: parseJSON ? tryToParseAsJSON(text) : null,\n response,\n text,\n cacheKey\n };\n });\n }).then((data)=>{\n if (!persistCache || \"development\" !== \"production\" || 0) {\n delete inflightCache[cacheKey];\n }\n return data;\n }).catch((err)=>{\n if (!unstable_skipClientCache) {\n delete inflightCache[cacheKey];\n }\n if (err.message === \"Failed to fetch\" || // firefox\n err.message === \"NetworkError when attempting to fetch resource.\" || // safari\n err.message === \"Load failed\") {\n (0, _routeloader.markAssetError)(err);\n }\n throw err;\n });\n };\n // when skipping client cache we wait to update\n // inflight cache until successful data response\n // this allows racing click event with fetching newer data\n // without blocking navigation when stale data is available\n if (unstable_skipClientCache && persistCache) {\n return getData({}).then((data)=>{\n if (data.response.headers.get(\"x-middleware-cache\") !== \"no-cache\") {\n // only update cache if not marked as no-cache\n inflightCache[cacheKey] = Promise.resolve(data);\n }\n return data;\n });\n }\n if (inflightCache[cacheKey] !== undefined) {\n return inflightCache[cacheKey];\n }\n return inflightCache[cacheKey] = getData(isBackground ? {\n method: \"HEAD\"\n } : {});\n}\nfunction createKey() {\n return Math.random().toString(36).slice(2, 10);\n}\nfunction handleHardNavigation(param) {\n let { url, router } = param;\n // ensure we don't trigger a hard navigation to the same\n // URL as this can end up with an infinite refresh\n if (url === (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(router.asPath, router.locale))) {\n throw new Error(\"Invariant: attempted to hard navigate to the same URL \" + url + \" \" + location.href);\n }\n window.location.href = url;\n}\nconst getCancelledHandler = (param)=>{\n let { route, router } = param;\n let cancelled = false;\n const cancel = router.clc = ()=>{\n cancelled = true;\n };\n const handleCancelled = ()=>{\n if (cancelled) {\n const error = new Error('Abort fetching component for route: \"' + route + '\"');\n error.cancelled = true;\n throw error;\n }\n if (cancel === router.clc) {\n router.clc = null;\n }\n };\n return handleCancelled;\n};\nclass Router {\n reload() {\n window.location.reload();\n }\n /**\n * Go back in history\n */ back() {\n window.history.back();\n }\n /**\n * Go forward in history\n */ forward() {\n window.history.forward();\n }\n /**\n * Performs a `pushState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */ push(url, as, options) {\n if (options === void 0) options = {};\n if (false) {}\n ({ url, as } = prepareUrlAs(this, url, as));\n return this.change(\"pushState\", url, as, options);\n }\n /**\n * Performs a `replaceState` with arguments\n * @param url of the route\n * @param as masks `url` for the browser\n * @param options object you can define `shallow` and other options\n */ replace(url, as, options) {\n if (options === void 0) options = {};\n ({ url, as } = prepareUrlAs(this, url, as));\n return this.change(\"replaceState\", url, as, options);\n }\n async _bfl(as, resolvedAs, locale, skipNavigate) {\n if (true) {\n let matchesBflStatic = false;\n let matchesBflDynamic = false;\n for (const curAs of [\n as,\n resolvedAs\n ]){\n if (curAs) {\n const asNoSlash = (0, _removetrailingslash.removeTrailingSlash)(new URL(curAs, \"http://n\").pathname);\n const asNoSlashLocale = (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(asNoSlash, locale || this.locale));\n if (asNoSlash !== (0, _removetrailingslash.removeTrailingSlash)(new URL(this.asPath, \"http://n\").pathname)) {\n var _this__bfl_s, _this__bfl_s1;\n matchesBflStatic = matchesBflStatic || !!((_this__bfl_s = this._bfl_s) == null ? void 0 : _this__bfl_s.contains(asNoSlash)) || !!((_this__bfl_s1 = this._bfl_s) == null ? void 0 : _this__bfl_s1.contains(asNoSlashLocale));\n for (const normalizedAS of [\n asNoSlash,\n asNoSlashLocale\n ]){\n // if any sub-path of as matches a dynamic filter path\n // it should be hard navigated\n const curAsParts = normalizedAS.split(\"/\");\n for(let i = 0; !matchesBflDynamic && i < curAsParts.length + 1; i++){\n var _this__bfl_d;\n const currentPart = curAsParts.slice(0, i).join(\"/\");\n if (currentPart && ((_this__bfl_d = this._bfl_d) == null ? void 0 : _this__bfl_d.contains(currentPart))) {\n matchesBflDynamic = true;\n break;\n }\n }\n }\n // if the client router filter is matched then we trigger\n // a hard navigation\n if (matchesBflStatic || matchesBflDynamic) {\n if (skipNavigate) {\n return true;\n }\n handleHardNavigation({\n url: (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(as, locale || this.locale, this.defaultLocale)),\n router: this\n });\n return new Promise(()=>{});\n }\n }\n }\n }\n }\n return false;\n }\n async change(method, url, as, options, forcedScroll) {\n var _this_components_pathname;\n if (!(0, _islocalurl.isLocalURL)(url)) {\n handleHardNavigation({\n url,\n router: this\n });\n return false;\n }\n // WARNING: `_h` is an internal option for handing Next.js client-side\n // hydration. Your app should _never_ use this property. It may change at\n // any time without notice.\n const isQueryUpdating = options._h === 1;\n if (!isQueryUpdating && !options.shallow) {\n await this._bfl(as, undefined, options.locale);\n }\n let shouldResolveHref = isQueryUpdating || options._shouldResolveHref || (0, _parsepath.parsePath)(url).pathname === (0, _parsepath.parsePath)(as).pathname;\n const nextState = {\n ...this.state\n };\n // for static pages with query params in the URL we delay\n // marking the router ready until after the query is updated\n // or a navigation has occurred\n const readyStateChange = this.isReady !== true;\n this.isReady = true;\n const isSsr = this.isSsr;\n if (!isQueryUpdating) {\n this.isSsr = false;\n }\n // if a route transition is already in progress before\n // the query updating is triggered ignore query updating\n if (isQueryUpdating && this.clc) {\n return false;\n }\n const prevLocale = nextState.locale;\n if (false) { var _this_locales; }\n // marking route changes as a navigation start entry\n if (_utils.ST) {\n performance.mark(\"routeChange\");\n }\n const { shallow = false, scroll = true } = options;\n const routeProps = {\n shallow\n };\n if (this._inFlightRoute && this.clc) {\n if (!isSsr) {\n Router.events.emit(\"routeChangeError\", buildCancellationError(), this._inFlightRoute, routeProps);\n }\n this.clc();\n this.clc = null;\n }\n as = (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)((0, _hasbasepath.hasBasePath)(as) ? (0, _removebasepath.removeBasePath)(as) : as, options.locale, this.defaultLocale));\n const cleanedAs = (0, _removelocale.removeLocale)((0, _hasbasepath.hasBasePath)(as) ? (0, _removebasepath.removeBasePath)(as) : as, nextState.locale);\n this._inFlightRoute = as;\n const localeChange = prevLocale !== nextState.locale;\n // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\n if (!isQueryUpdating && this.onlyAHashChange(cleanedAs) && !localeChange) {\n nextState.asPath = cleanedAs;\n Router.events.emit(\"hashChangeStart\", as, routeProps);\n // TODO: do we need the resolved href when only a hash change?\n this.changeState(method, url, as, {\n ...options,\n scroll: false\n });\n if (scroll) {\n this.scrollToHash(cleanedAs);\n }\n try {\n await this.set(nextState, this.components[nextState.route], null);\n } catch (err) {\n if ((0, _iserror.default)(err) && err.cancelled) {\n Router.events.emit(\"routeChangeError\", err, cleanedAs, routeProps);\n }\n throw err;\n }\n Router.events.emit(\"hashChangeComplete\", as, routeProps);\n return true;\n }\n let parsed = (0, _parserelativeurl.parseRelativeUrl)(url);\n let { pathname, query } = parsed;\n // The build manifest needs to be loaded before auto-static dynamic pages\n // get their query parameters to allow ensuring they can be parsed properly\n // when rewritten to\n let pages, rewrites;\n try {\n [pages, { __rewrites: rewrites }] = await Promise.all([\n this.pageLoader.getPageList(),\n (0, _routeloader.getClientBuildManifest)(),\n this.pageLoader.getMiddleware()\n ]);\n } catch (err) {\n // If we fail to resolve the page list or client-build manifest, we must\n // do a server-side transition:\n handleHardNavigation({\n url: as,\n router: this\n });\n return false;\n }\n // If asked to change the current URL we should reload the current page\n // (not location.reload() but reload getInitialProps and other Next.js stuffs)\n // We also need to set the method = replaceState always\n // as this should not go into the history (That's how browsers work)\n // We should compare the new asPath to the current asPath, not the url\n if (!this.urlIsNew(cleanedAs) && !localeChange) {\n method = \"replaceState\";\n }\n // we need to resolve the as value using rewrites for dynamic SSG\n // pages to allow building the data URL correctly\n let resolvedAs = as;\n // url and as should always be prefixed with basePath by this\n // point by either next/link or router.push/replace so strip the\n // basePath from the pathname to match the pages dir 1-to-1\n pathname = pathname ? (0, _removetrailingslash.removeTrailingSlash)((0, _removebasepath.removeBasePath)(pathname)) : pathname;\n let route = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n const parsedAsPathname = as.startsWith(\"/\") && (0, _parserelativeurl.parseRelativeUrl)(as).pathname;\n // if we detected the path as app route during prefetching\n // trigger hard navigation\n if ((_this_components_pathname = this.components[pathname]) == null ? void 0 : _this_components_pathname.__appRouter) {\n handleHardNavigation({\n url: as,\n router: this\n });\n return new Promise(()=>{});\n }\n const isMiddlewareRewrite = !!(parsedAsPathname && route !== parsedAsPathname && (!(0, _isdynamic.isDynamicRoute)(route) || !(0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(route))(parsedAsPathname)));\n // we don't attempt resolve asPath when we need to execute\n // middleware as the resolving will occur server-side\n const isMiddlewareMatch = !options.shallow && await matchesMiddleware({\n asPath: as,\n locale: nextState.locale,\n router: this\n });\n if (isQueryUpdating && isMiddlewareMatch) {\n shouldResolveHref = false;\n }\n if (shouldResolveHref && pathname !== \"/_error\") {\n options._shouldResolveHref = true;\n if (false) {} else {\n parsed.pathname = resolveDynamicRoute(pathname, pages);\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname;\n parsed.pathname = (0, _addbasepath.addBasePath)(pathname);\n if (!isMiddlewareMatch) {\n url = (0, _formaturl.formatWithValidation)(parsed);\n }\n }\n }\n }\n if (!(0, _islocalurl.isLocalURL)(as)) {\n if (true) {\n throw new Error('Invalid href: \"' + url + '\" and as: \"' + as + '\", received relative href and external as' + \"\\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as\");\n }\n handleHardNavigation({\n url: as,\n router: this\n });\n return false;\n }\n resolvedAs = (0, _removelocale.removeLocale)((0, _removebasepath.removeBasePath)(resolvedAs), nextState.locale);\n route = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n let routeMatch = false;\n if ((0, _isdynamic.isDynamicRoute)(route)) {\n const parsedAs = (0, _parserelativeurl.parseRelativeUrl)(resolvedAs);\n const asPathname = parsedAs.pathname;\n const routeRegex = (0, _routeregex.getRouteRegex)(route);\n routeMatch = (0, _routematcher.getRouteMatcher)(routeRegex)(asPathname);\n const shouldInterpolate = route === asPathname;\n const interpolatedAs = shouldInterpolate ? (0, _interpolateas.interpolateAs)(route, asPathname, query) : {};\n if (!routeMatch || shouldInterpolate && !interpolatedAs.result) {\n const missingParams = Object.keys(routeRegex.groups).filter((param)=>!query[param] && !routeRegex.groups[param].optional);\n if (missingParams.length > 0 && !isMiddlewareMatch) {\n if (true) {\n console.warn(\"\" + (shouldInterpolate ? \"Interpolating href\" : \"Mismatching `as` and `href`\") + \" failed to manually provide \" + (\"the params: \" + missingParams.join(\", \") + \" in the `href`'s `query`\"));\n }\n throw new Error((shouldInterpolate ? \"The provided `href` (\" + url + \") value is missing query values (\" + missingParams.join(\", \") + \") to be interpolated properly. \" : \"The provided `as` value (\" + asPathname + \") is incompatible with the `href` value (\" + route + \"). \") + (\"Read more: https://nextjs.org/docs/messages/\" + (shouldInterpolate ? \"href-interpolation-failed\" : \"incompatible-href-as\")));\n }\n } else if (shouldInterpolate) {\n as = (0, _formaturl.formatWithValidation)(Object.assign({}, parsedAs, {\n pathname: interpolatedAs.result,\n query: (0, _omit.omit)(query, interpolatedAs.params)\n }));\n } else {\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch);\n }\n }\n if (!isQueryUpdating) {\n Router.events.emit(\"routeChangeStart\", as, routeProps);\n }\n const isErrorRoute = this.pathname === \"/404\" || this.pathname === \"/_error\";\n try {\n var _self___NEXT_DATA___props_pageProps, _self___NEXT_DATA___props, _routeInfo_props;\n let routeInfo = await this.getRouteInfo({\n route,\n pathname,\n query,\n as,\n resolvedAs,\n routeProps,\n locale: nextState.locale,\n isPreview: nextState.isPreview,\n hasMiddleware: isMiddlewareMatch,\n unstable_skipClientCache: options.unstable_skipClientCache,\n isQueryUpdating: isQueryUpdating && !this.isFallback,\n isMiddlewareRewrite\n });\n if (!isQueryUpdating && !options.shallow) {\n await this._bfl(as, \"resolvedAs\" in routeInfo ? routeInfo.resolvedAs : undefined, nextState.locale);\n }\n if (\"route\" in routeInfo && isMiddlewareMatch) {\n pathname = routeInfo.route || route;\n route = pathname;\n if (!routeProps.shallow) {\n query = Object.assign({}, routeInfo.query || {}, query);\n }\n const cleanedParsedPathname = (0, _hasbasepath.hasBasePath)(parsed.pathname) ? (0, _removebasepath.removeBasePath)(parsed.pathname) : parsed.pathname;\n if (routeMatch && pathname !== cleanedParsedPathname) {\n Object.keys(routeMatch).forEach((key)=>{\n if (routeMatch && query[key] === routeMatch[key]) {\n delete query[key];\n }\n });\n }\n if ((0, _isdynamic.isDynamicRoute)(pathname)) {\n const prefixedAs = !routeProps.shallow && routeInfo.resolvedAs ? routeInfo.resolvedAs : (0, _addbasepath.addBasePath)((0, _addlocale.addLocale)(new URL(as, location.href).pathname, nextState.locale), true);\n let rewriteAs = prefixedAs;\n if ((0, _hasbasepath.hasBasePath)(rewriteAs)) {\n rewriteAs = (0, _removebasepath.removeBasePath)(rewriteAs);\n }\n if (false) {}\n const routeRegex = (0, _routeregex.getRouteRegex)(pathname);\n const curRouteMatch = (0, _routematcher.getRouteMatcher)(routeRegex)(new URL(rewriteAs, location.href).pathname);\n if (curRouteMatch) {\n Object.assign(query, curRouteMatch);\n }\n }\n }\n // If the routeInfo brings a redirect we simply apply it.\n if (\"type\" in routeInfo) {\n if (routeInfo.type === \"redirect-internal\") {\n return this.change(method, routeInfo.newUrl, routeInfo.newAs, options);\n } else {\n handleHardNavigation({\n url: routeInfo.destination,\n router: this\n });\n return new Promise(()=>{});\n }\n }\n const component = routeInfo.Component;\n if (component && component.unstable_scriptLoader) {\n const scripts = [].concat(component.unstable_scriptLoader());\n scripts.forEach((script)=>{\n (0, _script.handleClientScriptLoad)(script.props);\n });\n }\n // handle redirect on client-transition\n if ((routeInfo.__N_SSG || routeInfo.__N_SSP) && routeInfo.props) {\n if (routeInfo.props.pageProps && routeInfo.props.pageProps.__N_REDIRECT) {\n // Use the destination from redirect without adding locale\n options.locale = false;\n const destination = routeInfo.props.pageProps.__N_REDIRECT;\n // check if destination is internal (resolves to a page) and attempt\n // client-navigation if it is falling back to hard navigation if\n // it's not\n if (destination.startsWith(\"/\") && routeInfo.props.pageProps.__N_REDIRECT_BASE_PATH !== false) {\n const parsedHref = (0, _parserelativeurl.parseRelativeUrl)(destination);\n parsedHref.pathname = resolveDynamicRoute(parsedHref.pathname, pages);\n const { url: newUrl, as: newAs } = prepareUrlAs(this, destination, destination);\n return this.change(method, newUrl, newAs, options);\n }\n handleHardNavigation({\n url: destination,\n router: this\n });\n return new Promise(()=>{});\n }\n nextState.isPreview = !!routeInfo.props.__N_PREVIEW;\n // handle SSG data 404\n if (routeInfo.props.notFound === SSG_DATA_NOT_FOUND) {\n let notFoundRoute;\n try {\n await this.fetchComponent(\"/404\");\n notFoundRoute = \"/404\";\n } catch (_) {\n notFoundRoute = \"/_error\";\n }\n routeInfo = await this.getRouteInfo({\n route: notFoundRoute,\n pathname: notFoundRoute,\n query,\n as,\n resolvedAs,\n routeProps: {\n shallow: false\n },\n locale: nextState.locale,\n isPreview: nextState.isPreview,\n isNotFound: true\n });\n if (\"type\" in routeInfo) {\n throw new Error(\"Unexpected middleware effect on /404\");\n }\n }\n }\n if (isQueryUpdating && this.pathname === \"/_error\" && ((_self___NEXT_DATA___props = self.__NEXT_DATA__.props) == null ? void 0 : (_self___NEXT_DATA___props_pageProps = _self___NEXT_DATA___props.pageProps) == null ? void 0 : _self___NEXT_DATA___props_pageProps.statusCode) === 500 && ((_routeInfo_props = routeInfo.props) == null ? void 0 : _routeInfo_props.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n routeInfo.props.pageProps.statusCode = 500;\n }\n var _routeInfo_route;\n // shallow routing is only allowed for same page URL changes.\n const isValidShallowRoute = options.shallow && nextState.route === ((_routeInfo_route = routeInfo.route) != null ? _routeInfo_route : route);\n var _options_scroll;\n const shouldScroll = (_options_scroll = options.scroll) != null ? _options_scroll : !isQueryUpdating && !isValidShallowRoute;\n const resetScroll = shouldScroll ? {\n x: 0,\n y: 0\n } : null;\n const upcomingScrollState = forcedScroll != null ? forcedScroll : resetScroll;\n // the new state that the router gonna set\n const upcomingRouterState = {\n ...nextState,\n route,\n pathname,\n query,\n asPath: cleanedAs,\n isFallback: false\n };\n // When the page being rendered is the 404 page, we should only update the\n // query parameters. Route changes here might add the basePath when it\n // wasn't originally present. This is also why this block is before the\n // below `changeState` call which updates the browser's history (changing\n // the URL).\n if (isQueryUpdating && isErrorRoute) {\n var _self___NEXT_DATA___props_pageProps1, _self___NEXT_DATA___props1, _routeInfo_props1;\n routeInfo = await this.getRouteInfo({\n route: this.pathname,\n pathname: this.pathname,\n query,\n as,\n resolvedAs,\n routeProps: {\n shallow: false\n },\n locale: nextState.locale,\n isPreview: nextState.isPreview,\n isQueryUpdating: isQueryUpdating && !this.isFallback\n });\n if (\"type\" in routeInfo) {\n throw new Error(\"Unexpected middleware effect on \" + this.pathname);\n }\n if (this.pathname === \"/_error\" && ((_self___NEXT_DATA___props1 = self.__NEXT_DATA__.props) == null ? void 0 : (_self___NEXT_DATA___props_pageProps1 = _self___NEXT_DATA___props1.pageProps) == null ? void 0 : _self___NEXT_DATA___props_pageProps1.statusCode) === 500 && ((_routeInfo_props1 = routeInfo.props) == null ? void 0 : _routeInfo_props1.pageProps)) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n routeInfo.props.pageProps.statusCode = 500;\n }\n try {\n await this.set(upcomingRouterState, routeInfo, upcomingScrollState);\n } catch (err) {\n if ((0, _iserror.default)(err) && err.cancelled) {\n Router.events.emit(\"routeChangeError\", err, cleanedAs, routeProps);\n }\n throw err;\n }\n return true;\n }\n Router.events.emit(\"beforeHistoryChange\", as, routeProps);\n this.changeState(method, url, as, options);\n // for query updates we can skip it if the state is unchanged and we don't\n // need to scroll\n // https://github.com/vercel/next.js/issues/37139\n const canSkipUpdating = isQueryUpdating && !upcomingScrollState && !readyStateChange && !localeChange && (0, _comparestates.compareRouterStates)(upcomingRouterState, this.state);\n if (!canSkipUpdating) {\n try {\n await this.set(upcomingRouterState, routeInfo, upcomingScrollState);\n } catch (e) {\n if (e.cancelled) routeInfo.error = routeInfo.error || e;\n else throw e;\n }\n if (routeInfo.error) {\n if (!isQueryUpdating) {\n Router.events.emit(\"routeChangeError\", routeInfo.error, cleanedAs, routeProps);\n }\n throw routeInfo.error;\n }\n if (false) {}\n if (!isQueryUpdating) {\n Router.events.emit(\"routeChangeComplete\", as, routeProps);\n }\n // A hash mark # is the optional last part of a URL\n const hashRegex = /#.+$/;\n if (shouldScroll && hashRegex.test(as)) {\n this.scrollToHash(as);\n }\n }\n return true;\n } catch (err) {\n if ((0, _iserror.default)(err) && err.cancelled) {\n return false;\n }\n throw err;\n }\n }\n changeState(method, url, as, options) {\n if (options === void 0) options = {};\n if (true) {\n if (typeof window.history === \"undefined\") {\n console.error(\"Warning: window.history is not available.\");\n return;\n }\n if (typeof window.history[method] === \"undefined\") {\n console.error(\"Warning: window.history.\" + method + \" is not available\");\n return;\n }\n }\n if (method !== \"pushState\" || (0, _utils.getURL)() !== as) {\n this._shallow = options.shallow;\n window.history[method]({\n url,\n as,\n options,\n __N: true,\n key: this._key = method !== \"pushState\" ? this._key : createKey()\n }, // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/docs/Web/API/History/replaceState\n \"\", as);\n }\n }\n async handleRouteInfoError(err, pathname, query, as, routeProps, loadErrorFail) {\n console.error(err);\n if (err.cancelled) {\n // bubble up cancellation errors\n throw err;\n }\n if ((0, _routeloader.isAssetError)(err) || loadErrorFail) {\n Router.events.emit(\"routeChangeError\", err, as, routeProps);\n // If we can't load the page it could be one of following reasons\n // 1. Page doesn't exists\n // 2. Page does exist in a different zone\n // 3. Internal error while loading the page\n // So, doing a hard reload is the proper way to deal with this.\n handleHardNavigation({\n url: as,\n router: this\n });\n // Changing the URL doesn't block executing the current code path.\n // So let's throw a cancellation error stop the routing logic.\n throw buildCancellationError();\n }\n try {\n let props;\n const { page: Component, styleSheets } = await this.fetchComponent(\"/_error\");\n const routeInfo = {\n props,\n Component,\n styleSheets,\n err,\n error: err\n };\n if (!routeInfo.props) {\n try {\n routeInfo.props = await this.getInitialProps(Component, {\n err,\n pathname,\n query\n });\n } catch (gipErr) {\n console.error(\"Error in error page `getInitialProps`: \", gipErr);\n routeInfo.props = {};\n }\n }\n return routeInfo;\n } catch (routeInfoErr) {\n return this.handleRouteInfoError((0, _iserror.default)(routeInfoErr) ? routeInfoErr : new Error(routeInfoErr + \"\"), pathname, query, as, routeProps, true);\n }\n }\n async getRouteInfo(param) {\n let { route: requestedRoute, pathname, query, as, resolvedAs, routeProps, locale, hasMiddleware, isPreview, unstable_skipClientCache, isQueryUpdating, isMiddlewareRewrite, isNotFound } = param;\n /**\n * This `route` binding can change if there's a rewrite\n * so we keep a reference to the original requested route\n * so we can store the cache for it and avoid re-requesting every time\n * for shallow routing purposes.\n */ let route = requestedRoute;\n try {\n var _data_effect, _data_effect1, _data_effect2, _data_response;\n let existingInfo = this.components[route];\n if (routeProps.shallow && existingInfo && this.route === route) {\n return existingInfo;\n }\n const handleCancelled = getCancelledHandler({\n route,\n router: this\n });\n if (hasMiddleware) {\n existingInfo = undefined;\n }\n let cachedRouteInfo = existingInfo && !(\"initial\" in existingInfo) && \"development\" !== \"development\" ? 0 : undefined;\n const isBackground = isQueryUpdating;\n const fetchNextDataParams = {\n dataHref: this.pageLoader.getDataHref({\n href: (0, _formaturl.formatWithValidation)({\n pathname,\n query\n }),\n skipInterpolation: true,\n asPath: isNotFound ? \"/404\" : resolvedAs,\n locale\n }),\n hasMiddleware: true,\n isServerRender: this.isSsr,\n parseJSON: true,\n inflightCache: isBackground ? this.sbc : this.sdc,\n persistCache: !isPreview,\n isPrefetch: false,\n unstable_skipClientCache,\n isBackground\n };\n let data = isQueryUpdating && !isMiddlewareRewrite ? null : await withMiddlewareEffects({\n fetchData: ()=>fetchNextData(fetchNextDataParams),\n asPath: isNotFound ? \"/404\" : resolvedAs,\n locale: locale,\n router: this\n }).catch((err)=>{\n // we don't hard error during query updating\n // as it's un-necessary and doesn't need to be fatal\n // unless it is a fallback route and the props can't\n // be loaded\n if (isQueryUpdating) {\n return null;\n }\n throw err;\n });\n // when rendering error routes we don't apply middleware\n // effects\n if (data && (pathname === \"/_error\" || pathname === \"/404\")) {\n data.effect = undefined;\n }\n if (isQueryUpdating) {\n if (!data) {\n data = {\n json: self.__NEXT_DATA__.props\n };\n } else {\n data.json = self.__NEXT_DATA__.props;\n }\n }\n handleCancelled();\n if ((data == null ? void 0 : (_data_effect = data.effect) == null ? void 0 : _data_effect.type) === \"redirect-internal\" || (data == null ? void 0 : (_data_effect1 = data.effect) == null ? void 0 : _data_effect1.type) === \"redirect-external\") {\n return data.effect;\n }\n if ((data == null ? void 0 : (_data_effect2 = data.effect) == null ? void 0 : _data_effect2.type) === \"rewrite\") {\n const resolvedRoute = (0, _removetrailingslash.removeTrailingSlash)(data.effect.resolvedHref);\n const pages = await this.pageLoader.getPageList();\n // during query updating the page must match although during\n // client-transition a redirect that doesn't match a page\n // can be returned and this should trigger a hard navigation\n // which is valid for incremental migration\n if (!isQueryUpdating || pages.includes(resolvedRoute)) {\n route = resolvedRoute;\n pathname = data.effect.resolvedHref;\n query = {\n ...query,\n ...data.effect.parsedAs.query\n };\n resolvedAs = (0, _removebasepath.removeBasePath)((0, _normalizelocalepath.normalizeLocalePath)(data.effect.parsedAs.pathname, this.locales).pathname);\n // Check again the cache with the new destination.\n existingInfo = this.components[route];\n if (routeProps.shallow && existingInfo && this.route === route && !hasMiddleware) {\n // If we have a match with the current route due to rewrite,\n // we can copy the existing information to the rewritten one.\n // Then, we return the information along with the matched route.\n return {\n ...existingInfo,\n route\n };\n }\n }\n }\n if ((0, _isapiroute.isAPIRoute)(route)) {\n handleHardNavigation({\n url: as,\n router: this\n });\n return new Promise(()=>{});\n }\n const routeInfo = cachedRouteInfo || await this.fetchComponent(route).then((res)=>({\n Component: res.page,\n styleSheets: res.styleSheets,\n __N_SSG: res.mod.__N_SSG,\n __N_SSP: res.mod.__N_SSP\n }));\n if (true) {\n const { isValidElementType } = __webpack_require__(/*! next/dist/compiled/react-is */ \"./node_modules/next/dist/compiled/react-is/index.js\");\n if (!isValidElementType(routeInfo.Component)) {\n throw new Error('The default export is not a React Component in page: \"' + pathname + '\"');\n }\n }\n const wasBailedPrefetch = data == null ? void 0 : (_data_response = data.response) == null ? void 0 : _data_response.headers.get(\"x-middleware-skip\");\n const shouldFetchData = routeInfo.__N_SSG || routeInfo.__N_SSP;\n // For non-SSG prefetches that bailed before sending data\n // we clear the cache to fetch full response\n if (wasBailedPrefetch && (data == null ? void 0 : data.dataHref)) {\n delete this.sdc[data.dataHref];\n }\n const { props, cacheKey } = await this._getData(async ()=>{\n if (shouldFetchData) {\n if ((data == null ? void 0 : data.json) && !wasBailedPrefetch) {\n return {\n cacheKey: data.cacheKey,\n props: data.json\n };\n }\n const dataHref = (data == null ? void 0 : data.dataHref) ? data.dataHref : this.pageLoader.getDataHref({\n href: (0, _formaturl.formatWithValidation)({\n pathname,\n query\n }),\n asPath: resolvedAs,\n locale\n });\n const fetched = await fetchNextData({\n dataHref,\n isServerRender: this.isSsr,\n parseJSON: true,\n inflightCache: wasBailedPrefetch ? {} : this.sdc,\n persistCache: !isPreview,\n isPrefetch: false,\n unstable_skipClientCache\n });\n return {\n cacheKey: fetched.cacheKey,\n props: fetched.json || {}\n };\n }\n return {\n headers: {},\n props: await this.getInitialProps(routeInfo.Component, {\n pathname,\n query,\n asPath: as,\n locale,\n locales: this.locales,\n defaultLocale: this.defaultLocale\n })\n };\n });\n // Only bust the data cache for SSP routes although\n // middleware can skip cache per request with\n // x-middleware-cache: no-cache as well\n if (routeInfo.__N_SSP && fetchNextDataParams.dataHref && cacheKey) {\n delete this.sdc[cacheKey];\n }\n // we kick off a HEAD request in the background\n // when a non-prefetch request is made to signal revalidation\n if (!this.isPreview && routeInfo.__N_SSG && \"development\" !== \"development\" && 0) {}\n props.pageProps = Object.assign({}, props.pageProps);\n routeInfo.props = props;\n routeInfo.route = route;\n routeInfo.query = query;\n routeInfo.resolvedAs = resolvedAs;\n this.components[route] = routeInfo;\n return routeInfo;\n } catch (err) {\n return this.handleRouteInfoError((0, _iserror.getProperError)(err), pathname, query, as, routeProps);\n }\n }\n set(state, data, resetScroll) {\n this.state = state;\n return this.sub(data, this.components[\"/_app\"].Component, resetScroll);\n }\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */ beforePopState(cb) {\n this._bps = cb;\n }\n onlyAHashChange(as) {\n if (!this.asPath) return false;\n const [oldUrlNoHash, oldHash] = this.asPath.split(\"#\", 2);\n const [newUrlNoHash, newHash] = as.split(\"#\", 2);\n // Makes sure we scroll to the provided hash if the url/hash are the same\n if (newHash && oldUrlNoHash === newUrlNoHash && oldHash === newHash) {\n return true;\n }\n // If the urls are change, there's more than a hash change\n if (oldUrlNoHash !== newUrlNoHash) {\n return false;\n }\n // If the hash has changed, then it's a hash only change.\n // This check is necessary to handle both the enter and\n // leave hash === '' cases. The identity case falls through\n // and is treated as a next reload.\n return oldHash !== newHash;\n }\n scrollToHash(as) {\n const [, hash = \"\"] = as.split(\"#\", 2);\n (0, _handlesmoothscroll.handleSmoothScroll)(()=>{\n // Scroll to top if the hash is just `#` with no value or `#top`\n // To mirror browsers\n if (hash === \"\" || hash === \"top\") {\n window.scrollTo(0, 0);\n return;\n }\n // Decode hash to make non-latin anchor works.\n const rawHash = decodeURIComponent(hash);\n // First we check if the element by id is found\n const idEl = document.getElementById(rawHash);\n if (idEl) {\n idEl.scrollIntoView();\n return;\n }\n // If there's no element with the id, we check the `name` property\n // To mirror browsers\n const nameEl = document.getElementsByName(rawHash)[0];\n if (nameEl) {\n nameEl.scrollIntoView();\n }\n }, {\n onlyHashChange: this.onlyAHashChange(as)\n });\n }\n urlIsNew(asPath) {\n return this.asPath !== asPath;\n }\n /**\n * Prefetch page code, you may wait for the data during page rendering.\n * This feature only works in production!\n * @param url the href of prefetched page\n * @param asPath the as path of the prefetched page\n */ async prefetch(url, asPath, options) {\n if (asPath === void 0) asPath = url;\n if (options === void 0) options = {};\n // Prefetch is not supported in development mode because it would trigger on-demand-entries\n if (true) {\n return;\n }\n if ( true && (0, _isbot.isBot)(window.navigator.userAgent)) {\n // No prefetches for bots that render the link since they are typically navigating\n // links via the equivalent of a hard navigation and hence never utilize these\n // prefetches.\n return;\n }\n let parsed = (0, _parserelativeurl.parseRelativeUrl)(url);\n const urlPathname = parsed.pathname;\n let { pathname, query } = parsed;\n const originalPathname = pathname;\n if (false) {}\n const pages = await this.pageLoader.getPageList();\n let resolvedAs = asPath;\n const locale = typeof options.locale !== \"undefined\" ? options.locale || undefined : this.locale;\n const isMiddlewareMatch = await matchesMiddleware({\n asPath: asPath,\n locale: locale,\n router: this\n });\n if (false) {}\n parsed.pathname = resolveDynamicRoute(parsed.pathname, pages);\n if ((0, _isdynamic.isDynamicRoute)(parsed.pathname)) {\n pathname = parsed.pathname;\n parsed.pathname = pathname;\n Object.assign(query, (0, _routematcher.getRouteMatcher)((0, _routeregex.getRouteRegex)(parsed.pathname))((0, _parsepath.parsePath)(asPath).pathname) || {});\n if (!isMiddlewareMatch) {\n url = (0, _formaturl.formatWithValidation)(parsed);\n }\n }\n const data = false ? 0 : await withMiddlewareEffects({\n fetchData: ()=>fetchNextData({\n dataHref: this.pageLoader.getDataHref({\n href: (0, _formaturl.formatWithValidation)({\n pathname: originalPathname,\n query\n }),\n skipInterpolation: true,\n asPath: resolvedAs,\n locale\n }),\n hasMiddleware: true,\n isServerRender: false,\n parseJSON: true,\n inflightCache: this.sdc,\n persistCache: !this.isPreview,\n isPrefetch: true\n }),\n asPath: asPath,\n locale: locale,\n router: this\n });\n /**\n * If there was a rewrite we apply the effects of the rewrite on the\n * current parameters for the prefetch.\n */ if ((data == null ? void 0 : data.effect.type) === \"rewrite\") {\n parsed.pathname = data.effect.resolvedHref;\n pathname = data.effect.resolvedHref;\n query = {\n ...query,\n ...data.effect.parsedAs.query\n };\n resolvedAs = data.effect.parsedAs.pathname;\n url = (0, _formaturl.formatWithValidation)(parsed);\n }\n /**\n * If there is a redirect to an external destination then we don't have\n * to prefetch content as it will be unused.\n */ if ((data == null ? void 0 : data.effect.type) === \"redirect-external\") {\n return;\n }\n const route = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n if (await this._bfl(asPath, resolvedAs, options.locale, true)) {\n this.components[urlPathname] = {\n __appRouter: true\n };\n }\n await Promise.all([\n this.pageLoader._isSsg(route).then((isSsg)=>{\n return isSsg ? fetchNextData({\n dataHref: (data == null ? void 0 : data.json) ? data == null ? void 0 : data.dataHref : this.pageLoader.getDataHref({\n href: url,\n asPath: resolvedAs,\n locale: locale\n }),\n isServerRender: false,\n parseJSON: true,\n inflightCache: this.sdc,\n persistCache: !this.isPreview,\n isPrefetch: true,\n unstable_skipClientCache: options.unstable_skipClientCache || options.priority && !!true\n }).then(()=>false).catch(()=>false) : false;\n }),\n this.pageLoader[options.priority ? \"loadPage\" : \"prefetch\"](route)\n ]);\n }\n async fetchComponent(route) {\n const handleCancelled = getCancelledHandler({\n route,\n router: this\n });\n try {\n const componentResult = await this.pageLoader.loadPage(route);\n handleCancelled();\n return componentResult;\n } catch (err) {\n handleCancelled();\n throw err;\n }\n }\n _getData(fn) {\n let cancelled = false;\n const cancel = ()=>{\n cancelled = true;\n };\n this.clc = cancel;\n return fn().then((data)=>{\n if (cancel === this.clc) {\n this.clc = null;\n }\n if (cancelled) {\n const err = new Error(\"Loading initial props cancelled\");\n err.cancelled = true;\n throw err;\n }\n return data;\n });\n }\n _getFlightData(dataHref) {\n // Do not cache RSC flight response since it's not a static resource\n return fetchNextData({\n dataHref,\n isServerRender: true,\n parseJSON: false,\n inflightCache: this.sdc,\n persistCache: false,\n isPrefetch: false\n }).then((param)=>{\n let { text } = param;\n return {\n data: text\n };\n });\n }\n getInitialProps(Component, ctx) {\n const { Component: App } = this.components[\"/_app\"];\n const AppTree = this._wrapApp(App);\n ctx.AppTree = AppTree;\n return (0, _utils.loadGetInitialProps)(App, {\n AppTree,\n Component,\n router: this,\n ctx\n });\n }\n get route() {\n return this.state.route;\n }\n get pathname() {\n return this.state.pathname;\n }\n get query() {\n return this.state.query;\n }\n get asPath() {\n return this.state.asPath;\n }\n get locale() {\n return this.state.locale;\n }\n get isFallback() {\n return this.state.isFallback;\n }\n get isPreview() {\n return this.state.isPreview;\n }\n constructor(pathname, query, as, { initialProps, pageLoader, App, wrapApp, Component, err, subscription, isFallback, locale, locales, defaultLocale, domainLocales, isPreview }){\n // Server Data Cache (full data requests)\n this.sdc = {};\n // Server Background Cache (HEAD requests)\n this.sbc = {};\n this.isFirstPopStateEvent = true;\n this._key = createKey();\n this.onPopState = (e)=>{\n const { isFirstPopStateEvent } = this;\n this.isFirstPopStateEvent = false;\n const state = e.state;\n if (!state) {\n // We get state as undefined for two reasons.\n // 1. With older safari (< 8) and older chrome (< 34)\n // 2. When the URL changed with #\n //\n // In the both cases, we don't need to proceed and change the route.\n // (as it's already changed)\n // But we can simply replace the state with the new changes.\n // Actually, for (1) we don't need to nothing. But it's hard to detect that event.\n // So, doing the following for (1) does no harm.\n const { pathname, query } = this;\n this.changeState(\"replaceState\", (0, _formaturl.formatWithValidation)({\n pathname: (0, _addbasepath.addBasePath)(pathname),\n query\n }), (0, _utils.getURL)());\n return;\n }\n // __NA is used to identify if the history entry can be handled by the app-router.\n if (state.__NA) {\n window.location.reload();\n return;\n }\n if (!state.__N) {\n return;\n }\n // Safari fires popstateevent when reopening the browser.\n if (isFirstPopStateEvent && this.locale === state.options.locale && state.as === this.asPath) {\n return;\n }\n let forcedScroll;\n const { url, as, options, key } = state;\n if (false) {}\n this._key = key;\n const { pathname } = (0, _parserelativeurl.parseRelativeUrl)(url);\n // Make sure we don't re-render on initial load,\n // can be caused by navigating back from an external site\n if (this.isSsr && as === (0, _addbasepath.addBasePath)(this.asPath) && pathname === (0, _addbasepath.addBasePath)(this.pathname)) {\n return;\n }\n // If the downstream application returns falsy, return.\n // They will then be responsible for handling the event.\n if (this._bps && !this._bps(state)) {\n return;\n }\n this.change(\"replaceState\", url, as, Object.assign({}, options, {\n shallow: options.shallow && this._shallow,\n locale: options.locale || this.defaultLocale,\n // @ts-ignore internal value not exposed on types\n _h: 0\n }), forcedScroll);\n };\n // represents the current component key\n const route = (0, _removetrailingslash.removeTrailingSlash)(pathname);\n // set up the component cache (by route keys)\n this.components = {};\n // We should not keep the cache, if there's an error\n // Otherwise, this cause issues when when going back and\n // come again to the errored page.\n if (pathname !== \"/_error\") {\n this.components[route] = {\n Component,\n initial: true,\n props: initialProps,\n err,\n __N_SSG: initialProps && initialProps.__N_SSG,\n __N_SSP: initialProps && initialProps.__N_SSP\n };\n }\n this.components[\"/_app\"] = {\n Component: App,\n styleSheets: []\n };\n if (true) {\n const { BloomFilter } = __webpack_require__(/*! ../../lib/bloom-filter */ \"./node_modules/next/dist/shared/lib/bloom-filter.js\");\n const routerFilterSValue = {\"numItems\":7,\"errorRate\":0.0001,\"numBits\":135,\"numHashes\":14,\"bitArray\":[1,1,1,1,1,1,0,0,1,0,1,1,1,1,0,1,0,0,0,1,1,0,0,0,0,1,0,0,0,0,1,1,1,0,0,1,0,0,1,0,0,1,1,1,0,1,0,1,0,0,1,0,0,0,1,1,1,0,1,0,1,0,0,1,1,0,1,0,0,0,1,0,1,0,1,1,0,1,1,0,1,1,0,1,1,1,1,1,1,0,0,0,1,0,1,0,1,0,0,0,0,1,1,1,1,1,0,0,1,0,0,0,0,0,1,1,1,1,0,1,0,0,1,0,1,0,1,1,1,1,1,1,1,0,0]};\n const staticFilterData = routerFilterSValue ? routerFilterSValue : undefined;\n const routerFilterDValue = {\"numItems\":0,\"errorRate\":0.0001,\"numBits\":0,\"numHashes\":null,\"bitArray\":[]};\n const dynamicFilterData = routerFilterDValue ? routerFilterDValue : undefined;\n if (staticFilterData == null ? void 0 : staticFilterData.numHashes) {\n this._bfl_s = new BloomFilter(staticFilterData.numItems, staticFilterData.errorRate);\n this._bfl_s.import(staticFilterData);\n }\n if (dynamicFilterData == null ? void 0 : dynamicFilterData.numHashes) {\n this._bfl_d = new BloomFilter(dynamicFilterData.numItems, dynamicFilterData.errorRate);\n this._bfl_d.import(dynamicFilterData);\n }\n }\n // Backwards compat for Router.router.events\n // TODO: Should be remove the following major version as it was never documented\n this.events = Router.events;\n this.pageLoader = pageLoader;\n // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n const autoExportDynamic = (0, _isdynamic.isDynamicRoute)(pathname) && self.__NEXT_DATA__.autoExport;\n this.basePath = false || \"\";\n this.sub = subscription;\n this.clc = null;\n this._wrapApp = wrapApp;\n // make sure to ignore extra popState in safari on navigating\n // back from external site\n this.isSsr = true;\n this.isLocaleDomain = false;\n this.isReady = !!(self.__NEXT_DATA__.gssp || self.__NEXT_DATA__.gip || self.__NEXT_DATA__.isExperimentalCompile || self.__NEXT_DATA__.appGip && !self.__NEXT_DATA__.gsp || !autoExportDynamic && !self.location.search && !false);\n if (false) {}\n this.state = {\n route,\n pathname,\n query,\n asPath: autoExportDynamic ? pathname : as,\n isPreview: !!isPreview,\n locale: false ? 0 : undefined,\n isFallback\n };\n this._initialMatchesMiddlewarePromise = Promise.resolve(false);\n if (true) {\n // make sure \"as\" doesn't start with double slashes or else it can\n // throw an error as it's considered invalid\n if (!as.startsWith(\"//\")) {\n // in order for `e.state` to work on the `onpopstate` event\n // we have to register the initial route upon initialization\n const options = {\n locale\n };\n const asPath = (0, _utils.getURL)();\n this._initialMatchesMiddlewarePromise = matchesMiddleware({\n router: this,\n locale,\n asPath\n }).then((matches)=>{\n options._shouldResolveHref = as !== pathname;\n this.changeState(\"replaceState\", matches ? asPath : (0, _formaturl.formatWithValidation)({\n pathname: (0, _addbasepath.addBasePath)(pathname),\n query\n }), asPath, options);\n return matches;\n });\n }\n window.addEventListener(\"popstate\", this.onPopState);\n // enable custom scroll restoration handling when available\n // otherwise fallback to browser's default handling\n if (false) {}\n }\n }\n}\nRouter.events = (0, _mitt.default)(); //# sourceMappingURL=router.js.map\n\n\n;\n // Wrapped in an IIFE to avoid polluting the global scope\n ;\n (function () {\n var _a, _b;\n // Legacy CSS implementations will `eval` browser code in a Node.js context\n // to extract CSS. For backwards compatibility, we need to check we're in a\n // browser context before continuing.\n if (typeof self !== 'undefined' &&\n // AMP / No-JS mode does not inject these helpers:\n '$RefreshHelpers$' in self) {\n // @ts-ignore __webpack_module__ is global\n var currentExports = module.exports;\n // @ts-ignore __webpack_module__ is global\n var prevSignature = (_b = (_a = module.hot.data) === null || _a === void 0 ? void 0 : _a.prevSignature) !== null && _b !== void 0 ? _b : null;\n // This cannot happen in MainTemplate because the exports mismatch between\n // templating and execution.\n self.$RefreshHelpers$.registerExportsForReactRefresh(currentExports, module.id);\n // A module can be accepted automatically based on its exports, e.g. when\n // it is a Refresh Boundary.\n if (self.$RefreshHelpers$.isReactRefreshBoundary(currentExports)) {\n // Save the previous exports signature on update so we can compare the boundary\n // signatures. We avoid saving exports themselves since it causes memory leaks (https://github.com/vercel/next.js/pull/53797)\n module.hot.dispose(function (data) {\n data.prevSignature =\n self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports);\n });\n // Unconditionally accept an update to this module, we'll check if it's\n // still a Refresh Boundary later.\n // @ts-ignore importMeta is replaced in the loader\n module.hot.accept();\n // This field is set when the previous version of this module was a\n // Refresh Boundary, letting us know we need to check for invalidation or\n // enqueue an update.\n if (prevSignature !== null) {\n // A boundary can become ineligible if its exports are incompatible\n // with the previous exports.\n //\n // For example, if you add/remove/change exports, we'll want to\n // re-execute the importing modules, and force those components to\n // re-render. Similarly, if you convert a class component to a\n // function, we want to invalidate the boundary.\n if (self.$RefreshHelpers$.shouldInvalidateReactRefreshBoundary(prevSignature, self.$RefreshHelpers$.getRefreshBoundarySignature(currentExports))) {\n module.hot.invalidate();\n }\n else {\n self.$RefreshHelpers$.scheduleUpdate();\n }\n }\n }\n else {\n // Since we just executed the code for the module, it's possible that the\n // new exports made it ineligible for being a boundary.\n // We only care about the case when we were _previously_ a boundary,\n // because we already accepted this update (accidental side effect).\n var isNoLongerABoundary = prevSignature !== null;\n if (isNoLongerABoundary) {\n module.hot.invalidate();\n }\n }\n }\n })();\n//# sourceURL=[module]\n//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiLi9ub2RlX21vZHVsZXMvbmV4dC9kaXN0L3NoYXJlZC9saWIvcm91dGVyL3JvdXRlci5qcyIsIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7Ozs7Ozs7Ozs7Ozs7SUFtbUJaQSxXQUFTO2VBQVRBOzs7ZUFpREtDOztJQTNqQkNDLG1CQUFpQjtlQUFqQkE7Ozs7O2lEQS9FYzt5Q0FLN0I7b0NBQ2dDOytFQUNDO2lEQUNKO2lEQUNBOzJFQUNuQjttQ0FDa0Q7dUNBQ3BDOzhDQUNFO3NGQUNMOzBDQUNJO3dDQUNGO3VDQUNPO2dEQUNGO3VDQUNUO3VDQUNBOzBDQUNHOzRDQUNFO3lDQUNIO3lDQUNBO3lDQUNBO3dDQUNEO2lEQUNTO29EQUNHOzJDQUNIO3dDQUNUO21DQUNMO2tDQUNEOzJDQUNTO2dEQUNLO0FBZ0NuQyxTQUFTQztJQUNQLE9BQU9DLE9BQU9DLE1BQU0sQ0FBQyxJQUFJQyxNQUFNLG9CQUFvQjtRQUNqREMsV0FBVztJQUNiO0FBQ0Y7QUFTTyxlQUFlTCxrQkFDcEJNLE9BQWtDO0lBRWxDLE1BQU1DLFdBQVcsTUFBTUMsUUFBUUMsT0FBTyxDQUNwQ0gsUUFBUUksTUFBTSxDQUFDQyxVQUFVLENBQUNDLGFBQWE7SUFFekMsSUFBSSxDQUFDTCxVQUFVLE9BQU87SUFFdEIsTUFBTSxFQUFFTSxVQUFVQyxVQUFVLEVBQUUsR0FBR0MsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBUyxFQUFDVCxRQUFRVSxNQUFNO0lBQ3pELDZGQUE2RjtJQUM3RixNQUFNQyxZQUFZQyxDQUFBQSxHQUFBQSxhQUFBQSxXQUFXLEVBQUNKLGNBQzFCSyxDQUFBQSxHQUFBQSxnQkFBQUEsY0FBYyxFQUFDTCxjQUNmQTtJQUNKLE1BQU1NLDBCQUEwQkMsQ0FBQUEsR0FBQUEsYUFBQUEsV0FBVyxFQUN6Q0MsQ0FBQUEsR0FBQUEsV0FBQUEsU0FBUyxFQUFDTCxXQUFXWCxRQUFRaUIsTUFBTTtJQUdyQywyRUFBMkU7SUFDM0UsdUVBQXVFO0lBQ3ZFLE9BQU9oQixTQUFTaUIsSUFBSSxDQUFDLENB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QW1EO1lBQ25ELElBQUlqVSxLQUFxQyxFQUFFLEVBSTNDO1FBQ0Y7SUFDRjtBQStuREY7QUE5MkRxQmpFLE9BNkNaOE8sTUFBQUEsR0FBbUMrSyxDQUFBQSxHQUFBQSxNQUFBQSxPQUFBQSIsInNvdXJjZXMiOlsid2VicGFjazovL19OX0UvLi4vLi4vLi4vLi4vc3JjL3NoYXJlZC9saWIvcm91dGVyL3JvdXRlci50cz9lZGZmIl0sIm5hbWVzIjpbImNyZWF0ZUtleSIsIlJvdXRlciIsIm1hdGNoZXNNaWRkbGV3YXJlIiwiYnVpbGRDYW5jZWxsYXRpb25FcnJvciIsIk9iamVjdCIsImFzc2lnbiIsIkVycm9yIiwiY2FuY2VsbGVkIiwib3B0aW9ucyIsIm1hdGNoZXJzIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyb3V0ZXIiLCJwYWdlTG9hZGVyIiwiZ2V0TWlkZGxld2FyZSIsInBhdGhuYW1lIiwiYXNQYXRobmFtZSIsInBhcnNlUGF0aCIsImFzUGF0aCIsImNsZWFuZWRBcyIsImhhc0Jhc2VQYXRoIiwicmVtb3ZlQmFzZVBhdGgiLCJhc1dpdGhCYXNlUGF0aEFuZExvY2FsZSIsImFkZEJhc2VQYXRoIiwiYWRkTG9jYWxlIiwibG9jYWxlIiwic29tZSIsIm0iLCJSZWdFeHAiLCJyZWdleHAiLCJ0ZXN0Iiwic3RyaXBPcmlnaW4iLCJ1cmwiLCJvcmlnaW4iLCJnZXRMb2NhdGlvbk9yaWdpbiIsInN0YXJ0c1dpdGgiLCJzdWJzdHJpbmciLCJsZW5ndGgiLCJwcmVwYXJlVXJsQXMiLCJhcyIsInJlc29sdmVkSHJlZiIsInJlc29sdmVkQXMiLCJyZXNvbHZlSHJlZiIsImhyZWZXYXNBYnNvbHV0ZSIsImFzV2FzQWJzb2x1dGUiLCJwcmVwYXJlZFVybCIsInByZXBhcmVkQXMiLCJyZXNvbHZlRHluYW1pY1JvdXRlIiwicGFnZXMiLCJjbGVhblBhdGhuYW1lIiwicmVtb3ZlVHJhaWxpbmdTbGFzaCIsImRlbm9ybWFsaXplUGFnZVBhdGgiLCJpbmNsdWRlcyIsInBhZ2UiLCJpc0R5bmFtaWNSb3V0ZSIsImdldFJvdXRlUmVnZXgiLCJyZSIsImdldE1pZGRsZXdhcmVEYXRhIiwic291cmNlIiwicmVzcG9uc2UiLCJuZXh0Q29uZmlnIiwiYmFzZVBhdGgiLCJpMThuIiwibG9jYWxlcyIsInRyYWlsaW5nU2xhc2giLCJCb29sZWFuIiwicHJvY2VzcyIsImVudiIsIl9fTkVYVF9UUkFJTElOR19TTEFTSCIsInJld3JpdGVIZWFkZXIiLCJoZWFkZXJzIiwiZ2V0IiwicmV3cml0ZVRhcmdldCIsIm1hdGNoZWRQYXRoIiwiX19ORVhUX0VYVEVSTkFMX01JRERMRVdBUkVfUkVXUklURV9SRVNPTFZFIiwicGFyc2VkUmV3cml0ZVRhcmdldCIsInBhcnNlUmVsYXRpdmVVcmwiLCJwYXRobmFtZUluZm8iLCJnZXROZXh0UGF0aG5hbWVJbmZvIiwicGFyc2VEYXRhIiwiZnNQYXRobmFtZSIsImFsbCIsImdldFBhZ2VMaXN0IiwiZ2V0Q2xpZW50QnVpbGRNYW5pZmVzdCIsInRoZW4iLCJwYXJhbSIsIl9fcmV3cml0ZXMiLCJyZXdyaXRlcyIsIm5vcm1hbGl6ZUxvY2FsZVBhdGgiLCJwYXJzZWRTb3VyY2UiLCJfX05FWFRfSEFTX1JFV1JJVEVTIiwidW5kZWZpbmVkIiwicmVzdWx0IiwicmVzb2x2ZVJld3JpdGVzIiwicXVlcnkiLCJwYXRoIiwibWF0Y2hlZFBhZ2UiLCJwYXJzZWRBcyIsInJlc29sdmVkUGF0aG5hbWUiLCJtYXRjaGVzIiwiZ2V0Um91dGVNYXRjaGVyIiwidHlwZSIsInNyYyIsImZvcm1hdE5leHRQYXRobmFtZUluZm8iLCJkZWZhdWx0TG9jYWxlIiwiYnVpbGRJZCIsImRlc3RpbmF0aW9uIiwiaGFzaCIsInJlZGlyZWN0VGFyZ2V0IiwibmV3QXMiLCJuZXdVcmwiLCJ3aXRoTWlkZGxld2FyZUVmZmVjdHMiLCJmZXRjaERhdGEiLCJkYXRhIiwiZWZmZWN0IiwiZGF0YUhyZWYiLCJqc29uIiwidGV4dCIsImNhY2hlS2V5IiwibWFudWFsU2Nyb2xsUmVzdG9yYXRpb24iLCJfX05FWFRfU0NST0xMX1JFU1RPUkFUSU9OIiwid2luZG93IiwiaGlzdG9yeSIsInYiLCJzZXNzaW9uU3RvcmFnZSIsInNldEl0ZW0iLCJyZW1vdmVJdGVtIiwibiIsIlNTR19EQVRBX05PVF9GT1VORCIsIlN5bWJvbCIsImZldGNoUmV0cnkiLCJhdHRlbXB0cyIsImZldGNoIiwiY3JlZGVudGlhbHMiLCJtZXRob2QiLCJvayIsInN0YXR1cyIsInRyeVRvUGFyc2VBc0pTT04iLCJKU09OIiwicGFyc2UiLCJlcnJvciIsImZldGNoTmV4dERhdGEiLCJpbmZsaWdodENhY2hlIiwiaXNQcmVmZXRjaCIsImhhc01pZGRsZXdhcmUiLCJpc1NlcnZlclJlbmRlciIsInBhcnNlSlNPTiIsInBlcnNpc3RDYWNoZSIsImlzQmFja2dyb3VuZCIsInVuc3RhYmxlX3NraXBDbGllbnRDYWNoZSIsImhyZWYiLCJVUkwiLCJsb2NhdGlvbiIsImdldERhdGEiLCJwYXJhbXMiLCJwdXJwb3NlIiwibm90Rm91bmQiLCJtYXJrQXNzZXRFcnJvciIsImNhdGNoIiwiZXJyIiwibWVzc2FnZSIsIk1hdGgiLCJyYW5kb20iLCJ0b1N0cmluZyIsInNsaWNlIiwiaGFuZGxlSGFyZE5hdmlnYXRpb24iLCJnZXRDYW5jZWxsZWRIYW5kbGVyIiwicm91dGUiLCJjYW5jZWwiLCJjbGMiLCJoYW5kbGVDYW5jZWxsZWQiLCJyZWxvYWQiLCJiYWNrIiwiZm9yd2FyZCIsInB1c2giLCJfa2V5Iiwic3RyaW5naWZ5IiwieCIsInNlbGYiLCJwYWdlWE9mZnNldCIsInkiLCJwYWdlWU9mZnNldCIsImUiLCJjaGFuZ2UiLCJyZXBsYWNlIiwiX2JmbCIsInNraXBOYXZpZ2F0ZSIsIl9fTkVYVF9DTElFTlRfUk9VVEVSX0ZJTFRFUl9FTkFCTEVEIiwibWF0Y2hlc0JmbFN0YXRpYyIsIm1hdGNoZXNCZmxEeW5hbWljIiwiY3VyQXMiLCJhc05vU2xhc2giLCJhc05vU2xhc2hMb2NhbGUiLCJfdGhpc19fYmZsX3MiLCJfdGhpc19fYmZsX3MxIiwiX2JmbF9zIiwiY29udGFpbnMiLCJub3JtYWxpemVkQVMiLCJjdXJBc1BhcnRzIiwic3BsaXQiLCJpIiwiX3RoaXNfX2JmbF9kIiwiY3VycmVudFBhcnQiLCJqb2luIiwiX2JmbF9kIiwiZm9yY2VkU2Nyb2xsIiwiX3RoaXNfY29tcG9uZW50c19wYXRobmFtZSIsImlzTG9jYWxVUkwiLCJpc1F1ZXJ5VXBkYXRpbmciLCJfaCIsInNoYWxsb3ciLCJzaG91bGRSZXNvbHZlSHJlZiIsIl9zaG91bGRSZXNvbHZlSHJlZiIsIm5leHRTdGF0ZSIsInN0YXRlIiwicmVhZHlTdGF0ZUNoYW5nZSIsImlzUmVhZHkiLCJpc1NzciIsInByZXZMb2NhbGUiLCJfX05FWFRfSTE4Tl9TVVBQT1JUIiwibG9jYWxlUGF0aFJlc3VsdCIsImRldGVjdGVkTG9jYWxlIiwiZm9ybWF0V2l0aFZhbGlkYXRpb24iLCJkaWROYXZpZ2F0ZSIsIl90aGlzX2xvY2FsZXMiLCJkZXRlY3RlZERvbWFpbiIsImRldGVjdERvbWFpbkxvY2FsZSIsImRvbWFpbkxvY2FsZXMiLCJpc0xvY2FsZURvbWFpbiIsImhvc3RuYW1lIiwiZG9tYWluIiwiYXNOb0Jhc2VQYXRoIiwiaHR0cCIsIlNUIiwicGVyZm9ybWFuY2UiLCJtYXJrIiwic2Nyb2xsIiwicm91dGVQcm9wcyIsIl9pbkZsaWdodFJvdXRlIiwiZXZlbnRzIiwiZW1pdCIsInJlbW92ZUxvY2FsZSIsImxvY2FsZUNoYW5nZSIsIm9ubHlBSGFzaENoYW5nZSIsImNoYW5nZVN0YXRlIiwic2Nyb2xsVG9IYXNoIiwic2V0IiwiY29tcG9uZW50cyIsImlzRXJyb3IiLCJwYXJzZWQiLCJ1cmxJc05ldyIsInBhcnNlZEFzUGF0aG5hbWUiLCJfX2FwcFJvdXRlciIsImlzTWlkZGxld2FyZVJld3JpdGUiLCJpc01pZGRsZXdhcmVNYXRjaCIsInJld3JpdGVzUmVzdWx0IiwicCIsImV4dGVybmFsRGVzdCIsInJvdXRlTWF0Y2giLCJyb3V0ZVJlZ2V4Iiwic2hvdWxkSW50ZXJwb2xhdGUiLCJpbnRlcnBvbGF0ZWRBcyIsImludGVycG9sYXRlQXMiLCJtaXNzaW5nUGFyYW1zIiwia2V5cyIsImdyb3VwcyIsImZpbHRlciIsIm9wdGlvbmFsIiwiY29uc29sZSIsIndhcm4iLCJvbWl0IiwiaXNFcnJvclJvdXRlIiwicm91dGVJbmZvIiwiZ2V0Um91dGVJbmZvIiwiaXNQcmV2aWV3IiwiaXNGYWxsYmFjayIsImNsZWFuZWRQYXJzZWRQYXRobmFtZSIsImZvckVhY2giLCJrZXkiLCJwcmVmaXhlZEFzIiwicmV3cml0ZUFzIiwibG9jYWxlUmVzdWx0IiwiY3VyUm91dGVNYXRjaCIsImNvbXBvbmVudCIsIkNvbXBvbmVudCIsInVuc3RhYmxlX3NjcmlwdExvYWRlciIsInNjcmlwdHMiLCJjb25jYXQiLCJzY3JpcHQiLCJoYW5kbGVDbGllbnRTY3JpcHRMb2FkIiwicHJvcHMiLCJfX05fU1NHIiwiX19OX1NTUCIsInBhZ2VQcm9wcyIsIl9fTl9SRURJUkVDVCIsIl9fTl9SRURJUkVDVF9CQVNFX1BBVEgiLCJwYXJzZWRIcmVmIiwiX19OX1BSRVZJRVciLCJub3RGb3VuZFJvdXRlIiwiZmV0Y2hDb21wb25lbnQiLCJfIiwiaXNOb3RGb3VuZCIsIl9fTkVYVF9EQVRBX18iLCJzdGF0dXNDb2RlIiwiaXNWYWxpZFNoYWxsb3dSb3V0ZSIsInNob3VsZFNjcm9sbCIsInJlc2V0U2Nyb2xsIiwidXBjb21pbmdTY3JvbGxTdGF0ZSIsInVwY29taW5nUm91dGVyU3RhdGUiLCJjYW5Ta2lwVXBkYXRpbmciLCJjb21wYXJlUm91dGVyU3RhdGVzIiwiZG9jdW1lbnQiLCJkb2N1bWVudEVsZW1lbnQiLCJsYW5nIiwiaGFzaFJlZ2V4IiwiZ2V0VVJMIiwiX3NoYWxsb3ciLCJfX04iLCJoYW5kbGVSb3V0ZUluZm9FcnJvciIsImxvYWRFcnJvckZhaWwiLCJpc0Fzc2V0RXJyb3IiLCJzdHlsZVNoZWV0cyIsImdldEluaXRpYWxQcm9wcyIsImdpcEVyciIsInJvdXRlSW5mb0VyciIsInJlcXVlc3RlZFJvdXRlIiwiZXhpc3RpbmdJbmZvIiwiY2FjaGVkUm91dGVJbmZvIiwiZmV0Y2hOZXh0RGF0YVBhcmFtcyIsImdldERhdGFIcmVmIiwic2tpcEludGVycG9sYXRpb24iLCJzYmMiLCJzZGMiLCJyZXNvbHZlZFJvdXRlIiwiaXNBUElSb3V0ZSIsInJlcyIsIm1vZCIsImlzVmFsaWRFbGVtZW50VHlwZSIsInJlcXVpcmUiLCJ3YXNCYWlsZWRQcmVmZXRjaCIsInNob3VsZEZldGNoRGF0YSIsIl9nZXREYXRhIiwiZmV0Y2hlZCIsImdldFByb3BlckVycm9yIiwic3ViIiwiYmVmb3JlUG9wU3RhdGUiLCJjYiIsIl9icHMiLCJvbGRVcmxOb0hhc2giLCJvbGRIYXNoIiwibmV3VXJsTm9IYXNoIiwibmV3SGFzaCIsImhhbmRsZVNtb290aFNjcm9sbCIsInNjcm9sbFRvIiwicmF3SGFzaCIsImRlY29kZVVSSUNvbXBvbmVudCIsImlkRWwiLCJnZXRFbGVtZW50QnlJZCIsInNjcm9sbEludG9WaWV3IiwibmFtZUVsIiwiZ2V0RWxlbWVudHNCeU5hbWUiLCJvbmx5SGFzaENoYW5nZSIsInByZWZldGNoIiwiaXNCb3QiLCJuYXZpZ2F0b3IiLCJ1c2VyQWdlbnQiLCJ1cmxQYXRobmFtZSIsIm9yaWdpbmFsUGF0aG5hbWUiLCJfX05FWFRfTUlERExFV0FSRV9QUkVGRVRDSCIsIl9pc1NzZyIsImlzU3NnIiwicHJpb3JpdHkiLCJfX05FWFRfT1BUSU1JU1RJQ19DTElFTlRfQ0FDSEUiLCJjb21wb25lbnRSZXN1bHQiLCJsb2FkUGFnZSIsImZuIiwiX2dldEZsaWdodERhdGEiLCJjdHgiLCJBcHAiLCJBcHBUcmVlIiwiX3dyYXBBcHAiLCJsb2FkR2V0SW5pdGlhbFByb3BzIiwiY29uc3RydWN0b3IiLCJpbml0aWFsUHJvcHMiLCJ3cmFwQXBwIiwic3Vic2NyaXB0aW9uIiwiaXNGaXJzdFBvcFN0YXRlRXZlbnQiLCJvblBvcFN0YXRlIiwiX19OQSIsImdldEl0ZW0iLCJpbml0aWFsIiwiQmxvb21GaWx0ZXIiLCJyb3V0ZXJGaWx0ZXJTVmFsdWUiLCJfX05FWFRfQ0xJRU5UX1JPVVRFUl9TX0ZJTFRFUiIsInN0YXRpY0ZpbHRlckRhdGEiLCJyb3V0ZXJGaWx0ZXJEVmFsdWUiLCJfX05FWFRfQ0xJRU5UX1JPVVRFUl9EX0ZJTFRFUiIsImR5bmFtaWNGaWx0ZXJEYXRhIiwibnVtSGFzaGVzIiwibnVtSXRlbXMiLCJlcnJvclJhdGUiLCJpbXBvcnQiLCJhdXRvRXhwb3J0RHluYW1pYyIsImF1dG9FeHBvcnQiLCJfX05FWFRfUk9VVEVSX0JBU0VQQVRIIiwiZ3NzcCIsImdpcCIsImlzRXhwZXJpbWVudGFsQ29tcGlsZSIsImFwcEdpcCIsImdzcCIsInNlYXJjaCIsIl9pbml0aWFsTWF0Y2hlc01pZGRsZXdhcmVQcm9taXNlIiwiYWRkRXZlbnRMaXN0ZW5lciIsInNjcm9sbFJlc3RvcmF0aW9uIiwibWl0dCJdLCJzb3VyY2VSb290IjoiIn0=\n//# sourceURL=webpack-internal:///./node_modules/next/dist/shared/lib/router/router.js\n")); /***/ }) });