{"version":3,"sources":["webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/classCallCheck.js","webpack://_N_E/../../../../../next-server/lib/router/utils/is-dynamic.ts","webpack://_N_E/../../client/with-router.tsx","webpack://_N_E/../../client/request-idle-callback.ts","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/toArray.js","webpack://_N_E/../../../../../next-server/lib/router/utils/querystring.ts","webpack://_N_E/../../../../next-server/lib/i18n/normalize-locale-path.ts","webpack://_N_E/./node_modules/core-js/modules/es.parse-int.js","webpack://_N_E/./node_modules/core-js/modules/es.object.get-own-property-descriptor.js","webpack://_N_E/../../../../../next-server/lib/router/utils/format-url.ts","webpack://_N_E/../../../../../next-server/lib/router/utils/prepare-destination.ts","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/interopRequireWildcard.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/typeof.js","webpack://_N_E/./node_modules/core-js/internals/native-url.js","webpack://_N_E/./node_modules/core-js/modules/es.weak-map.js","webpack://_N_E/./node_modules/core-js/internals/string-repeat.js","webpack://_N_E/./node_modules/core-js/internals/same-value.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","webpack://_N_E/./node_modules/core-js/modules/web.url.js","webpack://_N_E/./node_modules/core-js/modules/es.string.starts-with.js","webpack://_N_E/../../../../../next-server/lib/router/utils/get-asset-path-from-route.ts","webpack://_N_E/../../../../../next-server/lib/router/utils/path-match.ts","webpack://_N_E/../../client/route-loader.ts","webpack://_N_E/./node_modules/core-js/modules/es.string.repeat.js","webpack://_N_E/../../../../../next-server/lib/router/utils/resolve-rewrites.ts","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/arrayWithHoles.js","webpack://_N_E/./node_modules/core-js/modules/es.object.entries.js","webpack://_N_E/./node_modules/core-js/modules/es.string.sub.js","webpack://_N_E/./node_modules/core-js/modules/es.regexp.constructor.js","webpack://_N_E/./node_modules/core-js/internals/whitespaces.js","webpack://_N_E/./node_modules/core-js/internals/string-trim.js","webpack://_N_E/../../client/normalize-trailing-slash.ts","webpack://_N_E/./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://_N_E/./node_modules/core-js/internals/object-assign.js","webpack://_N_E/../../../../../next-server/lib/router/utils/route-regex.ts","webpack://_N_E/./node_modules/core-js/internals/object-to-array.js","webpack://_N_E/./node_modules/core-js/modules/es.date.now.js","webpack://_N_E/../../../next-server/lib/mitt.ts","webpack://_N_E/../../../../next-server/lib/router/router.ts","webpack://_N_E/../../../next-server/lib/utils.ts","webpack://_N_E/../../../../../next-server/lib/router/utils/route-matcher.ts","webpack://_N_E/./node_modules/core-js/modules/es.string.search.js","webpack://_N_E/../../../../../next-server/lib/router/utils/parse-relative-url.ts","webpack://_N_E/./node_modules/core-js/internals/create-html.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/createClass.js","webpack://_N_E/./node_modules/core-js/modules/es.string.ends-with.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/isNativeReflectConstruct.js","webpack://_N_E/./node_modules/core-js/modules/web.url-search-params.js","webpack://_N_E/./node_modules/core-js/internals/get-iterator.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","webpack://_N_E/../../client/router.ts","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/defineProperty.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/nonIterableRest.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/construct.js","webpack://_N_E/../../../next-server/lib/router-context.ts","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/asyncToGenerator.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/setPrototypeOf.js","webpack://_N_E/./node_modules/core-js/internals/collection-weak.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/iterableToArray.js","webpack://_N_E/./node_modules/core-js/internals/string-html-forced.js","webpack://_N_E/./node_modules/core-js/modules/es.object.create.js","webpack://_N_E/./node_modules/core-js/modules/es.object.from-entries.js","webpack://_N_E/./node_modules/core-js/internals/number-parse-int.js","webpack://_N_E/./node_modules/next/dist/next-server/server/denormalize-page-path.js","webpack://_N_E/./node_modules/core-js/modules/es.object.assign.js","webpack://_N_E/(webpack)/path-to-regexp/index.js","webpack://_N_E/./node_modules/next/node_modules/@babel/runtime/helpers/slicedToArray.js"],"names":["module","exports","instance","Constructor","TypeError","route","TEST_ROUTE","router","WithRouterWrapper","ComposedComponent","getInitialProps","requestIdleCallback","self","start","Date","setTimeout","cb","didTimeout","timeRemaining","Math","cancelIdleCallback","id","clearTimeout","arrayWithHoles","iterableToArray","unsupportedIterableToArray","nonIterableRest","arr","stringifyUrlQueryParam","param","isNaN","String","query","searchParams","Array","result","Object","value","item","searchParamsList","key","target","pathnameParts","pathname","locales","locale","detectedLocale","$","parseIntImplementation","global","forced","parseInt","fails","toIndexedObject","nativeGetOwnPropertyDescriptor","f","DESCRIPTORS","FAILS_ON_PRIMITIVES","stat","sham","getOwnPropertyDescriptor","it","urlObj","protocol","hash","host","auth","encodeURIComponent","hostname","querystring","search","slashedProtocols","params","has","hasItem","req","getSafeParamName","matcher","RegExp","matches","groupKey","parsedDestination","hadLocale","destination","parseRelativeUrl","URL","searchParamsToUrlQuery","port","href","destQuery","destPath","destPathParamKeys","pathToRegexp","destPathParams","destinationCompiler","validate","strOrArray","compileNonPath","paramKeys","name","appendParamsToQuery","newUrl","err","paramName","newParamName","i","charCode","_typeof","_getRequireWildcardCache","WeakMap","cache","obj","__esModule","get","newObj","hasPropertyDescriptor","defineProperty","prototype","hasOwnProperty","call","desc","set","len","length","arr2","Symbol","iterator","constructor","wellKnownSymbol","IS_PURE","ITERATOR","url","forEach","toJSON","sort","URLSearchParams","username","undefined","InternalWeakMap","redefineAll","InternalMetadataModule","collection","collectionWeak","isObject","enforceIternalState","enforce","NATIVE_WEAK_MAP","IS_IE11","ActiveXObject","isExtensible","wrapper","init","this","arguments","$WeakMap","getConstructor","REQUIRED","WeakMapPrototype","nativeDelete","nativeHas","nativeGet","nativeSet","state","frozen","toInteger","requireObjectCoercible","count","str","n","Infinity","RangeError","is","x","y","arrayLikeToArray","o","minLen","toString","slice","from","test","EOF","USE_NATIVE_URL","defineProperties","redefine","anInstance","assign","arrayFrom","codeAt","toASCII","setToStringTag","URLSearchParamsModule","InternalStateModule","NativeURL","getInternalSearchParamsState","getState","setInternalState","getInternalURLState","getterFor","floor","pow","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","input","codePoints","index","charAt","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","number","ipv4","parts","split","pop","push","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","serializeHost","ignore0","unshift","join","ipv6","maxIndex","maxLength","currStart","currLength","findLongestZeroSequence","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","code","specialSchemes","ftp","file","http","https","ws","wss","scheme","includesCredentials","password","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","string","normalized","second","startsWithWindowsDriveLetter","third","shortenURLsPath","path","pathSize","isSingleDot","segment","toLowerCase","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","base","bufferCodePoints","failure","buffer","seenAt","seenBracket","seenPasswordToken","fragment","replace","codePoint","encodedCodePoints","shift","URLConstructor","baseState","that","urlString","type","searchParamsState","updateSearchParams","updateURL","serializeURL","origin","getOrigin","getProtocol","getUsername","getPassword","getHost","getHostname","getPort","getPathname","getSearch","getSearchParams","getHash","URLPrototype","output","error","accessorDescriptor","getter","setter","configurable","enumerable","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","apply","toLength","notARegExp","correctIsRegExpLogic","$startsWith","startsWith","min","CORRECT_IS_REGEXP_LOGIC","proto","descriptor","writable","searchString","ext","matcherOptions","sensitive","delimiter","customRouteMatcherOptions","strict","customRoute","keys","matcherRegex","res","ASSET_LOAD_ERROR","withFuture","entry","map","Promise","prom","resolve","resolver","future","generator","canPrefetch","link","document","window","hasPrefetch","markAssetError","resolvePromiseWithTimeout","cancelled","p","r","reject","getClientBuildManifest","Error","getFilesForRoute","manifest","allFiles","assetPrefix","encodeURI","scripts","v","css","entrypoints","loadedScripts","styleSheets","routes","script","process","appendScript","fetch","text","content","whenEntrypoint","onEntrypoint","fn","component","old","loadRoute","entrypoint","styles","prefetch","cn","navigator","repeat","matchedPage","parsedAs","fsPathname","removePathTrailingSlash","normalizeLocalePath","delBasePath","handleRewrite","rewrite","customRouteMatcher","hasParams","matchHas","headers","cookies","destRes","asPath","pages","resolvedHref","resolveHref","finished","rewrites","isArray","$entries","entries","O","createHTML","forcedStringHTMLMethod","sub","isForced","inheritIfRequired","getOwnPropertyNames","isRegExp","getFlags","stickyHelpers","enforceInternalState","setSpecies","MATCH","NativeRegExp","RegExpPrototype","re1","re2","CORRECT_NEW","UNSUPPORTED_Y","RegExpWrapper","pattern","flags","sticky","thisIsRegExp","patternIsRegExp","flagsAreUndefined","source","indexOf","proxy","whitespace","ltrim","rtrim","createMethod","TYPE","$this","end","trim","normalizePathTrailingSlash","maxInt","regexNonASCII","regexSeparators","OVERFLOW_ERROR","stringFromCharCode","fromCharCode","digitToBasic","digit","adapt","delta","numPoints","firstTime","k","baseMinusTMin","encode","currentValue","inputLength","counter","charCodeAt","extra","ucs2decode","bias","basicLength","handledCPCount","m","handledCPCountPlusOne","q","t","qMinusT","baseMinusT","label","encoded","labels","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","toObject","IndexedObject","$assign","b","A","B","symbol","alphabet","chr","T","argumentsLength","getOwnPropertySymbols","propertyIsEnumerable","S","concat","j","segments","normalizedRoute","groups","groupIndex","parameterizedRoute","optional","parseParameter","pos","re","TO_ENTRIES","values","now","getTime","all","on","off","emit","handler","buildCancellationError","addLocale","delLocale","pathNoQueryHash","queryIndex","hashIndex","hasBasePath","addBasePath","prefix","addPathPrefix","isLocalURL","locationOrigin","resolved","_","interpolateAs","interpolatedRoute","dynamicRegex","getRouteRegex","dynamicGroups","dynamicMatches","asPathname","getRouteMatcher","replaced","omitParmsFromQuery","filteredQuery","currentPath","urlAsString","formatWithValidation","resolveAs","finalUrl","interpolatedAs","isDynamicRoute","stripOrigin","prepareUrlAs","hrefHadOrigin","asHadOrigin","resolvedAs","preparedUrl","preparedAs","as","resolveDynamicRoute","cleanPathname","denormalizePagePath","page","SSG_DATA_NOT_FOUND","fetchRetry","credentials","attempts","data","notFound","fetchNextData","dataHref","isServerRender","Router","basePath","components","sdc","sdr","clc","pageLoader","_bps","events","_wrapApp","isSsr","isFallback","_inFlightRoute","_shallow","defaultLocale","domainLocales","isReady","isPreview","isLocaleDomain","_idx","e","shallow","options","Component","initial","props","__N_SSG","initialProps","__N_SSP","autoExportDynamic","change","localeChange","ST","performance","routeProps","cleanedAs","onlyAHashChange","parsed","__rewrites","urlIsNew","method","rewritesResult","routeRegex","routeMatch","shouldInterpolate","missingParams","getRouteInfo","routeInfo","parsedHref","newAs","fetchComponent","notFoundRoute","isValidShallowRoute","forcedScroll","getURL","__N","idx","isAssetError","handleRouteInfoError","existingRouteInfo","cachedRouteInfo","then","getDataHref","_getData","notify","newHash","oldUrlNoHash","oldHash","idEl","nameEl","_isSsg","isSsg","cancel","loadPage","componentResult","resourceKey","AppTree","ctx","loadGetInitialProps","used","getLocationOrigin","formatUrl","getDisplayName","isResSent","App","pageProps","message","SP","decode","decodeURIComponent","slugName","g","fixRegExpWellKnownSymbolLogic","anObject","sameValue","regExpExec","SEARCH","nativeSearch","maybeCallNative","regexp","searcher","done","rx","previousLastIndex","lastIndex","globalBase","resolvedBase","quot","tag","attribute","p1","_defineProperties","protoProps","staticProps","$endsWith","endsWith","endPosition","Reflect","construct","Proxy","getBuiltIn","createIteratorConstructor","hasOwn","bind","classof","create","createPropertyDescriptor","getIterator","getIteratorMethod","$fetch","Headers","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","find","replacer","match","serialize","parseSearchParams","attributes","validateArgumentsLength","passed","required","URLSearchParamsIterator","kind","step","next","URLSearchParamsConstructor","iteratorMethod","entryIterator","entryNext","first","URLSearchParamsPrototype","append","splice","getAll","found","val","entriesIndex","sliceIndex","callback","boundFunction","body","args","_arr","_n","_d","_e","_s","_i","React","RouterContext","_router","coreMethodFields","field","singletonRouter","readyCallbacks","ready","urlPropertyFields","getRouter","routerEvents","event","eventField","_singletonRouter","setPrototypeOf","isNativeReflectConstruct","_construct","Parent","Class","a","Function","asyncGeneratorStep","gen","_next","_throw","arg","info","_setPrototypeOf","__proto__","getWeakData","iterate","ArrayIterationModule","$has","internalStateGetterFor","findIndex","uncaughtFrozenStore","store","UncaughtFrozenStore","findUncaughtFrozen","CONSTRUCTOR_NAME","IS_MAP","ADDER","C","iterable","AS_ENTRIES","getInternalState","define","add","iter","METHOD_NAME","createProperty","fromEntries","whitespaces","$parseInt","hex","FORCED","normalizePathSep","parse","tokens","lexer","_a","prefixes","defaultPattern","escapeString","tryConsume","mustConsume","nextType","consumeText","suffix","modifier","name_1","pattern_1","tokensToFunction","reFlags","_b","token","typeOfMessage","regexpToFunction","exec","_loop_1","tokensToRegexp","_c","tokens_1","mod","endToken","isEndDelimited","regexpToRegexp","paths","arrayToRegexp","stringToRegexp","compile","iterableToArrayLimit"],"mappings":"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","file":"static/chunks/5706252e3966dfafe6cea96c71b46da6fc49fa90.b317e205e9c446c4a7a8.js","sourcesContent":["function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;","// Identify /[param]/ in route string\nconst TEST_ROUTE = /\\/\\[[^/]+?\\](?=\\/|$)/\n\nexport function isDynamicRoute(route: string): boolean {\n return TEST_ROUTE.test(route)\n}\n","import React from 'react'\nimport { NextComponentType, NextPageContext } from '../next-server/lib/utils'\nimport { NextRouter, useRouter } from './router'\n\nexport type WithRouterProps = {\n router: NextRouter\n}\n\nexport type ExcludeRouterProps

= Pick<\n P,\n Exclude\n>\n\nexport default function withRouter<\n P extends WithRouterProps,\n C = NextPageContext\n>(\n ComposedComponent: NextComponentType\n): React.ComponentType> {\n function WithRouterWrapper(props: any): JSX.Element {\n return \n }\n\n WithRouterWrapper.getInitialProps = ComposedComponent.getInitialProps\n // This is needed to allow checking for custom getInitialProps in _app\n ;(WithRouterWrapper as any).origGetInitialProps = (ComposedComponent as any).origGetInitialProps\n if (process.env.NODE_ENV !== 'production') {\n const name =\n ComposedComponent.displayName || ComposedComponent.name || 'Unknown'\n WithRouterWrapper.displayName = `withRouter(${name})`\n }\n\n return WithRouterWrapper\n}\n","type RequestIdleCallbackHandle = any\ntype RequestIdleCallbackOptions = {\n timeout: number\n}\ntype RequestIdleCallbackDeadline = {\n readonly didTimeout: boolean\n timeRemaining: () => number\n}\n\ndeclare global {\n interface Window {\n requestIdleCallback: (\n callback: (deadline: RequestIdleCallbackDeadline) => void,\n opts?: RequestIdleCallbackOptions\n ) => RequestIdleCallbackHandle\n cancelIdleCallback: (id: RequestIdleCallbackHandle) => void\n }\n}\n\nexport const requestIdleCallback =\n (typeof self !== 'undefined' && self.requestIdleCallback) ||\n function (\n cb: (deadline: RequestIdleCallbackDeadline) => void\n ): NodeJS.Timeout {\n let start = Date.now()\n return setTimeout(function () {\n cb({\n didTimeout: false,\n timeRemaining: function () {\n return Math.max(0, 50 - (Date.now() - start))\n },\n })\n }, 1)\n }\n\nexport const cancelIdleCallback =\n (typeof self !== 'undefined' && self.cancelIdleCallback) ||\n function (id: RequestIdleCallbackHandle) {\n return clearTimeout(id)\n }\n","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArray = require(\"./iterableToArray\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _toArray(arr) {\n return arrayWithHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableRest();\n}\n\nmodule.exports = _toArray;","import { ParsedUrlQuery } from 'querystring'\n\nexport function searchParamsToUrlQuery(\n searchParams: URLSearchParams\n): ParsedUrlQuery {\n const query: ParsedUrlQuery = {}\n searchParams.forEach((value, key) => {\n if (typeof query[key] === 'undefined') {\n query[key] = value\n } else if (Array.isArray(query[key])) {\n ;(query[key] as string[]).push(value)\n } else {\n query[key] = [query[key] as string, value]\n }\n })\n return query\n}\n\nfunction stringifyUrlQueryParam(param: string): string {\n if (\n typeof param === 'string' ||\n (typeof param === 'number' && !isNaN(param)) ||\n typeof param === 'boolean'\n ) {\n return String(param)\n } else {\n return ''\n }\n}\n\nexport function urlQueryToSearchParams(\n urlQuery: ParsedUrlQuery\n): URLSearchParams {\n const result = new URLSearchParams()\n Object.entries(urlQuery).forEach(([key, value]) => {\n if (Array.isArray(value)) {\n value.forEach((item) => result.append(key, stringifyUrlQueryParam(item)))\n } else {\n result.set(key, stringifyUrlQueryParam(value))\n }\n })\n return result\n}\n\nexport function assign(\n target: URLSearchParams,\n ...searchParamsList: URLSearchParams[]\n): URLSearchParams {\n searchParamsList.forEach((searchParams) => {\n Array.from(searchParams.keys()).forEach((key) => target.delete(key))\n searchParams.forEach((value, key) => target.append(key, value))\n })\n return target\n}\n","export function normalizeLocalePath(\n pathname: string,\n locales?: string[]\n): {\n detectedLocale?: string\n pathname: string\n} {\n let detectedLocale: string | undefined\n // first item will be empty string from splitting at first char\n const pathnameParts = pathname.split('/')\n\n ;(locales || []).some((locale) => {\n if (pathnameParts[1].toLowerCase() === locale.toLowerCase()) {\n detectedLocale = locale\n pathnameParts.splice(1, 1)\n pathname = pathnameParts.join('/') || '/'\n return true\n }\n return false\n })\n\n return {\n pathname,\n detectedLocale,\n }\n}\n","var $ = require('../internals/export');\nvar parseIntImplementation = require('../internals/number-parse-int');\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\n$({ global: true, forced: parseInt != parseIntImplementation }, {\n parseInt: parseIntImplementation\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar nativeGetOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetOwnPropertyDescriptor(1); });\nvar FORCED = !DESCRIPTORS || FAILS_ON_PRIMITIVES;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\n$({ target: 'Object', stat: true, forced: FORCED, sham: !DESCRIPTORS }, {\n getOwnPropertyDescriptor: function getOwnPropertyDescriptor(it, key) {\n return nativeGetOwnPropertyDescriptor(toIndexedObject(it), key);\n }\n});\n","// Format function modified from nodejs\n// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nimport { UrlObject } from 'url'\nimport { ParsedUrlQuery } from 'querystring'\nimport * as querystring from './querystring'\n\nconst slashedProtocols = /https?|ftp|gopher|file/\n\nexport function formatUrl(urlObj: UrlObject) {\n let { auth, hostname } = urlObj\n let protocol = urlObj.protocol || ''\n let pathname = urlObj.pathname || ''\n let hash = urlObj.hash || ''\n let query = urlObj.query || ''\n let host: string | false = false\n\n auth = auth ? encodeURIComponent(auth).replace(/%3A/i, ':') + '@' : ''\n\n if (urlObj.host) {\n host = auth + urlObj.host\n } else if (hostname) {\n host = auth + (~hostname.indexOf(':') ? `[${hostname}]` : hostname)\n if (urlObj.port) {\n host += ':' + urlObj.port\n }\n }\n\n if (query && typeof query === 'object') {\n query = String(querystring.urlQueryToSearchParams(query as ParsedUrlQuery))\n }\n\n let search = urlObj.search || (query && `?${query}`) || ''\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':'\n\n if (\n urlObj.slashes ||\n ((!protocol || slashedProtocols.test(protocol)) && host !== false)\n ) {\n host = '//' + (host || '')\n if (pathname && pathname[0] !== '/') pathname = '/' + pathname\n } else if (!host) {\n host = ''\n }\n\n if (hash && hash[0] !== '#') hash = '#' + hash\n if (search && search[0] !== '?') search = '?' + search\n\n pathname = pathname.replace(/[?#]/g, encodeURIComponent)\n search = search.replace('#', '%23')\n\n return `${protocol}${host}${pathname}${search}${hash}`\n}\n","import { IncomingMessage } from 'http'\nimport { ParsedUrlQuery } from 'querystring'\nimport { searchParamsToUrlQuery } from './querystring'\nimport { parseRelativeUrl } from './parse-relative-url'\nimport * as pathToRegexp from 'next/dist/compiled/path-to-regexp'\nimport { RouteHas } from '../../../../lib/load-custom-routes'\n\ntype Params = { [param: string]: any }\n\n// ensure only a-zA-Z are used for param names for proper interpolating\n// with path-to-regexp\nexport const getSafeParamName = (paramName: string) => {\n let newParamName = ''\n\n for (let i = 0; i < paramName.length; i++) {\n const charCode = paramName.charCodeAt(i)\n\n if (\n (charCode > 64 && charCode < 91) || // A-Z\n (charCode > 96 && charCode < 123) // a-z\n ) {\n newParamName += paramName[i]\n }\n }\n return newParamName\n}\n\nexport function matchHas(\n req: IncomingMessage,\n has: RouteHas[],\n query: Params\n): false | Params {\n const params: Params = {}\n const allMatch = has.every((hasItem) => {\n let value: undefined | string\n let key = hasItem.key\n\n switch (hasItem.type) {\n case 'header': {\n key = key!.toLowerCase()\n value = req.headers[key] as string\n break\n }\n case 'cookie': {\n value = (req as any).cookies[hasItem.key]\n break\n }\n case 'query': {\n value = query[key!]\n break\n }\n case 'host': {\n const { host } = req?.headers || {}\n // remove port from host if present\n const hostname = host?.split(':')[0].toLowerCase()\n value = hostname\n break\n }\n default: {\n break\n }\n }\n\n if (!hasItem.value && value) {\n params[getSafeParamName(key!)] = value\n return true\n } else if (value) {\n const matcher = new RegExp(`^${hasItem.value}$`)\n const matches = value.match(matcher)\n\n if (matches) {\n if (matches.groups) {\n Object.keys(matches.groups).forEach((groupKey) => {\n params[groupKey] = matches.groups![groupKey]\n })\n } else if (hasItem.type === 'host' && matches[0]) {\n params.host = matches[0]\n }\n return true\n }\n }\n return false\n })\n\n if (allMatch) {\n return params\n }\n return false\n}\n\nexport function compileNonPath(value: string, params: Params): string {\n if (!value.includes(':')) {\n return value\n }\n\n for (const key of Object.keys(params)) {\n if (value.includes(`:${key}`)) {\n value = value\n .replace(\n new RegExp(`:${key}\\\\*`, 'g'),\n `:${key}--ESCAPED_PARAM_ASTERISKS`\n )\n .replace(\n new RegExp(`:${key}\\\\?`, 'g'),\n `:${key}--ESCAPED_PARAM_QUESTION`\n )\n .replace(new RegExp(`:${key}\\\\+`, 'g'), `:${key}--ESCAPED_PARAM_PLUS`)\n .replace(\n new RegExp(`:${key}(?!\\\\w)`, 'g'),\n `--ESCAPED_PARAM_COLON${key}`\n )\n }\n }\n value = value\n .replace(/(:|\\*|\\?|\\+|\\(|\\)|\\{|\\})/g, '\\\\$1')\n .replace(/--ESCAPED_PARAM_PLUS/g, '+')\n .replace(/--ESCAPED_PARAM_COLON/g, ':')\n .replace(/--ESCAPED_PARAM_QUESTION/g, '?')\n .replace(/--ESCAPED_PARAM_ASTERISKS/g, '*')\n\n // the value needs to start with a forward-slash to be compiled\n // correctly\n return pathToRegexp\n .compile(`/${value}`, { validate: false })(params)\n .substr(1)\n}\n\nexport default function prepareDestination(\n destination: string,\n params: Params,\n query: ParsedUrlQuery,\n appendParamsToQuery: boolean\n) {\n let parsedDestination: {\n query?: ParsedUrlQuery\n protocol?: string\n hostname?: string\n port?: string\n } & ReturnType = {} as any\n\n // clone query so we don't modify the original\n query = Object.assign({}, query)\n const hadLocale = query.__nextLocale\n delete query.__nextLocale\n delete query.__nextDefaultLocale\n\n if (destination.startsWith('/')) {\n parsedDestination = parseRelativeUrl(destination)\n } else {\n const {\n pathname,\n searchParams,\n hash,\n hostname,\n port,\n protocol,\n search,\n href,\n } = new URL(destination)\n\n parsedDestination = {\n pathname,\n query: searchParamsToUrlQuery(searchParams),\n hash,\n protocol,\n hostname,\n port,\n search,\n href,\n }\n }\n\n const destQuery = parsedDestination.query\n const destPath = `${parsedDestination.pathname!}${\n parsedDestination.hash || ''\n }`\n const destPathParamKeys: pathToRegexp.Key[] = []\n pathToRegexp.pathToRegexp(destPath, destPathParamKeys)\n\n const destPathParams = destPathParamKeys.map((key) => key.name)\n\n let destinationCompiler = pathToRegexp.compile(\n destPath,\n // we don't validate while compiling the destination since we should\n // have already validated before we got to this point and validating\n // breaks compiling destinations with named pattern params from the source\n // e.g. /something:hello(.*) -> /another/:hello is broken with validation\n // since compile validation is meant for reversing and not for inserting\n // params from a separate path-regex into another\n { validate: false }\n )\n let newUrl\n\n // update any params in query values\n for (const [key, strOrArray] of Object.entries(destQuery)) {\n let value = Array.isArray(strOrArray) ? strOrArray[0] : strOrArray\n if (value) {\n // the value needs to start with a forward-slash to be compiled\n // correctly\n value = compileNonPath(value, params)\n }\n destQuery[key] = value\n }\n\n // add path params to query if it's not a redirect and not\n // already defined in destination query or path\n let paramKeys = Object.keys(params)\n\n // remove internal param for i18n\n if (hadLocale) {\n paramKeys = paramKeys.filter((name) => name !== 'nextInternalLocale')\n }\n\n if (\n appendParamsToQuery &&\n !paramKeys.some((key) => destPathParams.includes(key))\n ) {\n for (const key of paramKeys) {\n if (!(key in destQuery)) {\n destQuery[key] = params[key]\n }\n }\n }\n\n try {\n newUrl = destinationCompiler(params)\n\n const [pathname, hash] = newUrl.split('#')\n parsedDestination.pathname = pathname\n parsedDestination.hash = `${hash ? '#' : ''}${hash || ''}`\n delete (parsedDestination as any).search\n } catch (err) {\n if (err.message.match(/Expected .*? to not repeat, but got an array/)) {\n throw new Error(\n `To use a multi-match in the destination you must add \\`*\\` at the end of the param name to signify it should repeat. https://nextjs.org/docs/messages/invalid-multi-match`\n )\n }\n throw err\n }\n\n // Query merge order lowest priority to highest\n // 1. initial URL query values\n // 2. path segment values\n // 3. destination specified query values\n parsedDestination.query = {\n ...query,\n ...parsedDestination.query,\n }\n\n return {\n newUrl,\n parsedDestination,\n }\n}\n","var _typeof = require(\"@babel/runtime/helpers/typeof\");\n\nfunction _getRequireWildcardCache() {\n if (typeof WeakMap !== \"function\") return null;\n var cache = new WeakMap();\n\n _getRequireWildcardCache = function _getRequireWildcardCache() {\n return cache;\n };\n\n return cache;\n}\n\nfunction _interopRequireWildcard(obj) {\n if (obj && obj.__esModule) {\n return obj;\n }\n\n if (obj === null || _typeof(obj) !== \"object\" && typeof obj !== \"function\") {\n return {\n \"default\": obj\n };\n }\n\n var cache = _getRequireWildcardCache();\n\n if (cache && cache.has(obj)) {\n return cache.get(obj);\n }\n\n var newObj = {};\n var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;\n\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;\n\n if (desc && (desc.get || desc.set)) {\n Object.defineProperty(newObj, key, desc);\n } else {\n newObj[key] = obj[key];\n }\n }\n }\n\n newObj[\"default\"] = obj;\n\n if (cache) {\n cache.set(obj, newObj);\n }\n\n return newObj;\n}\n\nmodule.exports = _interopRequireWildcard;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://тест').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","'use strict';\nvar global = require('../internals/global');\nvar redefineAll = require('../internals/redefine-all');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\nvar isObject = require('../internals/is-object');\nvar enforceIternalState = require('../internals/internal-state').enforce;\nvar NATIVE_WEAK_MAP = require('../internals/native-weak-map');\n\nvar IS_IE11 = !global.ActiveXObject && 'ActiveXObject' in global;\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar isExtensible = Object.isExtensible;\nvar InternalWeakMap;\n\nvar wrapper = function (init) {\n return function WeakMap() {\n return init(this, arguments.length ? arguments[0] : undefined);\n };\n};\n\n// `WeakMap` constructor\n// https://tc39.es/ecma262/#sec-weakmap-constructor\nvar $WeakMap = module.exports = collection('WeakMap', wrapper, collectionWeak);\n\n// IE11 WeakMap frozen keys fix\n// We can't use feature detection because it crash some old IE builds\n// https://github.com/zloirock/core-js/issues/485\nif (NATIVE_WEAK_MAP && IS_IE11) {\n InternalWeakMap = collectionWeak.getConstructor(wrapper, 'WeakMap', true);\n InternalMetadataModule.REQUIRED = true;\n var WeakMapPrototype = $WeakMap.prototype;\n var nativeDelete = WeakMapPrototype['delete'];\n var nativeHas = WeakMapPrototype.has;\n var nativeGet = WeakMapPrototype.get;\n var nativeSet = WeakMapPrototype.set;\n redefineAll(WeakMapPrototype, {\n 'delete': function (key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeDelete.call(this, key) || state.frozen['delete'](key);\n } return nativeDelete.call(this, key);\n },\n has: function has(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) || state.frozen.has(key);\n } return nativeHas.call(this, key);\n },\n get: function get(key) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n return nativeHas.call(this, key) ? nativeGet.call(this, key) : state.frozen.get(key);\n } return nativeGet.call(this, key);\n },\n set: function set(key, value) {\n if (isObject(key) && !isExtensible(key)) {\n var state = enforceIternalState(this);\n if (!state.frozen) state.frozen = new InternalWeakMap();\n nativeHas.call(this, key) ? nativeSet.call(this, key, value) : state.frozen.set(key, value);\n } else nativeSet.call(this, key, value);\n return this;\n }\n });\n}\n","'use strict';\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = String(requireObjectCoercible(this));\n var result = '';\n var n = toInteger(count);\n if (n < 0 || n == Infinity) throw RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var arrayLikeToArray = require(\"./arrayLikeToArray\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:?@[\\\\]]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:?@[\\\\]]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar $startsWith = ''.startsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = String(searchString);\n return $startsWith\n ? $startsWith.call(that, search, index)\n : that.slice(index, index + search.length) === search;\n }\n});\n","// Translates a logical route into its pages asset path (relative from a common prefix)\n// \"asset path\" being its javascript file, data file, prerendered html,...\nexport default function getAssetPathFromRoute(\n route: string,\n ext: string = ''\n): string {\n const path =\n route === '/'\n ? '/index'\n : /^\\/index(\\/|$)/.test(route)\n ? `/index${route}`\n : `${route}`\n return path + ext\n}\n","import * as pathToRegexp from 'next/dist/compiled/path-to-regexp'\n\nexport { pathToRegexp }\n\nexport const matcherOptions: pathToRegexp.TokensToRegexpOptions &\n pathToRegexp.ParseOptions = {\n sensitive: false,\n delimiter: '/',\n}\n\nexport const customRouteMatcherOptions: pathToRegexp.TokensToRegexpOptions &\n pathToRegexp.ParseOptions = {\n ...matcherOptions,\n strict: true,\n}\n\nexport default (customRoute = false) => {\n return (path: string) => {\n const keys: pathToRegexp.Key[] = []\n const matcherRegex = pathToRegexp.pathToRegexp(\n path,\n keys,\n customRoute ? customRouteMatcherOptions : matcherOptions\n )\n const matcher = pathToRegexp.regexpToFunction(matcherRegex, keys)\n\n return (pathname: string | null | undefined, params?: any) => {\n const res = pathname == null ? false : matcher(pathname)\n if (!res) {\n return false\n }\n\n if (customRoute) {\n for (const key of keys) {\n // unnamed params should be removed as they\n // are not allowed to be used in the destination\n if (typeof key.name === 'number') {\n delete (res.params as any)[key.name]\n }\n }\n }\n\n return { ...params, ...res.params }\n }\n }\n}\n","import { ComponentType } from 'react'\nimport { ClientBuildManifest } from '../build/webpack/plugins/build-manifest-plugin'\nimport getAssetPathFromRoute from '../next-server/lib/router/utils/get-asset-path-from-route'\nimport { requestIdleCallback } from './request-idle-callback'\n\n// 3.8s was arbitrarily chosen as it's what https://web.dev/interactive\n// considers as \"Good\" time-to-interactive. We must assume something went\n// wrong beyond this point, and then fall-back to a full page transition to\n// show the user something of value.\nconst MS_MAX_IDLE_DELAY = 3800\n\ndeclare global {\n interface Window {\n __BUILD_MANIFEST?: ClientBuildManifest\n __BUILD_MANIFEST_CB?: Function\n }\n}\n\nexport interface LoadedEntrypointSuccess {\n component: ComponentType\n exports: any\n}\nexport interface LoadedEntrypointFailure {\n error: unknown\n}\nexport type RouteEntrypoint = LoadedEntrypointSuccess | LoadedEntrypointFailure\n\nexport interface RouteStyleSheet {\n href: string\n content: string\n}\n\nexport interface LoadedRouteSuccess extends LoadedEntrypointSuccess {\n styles: RouteStyleSheet[]\n}\nexport interface LoadedRouteFailure {\n error: unknown\n}\nexport type RouteLoaderEntry = LoadedRouteSuccess | LoadedRouteFailure\n\nexport type Future = {\n resolve: (entrypoint: V) => void\n future: Promise\n}\nfunction withFuture(\n key: string,\n map: Map | T>,\n generator?: () => Promise\n): Promise {\n let entry: Future | T | undefined = map.get(key)\n if (entry) {\n if ('future' in entry) {\n return entry.future\n }\n return Promise.resolve(entry)\n }\n let resolver: (entrypoint: T) => void\n const prom: Promise = new Promise((resolve) => {\n resolver = resolve\n })\n map.set(key, (entry = { resolve: resolver!, future: prom }))\n return generator\n ? // eslint-disable-next-line no-sequences\n generator().then((value) => (resolver(value), value))\n : prom\n}\n\nexport interface RouteLoader {\n whenEntrypoint(route: string): Promise\n onEntrypoint(route: string, execute: () => unknown): void\n loadRoute(route: string, prefetch?: boolean): Promise\n prefetch(route: string): Promise\n}\n\nfunction hasPrefetch(link?: HTMLLinkElement): boolean {\n try {\n link = document.createElement('link')\n return (\n // detect IE11 since it supports prefetch but isn't detected\n // with relList.support\n (!!window.MSInputMethodContext && !!(document as any).documentMode) ||\n link.relList.supports('prefetch')\n )\n } catch {\n return false\n }\n}\n\nconst canPrefetch: boolean = hasPrefetch()\n\nfunction prefetchViaDom(\n href: string,\n as: string,\n link?: HTMLLinkElement\n): Promise {\n return new Promise((res, rej) => {\n if (document.querySelector(`link[rel=\"prefetch\"][href^=\"${href}\"]`)) {\n return res()\n }\n\n link = document.createElement('link')\n\n // The order of property assignment here is intentional:\n if (as) link!.as = as\n link!.rel = `prefetch`\n link!.crossOrigin = process.env.__NEXT_CROSS_ORIGIN!\n link!.onload = res\n link!.onerror = rej\n\n // `href` should always be last:\n link!.href = href\n\n document.head.appendChild(link)\n })\n}\n\nconst ASSET_LOAD_ERROR = Symbol('ASSET_LOAD_ERROR')\n// TODO: unexport\nexport function markAssetError(err: Error): Error {\n return Object.defineProperty(err, ASSET_LOAD_ERROR, {})\n}\n\nexport function isAssetError(err?: Error): boolean | undefined {\n return err && ASSET_LOAD_ERROR in err\n}\n\nfunction appendScript(\n src: string,\n script?: HTMLScriptElement\n): Promise {\n return new Promise((resolve, reject) => {\n script = document.createElement('script')\n\n // The order of property assignment here is intentional.\n // 1. Setup success/failure hooks in case the browser synchronously\n // executes when `src` is set.\n script.onload = resolve\n script.onerror = () =>\n reject(markAssetError(new Error(`Failed to load script: ${src}`)))\n\n // 2. Configure the cross-origin attribute before setting `src` in case the\n // browser begins to fetch.\n script.crossOrigin = process.env.__NEXT_CROSS_ORIGIN!\n\n // 3. Finally, set the source and inject into the DOM in case the child\n // must be appended for fetching to start.\n script.src = src\n document.body.appendChild(script)\n })\n}\n\n// Resolve a promise that times out after given amount of milliseconds.\nfunction resolvePromiseWithTimeout(\n p: Promise,\n ms: number,\n err: Error\n): Promise {\n return new Promise((resolve, reject) => {\n let cancelled = false\n\n p.then((r) => {\n // Resolved, cancel the timeout\n cancelled = true\n resolve(r)\n }).catch(reject)\n\n requestIdleCallback(() =>\n setTimeout(() => {\n if (!cancelled) {\n reject(err)\n }\n }, ms)\n )\n })\n}\n\n// TODO: stop exporting or cache the failure\n// It'd be best to stop exporting this. It's an implementation detail. We're\n// only exporting it for backwards compatibilty with the `page-loader`.\n// Only cache this response as a last resort if we cannot eliminate all other\n// code branches that use the Build Manifest Callback and push them through\n// the Route Loader interface.\nexport function getClientBuildManifest(): Promise {\n if (self.__BUILD_MANIFEST) {\n return Promise.resolve(self.__BUILD_MANIFEST)\n }\n\n const onBuildManifest: Promise = new Promise<\n ClientBuildManifest\n >((resolve) => {\n // Mandatory because this is not concurrent safe:\n const cb = self.__BUILD_MANIFEST_CB\n self.__BUILD_MANIFEST_CB = () => {\n resolve(self.__BUILD_MANIFEST!)\n cb && cb()\n }\n })\n\n return resolvePromiseWithTimeout(\n onBuildManifest,\n MS_MAX_IDLE_DELAY,\n markAssetError(new Error('Failed to load client build manifest'))\n )\n}\n\ninterface RouteFiles {\n scripts: string[]\n css: string[]\n}\nfunction getFilesForRoute(\n assetPrefix: string,\n route: string\n): Promise {\n if (process.env.NODE_ENV === 'development') {\n return Promise.resolve({\n scripts: [\n assetPrefix +\n '/_next/static/chunks/pages' +\n encodeURI(getAssetPathFromRoute(route, '.js')),\n ],\n // Styles are handled by `style-loader` in development:\n css: [],\n })\n }\n return getClientBuildManifest().then((manifest) => {\n if (!(route in manifest)) {\n throw markAssetError(new Error(`Failed to lookup route: ${route}`))\n }\n const allFiles = manifest[route].map(\n (entry) => assetPrefix + '/_next/' + encodeURI(entry)\n )\n return {\n scripts: allFiles.filter((v) => v.endsWith('.js')),\n css: allFiles.filter((v) => v.endsWith('.css')),\n }\n })\n}\n\nfunction createRouteLoader(assetPrefix: string): RouteLoader {\n const entrypoints: Map<\n string,\n Future | RouteEntrypoint\n > = new Map()\n const loadedScripts: Map> = new Map()\n const styleSheets: Map> = new Map()\n const routes: Map<\n string,\n Future | RouteLoaderEntry\n > = new Map()\n\n function maybeExecuteScript(src: string): Promise {\n let prom: Promise | undefined = loadedScripts.get(src)\n if (prom) {\n return prom\n }\n\n // Skip executing script if it's already in the DOM:\n if (document.querySelector(`script[src^=\"${src}\"]`)) {\n return Promise.resolve()\n }\n\n loadedScripts.set(src, (prom = appendScript(src)))\n return prom\n }\n\n function fetchStyleSheet(href: string): Promise {\n let prom: Promise | undefined = styleSheets.get(href)\n if (prom) {\n return prom\n }\n\n styleSheets.set(\n href,\n (prom = fetch(href)\n .then((res) => {\n if (!res.ok) {\n throw new Error(`Failed to load stylesheet: ${href}`)\n }\n return res.text().then((text) => ({ href: href, content: text }))\n })\n .catch((err) => {\n throw markAssetError(err)\n }))\n )\n return prom\n }\n\n return {\n whenEntrypoint(route: string) {\n return withFuture(route, entrypoints)\n },\n onEntrypoint(route: string, execute: () => unknown) {\n Promise.resolve(execute)\n .then((fn) => fn())\n .then(\n (exports: any) => ({\n component: (exports && exports.default) || exports,\n exports: exports,\n }),\n (err) => ({ error: err })\n )\n .then((input: RouteEntrypoint) => {\n const old = entrypoints.get(route)\n entrypoints.set(route, input)\n if (old && 'resolve' in old) old.resolve(input)\n })\n },\n loadRoute(route: string, prefetch?: boolean) {\n return withFuture(route, routes, () => {\n return resolvePromiseWithTimeout(\n getFilesForRoute(assetPrefix, route)\n .then(({ scripts, css }) => {\n return Promise.all([\n entrypoints.has(route)\n ? []\n : Promise.all(scripts.map(maybeExecuteScript)),\n Promise.all(css.map(fetchStyleSheet)),\n ] as const)\n })\n .then((res) => {\n return this.whenEntrypoint(route).then((entrypoint) => ({\n entrypoint,\n styles: res[1],\n }))\n }),\n MS_MAX_IDLE_DELAY,\n markAssetError(new Error(`Route did not complete loading: ${route}`))\n )\n .then(({ entrypoint, styles }) => {\n const res: RouteLoaderEntry = Object.assign<\n { styles: RouteStyleSheet[] },\n RouteEntrypoint\n >({ styles: styles! }, entrypoint)\n return 'error' in entrypoint ? entrypoint : res\n })\n .catch((err) => {\n if (prefetch) {\n // we don't want to cache errors during prefetch\n throw err\n }\n return { error: err }\n })\n })\n },\n prefetch(route: string): Promise {\n // https://github.com/GoogleChromeLabs/quicklink/blob/453a661fa1fa940e2d2e044452398e38c67a98fb/src/index.mjs#L115-L118\n // License: Apache 2.0\n let cn\n if ((cn = (navigator as any).connection)) {\n // Don't prefetch if using 2G or if Save-Data is enabled.\n if (cn.saveData || /2g/.test(cn.effectiveType)) return Promise.resolve()\n }\n return getFilesForRoute(assetPrefix, route)\n .then((output) =>\n Promise.all(\n canPrefetch\n ? output.scripts.map((script) => prefetchViaDom(script, 'script'))\n : []\n )\n )\n .then(() => {\n requestIdleCallback(() => this.loadRoute(route, true).catch(() => {}))\n })\n .catch(\n // swallow prefetch errors\n () => {}\n )\n },\n }\n}\n\nexport default createRouteLoader\n","var $ = require('../internals/export');\nvar repeat = require('../internals/string-repeat');\n\n// `String.prototype.repeat` method\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\n$({ target: 'String', proto: true }, {\n repeat: repeat\n});\n","import { ParsedUrlQuery } from 'querystring'\nimport pathMatch from './path-match'\nimport prepareDestination, { matchHas } from './prepare-destination'\nimport { Rewrite } from '../../../../lib/load-custom-routes'\nimport { removePathTrailingSlash } from '../../../../client/normalize-trailing-slash'\nimport { normalizeLocalePath } from '../../i18n/normalize-locale-path'\nimport { parseRelativeUrl } from './parse-relative-url'\nimport { delBasePath } from '../router'\n\nconst customRouteMatcher = pathMatch(true)\n\nexport default function resolveRewrites(\n asPath: string,\n pages: string[],\n rewrites: {\n beforeFiles: Rewrite[]\n afterFiles: Rewrite[]\n fallback: Rewrite[]\n },\n query: ParsedUrlQuery,\n resolveHref: (path: string) => string,\n locales?: string[]\n): {\n matchedPage: boolean\n parsedAs: ReturnType\n asPath: string\n resolvedHref?: string\n} {\n let matchedPage = false\n let parsedAs = parseRelativeUrl(asPath)\n let fsPathname = removePathTrailingSlash(\n normalizeLocalePath(delBasePath(parsedAs.pathname), locales).pathname\n )\n let resolvedHref\n\n const handleRewrite = (rewrite: Rewrite) => {\n const matcher = customRouteMatcher(rewrite.source)\n let params = matcher(parsedAs.pathname)\n\n if (rewrite.has && params) {\n const hasParams = matchHas(\n {\n headers: {\n host: document.location.hostname,\n },\n cookies: Object.fromEntries(\n document.cookie.split('; ').map((item) => {\n const [key, ...value] = item.split('=')\n return [key, value.join('=')]\n })\n ),\n } as any,\n rewrite.has,\n parsedAs.query\n )\n\n if (hasParams) {\n Object.assign(params, hasParams)\n } else {\n params = false\n }\n }\n\n if (params) {\n if (!rewrite.destination) {\n // this is a proxied rewrite which isn't handled on the client\n return true\n }\n const destRes = prepareDestination(\n rewrite.destination,\n params,\n query,\n true\n )\n parsedAs = destRes.parsedDestination\n asPath = destRes.newUrl\n Object.assign(query, destRes.parsedDestination.query)\n\n fsPathname = removePathTrailingSlash(\n normalizeLocalePath(delBasePath(asPath), locales).pathname\n )\n\n if (pages.includes(fsPathname)) {\n // check if we now match a page as this means we are done\n // resolving the rewrites\n matchedPage = true\n resolvedHref = fsPathname\n return true\n }\n\n // check if we match a dynamic-route, if so we break the rewrites chain\n resolvedHref = resolveHref(fsPathname)\n\n if (resolvedHref !== asPath && pages.includes(resolvedHref)) {\n matchedPage = true\n return true\n }\n }\n }\n let finished = false\n\n for (let i = 0; i < rewrites.beforeFiles.length; i++) {\n const rewrite = rewrites.beforeFiles[i]\n\n if (handleRewrite(rewrite)) {\n finished = true\n break\n }\n }\n\n if (!pages.includes(fsPathname)) {\n if (!finished) {\n for (let i = 0; i < rewrites.afterFiles.length; i++) {\n const rewrite = rewrites.afterFiles[i]\n if (handleRewrite(rewrite)) {\n finished = true\n break\n }\n }\n }\n\n // check dynamic route before processing fallback rewrites\n if (!finished) {\n resolvedHref = resolveHref(fsPathname)\n matchedPage = pages.includes(resolvedHref)\n finished = matchedPage\n }\n\n if (!finished) {\n for (let i = 0; i < rewrites.fallback.length; i++) {\n const rewrite = rewrites.fallback[i]\n if (handleRewrite(rewrite)) {\n finished = true\n break\n }\n }\n }\n }\n\n return {\n asPath,\n parsedAs,\n matchedPage,\n resolvedHref,\n }\n}\n","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.sub` method\n// https://tc39.es/ecma262/#sec-string.prototype.sub\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('sub') }, {\n sub: function sub() {\n return createHTML(this, 'sub', '', '');\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) {\n var state = enforceInternalState(result);\n state.sticky = true;\n }\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","// a string of all valid unicode whitespaces\nmodule.exports = '\\u0009\\u000A\\u000B\\u000C\\u000D\\u0020\\u00A0\\u1680\\u2000\\u2001\\u2002' +\n '\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200A\\u202F\\u205F\\u3000\\u2028\\u2029\\uFEFF';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\nvar whitespaces = require('../internals/whitespaces');\n\nvar whitespace = '[' + whitespaces + ']';\nvar ltrim = RegExp('^' + whitespace + whitespace + '*');\nvar rtrim = RegExp(whitespace + whitespace + '*$');\n\n// `String.prototype.{ trim, trimStart, trimEnd, trimLeft, trimRight }` methods implementation\nvar createMethod = function (TYPE) {\n return function ($this) {\n var string = String(requireObjectCoercible($this));\n if (TYPE & 1) string = string.replace(ltrim, '');\n if (TYPE & 2) string = string.replace(rtrim, '');\n return string;\n };\n};\n\nmodule.exports = {\n // `String.prototype.{ trimLeft, trimStart }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimstart\n start: createMethod(1),\n // `String.prototype.{ trimRight, trimEnd }` methods\n // https://tc39.es/ecma262/#sec-string.prototype.trimend\n end: createMethod(2),\n // `String.prototype.trim` method\n // https://tc39.es/ecma262/#sec-string.prototype.trim\n trim: createMethod(3)\n};\n","/**\n * Removes the trailing slash of a path if there is one. Preserves the root path `/`.\n */\nexport function removePathTrailingSlash(path: string): string {\n return path.endsWith('/') && path !== '/' ? path.slice(0, -1) : path\n}\n\n/**\n * Normalizes the trailing slash of a path according to the `trailingSlash` option\n * in `next.config.js`.\n */\nexport const normalizePathTrailingSlash = process.env.__NEXT_TRAILING_SLASH\n ? (path: string): string => {\n if (/\\.[^/]+\\/?$/.test(path)) {\n return removePathTrailingSlash(path)\n } else if (path.endsWith('/')) {\n return path\n } else {\n return path + '/'\n }\n }\n : removePathTrailingSlash\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements -- TODO\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's state to , but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","export interface Group {\n pos: number\n repeat: boolean\n optional: boolean\n}\n\n// this isn't importing the escape-string-regex module\n// to reduce bytes\nfunction escapeRegex(str: string) {\n return str.replace(/[|\\\\{}()[\\]^$+*?.-]/g, '\\\\$&')\n}\n\nfunction parseParameter(param: string) {\n const optional = param.startsWith('[') && param.endsWith(']')\n if (optional) {\n param = param.slice(1, -1)\n }\n const repeat = param.startsWith('...')\n if (repeat) {\n param = param.slice(3)\n }\n return { key: param, repeat, optional }\n}\n\nexport function getRouteRegex(\n normalizedRoute: string\n): {\n re: RegExp\n namedRegex?: string\n routeKeys?: { [named: string]: string }\n groups: { [groupName: string]: Group }\n} {\n const segments = (normalizedRoute.replace(/\\/$/, '') || '/')\n .slice(1)\n .split('/')\n\n const groups: { [groupName: string]: Group } = {}\n let groupIndex = 1\n const parameterizedRoute = segments\n .map((segment) => {\n if (segment.startsWith('[') && segment.endsWith(']')) {\n const { key, optional, repeat } = parseParameter(segment.slice(1, -1))\n groups[key] = { pos: groupIndex++, repeat, optional }\n return repeat ? (optional ? '(?:/(.+?))?' : '/(.+?)') : '/([^/]+?)'\n } else {\n return `/${escapeRegex(segment)}`\n }\n })\n .join('')\n\n // dead code eliminate for browser since it's only needed\n // while generating routes-manifest\n if (typeof window === 'undefined') {\n let routeKeyCharCode = 97\n let routeKeyCharLength = 1\n\n // builds a minimal routeKey using only a-z and minimal number of characters\n const getSafeRouteKey = () => {\n let routeKey = ''\n\n for (let i = 0; i < routeKeyCharLength; i++) {\n routeKey += String.fromCharCode(routeKeyCharCode)\n routeKeyCharCode++\n\n if (routeKeyCharCode > 122) {\n routeKeyCharLength++\n routeKeyCharCode = 97\n }\n }\n return routeKey\n }\n\n const routeKeys: { [named: string]: string } = {}\n\n let namedParameterizedRoute = segments\n .map((segment) => {\n if (segment.startsWith('[') && segment.endsWith(']')) {\n const { key, optional, repeat } = parseParameter(segment.slice(1, -1))\n // replace any non-word characters since they can break\n // the named regex\n let cleanedKey = key.replace(/\\W/g, '')\n let invalidKey = false\n\n // check if the key is still invalid and fallback to using a known\n // safe key\n if (cleanedKey.length === 0 || cleanedKey.length > 30) {\n invalidKey = true\n }\n if (!isNaN(parseInt(cleanedKey.substr(0, 1)))) {\n invalidKey = true\n }\n\n if (invalidKey) {\n cleanedKey = getSafeRouteKey()\n }\n\n routeKeys[cleanedKey] = key\n return repeat\n ? optional\n ? `(?:/(?<${cleanedKey}>.+?))?`\n : `/(?<${cleanedKey}>.+?)`\n : `/(?<${cleanedKey}>[^/]+?)`\n } else {\n return `/${escapeRegex(segment)}`\n }\n })\n .join('')\n\n return {\n re: new RegExp(`^${parameterizedRoute}(?:/)?$`),\n groups,\n routeKeys,\n namedRegex: `^${namedParameterizedRoute}(?:/)?$`,\n }\n }\n\n return {\n re: new RegExp(`^${parameterizedRoute}(?:/)?$`),\n groups,\n }\n}\n","var DESCRIPTORS = require('../internals/descriptors');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(O, key)) {\n result.push(TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","var $ = require('../internals/export');\n\n// `Date.now` method\n// https://tc39.es/ecma262/#sec-date.now\n$({ target: 'Date', stat: true }, {\n now: function now() {\n return new Date().getTime();\n }\n});\n","/*\nMIT License\n\nCopyright (c) Jason Miller (https://jasonformat.com/)\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n*/\n\n// This file is based on https://github.com/developit/mitt/blob/v1.1.3/src/index.js\n// It's been edited for the needs of this script\n// See the LICENSE at the top of the file\n\ntype Handler = (...evts: any[]) => void\n\nexport type MittEmitter = {\n on(type: string, handler: Handler): void\n off(type: string, handler: Handler): void\n emit(type: string, ...evts: any[]): void\n}\n\nexport default function mitt(): MittEmitter {\n const all: { [s: string]: Handler[] } = Object.create(null)\n\n return {\n on(type: string, handler: Handler) {\n ;(all[type] || (all[type] = [])).push(handler)\n },\n\n off(type: string, handler: Handler) {\n if (all[type]) {\n all[type].splice(all[type].indexOf(handler) >>> 0, 1)\n }\n },\n\n emit(type: string, ...evts: any[]) {\n // eslint-disable-next-line array-callback-return\n ;(all[type] || []).slice().map((handler: Handler) => {\n handler(...evts)\n })\n },\n }\n}\n","// tslint:disable:no-console\nimport { ParsedUrlQuery } from 'querystring'\nimport { ComponentType } from 'react'\nimport { UrlObject } from 'url'\nimport {\n normalizePathTrailingSlash,\n removePathTrailingSlash,\n} from '../../../client/normalize-trailing-slash'\nimport { GoodPageCache, StyleSheetTuple } from '../../../client/page-loader'\nimport {\n getClientBuildManifest,\n isAssetError,\n markAssetError,\n} from '../../../client/route-loader'\nimport { DomainLocales } from '../../server/config'\nimport { denormalizePagePath } from '../../server/denormalize-page-path'\nimport { normalizeLocalePath } from '../i18n/normalize-locale-path'\nimport mitt, { MittEmitter } from '../mitt'\nimport {\n AppContextType,\n formatWithValidation,\n getLocationOrigin,\n getURL,\n loadGetInitialProps,\n NextPageContext,\n ST,\n NEXT_DATA,\n} from '../utils'\nimport { isDynamicRoute } from './utils/is-dynamic'\nimport { parseRelativeUrl } from './utils/parse-relative-url'\nimport { searchParamsToUrlQuery } from './utils/querystring'\nimport resolveRewrites from './utils/resolve-rewrites'\nimport { getRouteMatcher } from './utils/route-matcher'\nimport { getRouteRegex } from './utils/route-regex'\n\ndeclare global {\n interface Window {\n /* prod */\n __NEXT_DATA__: NEXT_DATA\n }\n}\n\ninterface RouteProperties {\n shallow: boolean\n}\n\ninterface TransitionOptions {\n shallow?: boolean\n locale?: string | false\n scroll?: boolean\n}\n\ninterface NextHistoryState {\n url: string\n as: string\n options: TransitionOptions\n}\n\ntype HistoryState =\n | null\n | { __N: false }\n | ({ __N: true; idx: number } & NextHistoryState)\n\nlet detectDomainLocale: typeof import('../i18n/detect-domain-locale').detectDomainLocale\n\nif (process.env.__NEXT_I18N_SUPPORT) {\n detectDomainLocale = require('../i18n/detect-domain-locale')\n .detectDomainLocale\n}\n\nconst basePath = (process.env.__NEXT_ROUTER_BASEPATH as string) || ''\n\nfunction buildCancellationError() {\n return Object.assign(new Error('Route Cancelled'), {\n cancelled: true,\n })\n}\n\nfunction addPathPrefix(path: string, prefix?: string) {\n return prefix && path.startsWith('/')\n ? path === '/'\n ? normalizePathTrailingSlash(prefix)\n : `${prefix}${pathNoQueryHash(path) === '/' ? path.substring(1) : path}`\n : path\n}\n\nexport function getDomainLocale(\n path: string,\n locale?: string | false,\n locales?: string[],\n domainLocales?: DomainLocales\n) {\n if (process.env.__NEXT_I18N_SUPPORT) {\n locale = locale || normalizeLocalePath(path, locales).detectedLocale\n\n const detectedDomain = detectDomainLocale(domainLocales, undefined, locale)\n\n if (detectedDomain) {\n return `http${detectedDomain.http ? '' : 's'}://${detectedDomain.domain}${\n basePath || ''\n }${locale === detectedDomain.defaultLocale ? '' : `/${locale}`}${path}`\n }\n return false\n }\n\n return false\n}\n\nexport function addLocale(\n path: string,\n locale?: string | false,\n defaultLocale?: string\n) {\n if (process.env.__NEXT_I18N_SUPPORT) {\n const pathname = pathNoQueryHash(path)\n const pathLower = pathname.toLowerCase()\n const localeLower = locale && locale.toLowerCase()\n\n return locale &&\n locale !== defaultLocale &&\n !pathLower.startsWith('/' + localeLower + '/') &&\n pathLower !== '/' + localeLower\n ? addPathPrefix(path, '/' + locale)\n : path\n }\n return path\n}\n\nexport function delLocale(path: string, locale?: string) {\n if (process.env.__NEXT_I18N_SUPPORT) {\n const pathname = pathNoQueryHash(path)\n const pathLower = pathname.toLowerCase()\n const localeLower = locale && locale.toLowerCase()\n\n return locale &&\n (pathLower.startsWith('/' + localeLower + '/') ||\n pathLower === '/' + localeLower)\n ? (pathname.length === locale.length + 1 ? '/' : '') +\n path.substr(locale.length + 1)\n : path\n }\n return path\n}\n\nfunction pathNoQueryHash(path: string) {\n const queryIndex = path.indexOf('?')\n const hashIndex = path.indexOf('#')\n\n if (queryIndex > -1 || hashIndex > -1) {\n path = path.substring(0, queryIndex > -1 ? queryIndex : hashIndex)\n }\n return path\n}\n\nexport function hasBasePath(path: string): boolean {\n path = pathNoQueryHash(path)\n return path === basePath || path.startsWith(basePath + '/')\n}\n\nexport function addBasePath(path: string): string {\n // we only add the basepath on relative urls\n return addPathPrefix(path, basePath)\n}\n\nexport function delBasePath(path: string): string {\n path = path.slice(basePath.length)\n if (!path.startsWith('/')) path = `/${path}`\n return path\n}\n\n/**\n * Detects whether a given url is routable by the Next.js router (browser only).\n */\nexport function isLocalURL(url: string): boolean {\n // prevent a hydration mismatch on href for url with anchor refs\n if (url.startsWith('/') || url.startsWith('#')) return true\n try {\n // absolute urls can be local if they are on the same origin\n const locationOrigin = getLocationOrigin()\n const resolved = new URL(url, locationOrigin)\n return resolved.origin === locationOrigin && hasBasePath(resolved.pathname)\n } catch (_) {\n return false\n }\n}\n\ntype Url = UrlObject | string\n\nexport function interpolateAs(\n route: string,\n asPathname: string,\n query: ParsedUrlQuery\n) {\n let interpolatedRoute = ''\n\n const dynamicRegex = getRouteRegex(route)\n const dynamicGroups = dynamicRegex.groups\n const dynamicMatches =\n // Try to match the dynamic route against the asPath\n (asPathname !== route ? getRouteMatcher(dynamicRegex)(asPathname) : '') ||\n // Fall back to reading the values from the href\n // TODO: should this take priority; also need to change in the router.\n query\n\n interpolatedRoute = route\n const params = Object.keys(dynamicGroups)\n\n if (\n !params.every((param) => {\n let value = dynamicMatches[param] || ''\n const { repeat, optional } = dynamicGroups[param]\n\n // support single-level catch-all\n // TODO: more robust handling for user-error (passing `/`)\n let replaced = `[${repeat ? '...' : ''}${param}]`\n if (optional) {\n replaced = `${!value ? '/' : ''}[${replaced}]`\n }\n if (repeat && !Array.isArray(value)) value = [value]\n\n return (\n (optional || param in dynamicMatches) &&\n // Interpolate group into data URL if present\n (interpolatedRoute =\n interpolatedRoute!.replace(\n replaced,\n repeat\n ? (value as string[])\n .map(\n // these values should be fully encoded instead of just\n // path delimiter escaped since they are being inserted\n // into the URL and we expect URL encoded segments\n // when parsing dynamic route params\n (segment) => encodeURIComponent(segment)\n )\n .join('/')\n : encodeURIComponent(value as string)\n ) || '/')\n )\n })\n ) {\n interpolatedRoute = '' // did not satisfy all requirements\n\n // n.b. We ignore this error because we handle warning for this case in\n // development in the `` component directly.\n }\n return {\n params,\n result: interpolatedRoute,\n }\n}\n\nfunction omitParmsFromQuery(query: ParsedUrlQuery, params: string[]) {\n const filteredQuery: ParsedUrlQuery = {}\n\n Object.keys(query).forEach((key) => {\n if (!params.includes(key)) {\n filteredQuery[key] = query[key]\n }\n })\n return filteredQuery\n}\n\n/**\n * Resolves a given hyperlink with a certain router state (basePath not included).\n * Preserves absolute urls.\n */\nexport function resolveHref(\n currentPath: string,\n href: Url,\n resolveAs?: boolean\n): string {\n // we use a dummy base url for relative urls\n const base = new URL(currentPath, 'http://n')\n const urlAsString =\n typeof href === 'string' ? href : formatWithValidation(href)\n // Return because it cannot be routed by the Next.js router\n if (!isLocalURL(urlAsString)) {\n return (resolveAs ? [urlAsString] : urlAsString) as string\n }\n try {\n const finalUrl = new URL(urlAsString, base)\n finalUrl.pathname = normalizePathTrailingSlash(finalUrl.pathname)\n let interpolatedAs = ''\n\n if (\n isDynamicRoute(finalUrl.pathname) &&\n finalUrl.searchParams &&\n resolveAs\n ) {\n const query = searchParamsToUrlQuery(finalUrl.searchParams)\n\n const { result, params } = interpolateAs(\n finalUrl.pathname,\n finalUrl.pathname,\n query\n )\n\n if (result) {\n interpolatedAs = formatWithValidation({\n pathname: result,\n hash: finalUrl.hash,\n query: omitParmsFromQuery(query, params),\n })\n }\n }\n\n // if the origin didn't change, it means we received a relative href\n const resolvedHref =\n finalUrl.origin === base.origin\n ? finalUrl.href.slice(finalUrl.origin.length)\n : finalUrl.href\n\n return (resolveAs\n ? [resolvedHref, interpolatedAs || resolvedHref]\n : resolvedHref) as string\n } catch (_) {\n return (resolveAs ? [urlAsString] : urlAsString) as string\n }\n}\n\nfunction stripOrigin(url: string) {\n const origin = getLocationOrigin()\n\n return url.startsWith(origin) ? url.substring(origin.length) : url\n}\n\nfunction prepareUrlAs(router: NextRouter, url: Url, as?: Url) {\n // If url and as provided as an object representation,\n // we'll format them into the string version here.\n let [resolvedHref, resolvedAs] = resolveHref(router.pathname, url, true)\n const origin = getLocationOrigin()\n const hrefHadOrigin = resolvedHref.startsWith(origin)\n const asHadOrigin = resolvedAs && resolvedAs.startsWith(origin)\n\n resolvedHref = stripOrigin(resolvedHref)\n resolvedAs = resolvedAs ? stripOrigin(resolvedAs) : resolvedAs\n\n const preparedUrl = hrefHadOrigin ? resolvedHref : addBasePath(resolvedHref)\n const preparedAs = as\n ? stripOrigin(resolveHref(router.pathname, as))\n : resolvedAs || resolvedHref\n\n return {\n url: preparedUrl,\n as: asHadOrigin ? preparedAs : addBasePath(preparedAs),\n }\n}\n\nfunction resolveDynamicRoute(pathname: string, pages: string[]) {\n const cleanPathname = removePathTrailingSlash(denormalizePagePath(pathname!))\n\n if (cleanPathname === '/404' || cleanPathname === '/_error') {\n return pathname\n }\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 (isDynamicRoute(page) && getRouteRegex(page).re.test(cleanPathname!)) {\n pathname = page\n return true\n }\n })\n }\n return removePathTrailingSlash(pathname)\n}\n\nexport type BaseRouter = {\n route: string\n pathname: string\n query: ParsedUrlQuery\n asPath: string\n basePath: string\n locale?: string\n locales?: string[]\n defaultLocale?: string\n domainLocales?: DomainLocales\n isLocaleDomain: boolean\n}\n\nexport type NextRouter = BaseRouter &\n Pick<\n Router,\n | 'push'\n | 'replace'\n | 'reload'\n | 'back'\n | 'prefetch'\n | 'beforePopState'\n | 'events'\n | 'isFallback'\n | 'isReady'\n | 'isPreview'\n >\n\nexport type PrefetchOptions = {\n priority?: boolean\n locale?: string | false\n}\n\nexport type PrivateRouteInfo =\n | (Omit & { initial: true })\n | CompletePrivateRouteInfo\n\nexport type CompletePrivateRouteInfo = {\n Component: ComponentType\n styleSheets: StyleSheetTuple[]\n __N_SSG?: boolean\n __N_SSP?: boolean\n props?: Record\n err?: Error\n error?: any\n}\n\nexport type AppProps = Pick & {\n router: Router\n} & Record\nexport type AppComponent = ComponentType\n\ntype Subscription = (\n data: PrivateRouteInfo,\n App: AppComponent,\n resetScroll: { x: number; y: number } | null\n) => Promise\n\ntype BeforePopStateCallback = (state: NextHistoryState) => boolean\n\ntype ComponentLoadCancel = (() => void) | null\n\ntype HistoryMethod = 'replaceState' | 'pushState'\n\nconst manualScrollRestoration =\n process.env.__NEXT_SCROLL_RESTORATION &&\n typeof window !== 'undefined' &&\n 'scrollRestoration' in window.history &&\n !!(function () {\n try {\n let v = '__next'\n // eslint-disable-next-line no-sequences\n return sessionStorage.setItem(v, v), sessionStorage.removeItem(v), true\n } catch (n) {}\n })()\n\nconst SSG_DATA_NOT_FOUND = Symbol('SSG_DATA_NOT_FOUND')\n\nfunction fetchRetry(url: string, attempts: number): Promise {\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/en-US/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 }).then((res) => {\n if (!res.ok) {\n if (attempts > 1 && res.status >= 500) {\n return fetchRetry(url, attempts - 1)\n }\n if (res.status === 404) {\n return res.json().then((data) => {\n if (data.notFound) {\n return { notFound: SSG_DATA_NOT_FOUND }\n }\n throw new Error(`Failed to load static props`)\n })\n }\n throw new Error(`Failed to load static props`)\n }\n return res.json()\n })\n}\n\nfunction fetchNextData(dataHref: string, isServerRender: boolean) {\n return fetchRetry(dataHref, isServerRender ? 3 : 1).catch((err: Error) => {\n // We should only trigger a server-side transition if this was caused\n // on a client-side transition. Otherwise, we'd get into an infinite\n // loop.\n\n if (!isServerRender) {\n markAssetError(err)\n }\n throw err\n })\n}\n\nexport default class Router implements BaseRouter {\n route: string\n pathname: string\n query: ParsedUrlQuery\n asPath: string\n basePath: string\n\n /**\n * Map of all components loaded in `Router`\n */\n components: { [pathname: string]: PrivateRouteInfo }\n // Static Data Cache\n sdc: { [asPath: string]: object } = {}\n // In-flight Server Data Requests, for deduping\n sdr: { [asPath: string]: Promise } = {}\n\n sub: Subscription\n clc: ComponentLoadCancel\n pageLoader: any\n _bps: BeforePopStateCallback | undefined\n events: MittEmitter\n _wrapApp: (App: AppComponent) => any\n isSsr: boolean\n isFallback: boolean\n _inFlightRoute?: string\n _shallow?: boolean\n locale?: string\n locales?: string[]\n defaultLocale?: string\n domainLocales?: DomainLocales\n isReady: boolean\n isPreview: boolean\n isLocaleDomain: boolean\n\n private _idx: number = 0\n\n static events: MittEmitter = mitt()\n\n constructor(\n pathname: string,\n query: ParsedUrlQuery,\n as: string,\n {\n initialProps,\n pageLoader,\n App,\n wrapApp,\n Component,\n err,\n subscription,\n isFallback,\n locale,\n locales,\n defaultLocale,\n domainLocales,\n isPreview,\n }: {\n subscription: Subscription\n initialProps: any\n pageLoader: any\n Component: ComponentType\n App: AppComponent\n wrapApp: (WrapAppComponent: AppComponent) => any\n err?: Error\n isFallback: boolean\n locale?: string\n locales?: string[]\n defaultLocale?: string\n domainLocales?: DomainLocales\n isPreview?: boolean\n }\n ) {\n // represents the current component key\n this.route = removePathTrailingSlash(pathname)\n\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[this.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\n this.components['/_app'] = {\n Component: App as ComponentType,\n styleSheets: [\n /* /_app does not need its stylesheets managed */\n ],\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\n this.pageLoader = pageLoader\n this.pathname = pathname\n this.query = query\n // if auto prerendered and dynamic route wait to update asPath\n // until after mount to prevent hydration mismatch\n const autoExportDynamic =\n isDynamicRoute(pathname) && self.__NEXT_DATA__.autoExport\n\n this.asPath = autoExportDynamic ? pathname : as\n this.basePath = basePath\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\n this.isFallback = isFallback\n\n this.isReady = !!(\n self.__NEXT_DATA__.gssp ||\n self.__NEXT_DATA__.gip ||\n (!autoExportDynamic &&\n !self.location.search &&\n !process.env.__NEXT_HAS_REWRITES)\n )\n this.isPreview = !!isPreview\n this.isLocaleDomain = false\n\n if (process.env.__NEXT_I18N_SUPPORT) {\n this.locale = locale\n this.locales = locales\n this.defaultLocale = defaultLocale\n this.domainLocales = domainLocales\n this.isLocaleDomain = !!detectDomainLocale(\n domainLocales,\n self.location.hostname\n )\n }\n\n if (typeof window !== 'undefined') {\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.substr(0, 2) !== '//') {\n // in order for `e.state` to work on the `onpopstate` event\n // we have to register the initial route upon initialization\n this.changeState(\n 'replaceState',\n formatWithValidation({ pathname: addBasePath(pathname), query }),\n getURL(),\n { locale }\n )\n }\n\n window.addEventListener('popstate', this.onPopState)\n\n // enable custom scroll restoration handling when available\n // otherwise fallback to browser's default handling\n if (process.env.__NEXT_SCROLL_RESTORATION) {\n if (manualScrollRestoration) {\n window.history.scrollRestoration = 'manual'\n }\n }\n }\n }\n\n onPopState = (e: PopStateEvent): void => {\n const state = e.state as HistoryState\n\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(\n 'replaceState',\n formatWithValidation({ pathname: addBasePath(pathname), query }),\n getURL()\n )\n return\n }\n\n if (!state.__N) {\n return\n }\n\n let forcedScroll: { x: number; y: number } | undefined\n const { url, as, options, idx } = state\n if (process.env.__NEXT_SCROLL_RESTORATION) {\n if (manualScrollRestoration) {\n if (this._idx !== idx) {\n // Snapshot current scroll position:\n try {\n sessionStorage.setItem(\n '__next_scroll_' + this._idx,\n JSON.stringify({ x: self.pageXOffset, y: self.pageYOffset })\n )\n } catch {}\n\n // Restore old scroll position:\n try {\n const v = sessionStorage.getItem('__next_scroll_' + idx)\n forcedScroll = JSON.parse(v!)\n } catch {\n forcedScroll = { x: 0, y: 0 }\n }\n }\n }\n }\n this._idx = idx\n\n const { pathname } = parseRelativeUrl(url)\n\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 === this.asPath && pathname === this.pathname) {\n return\n }\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\n this.change(\n 'replaceState',\n url,\n as,\n Object.assign<{}, TransitionOptions, TransitionOptions>({}, options, {\n shallow: options.shallow && this._shallow,\n locale: options.locale || this.defaultLocale,\n }),\n forcedScroll\n )\n }\n\n reload(): void {\n window.location.reload()\n }\n\n /**\n * Go back in history\n */\n back() {\n window.history.back()\n }\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 */\n push(url: Url, as?: Url, options: TransitionOptions = {}) {\n if (process.env.__NEXT_SCROLL_RESTORATION) {\n // TODO: remove in the future when we update history before route change\n // is complete, as the popstate event should handle this capture.\n if (manualScrollRestoration) {\n try {\n // Snapshot scroll position right before navigating to a new page:\n sessionStorage.setItem(\n '__next_scroll_' + this._idx,\n JSON.stringify({ x: self.pageXOffset, y: self.pageYOffset })\n )\n } catch {}\n }\n }\n ;({ url, as } = prepareUrlAs(this, url, as))\n return this.change('pushState', url, as, options)\n }\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 */\n replace(url: Url, as?: Url, options: TransitionOptions = {}) {\n ;({ url, as } = prepareUrlAs(this, url, as))\n return this.change('replaceState', url, as, options)\n }\n\n private async change(\n method: HistoryMethod,\n url: string,\n as: string,\n options: TransitionOptions,\n forcedScroll?: { x: number; y: number }\n ): Promise {\n if (!isLocalURL(url)) {\n window.location.href = url\n return false\n }\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 if ((options as any)._h) {\n this.isReady = true\n }\n\n // Default to scroll reset behavior unless explicitly specified to be\n // `false`! This makes the behavior between using `Router#push` and a\n // `` consistent.\n options.scroll = !!(options.scroll ?? true)\n\n let localeChange = options.locale !== this.locale\n\n if (process.env.__NEXT_I18N_SUPPORT) {\n this.locale =\n options.locale === false\n ? this.defaultLocale\n : options.locale || this.locale\n\n if (typeof options.locale === 'undefined') {\n options.locale = this.locale\n }\n\n const parsedAs = parseRelativeUrl(hasBasePath(as) ? delBasePath(as) : as)\n const localePathResult = normalizeLocalePath(\n parsedAs.pathname,\n this.locales\n )\n\n if (localePathResult.detectedLocale) {\n this.locale = localePathResult.detectedLocale\n parsedAs.pathname = addBasePath(parsedAs.pathname)\n as = formatWithValidation(parsedAs)\n url = addBasePath(\n normalizeLocalePath(\n hasBasePath(url) ? delBasePath(url) : url,\n this.locales\n ).pathname\n )\n }\n let didNavigate = false\n\n // we need to wrap this in the env check again since regenerator runtime\n // moves this on its own due to the return\n if (process.env.__NEXT_I18N_SUPPORT) {\n // if the locale isn't configured hard navigate to show 404 page\n if (!this.locales?.includes(this.locale!)) {\n parsedAs.pathname = addLocale(parsedAs.pathname, this.locale)\n window.location.href = formatWithValidation(parsedAs)\n // this was previously a return but was removed in favor\n // of better dead code elimination with regenerator runtime\n didNavigate = true\n }\n }\n\n const detectedDomain = detectDomainLocale(\n this.domainLocales,\n undefined,\n this.locale\n )\n\n // we need to wrap this in the env check again since regenerator runtime\n // moves this on its own due to the return\n if (process.env.__NEXT_I18N_SUPPORT) {\n // if we are navigating to a domain locale ensure we redirect to the\n // correct domain\n if (\n !didNavigate &&\n detectedDomain &&\n this.isLocaleDomain &&\n self.location.hostname !== detectedDomain.domain\n ) {\n const asNoBasePath = delBasePath(as)\n window.location.href = `http${detectedDomain.http ? '' : 's'}://${\n detectedDomain.domain\n }${addBasePath(\n `${\n this.locale === detectedDomain.defaultLocale\n ? ''\n : `/${this.locale}`\n }${asNoBasePath === '/' ? '' : asNoBasePath}` || '/'\n )}`\n // this was previously a return but was removed in favor\n // of better dead code elimination with regenerator runtime\n didNavigate = true\n }\n }\n\n if (didNavigate) {\n return new Promise(() => {})\n }\n }\n\n if (!(options as any)._h) {\n this.isSsr = false\n }\n // marking route changes as a navigation start entry\n if (ST) {\n performance.mark('routeChange')\n }\n\n const { shallow = false } = options\n const routeProps = { shallow }\n\n if (this._inFlightRoute) {\n this.abortComponentLoad(this._inFlightRoute, routeProps)\n }\n\n as = addBasePath(\n addLocale(\n hasBasePath(as) ? delBasePath(as) : as,\n options.locale,\n this.defaultLocale\n )\n )\n const cleanedAs = delLocale(\n hasBasePath(as) ? delBasePath(as) : as,\n this.locale\n )\n this._inFlightRoute = as\n\n // If the url change is only related to a hash change\n // We should not proceed. We should only change the state.\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 if (!(options as any)._h && this.onlyAHashChange(cleanedAs)) {\n this.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, options)\n this.scrollToHash(cleanedAs)\n this.notify(this.components[this.route], null)\n Router.events.emit('hashChangeComplete', as, routeProps)\n return true\n }\n\n let parsed = parseRelativeUrl(url)\n let { pathname, query } = parsed\n\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: any, rewrites: any\n try {\n pages = await this.pageLoader.getPageList()\n ;({ __rewrites: rewrites } = await getClientBuildManifest())\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 window.location.href = as\n return false\n }\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\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\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\n ? removePathTrailingSlash(delBasePath(pathname))\n : pathname\n\n if (pathname !== '/_error') {\n if (process.env.__NEXT_HAS_REWRITES && as.startsWith('/')) {\n const rewritesResult = resolveRewrites(\n addBasePath(addLocale(cleanedAs, this.locale)),\n pages,\n rewrites,\n query,\n (p: string) => resolveDynamicRoute(p, pages),\n this.locales\n )\n resolvedAs = rewritesResult.asPath\n\n if (rewritesResult.matchedPage && rewritesResult.resolvedHref) {\n // if this directly matches a page we need to update the href to\n // allow the correct page chunk to be loaded\n pathname = rewritesResult.resolvedHref\n parsed.pathname = pathname\n url = formatWithValidation(parsed)\n }\n } else {\n parsed.pathname = resolveDynamicRoute(pathname, pages)\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname\n url = formatWithValidation(parsed)\n }\n }\n }\n\n const route = removePathTrailingSlash(pathname)\n\n if (!isLocalURL(as)) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `Invalid href: \"${url}\" and as: \"${as}\", received relative href and external as` +\n `\\nSee more info: https://nextjs.org/docs/messages/invalid-relative-url-external-as`\n )\n }\n\n window.location.href = as\n return false\n }\n\n resolvedAs = delLocale(delBasePath(resolvedAs), this.locale)\n\n if (isDynamicRoute(route)) {\n const parsedAs = parseRelativeUrl(resolvedAs)\n const asPathname = parsedAs.pathname\n\n const routeRegex = getRouteRegex(route)\n const routeMatch = getRouteMatcher(routeRegex)(asPathname)\n const shouldInterpolate = route === asPathname\n const interpolatedAs = shouldInterpolate\n ? interpolateAs(route, asPathname, query)\n : ({} as { result: undefined; params: undefined })\n\n if (!routeMatch || (shouldInterpolate && !interpolatedAs.result)) {\n const missingParams = Object.keys(routeRegex.groups).filter(\n (param) => !query[param]\n )\n\n if (missingParams.length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `${\n shouldInterpolate\n ? `Interpolating href`\n : `Mismatching \\`as\\` and \\`href\\``\n } failed to manually provide ` +\n `the params: ${missingParams.join(\n ', '\n )} in the \\`href\\`'s \\`query\\``\n )\n }\n\n throw new Error(\n (shouldInterpolate\n ? `The provided \\`href\\` (${url}) value is missing query values (${missingParams.join(\n ', '\n )}) to be interpolated properly. `\n : `The provided \\`as\\` value (${asPathname}) is incompatible with the \\`href\\` value (${route}). `) +\n `Read more: https://nextjs.org/docs/messages/${\n shouldInterpolate\n ? 'href-interpolation-failed'\n : 'incompatible-href-as'\n }`\n )\n }\n } else if (shouldInterpolate) {\n as = formatWithValidation(\n Object.assign({}, parsedAs, {\n pathname: interpolatedAs.result,\n query: omitParmsFromQuery(query, interpolatedAs.params!),\n })\n )\n } else {\n // Merge params into `query`, overwriting any specified in search\n Object.assign(query, routeMatch)\n }\n }\n\n Router.events.emit('routeChangeStart', as, routeProps)\n\n try {\n let routeInfo = await this.getRouteInfo(\n route,\n pathname,\n query,\n as,\n resolvedAs,\n routeProps\n )\n let { error, props, __N_SSG, __N_SSP } = routeInfo\n\n // handle redirect on client-transition\n if ((__N_SSG || __N_SSP) && props) {\n if ((props as any).pageProps && (props as any).pageProps.__N_REDIRECT) {\n const destination = (props as any).pageProps.__N_REDIRECT\n\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('/')) {\n const parsedHref = parseRelativeUrl(destination)\n parsedHref.pathname = resolveDynamicRoute(\n parsedHref.pathname,\n pages\n )\n\n if (pages.includes(parsedHref.pathname)) {\n const { url: newUrl, as: newAs } = prepareUrlAs(\n this,\n destination,\n destination\n )\n return this.change(method, newUrl, newAs, options)\n }\n }\n\n window.location.href = destination\n return new Promise(() => {})\n }\n\n this.isPreview = !!props.__N_PREVIEW\n\n // handle SSG data 404\n if (props.notFound === SSG_DATA_NOT_FOUND) {\n let notFoundRoute\n\n try {\n await this.fetchComponent('/404')\n notFoundRoute = '/404'\n } catch (_) {\n notFoundRoute = '/_error'\n }\n\n routeInfo = await this.getRouteInfo(\n notFoundRoute,\n notFoundRoute,\n query,\n as,\n resolvedAs,\n { shallow: false }\n )\n }\n }\n\n Router.events.emit('beforeHistoryChange', as, routeProps)\n this.changeState(method, url, as, options)\n\n if (process.env.NODE_ENV !== 'production') {\n const appComp: any = this.components['/_app'].Component\n ;(window as any).next.isPrerendered =\n appComp.getInitialProps === appComp.origGetInitialProps &&\n !(routeInfo.Component as any).getInitialProps\n }\n\n // shallow routing is only allowed for same page URL changes.\n const isValidShallowRoute = options.shallow && this.route === route\n\n if (\n (options as any)._h &&\n pathname === '/_error' &&\n self.__NEXT_DATA__.props?.pageProps?.statusCode === 500 &&\n props?.pageProps\n ) {\n // ensure statusCode is still correct for static 500 page\n // when updating query information\n props.pageProps.statusCode = 500\n }\n\n await this.set(\n route,\n pathname!,\n query,\n cleanedAs,\n routeInfo,\n forcedScroll ||\n (isValidShallowRoute || !options.scroll ? null : { x: 0, y: 0 })\n ).catch((e) => {\n if (e.cancelled) error = error || e\n else throw e\n })\n\n if (error) {\n Router.events.emit('routeChangeError', error, cleanedAs, routeProps)\n throw error\n }\n\n if (process.env.__NEXT_I18N_SUPPORT) {\n if (this.locale) {\n document.documentElement.lang = this.locale\n }\n }\n Router.events.emit('routeChangeComplete', as, routeProps)\n\n return true\n } catch (err) {\n if (err.cancelled) {\n return false\n }\n throw err\n }\n }\n\n changeState(\n method: HistoryMethod,\n url: string,\n as: string,\n options: TransitionOptions = {}\n ): void {\n if (process.env.NODE_ENV !== 'production') {\n if (typeof window.history === 'undefined') {\n console.error(`Warning: window.history is not available.`)\n return\n }\n\n if (typeof window.history[method] === 'undefined') {\n console.error(`Warning: window.history.${method} is not available`)\n return\n }\n }\n\n if (method !== 'pushState' || getURL() !== as) {\n this._shallow = options.shallow\n window.history[method](\n {\n url,\n as,\n options,\n __N: true,\n idx: this._idx = method !== 'pushState' ? this._idx : this._idx + 1,\n } as HistoryState,\n // Most browsers currently ignores this parameter, although they may use it in the future.\n // Passing the empty string here should be safe against future changes to the method.\n // https://developer.mozilla.org/en-US/docs/Web/API/History/replaceState\n '',\n as\n )\n }\n }\n\n async handleRouteInfoError(\n err: Error & { code: any; cancelled: boolean },\n pathname: string,\n query: ParsedUrlQuery,\n as: string,\n routeProps: RouteProperties,\n loadErrorFail?: boolean\n ): Promise {\n if (err.cancelled) {\n // bubble up cancellation errors\n throw err\n }\n\n if (isAssetError(err) || loadErrorFail) {\n Router.events.emit('routeChangeError', err, as, routeProps)\n\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\n // So, doing a hard reload is the proper way to deal with this.\n window.location.href = as\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\n try {\n let Component: ComponentType\n let styleSheets: StyleSheetTuple[]\n let props: Record | undefined\n\n if (\n typeof Component! === 'undefined' ||\n typeof styleSheets! === 'undefined'\n ) {\n ;({ page: Component, styleSheets } = await this.fetchComponent(\n '/_error'\n ))\n }\n\n const routeInfo: CompletePrivateRouteInfo = {\n props,\n Component,\n styleSheets,\n err,\n error: err,\n }\n\n if (!routeInfo.props) {\n try {\n routeInfo.props = await this.getInitialProps(Component, {\n err,\n pathname,\n query,\n } as any)\n } catch (gipErr) {\n console.error('Error in error page `getInitialProps`: ', gipErr)\n routeInfo.props = {}\n }\n }\n\n return routeInfo\n } catch (routeInfoErr) {\n return this.handleRouteInfoError(\n routeInfoErr,\n pathname,\n query,\n as,\n routeProps,\n true\n )\n }\n }\n\n async getRouteInfo(\n route: string,\n pathname: string,\n query: any,\n as: string,\n resolvedAs: string,\n routeProps: RouteProperties\n ): Promise {\n try {\n const existingRouteInfo: PrivateRouteInfo | undefined = this.components[\n route\n ]\n if (routeProps.shallow && existingRouteInfo && this.route === route) {\n return existingRouteInfo\n }\n\n const cachedRouteInfo: CompletePrivateRouteInfo | undefined =\n existingRouteInfo && 'initial' in existingRouteInfo\n ? undefined\n : existingRouteInfo\n const routeInfo: CompletePrivateRouteInfo = cachedRouteInfo\n ? cachedRouteInfo\n : 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\n const { Component, __N_SSG, __N_SSP } = routeInfo\n\n if (process.env.NODE_ENV !== 'production') {\n const { isValidElementType } = require('react-is')\n if (!isValidElementType(Component)) {\n throw new Error(\n `The default export is not a React Component in page: \"${pathname}\"`\n )\n }\n }\n\n let dataHref: string | undefined\n\n if (__N_SSG || __N_SSP) {\n dataHref = this.pageLoader.getDataHref(\n formatWithValidation({ pathname, query }),\n resolvedAs,\n __N_SSG,\n this.locale\n )\n }\n\n const props = await this._getData(() =>\n __N_SSG\n ? this._getStaticData(dataHref!)\n : __N_SSP\n ? this._getServerData(dataHref!)\n : this.getInitialProps(\n Component,\n // we provide AppTree later so this needs to be `any`\n {\n pathname,\n query,\n asPath: as,\n } as any\n )\n )\n\n routeInfo.props = props\n this.components[route] = routeInfo\n return routeInfo\n } catch (err) {\n return this.handleRouteInfoError(err, pathname, query, as, routeProps)\n }\n }\n\n set(\n route: string,\n pathname: string,\n query: ParsedUrlQuery,\n as: string,\n data: PrivateRouteInfo,\n resetScroll: { x: number; y: number } | null\n ): Promise {\n this.isFallback = false\n\n this.route = route\n this.pathname = pathname\n this.query = query\n this.asPath = as\n return this.notify(data, resetScroll)\n }\n\n /**\n * Callback to execute before replacing router state\n * @param cb callback to be executed\n */\n beforePopState(cb: BeforePopStateCallback) {\n this._bps = cb\n }\n\n onlyAHashChange(as: string): boolean {\n if (!this.asPath) return false\n const [oldUrlNoHash, oldHash] = this.asPath.split('#')\n const [newUrlNoHash, newHash] = as.split('#')\n\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\n // If the urls are change, there's more than a hash change\n if (oldUrlNoHash !== newUrlNoHash) {\n return false\n }\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\n scrollToHash(as: string): void {\n const [, hash] = as.split('#')\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\n // First we check if the element by id is found\n const idEl = document.getElementById(hash)\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(hash)[0]\n if (nameEl) {\n nameEl.scrollIntoView()\n }\n }\n\n urlIsNew(asPath: string): boolean {\n return this.asPath !== asPath\n }\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 */\n async prefetch(\n url: string,\n asPath: string = url,\n options: PrefetchOptions = {}\n ): Promise {\n let parsed = parseRelativeUrl(url)\n\n let { pathname } = parsed\n\n if (process.env.__NEXT_I18N_SUPPORT) {\n if (options.locale === false) {\n pathname = normalizeLocalePath!(pathname, this.locales).pathname\n parsed.pathname = pathname\n url = formatWithValidation(parsed)\n\n let parsedAs = parseRelativeUrl(asPath)\n const localePathResult = normalizeLocalePath!(\n parsedAs.pathname,\n this.locales\n )\n parsedAs.pathname = localePathResult.pathname\n options.locale = localePathResult.detectedLocale || this.defaultLocale\n asPath = formatWithValidation(parsedAs)\n }\n }\n\n const pages = await this.pageLoader.getPageList()\n let resolvedAs = asPath\n\n if (process.env.__NEXT_HAS_REWRITES && asPath.startsWith('/')) {\n let rewrites: any\n ;({ __rewrites: rewrites } = await getClientBuildManifest())\n\n const rewritesResult = resolveRewrites(\n addBasePath(addLocale(asPath, this.locale)),\n pages,\n rewrites,\n parsed.query,\n (p: string) => resolveDynamicRoute(p, pages),\n this.locales\n )\n resolvedAs = delLocale(delBasePath(rewritesResult.asPath), this.locale)\n\n if (rewritesResult.matchedPage && rewritesResult.resolvedHref) {\n // if this directly matches a page we need to update the href to\n // allow the correct page chunk to be loaded\n pathname = rewritesResult.resolvedHref\n parsed.pathname = pathname\n url = formatWithValidation(parsed)\n }\n } else {\n parsed.pathname = resolveDynamicRoute(parsed.pathname, pages)\n\n if (parsed.pathname !== pathname) {\n pathname = parsed.pathname\n url = formatWithValidation(parsed)\n }\n }\n const route = removePathTrailingSlash(pathname)\n\n // Prefetch is not supported in development mode because it would trigger on-demand-entries\n if (process.env.NODE_ENV !== 'production') {\n return\n }\n\n await Promise.all([\n this.pageLoader._isSsg(route).then((isSsg: boolean) => {\n return isSsg\n ? this._getStaticData(\n this.pageLoader.getDataHref(\n url,\n resolvedAs,\n true,\n typeof options.locale !== 'undefined'\n ? options.locale\n : this.locale\n )\n )\n : false\n }),\n this.pageLoader[options.priority ? 'loadPage' : 'prefetch'](route),\n ])\n }\n\n async fetchComponent(route: string): Promise {\n let cancelled = false\n const cancel = (this.clc = () => {\n cancelled = true\n })\n\n const componentResult = await this.pageLoader.loadPage(route)\n\n if (cancelled) {\n const error: any = new Error(\n `Abort fetching component for route: \"${route}\"`\n )\n error.cancelled = true\n throw error\n }\n\n if (cancel === this.clc) {\n this.clc = null\n }\n\n return componentResult\n }\n\n _getData(fn: () => Promise): Promise {\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\n if (cancelled) {\n const err: any = new Error('Loading initial props cancelled')\n err.cancelled = true\n throw err\n }\n\n return data\n })\n }\n\n _getStaticData(dataHref: string): Promise {\n const { href: cacheKey } = new URL(dataHref, window.location.href)\n if (\n process.env.NODE_ENV === 'production' &&\n !this.isPreview &&\n this.sdc[cacheKey]\n ) {\n return Promise.resolve(this.sdc[cacheKey])\n }\n return fetchNextData(dataHref, this.isSsr).then((data) => {\n this.sdc[cacheKey] = data\n return data\n })\n }\n\n _getServerData(dataHref: string): Promise {\n const { href: resourceKey } = new URL(dataHref, window.location.href)\n if (this.sdr[resourceKey]) {\n return this.sdr[resourceKey]\n }\n return (this.sdr[resourceKey] = fetchNextData(dataHref, this.isSsr)\n .then((data) => {\n delete this.sdr[resourceKey]\n return data\n })\n .catch((err) => {\n delete this.sdr[resourceKey]\n throw err\n }))\n }\n\n getInitialProps(\n Component: ComponentType,\n ctx: NextPageContext\n ): Promise {\n const { Component: App } = this.components['/_app']\n const AppTree = this._wrapApp(App as AppComponent)\n ctx.AppTree = AppTree\n return loadGetInitialProps>(App, {\n AppTree,\n Component,\n router: this,\n ctx,\n })\n }\n\n abortComponentLoad(as: string, routeProps: RouteProperties): void {\n if (this.clc) {\n Router.events.emit(\n 'routeChangeError',\n buildCancellationError(),\n as,\n routeProps\n )\n this.clc()\n this.clc = null\n }\n }\n\n notify(\n data: PrivateRouteInfo,\n resetScroll: { x: number; y: number } | null\n ): Promise {\n return this.sub(\n data,\n this.components['/_app'].Component as AppComponent,\n resetScroll\n )\n }\n}\n","import { IncomingMessage, ServerResponse } from 'http'\nimport { ParsedUrlQuery } from 'querystring'\nimport { ComponentType } from 'react'\nimport { UrlObject } from 'url'\nimport { formatUrl } from './router/utils/format-url'\nimport { NextRouter } from './router/router'\nimport { Env } from '@next/env'\nimport { BuildManifest } from '../server/get-page-files'\nimport { DomainLocales } from '../server/config'\nimport { PreviewData } from 'next/types'\n\n/**\n * Types used by both next and next-server\n */\n\nexport type NextComponentType<\n C extends BaseContext = NextPageContext,\n IP = {},\n P = {}\n> = ComponentType

& {\n /**\n * Used for initial page load data population. Data returned from `getInitialProps` is serialized when server rendered.\n * Make sure to return plain `Object` without using `Date`, `Map`, `Set`.\n * @param ctx Context of `page`\n */\n getInitialProps?(context: C): IP | Promise\n}\n\nexport type DocumentType = NextComponentType<\n DocumentContext,\n DocumentInitialProps,\n DocumentProps\n> & {\n renderDocument(\n Document: DocumentType,\n props: DocumentProps\n ): React.ReactElement\n}\n\nexport type AppType = NextComponentType<\n AppContextType,\n AppInitialProps,\n AppPropsType\n>\n\nexport type AppTreeType = ComponentType<\n AppInitialProps & { [name: string]: any }\n>\n\n/**\n * Web vitals provided to _app.reportWebVitals by Core Web Vitals plugin developed by Google Chrome team.\n * https://nextjs.org/blog/next-9-4#integrated-web-vitals-reporting\n */\nexport type NextWebVitalsMetric = {\n id: string\n label: string\n name: string\n startTime: number\n value: number\n}\n\nexport type Enhancer = (Component: C) => C\n\nexport type ComponentsEnhancer =\n | {\n enhanceApp?: Enhancer\n enhanceComponent?: Enhancer\n }\n | Enhancer\n\nexport type RenderPageResult = {\n html: string\n head?: Array\n}\n\nexport type RenderPage = (\n options?: ComponentsEnhancer\n) => RenderPageResult | Promise\n\nexport type BaseContext = {\n res?: ServerResponse\n [k: string]: any\n}\n\nexport type NEXT_DATA = {\n props: Record\n page: string\n query: ParsedUrlQuery\n buildId: string\n assetPrefix?: string\n runtimeConfig?: { [key: string]: any }\n nextExport?: boolean\n autoExport?: boolean\n isFallback?: boolean\n dynamicIds?: (string | number)[]\n err?: Error & { statusCode?: number }\n gsp?: boolean\n gssp?: boolean\n customServer?: boolean\n gip?: boolean\n appGip?: boolean\n locale?: string\n locales?: string[]\n defaultLocale?: string\n domainLocales?: DomainLocales\n scriptLoader?: any[]\n isPreview?: boolean\n}\n\n/**\n * `Next` context\n */\nexport interface NextPageContext {\n /**\n * Error object if encountered during rendering\n */\n err?: (Error & { statusCode?: number }) | null\n /**\n * `HTTP` request object.\n */\n req?: IncomingMessage\n /**\n * `HTTP` response object.\n */\n res?: ServerResponse\n /**\n * Path section of `URL`.\n */\n pathname: string\n /**\n * Query string section of `URL` parsed as an object.\n */\n query: ParsedUrlQuery\n /**\n * `String` of the actual path including query.\n */\n asPath?: string\n /**\n * `Component` the tree of the App to use if needing to render separately\n */\n AppTree: AppTreeType\n}\n\nexport type AppContextType = {\n Component: NextComponentType\n AppTree: AppTreeType\n ctx: NextPageContext\n router: R\n}\n\nexport type AppInitialProps = {\n pageProps: any\n}\n\nexport type AppPropsType<\n R extends NextRouter = NextRouter,\n P = {}\n> = AppInitialProps & {\n Component: NextComponentType\n router: R\n __N_SSG?: boolean\n __N_SSP?: boolean\n}\n\nexport type DocumentContext = NextPageContext & {\n renderPage: RenderPage\n}\n\nexport type DocumentInitialProps = RenderPageResult & {\n styles?: React.ReactElement[] | React.ReactFragment\n}\n\nexport type DocumentProps = DocumentInitialProps & {\n __NEXT_DATA__: NEXT_DATA\n dangerousAsPath: string\n docComponentsRendered: {\n Html?: boolean\n Main?: boolean\n Head?: boolean\n NextScript?: boolean\n }\n buildManifest: BuildManifest\n ampPath: string\n inAmpMode: boolean\n hybridAmp: boolean\n isDevelopment: boolean\n dynamicImports: string[]\n assetPrefix?: string\n canonicalBase: string\n headTags: any[]\n unstable_runtimeJS?: false\n unstable_JsPreload?: false\n devOnlyCacheBusterQueryString: string\n scriptLoader: { defer?: string[]; eager?: any[] }\n locale?: string\n}\n\n/**\n * Next `API` route request\n */\nexport interface NextApiRequest extends IncomingMessage {\n /**\n * Object of `query` values from url\n */\n query: {\n [key: string]: string | string[]\n }\n /**\n * Object of `cookies` from header\n */\n cookies: {\n [key: string]: string\n }\n\n body: any\n\n env: Env\n\n preview?: boolean\n /**\n * Preview data set on the request, if any\n * */\n previewData?: PreviewData\n}\n\n/**\n * Send body of response\n */\ntype Send = (body: T) => void\n\n/**\n * Next `API` route response\n */\nexport type NextApiResponse = ServerResponse & {\n /**\n * Send data `any` data in response\n */\n send: Send\n /**\n * Send data `json` data in response\n */\n json: Send\n status: (statusCode: number) => NextApiResponse\n redirect(url: string): NextApiResponse\n redirect(status: number, url: string): NextApiResponse\n\n /**\n * Set preview data for Next.js' prerender mode\n */\n setPreviewData: (\n data: object | string,\n options?: {\n /**\n * Specifies the number (in seconds) for the preview session to last for.\n * The given number will be converted to an integer by rounding down.\n * By default, no maximum age is set and the preview session finishes\n * when the client shuts down (browser is closed).\n */\n maxAge?: number\n }\n ) => NextApiResponse\n clearPreviewData: () => NextApiResponse\n}\n\n/**\n * Next `API` route handler\n */\nexport type NextApiHandler = (\n req: NextApiRequest,\n res: NextApiResponse\n) => void | Promise\n\n/**\n * Utils\n */\nexport function execOnce ReturnType>(\n fn: T\n): T {\n let used = false\n let result: ReturnType\n\n return ((...args: any[]) => {\n if (!used) {\n used = true\n result = fn(...args)\n }\n return result\n }) as T\n}\n\nexport function getLocationOrigin() {\n const { protocol, hostname, port } = window.location\n return `${protocol}//${hostname}${port ? ':' + port : ''}`\n}\n\nexport function getURL() {\n const { href } = window.location\n const origin = getLocationOrigin()\n return href.substring(origin.length)\n}\n\nexport function getDisplayName

(Component: ComponentType

) {\n return typeof Component === 'string'\n ? Component\n : Component.displayName || Component.name || 'Unknown'\n}\n\nexport function isResSent(res: ServerResponse) {\n return res.finished || res.headersSent\n}\n\nexport async function loadGetInitialProps<\n C extends BaseContext,\n IP = {},\n P = {}\n>(App: NextComponentType, ctx: C): Promise {\n if (process.env.NODE_ENV !== 'production') {\n if (App.prototype?.getInitialProps) {\n const message = `\"${getDisplayName(\n App\n )}.getInitialProps()\" is defined as an instance method - visit https://nextjs.org/docs/messages/get-initial-props-as-an-instance-method for more information.`\n throw new Error(message)\n }\n }\n // when called from _app `ctx` is nested in `ctx`\n const res = ctx.res || (ctx.ctx && ctx.ctx.res)\n\n if (!App.getInitialProps) {\n if (ctx.ctx && ctx.Component) {\n // @ts-ignore pageProps default\n return {\n pageProps: await loadGetInitialProps(ctx.Component, ctx.ctx),\n }\n }\n return {} as IP\n }\n\n const props = await App.getInitialProps(ctx)\n\n if (res && isResSent(res)) {\n return props\n }\n\n if (!props) {\n const message = `\"${getDisplayName(\n App\n )}.getInitialProps()\" should resolve to an object. But found \"${props}\" instead.`\n throw new Error(message)\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if (Object.keys(props).length === 0 && !ctx.ctx) {\n console.warn(\n `${getDisplayName(\n App\n )} returned an empty object from \\`getInitialProps\\`. This de-optimizes and prevents automatic static optimization. https://nextjs.org/docs/messages/empty-object-getInitialProps`\n )\n }\n }\n\n return props\n}\n\nexport const urlObjectKeys = [\n 'auth',\n 'hash',\n 'host',\n 'hostname',\n 'href',\n 'path',\n 'pathname',\n 'port',\n 'protocol',\n 'query',\n 'search',\n 'slashes',\n]\n\nexport function formatWithValidation(url: UrlObject): string {\n if (process.env.NODE_ENV === 'development') {\n if (url !== null && typeof url === 'object') {\n Object.keys(url).forEach((key) => {\n if (urlObjectKeys.indexOf(key) === -1) {\n console.warn(\n `Unknown key passed via urlObject into url.format: ${key}`\n )\n }\n })\n }\n }\n\n return formatUrl(url)\n}\n\nexport const SP = typeof performance !== 'undefined'\nexport const ST =\n SP &&\n typeof performance.mark === 'function' &&\n typeof performance.measure === 'function'\n","import { getRouteRegex } from './route-regex'\n\nexport function getRouteMatcher(routeRegex: ReturnType) {\n const { re, groups } = routeRegex\n return (pathname: string | null | undefined) => {\n const routeMatch = re.exec(pathname!)\n if (!routeMatch) {\n return false\n }\n\n const decode = (param: string) => {\n try {\n return decodeURIComponent(param)\n } catch (_) {\n const err: Error & { code?: string } = new Error(\n 'failed to decode param'\n )\n err.code = 'DECODE_FAILED'\n throw err\n }\n }\n const params: { [paramName: string]: string | string[] } = {}\n\n Object.keys(groups).forEach((slugName: string) => {\n const g = groups[slugName]\n const m = routeMatch[g.pos]\n if (m !== undefined) {\n params[slugName] = ~m.indexOf('/')\n ? m.split('/').map((entry) => decode(entry))\n : g.repeat\n ? [decode(m)]\n : decode(m)\n }\n })\n return params\n }\n}\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","import { getLocationOrigin } from '../../utils'\nimport { searchParamsToUrlQuery } from './querystring'\n\n/**\n * Parses path-relative urls (e.g. `/hello/world?foo=bar`). If url isn't path-relative\n * (e.g. `./hello`) then at least base must be.\n * Absolute urls are rejected with one exception, in the browser, absolute urls that are on\n * the current origin will be parsed as relative\n */\nexport function parseRelativeUrl(url: string, base?: string) {\n const globalBase = new URL(\n typeof window === 'undefined' ? 'http://n' : getLocationOrigin()\n )\n const resolvedBase = base ? new URL(base, globalBase) : globalBase\n const { pathname, searchParams, search, hash, href, origin } = new URL(\n url,\n resolvedBase\n )\n if (origin !== globalBase.origin) {\n throw new Error(`invariant: invalid relative URL, router received ${url}`)\n }\n return {\n pathname,\n query: searchParamsToUrlQuery(searchParams),\n search,\n hash,\n href: href.slice(globalBase.origin.length),\n }\n}\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar quot = /\"/g;\n\n// B.2.3.2.1 CreateHTML(string, tag, attribute, value)\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = String(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + String(value).replace(quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;","'use strict';\nvar $ = require('../internals/export');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-endswith -- safe\nvar $endsWith = ''.endsWith;\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('endsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'endsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.endsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.endswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n endsWith: function endsWith(searchString /* , endPosition = @length */) {\n var that = String(requireObjectCoercible(this));\n notARegExp(searchString);\n var endPosition = arguments.length > 1 ? arguments[1] : undefined;\n var len = toLength(that.length);\n var end = endPosition === undefined ? len : min(toLength(endPosition), len);\n var search = String(searchString);\n return $endsWith\n ? $endsWith.call(that, search, end)\n : that.slice(end - search.length, end) === search;\n }\n});\n","function _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nmodule.exports = _isNativeReflectConstruct;","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","function _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;","/* global window */\nimport React from 'react'\nimport Router, { NextRouter } from '../next-server/lib/router/router'\nimport { RouterContext } from '../next-server/lib/router-context'\n\ntype ClassArguments = T extends new (...args: infer U) => any ? U : any\n\ntype RouterArgs = ClassArguments\n\ntype SingletonRouterBase = {\n router: Router | null\n readyCallbacks: Array<() => any>\n ready(cb: () => any): void\n}\n\nexport { Router, NextRouter }\n\nexport type SingletonRouter = SingletonRouterBase & NextRouter\n\nconst singletonRouter: SingletonRouterBase = {\n router: null, // holds the actual router instance\n readyCallbacks: [],\n ready(cb: () => void) {\n if (this.router) return cb()\n if (typeof window !== 'undefined') {\n this.readyCallbacks.push(cb)\n }\n },\n}\n\n// Create public properties and methods of the router in the singletonRouter\nconst urlPropertyFields = [\n 'pathname',\n 'route',\n 'query',\n 'asPath',\n 'components',\n 'isFallback',\n 'basePath',\n 'locale',\n 'locales',\n 'defaultLocale',\n 'isReady',\n 'isPreview',\n 'isLocaleDomain',\n]\nconst routerEvents = [\n 'routeChangeStart',\n 'beforeHistoryChange',\n 'routeChangeComplete',\n 'routeChangeError',\n 'hashChangeStart',\n 'hashChangeComplete',\n]\nconst coreMethodFields = [\n 'push',\n 'replace',\n 'reload',\n 'back',\n 'prefetch',\n 'beforePopState',\n]\n\n// Events is a static property on the router, the router doesn't have to be initialized to use it\nObject.defineProperty(singletonRouter, 'events', {\n get() {\n return Router.events\n },\n})\n\nurlPropertyFields.forEach((field: string) => {\n // Here we need to use Object.defineProperty because, we need to return\n // the property assigned to the actual router\n // The value might get changed as we change routes and this is the\n // proper way to access it\n Object.defineProperty(singletonRouter, field, {\n get() {\n const router = getRouter() as any\n return router[field] as string\n },\n })\n})\n\ncoreMethodFields.forEach((field: string) => {\n // We don't really know the types here, so we add them later instead\n ;(singletonRouter as any)[field] = (...args: any[]) => {\n const router = getRouter() as any\n return router[field](...args)\n }\n})\n\nrouterEvents.forEach((event: string) => {\n singletonRouter.ready(() => {\n Router.events.on(event, (...args) => {\n const eventField = `on${event.charAt(0).toUpperCase()}${event.substring(\n 1\n )}`\n const _singletonRouter = singletonRouter as any\n if (_singletonRouter[eventField]) {\n try {\n _singletonRouter[eventField](...args)\n } catch (err) {\n console.error(`Error when running the Router event: ${eventField}`)\n console.error(`${err.message}\\n${err.stack}`)\n }\n }\n })\n })\n})\n\nfunction getRouter(): Router {\n if (!singletonRouter.router) {\n const message =\n 'No router instance found.\\n' +\n 'You should only use \"next/router\" inside the client side of your app.\\n'\n throw new Error(message)\n }\n return singletonRouter.router\n}\n\n// Export the singletonRouter and this is the public API.\nexport default singletonRouter as SingletonRouter\n\n// Reexport the withRoute HOC\nexport { default as withRouter } from './with-router'\n\nexport function useRouter(): NextRouter {\n return React.useContext(RouterContext)\n}\n\n// INTERNAL APIS\n// -------------\n// (do not use following exports inside the app)\n\n// Create a router and assign it as the singleton instance.\n// This is used in client side when we are initilizing the app.\n// This should **not** use inside the server.\nexport const createRouter = (...args: RouterArgs): Router => {\n singletonRouter.router = new Router(...args)\n singletonRouter.readyCallbacks.forEach((cb) => cb())\n singletonRouter.readyCallbacks = []\n\n return singletonRouter.router\n}\n\n// This function is used to create the `withRouter` router instance\nexport function makePublicRouterInstance(router: Router): NextRouter {\n const _router = router as any\n const instance = {} as any\n\n for (const property of urlPropertyFields) {\n if (typeof _router[property] === 'object') {\n instance[property] = Object.assign(\n Array.isArray(_router[property]) ? [] : {},\n _router[property]\n ) // makes sure query is not stateful\n continue\n }\n\n instance[property] = _router[property]\n }\n\n // Events is a static property on the router, the router doesn't have to be initialized to use it\n instance.events = Router.events\n\n coreMethodFields.forEach((field) => {\n instance[field] = (...args: any[]) => {\n return _router[field](...args)\n }\n })\n\n return instance\n}\n","function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;","var setPrototypeOf = require(\"./setPrototypeOf\");\n\nvar isNativeReflectConstruct = require(\"./isNativeReflectConstruct\");\n\nfunction _construct(Parent, args, Class) {\n if (isNativeReflectConstruct()) {\n module.exports = _construct = Reflect.construct;\n } else {\n module.exports = _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nmodule.exports = _construct;","import React from 'react'\nimport { NextRouter } from './router/router'\n\nexport const RouterContext = React.createContext(null as any)\n\nif (process.env.NODE_ENV !== 'production') {\n RouterContext.displayName = 'RouterContext'\n}\n","function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nmodule.exports = _asyncToGenerator;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;","'use strict';\nvar redefineAll = require('../internals/redefine-all');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar $has = require('../internals/has');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) this.entries.splice(index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var C = wrapper(function (that, iterable) {\n anInstance(that, C, CONSTRUCTOR_NAME);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (iterable != undefined) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n redefineAll(C.prototype, {\n // 23.3.3.2 WeakMap.prototype.delete(key)\n // 23.4.3.3 WeakSet.prototype.delete(value)\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && $has(data, state.id) && delete data[state.id];\n },\n // 23.3.3.4 WeakMap.prototype.has(key)\n // 23.4.3.4 WeakSet.prototype.has(value)\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && $has(data, state.id);\n }\n });\n\n redefineAll(C.prototype, IS_MAP ? {\n // 23.3.3.3 WeakMap.prototype.get(key)\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // 23.3.3.5 WeakMap.prototype.set(key, value)\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // 23.4.3.1 WeakSet.prototype.add(value)\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return C;\n }\n};\n","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","var $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar create = require('../internals/object-create');\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n$({ target: 'Object', stat: true, sham: !DESCRIPTORS }, {\n create: create\n});\n","var $ = require('../internals/export');\nvar iterate = require('../internals/iterate');\nvar createProperty = require('../internals/create-property');\n\n// `Object.fromEntries` method\n// https://github.com/tc39/proposal-object-from-entries\n$({ target: 'Object', stat: true }, {\n fromEntries: function fromEntries(iterable) {\n var obj = {};\n iterate(iterable, function (k, v) {\n createProperty(obj, k, v);\n }, { AS_ENTRIES: true });\n return obj;\n }\n});\n","var global = require('../internals/global');\nvar trim = require('../internals/string-trim').trim;\nvar whitespaces = require('../internals/whitespaces');\n\nvar $parseInt = global.parseInt;\nvar hex = /^[+-]?0[Xx]/;\nvar FORCED = $parseInt(whitespaces + '08') !== 8 || $parseInt(whitespaces + '0x16') !== 22;\n\n// `parseInt` method\n// https://tc39.es/ecma262/#sec-parseint-string-radix\nmodule.exports = FORCED ? function parseInt(string, radix) {\n var S = trim(String(string));\n return $parseInt(S, (radix >>> 0) || (hex.test(S) ? 16 : 10));\n} : $parseInt;\n","\"use strict\";exports.__esModule=true;exports.normalizePathSep=normalizePathSep;exports.denormalizePagePath=denormalizePagePath;function normalizePathSep(path){return path.replace(/\\\\/g,'/');}function denormalizePagePath(page){page=normalizePathSep(page);if(page.startsWith('/index/')){page=page.slice(6);}else if(page==='/index'){page='/';}return page;}\n//# sourceMappingURL=denormalize-page-path.js.map","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/**\n * Tokenize input string.\n */\nfunction lexer(str) {\n var tokens = [];\n var i = 0;\n while (i < str.length) {\n var char = str[i];\n if (char === \"*\" || char === \"+\" || char === \"?\") {\n tokens.push({ type: \"MODIFIER\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"\\\\\") {\n tokens.push({ type: \"ESCAPED_CHAR\", index: i++, value: str[i++] });\n continue;\n }\n if (char === \"{\") {\n tokens.push({ type: \"OPEN\", index: i, value: str[i++] });\n continue;\n }\n if (char === \"}\") {\n tokens.push({ type: \"CLOSE\", index: i, value: str[i++] });\n continue;\n }\n if (char === \":\") {\n var name = \"\";\n var j = i + 1;\n while (j < str.length) {\n var code = str.charCodeAt(j);\n if (\n // `0-9`\n (code >= 48 && code <= 57) ||\n // `A-Z`\n (code >= 65 && code <= 90) ||\n // `a-z`\n (code >= 97 && code <= 122) ||\n // `_`\n code === 95) {\n name += str[j++];\n continue;\n }\n break;\n }\n if (!name)\n throw new TypeError(\"Missing parameter name at \" + i);\n tokens.push({ type: \"NAME\", index: i, value: name });\n i = j;\n continue;\n }\n if (char === \"(\") {\n var count = 1;\n var pattern = \"\";\n var j = i + 1;\n if (str[j] === \"?\") {\n throw new TypeError(\"Pattern cannot start with \\\"?\\\" at \" + j);\n }\n while (j < str.length) {\n if (str[j] === \"\\\\\") {\n pattern += str[j++] + str[j++];\n continue;\n }\n if (str[j] === \")\") {\n count--;\n if (count === 0) {\n j++;\n break;\n }\n }\n else if (str[j] === \"(\") {\n count++;\n if (str[j + 1] !== \"?\") {\n throw new TypeError(\"Capturing groups are not allowed at \" + j);\n }\n }\n pattern += str[j++];\n }\n if (count)\n throw new TypeError(\"Unbalanced pattern at \" + i);\n if (!pattern)\n throw new TypeError(\"Missing pattern at \" + i);\n tokens.push({ type: \"PATTERN\", index: i, value: pattern });\n i = j;\n continue;\n }\n tokens.push({ type: \"CHAR\", index: i, value: str[i++] });\n }\n tokens.push({ type: \"END\", index: i, value: \"\" });\n return tokens;\n}\n/**\n * Parse a string for the raw tokens.\n */\nfunction parse(str, options) {\n if (options === void 0) { options = {}; }\n var tokens = lexer(str);\n var _a = options.prefixes, prefixes = _a === void 0 ? \"./\" : _a;\n var defaultPattern = \"[^\" + escapeString(options.delimiter || \"/#?\") + \"]+?\";\n var result = [];\n var key = 0;\n var i = 0;\n var path = \"\";\n var tryConsume = function (type) {\n if (i < tokens.length && tokens[i].type === type)\n return tokens[i++].value;\n };\n var mustConsume = function (type) {\n var value = tryConsume(type);\n if (value !== undefined)\n return value;\n var _a = tokens[i], nextType = _a.type, index = _a.index;\n throw new TypeError(\"Unexpected \" + nextType + \" at \" + index + \", expected \" + type);\n };\n var consumeText = function () {\n var result = \"\";\n var value;\n // tslint:disable-next-line\n while ((value = tryConsume(\"CHAR\") || tryConsume(\"ESCAPED_CHAR\"))) {\n result += value;\n }\n return result;\n };\n while (i < tokens.length) {\n var char = tryConsume(\"CHAR\");\n var name = tryConsume(\"NAME\");\n var pattern = tryConsume(\"PATTERN\");\n if (name || pattern) {\n var prefix = char || \"\";\n if (prefixes.indexOf(prefix) === -1) {\n path += prefix;\n prefix = \"\";\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n result.push({\n name: name || key++,\n prefix: prefix,\n suffix: \"\",\n pattern: pattern || defaultPattern,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n var value = char || tryConsume(\"ESCAPED_CHAR\");\n if (value) {\n path += value;\n continue;\n }\n if (path) {\n result.push(path);\n path = \"\";\n }\n var open = tryConsume(\"OPEN\");\n if (open) {\n var prefix = consumeText();\n var name_1 = tryConsume(\"NAME\") || \"\";\n var pattern_1 = tryConsume(\"PATTERN\") || \"\";\n var suffix = consumeText();\n mustConsume(\"CLOSE\");\n result.push({\n name: name_1 || (pattern_1 ? key++ : \"\"),\n pattern: name_1 && !pattern_1 ? defaultPattern : pattern_1,\n prefix: prefix,\n suffix: suffix,\n modifier: tryConsume(\"MODIFIER\") || \"\"\n });\n continue;\n }\n mustConsume(\"END\");\n }\n return result;\n}\nexports.parse = parse;\n/**\n * Compile a string to a template function for the path.\n */\nfunction compile(str, options) {\n return tokensToFunction(parse(str, options), options);\n}\nexports.compile = compile;\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction(tokens, options) {\n if (options === void 0) { options = {}; }\n var reFlags = flags(options);\n var _a = options.encode, encode = _a === void 0 ? function (x) { return x; } : _a, _b = options.validate, validate = _b === void 0 ? true : _b;\n // Compile all the tokens into regexps.\n var matches = tokens.map(function (token) {\n if (typeof token === \"object\") {\n return new RegExp(\"^(?:\" + token.pattern + \")$\", reFlags);\n }\n });\n return function (data) {\n var path = \"\";\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n if (typeof token === \"string\") {\n path += token;\n continue;\n }\n var value = data ? data[token.name] : undefined;\n var optional = token.modifier === \"?\" || token.modifier === \"*\";\n var repeat = token.modifier === \"*\" || token.modifier === \"+\";\n if (Array.isArray(value)) {\n if (!repeat) {\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to not repeat, but got an array\");\n }\n if (value.length === 0) {\n if (optional)\n continue;\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to not be empty\");\n }\n for (var j = 0; j < value.length; j++) {\n var segment = encode(value[j], token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected all \\\"\" + token.name + \"\\\" to match \\\"\" + token.pattern + \"\\\", but got \\\"\" + segment + \"\\\"\");\n }\n path += token.prefix + segment + token.suffix;\n }\n continue;\n }\n if (typeof value === \"string\" || typeof value === \"number\") {\n var segment = encode(String(value), token);\n if (validate && !matches[i].test(segment)) {\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to match \\\"\" + token.pattern + \"\\\", but got \\\"\" + segment + \"\\\"\");\n }\n path += token.prefix + segment + token.suffix;\n continue;\n }\n if (optional)\n continue;\n var typeOfMessage = repeat ? \"an array\" : \"a string\";\n throw new TypeError(\"Expected \\\"\" + token.name + \"\\\" to be \" + typeOfMessage);\n }\n return path;\n };\n}\nexports.tokensToFunction = tokensToFunction;\n/**\n * Create path match function from `path-to-regexp` spec.\n */\nfunction match(str, options) {\n var keys = [];\n var re = pathToRegexp(str, keys, options);\n return regexpToFunction(re, keys, options);\n}\nexports.match = match;\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction(re, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.decode, decode = _a === void 0 ? function (x) { return x; } : _a;\n return function (pathname) {\n var m = re.exec(pathname);\n if (!m)\n return false;\n var path = m[0], index = m.index;\n var params = Object.create(null);\n var _loop_1 = function (i) {\n // tslint:disable-next-line\n if (m[i] === undefined)\n return \"continue\";\n var key = keys[i - 1];\n if (key.modifier === \"*\" || key.modifier === \"+\") {\n params[key.name] = m[i].split(key.prefix + key.suffix).map(function (value) {\n return decode(value, key);\n });\n }\n else {\n params[key.name] = decode(m[i], key);\n }\n };\n for (var i = 1; i < m.length; i++) {\n _loop_1(i);\n }\n return { path: path, index: index, params: params };\n };\n}\nexports.regexpToFunction = regexpToFunction;\n/**\n * Escape a regular expression string.\n */\nfunction escapeString(str) {\n return str.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n}\n/**\n * Get the flags for a regexp from the options.\n */\nfunction flags(options) {\n return options && options.sensitive ? \"\" : \"i\";\n}\n/**\n * Pull out keys from a regexp.\n */\nfunction regexpToRegexp(path, keys) {\n if (!keys)\n return path;\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: \"\",\n suffix: \"\",\n modifier: \"\",\n pattern: \"\"\n });\n }\n }\n return path;\n}\n/**\n * Transform an array into a regexp.\n */\nfunction arrayToRegexp(paths, keys, options) {\n var parts = paths.map(function (path) { return pathToRegexp(path, keys, options).source; });\n return new RegExp(\"(?:\" + parts.join(\"|\") + \")\", flags(options));\n}\n/**\n * Create a path regexp from string input.\n */\nfunction stringToRegexp(path, keys, options) {\n return tokensToRegexp(parse(path, options), keys, options);\n}\n/**\n * Expose a function for taking tokens and returning a RegExp.\n */\nfunction tokensToRegexp(tokens, keys, options) {\n if (options === void 0) { options = {}; }\n var _a = options.strict, strict = _a === void 0 ? false : _a, _b = options.start, start = _b === void 0 ? true : _b, _c = options.end, end = _c === void 0 ? true : _c, _d = options.encode, encode = _d === void 0 ? function (x) { return x; } : _d;\n var endsWith = \"[\" + escapeString(options.endsWith || \"\") + \"]|$\";\n var delimiter = \"[\" + escapeString(options.delimiter || \"/#?\") + \"]\";\n var route = start ? \"^\" : \"\";\n // Iterate over the tokens and create our regexp string.\n for (var _i = 0, tokens_1 = tokens; _i < tokens_1.length; _i++) {\n var token = tokens_1[_i];\n if (typeof token === \"string\") {\n route += escapeString(encode(token));\n }\n else {\n var prefix = escapeString(encode(token.prefix));\n var suffix = escapeString(encode(token.suffix));\n if (token.pattern) {\n if (keys)\n keys.push(token);\n if (prefix || suffix) {\n if (token.modifier === \"+\" || token.modifier === \"*\") {\n var mod = token.modifier === \"*\" ? \"?\" : \"\";\n route += \"(?:\" + prefix + \"((?:\" + token.pattern + \")(?:\" + suffix + prefix + \"(?:\" + token.pattern + \"))*)\" + suffix + \")\" + mod;\n }\n else {\n route += \"(?:\" + prefix + \"(\" + token.pattern + \")\" + suffix + \")\" + token.modifier;\n }\n }\n else {\n route += \"(\" + token.pattern + \")\" + token.modifier;\n }\n }\n else {\n route += \"(?:\" + prefix + suffix + \")\" + token.modifier;\n }\n }\n }\n if (end) {\n if (!strict)\n route += delimiter + \"?\";\n route += !options.endsWith ? \"$\" : \"(?=\" + endsWith + \")\";\n }\n else {\n var endToken = tokens[tokens.length - 1];\n var isEndDelimited = typeof endToken === \"string\"\n ? delimiter.indexOf(endToken[endToken.length - 1]) > -1\n : // tslint:disable-next-line\n endToken === undefined;\n if (!strict) {\n route += \"(?:\" + delimiter + \"(?=\" + endsWith + \"))?\";\n }\n if (!isEndDelimited) {\n route += \"(?=\" + delimiter + \"|\" + endsWith + \")\";\n }\n }\n return new RegExp(route, flags(options));\n}\nexports.tokensToRegexp = tokensToRegexp;\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n */\nfunction pathToRegexp(path, keys, options) {\n if (path instanceof RegExp)\n return regexpToRegexp(path, keys);\n if (Array.isArray(path))\n return arrayToRegexp(path, keys, options);\n return stringToRegexp(path, keys, options);\n}\nexports.pathToRegexp = pathToRegexp;\n//# sourceMappingURL=index.js.map","var arrayWithHoles = require(\"./arrayWithHoles\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray\");\n\nvar nonIterableRest = require(\"./nonIterableRest\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;"],"sourceRoot":""}